Bitte benutzen Sie diese Kennung, um auf die Ressource zu verweisen: http://dx.doi.org/10.18419/opus-12484
Autor(en): Schreiner, Christian
Titel: The design and implementation of a decentralized smart contract descriptor repository
Erscheinungsdatum: 2022
Dokumentart: Abschlussarbeit (Master)
Seiten: 95
URI: http://nbn-resolving.de/urn:nbn:de:bsz:93-opus-ds-125039
http://elib.uni-stuttgart.de/handle/11682/12503
http://dx.doi.org/10.18419/opus-12484
Zusammenfassung: One of Ethereum’s most important innovations was the first implementation of smart contracts. Since its release in 2015, many blockchain technologies were developed, many of them also implementing smart contracts. Typically, smart contracts have an address that is not meaningful to humans, in addition to having different interfaces depending on the used technology. Thus, a requirement for a smart contract registry emerged which allows users to not only register uniform descriptions of their smart contracts but also find contract descriptions from other developers, they might be interested in. This thesis proposes such a registry that is not only functional but also decentralized and thus censorship resistant. To do this, we proposed two architectures that solve this problem, compared them and decided on one that we implemented in the end. First, both store so-called Smart Contract Descriptors (SCD), which are technology independent descriptions of smart contracts. The first architecture can be summed up as a client for an already existing decentralized content-sharing network that utilizes its built in functionality to discover SCDs and to upload them. The other approach was the one we implemented. It solves the problem by storing metadata about SCDs in a smart contract which we call the Registry Contract. This metadata points then to the location of the actual SCD. We call this off-chain location an External SCD Storage. In addition to storing SCD-metadata, the Registry Contract offers querying capabilities that are augmented by an off-chain service that we call the External Search Provider. We propose to integrate all of those pieces with a frontend that is hosted in a decentralized manner. Since it is expected that such a registry would store a significant number of contracts, we also wanted to get insights into the time it takes to query it. Thus, we also conducted a performance test with regard to the amount of stored and retrieved SCD-metadata. This test showed us that the overhead of using such a registry is relatively small. Consequently, we came to the conclusion that a censorship resistant registry can not only be designed and implemented but that is also feasible to use it due to the not too large overhead. Moreover, we created a Smart Contract Descriptor data set by crawling GitHub for Solidity smart contracts which we then transformed to SCDs. The data set consists of 127766 SCDs and is to our knowledge the first large-scale SCD data set in existence, and it can assist further research in the field.
Eine der wichtigsten Innovationen von Ethereum war die erste Implementierung von Smart Contracts. Seit der Veröffentlichung im Jahr 2015 wurden viele Blockchain-Technologien entwickelt, von denen viele auch Smart Contracts implementieren. In der Regel haben Smart Contracts eine Adresse, die für Menschen nicht aussagekräftig ist, und je nach verwendeter Technologie auch unterschiedliche Schnittstellen. So entstand der Bedarf an einer Smart Contract Registry, die es Nutzern ermöglicht, nicht nur einheitliche Beschreibungen ihrer Smart Contracts zu registrieren, sondern auch Contract Beschreibungen von anderen Entwicklern zu finden, die für sie von Interesse sein könnten. Diese Arbeit präsentiert eine solche Registry, die nicht nur funktional, sondern auch dezentralisiert und damit zensurresistent ist. Zu diesem Zweck haben wir zwei Architekturen erstellt, die dieses Problem lösen, sie verglichen und uns für eine entschieden, die wir schließlich implementiert haben. Zu aller erst sollte gesagt werden, dass beide sogenannte Smart Contract Descriptors (SCD) speichern. Das sind technologieunabhängige Beschreibungen von Smart Contracts. Die erste Architektur lässt sich als Client für ein bereits bestehendes dezentrales Content Sharing Netzwerk zusammenfassen, der die eingebauten Funktionen des Netzwerks nutzt, um SCDs zu entdecken und hochzuladen. Der andere Ansatz war der von uns implementierte. Er löst das Problem, indem er Metadaten über SCDs in einem Smart Contract speichert, den wir Registry Contract nennen. Diese Metadaten verweisen dann auf den Ort, an dem sich das eigentliche SCD befindet. Wir nennen diesen außerhalb der Blockchain liegenden Ort einen externen SCD Storage. Neben der Speicherung von SCD-Metadaten bietet der Registry-Contract eine Suchfunktionalität, die durch einen außerhalb der Blockchain liegenden Dienst erweitert wird und den wir External Search Provider nennen. Wir integrieren all diese Komponenten in einem Frontend, das dezentral gehostet wird. Da zu erwarten ist, dass eine solche Registry eine beträchtliche Anzahl von Contracts speichern wird, wollten wir auch einen Überblick über die Zeit erhalten, die benötigt wird, um SCD-Metadaten von der Registry abzufragen. Daher haben wir auch einen Performancetest in Bezug auf die Menge der gespeicherten und abgerufenen SCD-Metadaten durchgeführt. Dieser Test zeigte uns, dass der Overhead bei der Verwendung einer solchen Registry relativ gering ist. Folglich kamen wir zu dem Schluss, dass eine zensurresistente Registry nicht nur entworfen und implementiert werden kann, sondern aufgrund des nicht allzu großen Overheads auch praktikabel ist. Darüber hinaus haben wir einen Smart Contract Descriptor Datensatz erstellt, indem wir GitHub nach Solidity Smart Contracts durchforstet haben, die wir dann in SCDs umgewandelt haben. Der Datensatz besteht aus 127766 SCDs und ist unseres Wissens nach der erste große SCD Datensatz und er kann die weitere Forschung auf diesem Gebiet unterstützen.
Enthalten in den Sammlungen:05 Fakultät Informatik, Elektrotechnik und Informationstechnik



Alle Ressourcen in diesem Repositorium sind urheberrechtlich geschützt.