Gorgoris, P. (2021). Identifying administrators of smart contracts from transaction data [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2021.77989
Kurz nach der Veröffentlichung des White Papers zu Bitcoin im Jahr 2008 wurde Blockchain zu einer der am meisten diskutierten und gehypten Technologien der letzten zwei Jahrzehnte. Bitcoin führte eine kryptografisch gesicherte dezentrale Plattform für die Übertragung digitaler Vermögenswerte (die Kryptowährung Bitcoin) mit freiem Zugriff für alle ein. Einige Jahre später ging ein neuer „Player“ einen Schritt weiter: Ethereum führte die Idee eines Blockchain-basierten globalen, dezentralen Computers ein, auf dem jeder Programme auf beobachtbare und transparente Weise bereitstellen und ausführen kann. Diese als Smart Contracts (SCs) bezeichneten Programme sind zwar in der Lage, jedes entscheidbare Problem zu berechnen, sie ermöglichen jedoch in erster Linie Parteien, ein Rahmenwerk für Verträge einzurichten, ohne dass ein vertrauenswürdiger Vermittler erforderlich ist. Tatsächlich verlagert sich das Vertrauen dadurch zu den transparenten Mechanismen der Blockchain. In dieser Arbeit untersuchen wir das Ökosystem von Ethereum hinsichtlich der auf der Mainchain bereitgestellten SCs und legen einen Fokus auf die in den SCs verwendeten Authentifizierungsmuster. Diese Muster beschränken einige Funktionen der SCs, indem sie nur bestimmten Adressen erlauben, den abgesicherten Teil der Funktion auszuführen. Als Methoden für unsere Analyse führen wir die symbolische Ausführung und die Taint-Analyse ein, welche Werkzeuge sind, mit denen der Bytecode eines Programms semantisch analysiert wird. Basierend auf diesen Tools schlagen wir heuristische Erkennungsstrategien vor, um automatisch vier Authentifizierungsmuster zu erkennen, die wir im Ethereum-Bytecode von SCs finden. Darüber hinaus bewerten wir die Erkennungsstrategien anhand eines Testsatzes manuell klassifizierter SCs.
de
Shortly after the white paper on Bitcoin was published in 2008, blockchain became one of the most talked about and hyped technologies of the last two decades. It introduced a cryptographically secured decentralized platform for the transfer of digital assets (the cryptocurrency Bitcoin) with free access for everyone. A few years later, another player took the technology a step further: Ethereum introduced the idea of a blockchain-based global, decentralized computer where everyone can deploy and execute programs in an observable and transparent manner. While these programs, known as smart contracts (SCs), are able to compute any decidable problem, they would primarily enable parties to set up a contracting framework without the need for any trusted intermediary. In fact, trust thereby shifts to the transparent mechanisms of the blockchain. In this work, we examine the ecosystem of Ethereum with regard to the SCs deployed on its mainchain and focus on authentication patterns used in the SCs. These patterns restrict some functions of the SCs by allowing only certain addresses to have the body of the function executed. As methods for our analysis, we introduce symbolic execution and taint analysis, which are tools used to analyze the bytecode of a program semantically. Based on these tools, we propose heuristic detection strategies for automatically discovering four access control patterns that we locate in Ethereum bytecode of SCs. Moreover, we evaluate the detection strategies against a test set of manually classified SCs.