Detailansicht

Engineering blockchain-based applications in the context of the Ethereum ecosystem
Alex Maximilian Wöhrer
Art der Arbeit
Dissertation
Universität
Universität Wien
Fakultät
Fakultät für Informatik
Studiumsbezeichnung bzw. Universitätlehrgang (ULG)
Dr.-Studium der technischen Wissenschaften (DissG: Informatik)
Betreuer*in
Uwe Zdun
Volltext herunterladen
Volltext in Browser öffnen
Alle Rechte vorbehalten / All rights reserved
DOI
10.25365/thesis.71953
URN
urn:nbn:at:at-ubw:1-27261.65878.910241-3
Link zu u:search
(Print-Exemplar eventuell in Bibliothek verfügbar)

Abstracts

Abstract
(Deutsch)
Blockchain ist mehr als nur die Technologie hinter der Kryptowährung Bitcoin. Die Technologie kann als treibende Kraft angesehen werden, die das Potenzial besitzt, viele Bereiche zu verändern. Die Blockchain selbst basiert auf verschiedenen rechnerischen und wirtschaftlichen Konzepten, um eine betrugsfreie Vermittlungsplattform zur effizienten Abwicklung von Transaktionen zwischen sich gegenseitig misstrauenden Parteien zu schaffen. Genauer gesagt, bietet die Blockchain eine auf einem Peer-to-Peer Netzwerk basierende Infrastruktur zur dezentralen, transparenten und unveränderlichen Aufzeichnung von Transaktionen, um die Speicherung von Daten oder die autonome Ausführung von Programmen, sogenannten Smart Contracts, zu ermöglichen. Angetrieben von diesen Möglichkeiten haben in den letzten Jahren zahlreiche Unternehmen und Organisationen begonnen, sich mit der Blockchain zu beschäftigen, um sinnvolle Anwendungsbereiche zu erkunden und Anwendungen auf Basis der Technologie zu entwickeln. In diesem Zusammenhang wird allerdings in vielen Bereichen Neuland betreten, dementsprechend sind Empfehlungen für effiziente Herangehensweisen gefragt. Diese Arbeit behandelt in dieser Hinsicht technische Überlegungen und Methoden zur Erstellung von Blockchain-basierten Anwendungen. Dabei werden im Allgemeinen übergreifende Designs und Ansätze elaboriert, die sich als Best Practices für Blockchain-basierte Softwarelösungen aus Architektur-, Entwicklungs- und Implementierungssicht etabliert haben. Die Aufarbeitung geschieht im Rahmen unterschiedlicher Themenkomplexe im Kontext der bekannten Blockchain Plattform Ethereum. Viele der gewonnen Erkenntnisse lassen sich aber auch auf andere Plattformen verallgemeinern und anwenden. Zunächst werden grundlegende Architekturentscheidungen und -ansätze erarbeitet, aus denen folgt das eine hybride Architektur bestehend aus on- und off-chain Komponeten einen guten Kompromiss zwischen Dezentralisierung und Qualitätsmerkmalen wie Skalierbarkeit, Datenschutz und Benutzerfreundlichkeit bietet. Des Weiteren werden Entwurfsmuster für den Informationsaustausch über Blockchain-Grenzen hinweg mittels sogenannter Orakel ausgearbeitet, woraus sich vier grundlegende Orakelmuster in Bezug auf Datenflussdimensionen (d. h. inbound/outbound und pull/push) ergeben. Außerdem werden Entwurfsmuster für Smart Contracts erarbeitet und anhand von 18 konkreten Mustern präsentiert, die Probleme im Zusammenhang mit dem Betrieb, der Zugangskontrolle, der Verwaltung und der Sicherheit lösen. In weiterer Folge wird eine abstrakte domänenspezifischen Sprache für Smart Contracts entwickelt und studiert um die automatische Anwendung dieser Entwurfsmuster mittels Codegenerierung zu ermöglichen. Dabei wird gezeigt, dass Abstraktion und Codegenerierung ein gangbarer Weg zur Formulierung von Smart Contracts sein können um die Effizienz, Klarheit und Flexibilität von Code zu erhöhen und gleichzeitig die Fehleranfälligkeit zu verringern. Zuletzt werden typische DevOps Aktivitäten untersucht die zeigen, dass die zentralen DevOps-Konzepte und -Aktivitäten denen in anderen Bereichen ähneln, mit dem Unterschied, dass aufgrund der inhärenten Unveränderlichkeit der Blockchain strengere Tests und differenzierte Bereitstellungspraktiken erforderlich sind. Zusammenfassend trägt diese Arbeit zu einem besseren Verständnis verschiedener Themen bei, die für die Entwicklung von Blockchain-basierten Anwendungen von Bedeutung sind.
Abstract
(Englisch)
Blockchain is more than just the technology behind the cryptocurrency Bitcoin. It can be seen as a driving force that has the potential to transform many domains. The technology is based on various computational and economic concepts to create a fraud-free intermediation platform to efficiently settle transactions between mutually distrusting parties. More specifically, the blockchain provides an infrastructure based on a Peer-to-Peer network to record transactions in a decentralized, transparent, and immutable manner to enable the storage of data or the autonomous execution of programs known as smart contracts. Driven by these possibilities, numerous companies and organizations have begun to explore blockchain in recent years to find meaningful application areas and develop applications based on the technology. In this context, new ground is being broken in many areas, and accordingly, recommendations for efficient approaches are needed. In this regard, this thesis addresses technical considerations and methods for building blockchain-based applications. In general, overarching designs and approaches are elaborated that have established themselves as best practices for blockchain-based software solutions from an architectural, development, and implementation perspective. The analysis is done in the scope of different topics in the context of the well-known blockchain platform Ethereum. However, many of the insights gained can also be generalized and applied to other platforms. First, fundamental architectural decisions and approaches are studied, from which follows that a hybrid architecture consisting of on- and off-chain components offers a good compromise between decentralization and quality attributes such as scalability, privacy, and usability. Furthermore, design patterns for data exchange across blockchain boundaries by means of so-called oracles are elaborated, resulting in four basic oracle patterns related to data flow dimensions (i.e., inbound/outbound and pull/push). Moreover, design patterns for smart contracts are devised and presented by means of 18 concrete patterns that solve problems related to operation, access control, management, and security. Subsequently, an abstract domain-specific language for smart contracts is developed and studied to enable the automatic application of these design patterns via code generation. Along the way, it is shown that abstraction and code generation can be a viable way to formulate smart contracts in order to increase the efficiency, clarity, and flexibility of code while reducing the susceptibility to errors. Last, typical DevOps activities are explored which show that core DevOps concepts and activities are similar to those in other domains, with the difference that more rigorous testing and differentiated deployment practices are required due to the inherent immutability of the blockchain. In summary, this thesis contributes to a better understanding of various topics that are important for the development of blockchain-based applications.

Schlagwörter

Schlagwörter
(Deutsch)
Blockchain Smart contract Entwurfsmuster Softwarearchitektur
Schlagwörter
(Englisch)
Blockchain Smart contract Design pattern Software architecture
Autor*innen
Alex Maximilian Wöhrer
Haupttitel (Englisch)
Engineering blockchain-based applications in the context of the Ethereum ecosystem
Paralleltitel (Deutsch)
Entwicklung von Blockchain-basierten Anwendungen im Kontext des Ethereum-Ökosystems
Publikationsjahr
2022
Umfangsangabe
xviii, 191 Seiten : Illustrationen
Sprache
Englisch
Beurteiler*innen
Cesare Pautasso ,
Stefan Schulte
Klassifikationen
54 Informatik > 54.39 Systemarchitektur: Sonstiges ,
54 Informatik > 54.52 Software engineering ,
54 Informatik > 54.59 Programmierung: Sonstiges
AC Nummer
AC16596315
Utheses ID
63282
Studienkennzahl
UA | 786 | 880 | |
Universität Wien, Universitätsbibliothek, 1010 Wien, Universitätsring 1