Bibliography | Schreiner, Christian: The Design and Implementation of a Decentralized Smart Contract Descriptor Repository. University of Stuttgart, Faculty of Computer Science, Electrical Engineering, and Information Technology, Master Thesis No. 48 (2022). 97 pages, english.
|
Abstract | 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.
|