Weißkirchner, P. (2019). Evaluation and improvement of ethereum light clients [Diploma Thesis, Technische Universität Wien]. reposiTUm. https://doi.org/10.34726/hss.2019.72202
Seit der Einführung der Peer-to-Peer Währung Bitcoin sind viele ähnliche Projekte vorgestellt worden. Ein beliebtes Projekt heißt Ethereum, welches erlaubt, Smart Contracts in seinem Netzwerk einzusetzen. Diese Contracts können von NutzerInnen entwickelt werden, um die Fähigkeit von Ethereum zu erweitern. Um mit diesem System interagieren zu können, wird eine Client-Software benötigt, die Blockchain-Daten herunterlädt und anschließend validiert. Als Blockchain wird die Datenstruktur bezeichnet, welche alle getätigten Transaktionen im Netzwerk speichert. Da eine große Menge an Daten kontinuierlich generiert werden, ist Ethereum auf schwächeren Computern nicht mehr einsetzbar. Aus diesem Grund vertraut man sich einer Drittpartei an, dass die heruntergeladenen Daten valide sind, um den zeitaufwendigen Validierungschritt zu umgehen. Eine Alternative, die nicht die Validierung aller Daten benötigt, wird Simplified Payment Verification (SPV) genannt, welche nur ein Teil der Blockchain verarbeiten muss. Software dieser Art nennt man auch Light Clients. Allerdings ist auch dieses Verfahren zu rechenintensiv für Ethereum. Erst vor Kurzem wurde ein kryptografisches Verfahren namens FlyClient vorgestellt, welches eine schnellere Validierung verspricht. Jedoch existiert bislang noch keine praktische Implementierung. Es stellt sich also die Frage, wie man die Validierung der Ethereum Blockchain auf schwächeren Computern wieder ermöglichen kann. Eine Motivation liegt in der praktischen Anwendung, wie beispielsweise Zahlungen per Smartphone tätigen zu können. Bei sicherheitsrelevanten Anwendungen ist es von Vorteil, nicht von einer Drittpartei abhängig zu sein. Das Ziel dieser Arbeit ist daher die systematische Untersuchung von existierenden Verfahren, um Light Clients zu entwickeln. Der Fokus liegt besonders auf einer Schonung von Systemressourcen und die Vermeidung einer Drittpartei. Es werden existierende Ethereum Anwendungen und deren inbegriffenen Sicherheitsannahmen untersucht. Ein Ethereum Light Client Prototyp wird entwickelt, welcher den FlyClient-Ansatz verwendet. Es wird gezeigt, dass mit einer einfachen Modifikation der Ethereum Blockchain Light Clients entwickelt werden können, die: (1) Payment Channels unterstützen, (2) eine effiziente Verifikation der Blockchain ermöglichen, (3) in einer dezentralen Art und Weise arbeiten, (4) hohe Sicherheitsgarantien bieten, und (5) auf schwächeren Computern, wie Smartphones oder IoT-Geräten, eingesetzt werden können.
de
Since the introduction of the peer-to-peer currency Bitcoin in 2008, a great number of similar projects have emerged. Ethereum is a popular cryptocurrency that extends Bitcoin's functionality by allowing users to define program code, so called smart contracts, that can be deployed and executed on top of its network. These contracts enable users to extend the Ethereum platform with applications beyond the relatively basic transaction types that are supported by Bitcoin. In order to interact with such networks a client software can be used, which downloads and verifies the required blockchain data. Blockchain is the data structure, which records all transactions of the system. Because of the continuous generation and validation of huge amounts of blockchain data, Ethereum is not deployable on resource-constrained devices anymore. For this reason, third-party services have to be trusted in the meantime to guarantee the correctness of the gathered data. An alternative to the verification of all data is the so-called Simplified Payment Verification (SPV), where only a small part of the blockchain has to be validated. A software using this approach is also called a light client. However, this approach is still too computationally expensive for Ethereum, resulting in the burden of many hours of work for resource constrained devices. Recently, a cryptographic technique called FlyClient was introduced in order to speed up the validation process, but a practical implementation is not yet available. The question arises, how a client software can be constructed, so that Ethereum can be usable again on such devices. A major motivation for placing the research focus of this thesis on Ethereum light clients lies in the practical usage, in particular for payment applications on smartphones. For such security sensitive applications it is favorable to avoid the necessity of third-party trust. The aim of this work is to systematically explore existing light client approaches with a focus on low resource consumption and avoidance of needing to trust a third party. This thesis enumerates various existing Ethereum applications and proposals and their implied security assumptions. A prototypical implementation of an Ethereum light client is developed, which makes use of the FlyClient's approach. It is shown that with a simple modification to the Ethereum blockchain light clients can be constructed, which: (1) support payment channels, (2) allow an efficient verification of the blockchain, (3) work in a decentralized way, (4) provide high security guarantees, and (5) are deployable on smartphones or IoT devices.