<div class="csl-bib-body">
<div class="csl-entry">List, M. (2025). <i>Mining of Smart Contract Patterns</i> [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2025.103661</div>
</div>
-
dc.identifier.uri
https://doi.org/10.34726/hss.2025.103661
-
dc.identifier.uri
http://hdl.handle.net/20.500.12708/221750
-
dc.description
Arbeit an der Bibliothek noch nicht eingelangt - Daten nicht geprüft
-
dc.description.abstract
Ethereum ist seit Jahren die größte Smart-Contract-Blockchain und nach Bitcoin die zweitgrößte Blockchain-Plattform. Smart-Contracts, die als dezentrale Anwendungen beschrieben werden können, laufen auf einer gemeinsamen Rechenplattform, auf der alle Teilnehmer auf einer geteilten Codebasis arbeiten. Zur Absicherung ist es nötig, dass ein Konsens über die Ein- und Ausgaben aller Smart-Contracts geschaffen wird. Die Ausführung von Smart-Contract-Code verbraucht sogenannte Gas-Einheiten, die als eine Art Treibstoff betrachtet werden können. Gas-Einheiten zeigen den erforderlichen Rechenaufwand an und haben direkte Auswirkungen auf den realen Energieverbrauch. Daher sollten idealerweise alle Smart-Contracts so implementiert sein, dass sie möglichst wenig Gas-Einheiten verbrauchen. Derartige Codeoptimierungsansätze sind nicht trivial. Zum Zeitpunkt des Verfassens dieser Diplomarbeit gibt es bereits solche Mechanismen, welche teilweise direkt in den gängigen Compilern integriert sind. Solche Mechanismen basieren in der Regel auf festen Mustern, welche manuell beschrieben werden müssen und dann auf Smart-Contracts angewendet werden können. In dieser Arbeit haben wir untersucht, ob klassische Verfahren zur Erkennung von Codeähnlichkeiten verwendet werden können, um Optimierungsmuster automatisch aus Quellcode-Repositories ableiten zu können. Zunächst haben wir einen Symbolic-Execution-Ansatz untersucht, welcher sich aufgrund von technischen Einschränkungen und der Abhängigkeit von veralteten Compiler-Versionen als ungeeignet erwies. Daraufhin haben wir einen Fingerprinting-Ansatz basierend auf Kontrollflussgraph-Blöcken gewählt. Mithilfe von Slither konnten wir Metriken wie Cyclomatic-Complexity, Fan-Out und Informationsfluss-Metriken extrahieren und anschließend Distanzen zwischen Codestücken berechnen, um mit den Ergebnissen potenzielle semantische Code-Klone zu erkennen. Wir haben die Evaluierung unseres Ansatzes auf 1.200 manuell markierten Smart-Contracts aus einem Datensatz mit 160.000 Einträgen durchgeführt, was zu 574 Vergleichen führte und konnten eine korrigierte Genauigkeit von 88% für die Erkennung von semantischen Code-Äquivalenzen auf Blockebene erzielen. Für 1.300 Code-Paare haben wir zusätzlich eine Gasverbrauchsmessung durchgeführt, indem wir die Blöcke in generierte Smart-Contracts verpackt und auf einer lokalen Blockchain ausgeführt haben. Dabei konnten wir tatsächliche gasreduzierende Codeänderungen identifizieren. Trotz einiger wesentlichen Einschränkungen zeigt das, dass das Mining gasoptimiertem Codes aus versionierten Source-Code-Repositories mittels Code-Metriken möglich ist.
de
dc.description.abstract
For years, Ethereum has been the largest smart contract blockchain and the second-largest public blockchain platform, after Bitcoin. Smart contracts, which can be described as decentralized applications, are executed on a mutual computation platform, with all participants operating on a shared codebase. For validation purposes, consensus must be achieved on the inputs and outputs of all smart contract calls. The execution of smart contract code consumes gas units, which can be considered analogous to fuel. Gas units represent the computational effort expended and directly impact the real-world energy consumption. Therefore, all smart contracts should aim to consume as little gas as possible in an ideal scenario. Such code optimization approaches are not trivial, however. At the time of writing, mechanisms to achieve this already exist, as described in related work, and some are directly integrated into the most popular code compiler. Those mechanisms utilize fixed code patterns, which must be manually formulated and can then be applied to smart contracts. In this thesis, we investigated whether classical code similarity detection methods can be used to identify optimization patterns from a repository of source code automatically. We first explored symbolic execution using Oyente, but due to technical limitations and its dependency on outdated compiler versions, the approach proved to be restricted in practice. We therefore shifted towards a Control Flow Graph (CFG) fingerprinting approach. Leveraging Slither, we extracted metrics including cyclomatic complexity, fan-out, and information flow metrics, and then computed distances between code fragments to detect potential semantic clones. We evaluated our approach on 1,200 manually labeled contracts from a 160,000-contracts dataset, resulting in 574 comparisons. After a manual error correction, we achieved a precision of 88% for semantic equivalence computation at the CFG block level. For 1,300 code pairs we further measured gas consumption by deploying generated wrapper contracts to a local blockchain. We were able to identify actual gas-saving code changes, which demonstrates, besides some major limitations, that mining gas-optimized code from versioned code repositories is feasible by leveraging structural code metrics.
en
dc.language
English
-
dc.language.iso
en
-
dc.rights.uri
http://rightsstatements.org/vocab/InC/1.0/
-
dc.subject
Kryptowährungen
de
dc.subject
Blockchain
de
dc.subject
Ethereum
de
dc.subject
Quellcode-Extraktion
de
dc.subject
Codeanalyse
de
dc.subject
Smart-Contract
de
dc.subject
Fingerabdruck
de
dc.subject
Gas-Optimierung
de
dc.subject
Codeoptimierung
de
dc.subject
Kontrollflussgraph
de
dc.subject
Cryptocurrencies
en
dc.subject
Blockchain
en
dc.subject
Ethereum
en
dc.subject
Codemining
en
dc.subject
Smart contract
en
dc.subject
Fingerprinting
en
dc.subject
Gas optimization
en
dc.subject
Code optimization
en
dc.subject
Control flow graph
en
dc.title
Mining of Smart Contract Patterns
en
dc.type
Thesis
en
dc.type
Hochschulschrift
de
dc.rights.license
In Copyright
en
dc.rights.license
Urheberrechtsschutz
de
dc.identifier.doi
10.34726/hss.2025.103661
-
dc.contributor.affiliation
TU Wien, Österreich
-
dc.rights.holder
Michael List
-
dc.publisher.place
Wien
-
tuw.version
vor
-
tuw.thesisinformation
Technische Universität Wien
-
tuw.publication.orgunit
E194 - Institut für Information Systems Engineering