Sack, C. (2023). Erkennung von Mustern in EVM-Bytecode durch XQuery-Abfragen auf Ausführungspfaden im Kontrollflussgraphen [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2023.98507
Blockchain-Programme, sogenannte Smart Contracts (SCs), sind eine Weiterentwicklung zu der im Jahr 2008 veröffentlichten Blockchain Bitcoin. Ethereum, eine der großen Blockchains, erlaubt es, diese quasi-Turing-vollständigen SCs autonom und durch die Blockchain gesichert laufen zu lassen. Die Ethereum-Virtual-Machine (EVM), ein zentraler Bestandteil von Ethereum, ermöglicht es diesen Programmen, viele neue Anwendungsgebiete zu erschließen. Prominente Beispiele hierfür sind Token, dAPPs, dezentrale Finanzsysteme (DeFi), Logistik und Protokollierung (Logging). Etwa 250.000 unterschiedliche derartige Programme wurden bereits auf Ethereum veröffentlicht. In dieser Arbeit untersuche ich einen neuartigen Ansatz zur Klassifizierung von Smart-Contract-Mustern (SC-Mustern) basierend auf ihren EVM-Bytecodes (EVM-BCs) unter Verwendung einer allgemeinen Abfragesprache. Anhand verschiedener Smart-Contract Muster (SC-Muster) zeige ich mögliche Anwendungsgebiete meiner vorgeschlagenen Abfragesprache. Für die SC-Mustererkennung entwickle ich einen Prototyp, der gegebene EVM-BCs dekompiliert und in XML-Dokumente (Extensible Markup Language) umwandelt. Die heuristisch arbeitenden Erkennungsstrategien, die auf Extensible-Markup-Language-Query-Language (XQuery) basieren, werden schließlich gegen eine bereits klassifizierte Menge von SCs evaluiert.
de
Blockchain programs, so-called smart contracts (SCs), are a further development of the blockchain Bitcoin, which was published in 2008. Ethereum, one of the big blockchains, allows these quasi-Turing-complete SCs to run autonomously and secured by the blockchain. The Ethereum Virtual Machine (EVM), a central part of Ethereum, enables these programs to open up many new areas of application. Prominent examples of these are tokens, dAPPs, decentralized finance (DeFi), logistics and logging. About 250,000 different such programs have already been published on Ethereum.In this thesis, I investigate a novel approach to classify smart contract patterns (SC patterns) based on their EVM bytecodes (EVM-BCs) using a general query language. Using different SC patterns, I show possible areas of application of my proposed query language. For SC pattern recognition, I develop a prototype that decompiles given EVM-BC and transforms it into Extensible Markup Language (XML) documents. The heuristically working detection strategies, which are based on Extensible-Markup-Language-Query-Language (XQuery), are finally evaluated against an already classified set of SCs.