Hyperledger Avalon – Off-Chain-Funktionen für die Blockchain
Hyperledger Avalon ist ein relativ neues Projekt der Hyperledger Foundation. Laut Hyperledger ermöglicht der Einsatz von Avalon „die sichere Verlagerung der Blockchain-Verarbeitung von der Hauptkette zu dedizierten, vertrauenswürdigen Rechenressourcen.“ (off-chain).
Damit werden zwei Hauptprobleme von Blockchains adressiert, Datenschutz und Skalierung. Der Quellcode von Avalon ist auf GitHub verfügbar.
Avalon wird gemeinschaftlich entwickelt. Am Projekt arbeiten, neben Hyperledger, auch die Enterprise Ethereum Alliance und verschiedene Sponsoren mit.
Zu den Sponsoren gehören zum Beispiel Intel, IBM, Microsoft, Oracle, Santander, der Gründer der Enterprise Ethereum Alliance Consensys, und viele andere.
Das macht klar, dass die Funktionen des Projektes für die Blockchain eine wichtige Rolle spielen und die Finanzierung des Projektes durch die Sponsoren gesichert sind.
Avalon im Überblick
Bei Avalon wird eine Blockchain verwendet, um Ausführungsrichtlinien durchzusetzen. Gleichzeitig wird die Überprüfbarkeit von Transaktionen gewährleistet, während zugehörige vertrauenswürdige Off-Chain-Rechenressourcen die Transaktionen ausführen.
Es findet eine Verbindung zwischen dem Blockchain-Netzwerk und einer vertrauenswürdigen Computerumgebung statt, die nicht Teil der Blockchain ist, aber dennoch Berechnungen für sie ausführt und Daten austauscht.
Das Projekt verfolgt einen Standard für Trusted Compute Frameworks. Dazu nutzt Avalon die Trusted Compute Specifications, welche die Enterprise Ethereum Alliance veröffentlicht und ständig aktualisiert.
Diese TCS sind Basis für den Aufbau einer Infrastruktur, bei der über Avalon Berechnungen per off-chain aus der Blockchain ausgelagert werden.
Die Hyperledger Foundation ist Mitglied bei der Enterprise Ethereum Alliance (EEA) und auch die EEA ist Mitglied bei der Hyperledger Foundation.
Die beiden Organisationen arbeiten eng zusammen und haben bereits den Ethereum-Client Besu zusammen entwickelt.
Hyperledger verfügt ebenfalls über einen eigenen Ethereum-Client mit der Bezeichnung Burrow. Beide Clients können für Smart Contracts eingesetzt werden, unterstützen Avalon und ermöglichen die Verwaltung und Bereitstellung von Smart Contracts.
Hyperledger hat die Unterstützung für Ethereum-Smart-Contract-Sprache Solidity in seine Fabric-Plattform integriert. Davon profitieren auch alle anderen Frameworks und Tools der Hyperledger Foundation.
Skalierbarkeit und Datenschutz können eine Herausforderung beim Einsatz der Blockchain sein
Um mit Avalon zu arbeiten, gehört ein gewisses Grundverständnis, wie Blockchains funktionieren. Wir erklären nachfolgend vereinfacht, wie Avalon die Auslagerung von Berechnungen aus der Blockchain unterstützt.
Entwickler, die sich mit dem Thema off-chain auseinandersetzen, sollten zuvor das Wissen aufbauen, wie die dazugehörigen Bestandteile aus Hard- und Software miteinander interagieren und was im Quellcode der Blockchain-Anwendung verankert sein muss, damit off-chain nutzbar ist.
Grundsätzlich besteht eine Blockchain aus einem Netzwerk von miteinander verbundenen Knoten, die auch als Chain (Kette) bezeichnet werden.
Daher werden alle Transaktionen, Validierungen und Daten auf der Kette durchgeführt, auf jedem Knoten im Netzwerk. Dieser Ansatz hat Vor- und Nachteile.
Der Vorteil ist, dass das Netzwerk über die Integrität einen Konsens erzielen kann, aber diese Integrität geht auf Kosten der Vertraulichkeit von Daten (Datenschutz) und der Leistung.
Die Daten und Berechnungen sind also für jeden verifizierbar, allerdings sind die Daten auch für jeden einsehbar. Das geht für verschiedene Daten nicht, zum Beispiel im Gesundheits- und Finanzbereich.
Gleichzeitig steigt die Anforderung an Speicherkapazität und Berechnungen an, was eine Blockchain und die beteiligten Knoten nur schwer skalierbar macht.
Die aktuelle Blockchain von Bitcoin hat aktuell eine Größe von weit über 340 GB, Tendenz stark steigend. Im Sommer 2019 betrug die Größe der Bitcoin-Blockchain noch 230 GB.
Dieses einfache Beispiel zeigt, wie schnell und stark Kapazitäten einer Blockchain ansteigen können. Unternehmen benötigen hier eine Lösung, wie Skalierbarkeit erreicht werden kann und gleichzeitig der Schutz der Daten gewährleistet bleibt.
TCF und TEE in der Blockchain verstehen
Eine Lösung für die Verbesserung der Vertraulichkeit und Leistung ist es, einen Teil der Arbeit außerhalb des Netzwerks, also „off-chain“ auszulagern.
Wenn ein Teil der Arbeitslast außerhalb des Hauptnetzwerks erledigt wird, kann dies wie ein Kompromiss zwischen Integrität und Leistung wirken.
Vertrauliches Computing garantiert Vertraulichkeit und bietet gleichzeitig zusätzliche Leistung. Die Blockchain und ihre Knoten werden entlastet, gleichzeitig können heikle und sensible Daten hochsicher gespeichert werden.
Für eine sichere Auslagerung von Daten stehen Trusted Execution Environments (TEE) zur Verfügung. Derzeit gibt es verschiedene Trusted Execution Environments, wie Multi-Party Compute (MPC), Zero-Knowledge Proofs (ZK) und Intel Software Guard Extensions (SGX).
Die erste Implementierung von Avalon erfolgt mit Intels SGX. In Zukunft werden auch andere Hardware-Anbieter unterstützt.
Wer aber derzeit auf eine TEE setzen will, kommt kaum um Intel SGX herum. Das Hyperledger Avalon Projekt unterstützt diese TEEs, um diese vertrauenswürdige Rechenumgebungen als „Worker“ in das Netzwerk mit der Blockchain zu implementieren.
Avalon in TEE einbinden
Avalon adressiert die Herausforderungen der Blockchain in Bezug auf Skalierbarkeit und Datenschutz, indem rechenintensive und private Datenverarbeitung aus der Blockchain in eine vorher definierte und mit der Blockchain verbundene TEE ausgelagert werden (Off-Chain).
Betreiber schaffen hier eine vertrauenswürdige Ausführungsumgebung, mit der Berechnungen außerhalb der Blockchain mit maximaler Sicherheit durchgeführt werden können. Vor allem Cloud-Anbieter wie Microsoft und IBM können auf diesem Weg sichere Bereiche zur Verfügung stellen.
Was beim Einsatz von Avalon wichtig zu verstehen ist: Bei Hyperledger Avalon handelt sich dabei um keine Plattform, wie Hyperledger Fabric, sondern ein Tool, mit dem die Entwicklung von Blockchains verbessert werden kann.
Es gibt derzeit keine Planung, um Avalon als festen Bestandteil in Hyperledger Fabric zu integrieren, oder Daten direkt auszutauschen.
Avalon soll dabei helfen, die Blockchain sicherer und skalierbarer zu machen, und das möglichst unabhängig. Dabei soll es möglich sein, Rechenaufgaben aus der Blockchain zeitweilig auszulagern. Die Gründe dafür können Leistung und eine erhöhte Sicherheit sein.
Skalierbarkeit und Sicherheit für Blockchains
Eine der Limitationen von Blockchain-Projekten sind die verwendete Hardware, die Leistung und die Sicherheit des Systems.
Es gibt häufig Anforderungen, dass bestimmte Aktionen in der Blockchain ausgelagert werden sollen, unter anderem Transaktionsrechnungen.
Dieser Vorgang trägt die Bezeichnung „off-chain“. Dabei gibt es natürlich zunächst das Problem, dass die Ende-zu-Ende-Integrität der Blockchain verloren geht und auch die Sicherheit deutlich leiden kann.
Damit Off-Chaining bei Blockchain-Projekten möglichst optimal und risikoarm durchgeführt werden können, soll Hyperledger Avalon als Tool helfen.
Das Projekt bietet einen Standard für Trusted Compute Frameworks (TCF) und ermöglicht dadurch den Aufbau einer Trusted Execution Environment, welche die Trusted Compute Specifications der Enterprise Ethereum Alliance einhalten kann.
Ursprünglich sollte eine TEE mit Worker-Nodes in einer Ethereum-Blockchain umgesetzt werden. Über ein TCF kann eine TEE aber auch außerhalb der Blockchain aufgebaut werden, was Sicherheit, Flexibilität und Skalierbarkeit einer Blockchain und der darüber zur Verfügung gestellten Dienste enorm erweitert.
Damit soll es unter anderem möglich sein, verschiedene Bereiche in einem Smart Contract, zum Beispiel bestimmte Berechnungen und Daten, aus der Blockchain auszulagern.
Vor allem im Versicherungs- und Finanzbereich spielen Sicherheit und Datenschutz eine wesentliche Rolle. Gerade hier kann es notwendig sein, Daten aus der Blockchain auch auslagern zu können. Deswegen arbeitet auch die Enterprise Ethereum Alliance mit an dem Projekt.
Off-Chaining im Internet-of-Things
Wenn in einer Blockchain Sensor-Daten verarbeitet werden, die etwa ein IoT-Gerät sendet, das Temperaturverläufe misst, sind große Datenmengen wahrscheinlich.
Gleichzeitig sind nicht alle Daten notwendig, bleiben aber in der Blockchain gespeichert. Dadurch steigt der Speicherbedarf einer Blockchain schnell an, obwohl unter Umständen nicht alle Daten in der Blockchain benötigt werden.
Hier kann es sinnvoll sein, nicht alle Datenverläufe des Messgerätes eines Tages in der Blockchain zu speichern, sondern nur relevante Daten, wie die Anfangs- und Endtemperatur, Maximal- und Minimal-Temperatur oder andere Werte.
Weitere Beispiele sind Berechnungen zur künstlichen Intelligenz (KI). Auch hier ist es nicht immer notwendig alle Daten in der Blockchain zu speichern, sondern in andere Systeme auszulagern, bei denen mehr Speicherplatz und Kapazität zur Verfügung stehen.
Off-Chaining nutzen – Daten auslagern
Wenn Off-Chaining in einer Blockchain zum Einsatz kommt, also Rechenaufgaben ausgelagert werden sollen, kann Avalon dabei bestmögliche Garantien dafür bieten, dass die ausgelagerten Transaktionen sicher und flexibel durchgeführt werden können, oder auch in anderen Geschäftsprozessen zur Verfügung stehen.
Generell können in einer Blockchain natürlich nur die Daten verarbeitet werden, die in der Blockchain auch gespeichert sind. Erst durch eine Verknüpfung mit einer TEE ist das Auslagern möglich. Meistens speichern Unternehmen alle Daten in einer Blockchain und führen Berechnungen auf den beteiligten Knoten durch.
Das ist im Unternehmenseinsatz aber aus datenschutzrechtlichen und aus Leistungsgründen nicht immer möglich. In einem Blockchain-Netzwerk müssen also auch externe Daten angebunden werden können, genauso wie Computer, die nicht Bestandteil der Blockchain sind.
Mit Avalon lassen sich auch diese Komponenten in die Blockchain einbinden. Anstatt also alle Daten, die in einem Blockchain-Netzwerk gebraucht werden, auch in der Blockchain zu speichern und zu verarbeiten, kann mit Off-Chaining die Blockchain an andere Systeme angekoppelt werden. Dadurch ergibt sich eine enorme Flexibilität der Anwendung.
Trusted Execution Environment nutzen
Mit Hyperledger Avalon können Entwickler auf Basis eines Trusted Compute Frameworks eine Trusted Execution Environment (TEE) anbinden. Diese Umgebung kann Berechnungen aus der Blockchain auslagern.
In einer Trusted Execution Environment werden Blockchain-Berechnungen in einem speziell isolierten Bereich, auf den niemand zugreifen kann, nicht einmal der Betreiber einer Cloud-Plattform genutzt.
Diese Bereiche tragen die Bezeichnung „Enklave“. Deswegen wird beim Einsatz von Hyperledger Avalon von den Entwicklern auch auf Microsoft Azure gesetzt.
Microsoft ist einer der Sponsoren des Hyperledger-Tools und ermöglicht auch den Aufbau einer Testumgebung für Avalon.
Der Nachweis der Verschlüsselung und kryptischen Berechnung werden über die TCF von der TEE in der Blockchain gespeichert. Nach der Speicherung in der Blockchain werden berechnete Daten aus der TEE gelöscht.
Für eine TEE und der Auslagerung von Berechnungen aus der Blockchain (off-chain) kommen zusammen mit Avalon auch Zero Knowledge Proofs (ZKP) und Multi-Party Compute (MPC) zum Einsatz.
Beim Einsatz von ZKP wird unter anderem eine Transaktion überprüft, der Inhalt aber nicht veröffentlicht. Um die Echtheit einer Transaktion zu bestätigen, muss nicht jeder Knoten alle Daten der Transaktion kennen.
Dadurch kann der Datenschutz verbessert und gleichzeitig sichergestellt werden, dass Daten verifiziert werden. Mit MPC werden kryptografische Berechnungen gemeinsam zwischen Partnern durchgeführt und geteilt.
Zusammen mit ZKP und MPC lassen sich auch sehr flexible Infrastrukturen aufbauen.
Intel SGX – Hardwarebasierte Kontrollmechanismen
Zusammen mit Avalon spielt Intel SGX eine wichtige Rolle. SGX ist die erste TEE, die Avalon unterstützt und die derzeit integriert werden kann.
Intel gehört zu den Sponsoren von Avalon. SGX steht für „Software Guard Extensions“. Dabei handelt es sich um spezielle Sicherheitsfunktionen von modernen Intel-Prozessoren.
Mit SGX können Daten hardwarebasiert verschlüsselt werden. Die SGX-Technologie ermöglicht die Definition von Enklaven, die vom Rest der Hard- und Software getrennt sind.
Die Enklaven werden auch auf Ebene des Prozessors voneinander isoliert. Dazu kommen zum Beispiel Intel Xeon E Prozessoren zusammen mit Intel SGX zum Einsatz.
Eine Blockchain-Anwendung kann über Avalon auf einem Serversystem mit Intel SGX eine Enklave anfordern. Diese Enklave ist umfassend geschützt und kann nicht außerhalb der Hardware und der fest definierten Zugriffsprozesse genutzt werden.
Auch das BIOS, das Betriebssystem und der Hypervisor können nicht auf die Enklaven und die darin gespeicherten Daten zugreifen. Es besteht natürlich die Möglichkeit, mehrere Enklaven parallel zu definieren.
Beim off-chain mit Avalon erhält der Blockchain-Prozess, der eine Berechnung zu SGX auslagert, eine Enklave. In dieser kann SGX Berechnungen ausführen und gewährleisten, dass nur die fest definierten Knoten des Blockchain-Netzwerks, oder die jeweilige Blockchain-App auf die Daten der Enklave zugreifen dürfen.
Mit Intel SGX können Entwickler sichere Umgebungen für verschiedene Berechnungen zur Verfügung stellen. Aktuell nutzen bereits IBM mit Cloud Data Shield und Microsoft mit Azure Confidential Computing diese Technologie. Die beiden Unternehmen sind ebenfalls Bestandteil des Avalon-Projektes.
Hyperledger Avalon testen
Der Quellcode von Avalon ist auf GitHub verfügbar. Hier sind auch verschiedene Möglichkeiten zu finden, um sich mit Avalon zu beschäftigen. Über die Datei „build.md“ sind Anleitungen zu finden, um Avalon zu installieren und zu konfigurieren.
Da Avalon noch in einem relativ frühen Stadium der Entwicklung ist, muss einiges an Aufwand betrieben werden, um eine Umgebung ans Laufen zu bekommen.
Als Betriebssystem wird aktuell noch Ubuntu 18.04 LTS vorausgesetzt. Generell funktioniert zwar Avalon in Zukunft auch auf anderen Systemen, allerdings wurde die Installation aktuell nur mit Ubuntu 18.04 getestet.
Wer die Installation auf einer anderen Plattform durchführen will, sollte sich umfassend mit Linux und Avalon auskennen. Da die Entwicklung aktiv vorangetrieben wird, ändern sich die Möglichkeiten aber ständig.
Für einen einfachen Test ist es sinnvoll, sich ein Testabonnement bei Microsoft Azure zu buchen. Hier können VMs erstellt werden, die auf Intel SGX aufbauen.
Wer natürlich umfassende Möglichkeiten testen will, muss damit rechnen, dass einige Kosten für den Betrieb der VM entstehen, wenn die umfassenden Technologien von Intel SGX genutzt werden sollen. Auch in Azure steht Ubuntu 18.04 zur Verfügung.
Es ist aber für jeden Entwickler sinnvoll, der sich mit Blockchains beschäftigt, die Möglichkeiten zu testen, die Avalon bietet.
Hyperledger gehört mit seinen Plattformen und Tools zu den Standards im Bereich Blockchain und das Off-Chaining von Berechnungen wird in Zukunft für sehr viele Blockchains umgesetzt werden.
Allein die Unterstützung durch Intel, Microsoft und IBM zeigen, dass auch sehr große Unternehmen überzeugt sind, dass diese Technologie Zukunft hat.
Wer sich wiederum mit dem Thema off-chain beschäftigt, sollte sich die Möglichkeiten von Hyperledger Avalon in jedem Fall anschauen.
Fazit
Hyperledger Avalon entwickelt sich zu einem mächtigen Tool, an dem viele große Unternehmen teilhaben. Durch die enge Kooperation der Hyperlegder Foundation und der Enterprise Ethereum Alliance ist zu erwarten, dass sich Avalon zu einem der Standard-Tools für das „off-chain“ von Berechnungen genutzt wird.
Die Auslagerung von Berechnungen aus der Blockchain in vertrauenswürdige Computerumgebungen ist auf Dauer unabdingbar. Daher lohnt es sich, sich bereits frühzeitig mit dem Thema „off-chain“ auseinanderzusetzen.