Hyperledger Sawtooth für die Abwicklung von Produktionslieferketten
Hyperledger Sawtooth gehört zu einem der aktivsten Open-Source Blockchain-Projekte der Linux Foundation und wird vor allem durch Intel gefördert. In vielen Punkte gibt es in Bezug auf Enterprise Lösungen zahlreiche Gemeinsamkeiten mit Fabric, dem anderen sehr starken Blockchain-Framework von Hyperledger. Doch auch einige Unterschiede, die den Nutzen und die Einsatzmöglichkeiten der beiden Frameworks voneinander unterscheidet. Doch was genau kann Hyperledger Sawtooth im Detail?
Hyperledger Sawtooth mit Smart Contracts
Das Framework wird kollaborativ über die Entwickler in der Open-Source Gemeinschaft entwickelt und bietet im Hyperledger Greenhouse die einzigartige Möglichkeit, dass jeder Knoten eine kryptografisch identische Kopie der Blockchain-Datenbank aufweist. Diese Garantie nennt sich Global State Agreement. Außerdem sind mehrere Programmiersprachen wie Python, Go oder Javascript möglich und Transaktionen lassen sich parallel ausgeführen, was den Durchsatz erhöht.
Die modulare Blockchain-Architektur konzentriert sich vor allem auf zwei Schlüsselbereiche:
- Konsensalgorithmus
- Smart Contracts
Durch dem modularen Aufbau lassen sich neue Konsensverfahren hinzufügen und Smart Contracts in verschiedenen Programmiersprachen entwickeln. Auf der Hyperledger Sawtooth Blockchain können Unternehmen verteilte Ledger erstellen, bereitstellen und ausführen. Es ist keine spezielle Hardware erforderlich und der außergewöhnliche Name geht auf das ursprüngliche Projekt von Intel zurück mit dem Namen Sawtooth Lake, ein See in den Sawtooth Mountains in Idaho. Als die Linux Foundation und das Hyperledger Konsortium das Projekt unter das Greenhouse übernahmen, wurde der Name in Hyperledger Sawtooth geändert.
Parallele Transaktionen möglich
Sawtooth erleichtert die Entwicklung und Bereitstellung einer Anwendung, in dem eine klare Trennung zwischen der Anwenderebene und der Ebene des Kernsystems vorliegt. Über Smart Contracts können Anwendungen entwickelt werden, die entweder eine native Geschäftslogik aufweisen oder eine virtuelle Vertragslogik enthalten. Diese beiden Anwendungsarten können auf einer Blockchain nebeneinander existieren und Sawtooth ermöglicht das Vorhandensein beider Arten in derselben Instanz im Blockchain-Netzwerk.
Innerhalb des Sawtooth-Frameworks sind einige Applikations-Modelle bereits vordefiniert verfügbar. Sie bieten Anwendern Standard-Lösungen für das Warten der Blockchain, dem Erstellen von Blockchain-Grundeinstellungen wie der Leistungsanalyse sowie zur Speicherung von Blockinformationen.
Ein Software Development Kid SDK enthält mehrere Programmiersprachen, lässt sich aber auch um neu entwickelte Sprachen erweitern. Die bereitgestellte REST-API vereinfacht die Kundenentwicklungen, indem die Validator-Kommunikation an den HTTP / JSON Standard angepasst ist. Als modulare Enterprise-Blockchain kann Sawtooth für eine Vielzahl von Anwendungen und Branchen eingesetzt werden. Dazu gehört die Telekommunikationsbranche, das Gesundheitswesen und die Supply-Chain.
Immer da wo Transaktionen bzw. Daten aus einer Vielzahl von Quellen stammen, sind die verteilten Hauptbücher der DLT ideal eingesetzt. Bei Sawtooth gibt es noch eine Besonderheit für die Integration von IoT-Sensoren. Über die integrierten Track-and-Trace-Anwendung lassen sich Telemetriedaten wie Temperatur, Luftfeuchtigkeit und Standort von IoT-Sensoren erfassen. Ein solcher IoT-Sensor ist beispielsweise das Nexeed Track-and-Trace Connect Gateway von Bosch.
Das Gateway sammelt die Daten der angeschlossenen Sensoren ein und reichert sie mit Positionsdaten an. Derzeit gelangen diese in die Bosch-Cloud und stehen dort zur weiteren Bearbeitung zur Verfügung.
Enterprise-Blockchain für Produktionslieferketten
Genau hier ergeben sich die zukünftigen Anwendungsszenarien für eine Enterprise-Blockchain wie Hyperledger Sawtooth. Anstatt in die Cloud gingen die Daten dann in die Blockchain und würden den beteiligten Nodes im Netzwerk entsprechend der Governance-Regelung zur Verfügung stehen. Hier greift dann auch das Asset der World State Garantie, die sicherstellt, dass jeder Knoten eine konsistente Kopie der Daten aufweist.
Der Prozess der Blockvalidierung auf jedem Validator stellt sicher, dass dieselben Transaktionen zu denselben Statusübergängen führen und dass die resultierenden Daten für alle Teilnehmer im Netzwerk gleich sind. Der Status ist dabei in sogenannten Namespaces unterteilt und ermöglicht den Entwicklern von Transaktionsfamilien den Transaktionsprozess und seine gemeinsame Nutzung zu definieren.
Smart Contracts in Sawtooth können Ereignisse auslösen, die externe, also „nicht-Blockchain“-Systeme verarbeiten können. Über die SDKs können Blockchain-Entwickler die Erstellung, Signierung und Übermittlung von Transaktionen an eigene oder fremdbetriebene Nodes des Blockchain-Netzwerkes programmieren. Smart Contracts sind eine Möglichkeit den Programmcode verteilt im Netzwerk auszuführen und auf der Blockchain-Plattform eine garantierte Datenintegrität zu erreichen.
Implementierung von IoT-Devices möglich
Zusammen mit den IoT-Geräten wie beispielsweise Sensoren, geht die Blockchain über den Smart Contract eine konkrete Vorabvereinbarung nein, ohne dass manuelle oder gar gerichtliche Nachverfolgungen notwendig sind. Die Vereinbarungen sind dabei rein technisch und voll automatisiert. Unternehmen auf Hyperledger Sawtooth stützen sich damit nur noch auf den Inhalt der Smart Contracts auf dem dezentralen Blockchain-Netzwerk als vertrauenswürdige Instanz
Mit der Nutzung von dezentralen Enterprise-Blockchains bleibt die Autonomie der Netzwerkteilnehmer uneingeschränkt erhalten und ein zentrales Verarbeitungsorgan entfällt.
Alle Teilnehmer können unabhängig voneinander ihren Digitalisierungsprozess fortsetzen und agieren gemäß ihrer eigenen Governance. Große Probleme der Zeit vor der Digitalisierung war in der Unternehmenswelt vor allem der fehlerhafte und manipulierte Informationstransfer.
Die praktische Relevanz der Blockchain zeigt sich vermehrt in den letzten 5 Jahren. Seit 2014 konnte bei Analysen des Google Trend Search Volumes festgestellt werden, dass die Anzahl der Suchbegriffe nach „Blockchain“, die der „Bitcoin“-Suchbegriffe weit übersteigt. Das höhere öffentliche Interesse erklärt sich vor allem an dem zunehmenden Bedarf von Unternehmenslösungen auf Basis der DLT und der Vielzahl an praktischen Anwendungsfällen für die Blockchain-Technologie in Industrie und Gesellschaft.
Blockchain-Plattform der dritten Generation
Hyperledger Sawtooth gehört zur dritten Generation von Smart Contracts Plattformen und bietet Unternehmen einen erweiterten Funktionsumfang verglichen mit der Generation 2.0, wie beispielsweise Ethereum. Anwendern steht auf Sawtooth eine Ebene für die Geschäftslogik zur Verfügung und eine Ebene für die öffentliche Blockchain. Die privaten Daten und die Smart Contracts sind gemäß der Governance nach dem „Need to know“-Prinzip für Geschäftspartner einsehbar.
Konsensalgorithmen lassen sich als wesentliches Merkmal der Plattform 3.0 austauschen.Diese sind über die Plug-in Architektur, genau wie bei Hyperledger Fabric anpassbar. Die parallele Planung von Transaktionen bietet außerdem für Unternehmen auf Hyperledger Sawtooth eine erhebliche Leistungssteigerung gegenüber der seriellen Ausführung älterer Blockchain-Frameworks. Sawtooth ist eine universelle Blockchain-Plattform für Unternehmen, die sich bereits auf dem Weg der digitalen Datentransfers befinden und ihre Prozesse nun einheitlich zusammenbringen wollen.
In einer Blockchain ist der Konsens notwendig, um innerhalb einer Gruppe im Netzwerk eine Vereinbarung aufbauen zu können. Algorithmen erfordern im Allgemeinen eine Form der Abstimmung unter einer bekannten Gruppe von Teilnehmern. Konsensverfahren verhindern, dass es zu willkürlichen Fehlern kommt.
Bei Sawtooth sind die Konsensverfahren von der Transaktionssemantik abgetrennt und unterstützen damit die Plug-In Variante, weitere Konsensverfahren zu integrieren oder verschiedene Konsensalgorithmen innerhalb einer Transaktionsgenehmigung zu verwenden.
Die Konsens-API interagiert mit dem Validator und ermöglicht auch das nachträgliche Ändern des Konsensverfahren, nachdem das Blockchain-Netzwerk bereits erstellt wurde. Für die Änderungen sind lediglich 1-2 Transaktionen notwendig.
Derzeit unterstützt die Blockchain-Plattform Hyperledger Sawtooth folgende Konsensmechanismen:
Konsens mit byzantinischer Fehlertoleranz
Der Sawtooth PBFT (Practical Byzantine Fault Tolerance) ist ein auf Abstimmung basierender Konsensalgorithmus, der die byzantinische Fehlertoleranz aufweist. Der Konsens wurde aber hier noch durch weitere Funktionen ergänzt, wie beispielsweise eine dynamische Netzwerkmitgliedschaft. Dabei ist die Mitgliedschaft in einem Team durch eine oder mehrere Regeln definiert. Die bestimmten Benutzerattribute verhindern, dass ein neues Mitglied manuell in das Netzwerk aufgenommen werden kann. Für dieses Konsensverfahren benötigt das Netzwerk mindestens vier Knoten.
Der abstimmungsbasierte Konsensalgorithmus erlaubt die Netzwerklebensfähigkeit auch dann, wenn einige Knoten fehlerhaft oder böswillig sind, sofern ein Mindestprozentsatz der Knoten verbunden ist und ordnungsgemäß funktioniert. Die von den Knoten validierten Blöcke sind endgültig und nicht mehr änderbar wie bei Proof of Work (PoW) oder Proof of Elapsed Time (PoET).
Aufgeilt sind die Knoten im Netzwerk nach Primärknoten für die Erstellung von Kandidatenblöcken und Sekundärknoten, die über die von den Primärknoten erzeugten Blöcke abstimmen. Der Konsens ist kommunikationsintensiv und enthält ein Blocksiegel, um die Endgültigkeit eines bestätigten Blockes zu dokumentieren und zu gewährleisten.
- Primärknoten ist gleichbedeutend mit dem Begriff des Anführers (Leader)
- Sekundärknoten ist gleichbleibend mit den Begriffen Backup oder Anhänger (Follower)
- Knoten ist gleichbedeutend mit den Begriffen Server und Nachbildung (Replika)
PoET-Konsen auf Intel Software
Der Proof of Elapsed Time (PoET) ist ein Protokoll, dass für die Produktionsumgebung geschrieben wurde und große Netzwerke unterstützen kann. Beim PoET wird für jeden teilnehmen Knoten im Netzwerk eine zufällige Zeitspanne festgelegt. Der Knoten, der die kürzeste Wartezeit aufweist, gewinnt den neuen Block.
Das Konsensprotokoll ist in eine vertrauenswürdige Laufzeitumgebung integriert, hierbei handelt es sich um Intels Software Guard Extensions. Mittels eines Lotterieverfahrens wird der sogenannten Leader ermittelt, der dann die Blöcke kreiert. Eine vertrauenswürdige Laufzeitumgebung wird auch als Trusted Execution Environment TEE bezeichnet.
Als sogenannter Nakamoto Konsens bezieht er sich auf die grundlegenden Konsensverfahren beim Proof of Work, die Nakamoto für die Generierung von Bitcoin auf der Blockchain vorgesehen hat.
Der Konsens verhindert Betrug in der Abstimmung durch die Verwendung einer vertrauenswürdigen Ausführungsumgebung, Identitätsprüfung und Blacklisting auf Grundlage der Kryptografie mit asymmetrischen Schlüsseln sowie durch zusätzliche Wahlrichtlinien.
Ein Lotterie-Konsens besitzt folgende Merkmale:
- Fairness: Die Wahl der Leader basiert auf einer möglichst hohen Teilnehmerzahl
- Wirtschaftlichkeit: Die Kosten für die Wahlprozesse sollten proportional zum daraus gewonnenen Wert sein
- Überprüfung: Es sollte für alle Teilnehmer relativ einfach sein, zu überprüfen, ob der Leader rechtmäßig ausgewählt wurde.
Konsensverfahren ohne teure Hardware
Der PoET wurde entwickelt um mithilfe neuer und sicherer CPU-Anweisungen sein Ziel zu erreichen. Diese sind in Consumer- und Enterprise Prozessoren weit verbreitet. Der Vorteil, der sich daraus ergibt, ist die Vermeidung von kostspieligen Investitionen in Leistung und spezielle Hardware.
Sawtooth enthält zwei Versionen des PoET-Konsens
- Der PoET-SGX stützt sich auf die TEE von Intels Software Guard Extensions (SGX) und implementiert ein Lotteriesystem für die Wahl von Leadern. PoET-SGX wird manchmal als „PoET / BFT“ bezeichnet, da es byzantinisch fehlertolerant ist.
- Der PoET-Simulator bietet einen PoET-ähnlichen Konsens für jede Art von Hardware, einschließlich einer virtualisierten Cloud-Umgebung. Der PoET-Simulator wird auch als „PoET / CFT“ bezeichnet, da er eine Crash-Fehlertoleranz besitzt aber keine byzantinische Fehlertoleranz aufweist.
Raft-Konsens mit Crash-Fehlertoleranz und Dev-Mode
Sawtooth Raft in ein Leader-basierter Konsensalgorithmmus, der die Crash-Fehlertoleranz besitzt und für ein kleines Netzwerk mit eingeschränkter Mitgliedschaft ideal ist. Der Raft-Algorithmus definiert einen Wahlprozess, bei dem ein Anführer von allen Anhängern festgelegt und anerkannt wird. Dies bedeutet, dass nur der Primärknoten Blöcke veröffentlicht, die dann von den anderen Knoten im Netzwerk – den Followern – validiert und vereinbart werden.
In einem Raft-Netzwerk treten keine Forks auf, da nur ein Knoten Blöcke veröffentlichen kann. Raft erfordert, dass sich die Mehrheit der Knoten über alle erzielten Fortschritte einig ist. Sawtooth Raft unterstützt keine offene Mitgliedschaft, nur so ist die Sicherheit im Netzwerk gewährleiste und ungültige Knotenkonfigurationen können verhindert werden. Die Anzahl der Knoten ist festgelegt, sofern sie nicht ein Administrator ändert.
Raft erfordert den Austausch von Nachrichten zwischen allen Knoten, um einen Konsens für jeden Block zu erzielen. Der Primärknoten muss so lange warten bis sich die Mehrheit der Knoten auf einen neuen Eintrag geeinigt hat, bevor er einen neuen Block erzeugen kann. Raft-Netzwerke sollten klein sein, da die Anzahl der Nachrichten die ausgetauscht werden müssen, mit der Größe des Netzwerks exponentiell zunimmt und ihn damit für größere Netzwerke unpraktisch macht.
Solange ein Großteil seiner Knoten verfügbar ist, ist die Funktion des Konsens gewährleistet. Raft garantiert jedoch nur Sicherheit und Verfügbarkeit unter nicht-byzantinischen Bedingungen. Damit ist er für Netzwerke, die eine byzantinische Fehlertoleranz erfordern, ungeeignet.
Der Devmode, Developer Mode, ist ein vereinfachter Random-Leader-Algorithmus, der zum Entwickeln und Testen von Transaktionsprozessen nützlich ist. Devmode ist nicht für Netzwerke mit mehreren Knoten empfohlen und ist nicht für die Produktionsumgebung konzipiert. Die Randomisierung sagt aus, dass die Wahl des Leaders nach Zufallszuteilung erfolgt. Im konkreten Fall gibt es nur einen Knoten im Netzwerk. Der Devmode ist nur für die oben beschriebenen Testzwecke gedacht und eignet sich nicht für den Einsatz in einem Produktionsnetzwerk.
Das kann die Hyperledger Sawtooth Blockchain
- In einer Sawtooth-Anwendung sind das Datenmodell und die Transaktionssprache in einer Transaktionsfamilie implementiert. Diese lassen sich auf einem Knoten als Transaktionsprozessor ausführen.
- Andere Hyperledger-Projekte bieten Smart-Contract-Funktionen für die Sawtooth-Plattform an. Dazu gehören Sawtooth Sabre und Sawtooth Seth, dass zur Unterstützung der Ausführung von intelligenten Verträgen für die EVM dient.
- Die Anwendung Sawtooth Supply-Chain zeigt, wie die Herkunft und andere Kontextinformationen eines Vermögenswerts nachverfolgt werden können. Außerdem bietet es eine Beispielanwendung mit einem Transaktionsprozessor mit einer benutzerdefinierten REST-API und einer Webanwendung.
- Der Sawtooth Marketplace demonstriert, wie sich bestimmte Mengen an benutzerdefinierten Assets mit anderen Benutzern in der Blockchain ausgetauschen lassen. Diese Beispielanwendung enthält eine Reihe von Komponenten, die zusammen mit einem Sawtooth-Validator eine Sawtooth-Blockchain ausführen.
- Sawtooth erleichtert die Entwicklung und Bereitstellung einer Anwendung, indem eine klare Trennung zwischen der Anwendungsebene und der Ebene des Kernsystems erfolgt. Außerdem bietet dieses Hyperledger-Projekte Anwendungsentwicklern die Möglichkeit, die Vertragslogik in einer Sprache ihrer Wahl schreiben zukönnen.
- Das Blockchain-Framework soll die Herausforderungen von zugelassenen (privaten) Netzwerken lösen und stellt Cluster für die einfachen separaten Berechtigungen von Knoten zur Verfügung.
- Die meisten Blockchains erfordern eine serielle Transaktionsausführung, um eine konsistente Reihenfolge an jedem Knoten im Netzwerk zu gewährleisten. Bei Sawtooth gibt es eine Planungsebene, die die Transaktionen in parallele Abläufe aufteilt. Basierend auf den Standorten im Status, auf die eine Transaktion zugreift, isoliert Sawtooth die Ausführung von Transaktionen voneinander.
- Hyperledger Sawtooth ist unter der Apache 2-Lizenz veröffentlicht und lässt sich sowohl in Open- als auch in Closed-Source-Anwendungen verwenden.
- Die Blockchain-Plattform Sawtooth lässt je nach Konfiguration entweder als öffentliche/public (aber mit einigen Einschränkungen) oder als permissioned Blockchain betreiben.
- Hyperledger Sawtooth lässt sich mit der Ethereum Virtual Machine verknüpfen. Das Integrationsprojekt Seth erweitert dafür die Interoperabilität der Sawtooth Plattform für Ethereum.