Hyperledger Fabric 2.0 die Enterprise-Blockchain mit Interoperabilität
Für Blockchain-Entwickler gibt es tiefgehende technische Details und Infos zu den System-Chaincodes im neuen Update von Hyperledger Fabric. Kann Blockchain mehr als Bitcoin? Ist die Distributed-Ledger-Technologie reif für den Einsatz in Unternehmenskonsortien? Und wie funktioniert das Blockchain-Protokoll bei Hyperledger Fabric 2.0? Im ersten Teil blicken wir auf den modularen Aufbau der Enterprise-Blockchain und erklären, was besonders an der modularen Blockchain-Plattform der Linux-Foundation ist. Im zweiten Teil von Hyperledger Fabric 2.0 geht es dann um Channels, den Konsens und Peers.
Hyperledger Fabric 2.0 Konsortium-Blockchain
Hyerledger Fabric 2.0 ist da und Blockchain-Entwickler für Business-Applikationen profitieren vom neuen Chaincode-Management und verbesserter Leistung. Die Blockchain ist nur eine mögliche Anwendung auf Basis der Distributed-Ledger-Technologie und bietet nicht nur Raum für Kryptowährungen, Token und Smart Contracts.
Die Zeit ist reif für unternehmerische Anwendungen und Nutzung der innovativen Technologie der vertrauensvollen Netzwerkes auf Geschäftsebene. Auch nach der Krise werden digitale Anwendungen auf Blockchain-Basis benötigt, – vielleicht sogar mehr denn je.
Das modular aufgebaute Betriebssystem ist Softwareentwicklern auf der ganzen Welt bekannt. Im Server-Markt als auch im mobilen Bereich ist Linux eine feste Größe und wird nicht nur von Unternehmen, sondern auch von Regierungen und Organisationen genutzt. Die Linux Foundation entstand im Jahr 2007 als in den USA aus einem Zusammenschluss der Open Source Development Labs OSDL und der Free Standards Group FSG.
Die Linux Foundation engagierte sich bisher vor allem für die Standardisierung von Linux und gehört neben Windows zu den beiden dominierenden Plattformen auf dem Globus. Natürlich beschäftigt man sich inzwischen auch mit Blockchain, DLT und Kryptowährungen. Das Software-Ökosystem Hyperledger wurde mit modularen Blockchain-Frameworks ins Leben gerufen und hat sich zum Ziel gesetzt, die Blockchain für den Mittelstand zu sein.
Als Universallösung für Geschäftsprobleme kann die Distributed-Ledger-Technologie mit berechtigungsgestützten Blockchains die Digitalisierung von analogen Papierprozessen über Firmengrenzen erleichtern.
Blockchain-Plattform mit hoher Interoperabilität
Unter Hyperledger hat die Linux-Foundation federführend mit der Open-Source-Gemeinde ein Portfolio an Blockchain-Technologien entwickelt und mit Fabric 2.0 eine Plattform geschaffen um private und berechtigungsgestützte Blockchain-Netzwerk aufzubauen. Als Open-Source-Projekt liegt der gesamte Programmcode entweder auf Github oder Gerrit.
Der Focus der Plattform liegt im B2B-Bereich und gleichzeitig kann sie auch als Backend für Blockchain-Angebote von IBM, SAP, Oracle oder anderen BaaS-Anbietern dienen. Den Großteil der Use Cases finden sich im Finanzbereich, bisher nur in den USA. Jüngst hinzugestoßen ist der umsatzstärkste Konzern der Welt, – Walmart.
Unter der Schirmherrschaft der Linux-Foundation arbeiten Blockchain-begeisterte Unternehmen an der Realisierung einer standardisierten Blockchain-Technologie mit skalierbaren und anpassungsfähigen Funktionen. Walmart ist schon seit längerem aktiv in der Erforschung von praxisnahen Blockchain-Anwendungen und will sich mit Hyperledger auf die transparente Rückverfolgbarkeit von Lebensmitteln konzentrieren.
Die Leistungsfähigkeit des Open-Source-Ansatzes für Blockchain zeigt sich auch in der wachsenden Branchenkoalition und der Zusammenarbeit von Walmart mit einigen der bekanntesten Akteuren der Lebensmittelindustrie wie Nestle und Unilever. Gemeinsam will man jetzt an der branchenweiten Einführung der Technologie arbeiten. Dafür soll das offene und herstellerneutrale Ökosystem von Hyperledger Fabric 2.0 genutzt werden.
Als Lösung für eine branchenübergreifende Anwendung ist vor allem die Interoperabilität von großer Bedeutung. Hyperledger wurde bewusst so entwickelt, dass die Basis für verschiedenste Blockchain-Anwendungen auf unterschiedlichen Blockchain-Protokollen und BaaS-Clouddiensten arbeiten kann.
Laut Forbes ist die Supply-Chain eine der zentralen Themen für Blockchain-Anwendungen im Jahr 2020. Nach einem Bericht sollen weitere Proof-of-Concept Netzwerke von der Pilot- in die Produktionsphase übergeben und es in den etablierten Netzwerken hohen Zuwachs an Mitgliedern, Produkten und Dienstleistungen geben. Grund dafür sei die schon angesprochene Interoperabilität, die es verschiedenen Blockchain-Protokollen erlaubt, miteinander zu kommunizieren.
Framework gilt als neuer Blockchain-Standard
Als Teil des „IBM Food Trust Provenance“ Projektes arbeiten die weltweit wichtigsten Unternehmen bereits zusammen, um Produktrückrufe zu verhindern und Verbrauchern mehr Transparenz in der Supply-Chain zu bieten.
Im Februar dieses Jahres wurde das 2. Update der Enterprise Blockchain Hyperledger Fabric 2.0 veröffentlicht. Das modulare Blockchain-Framework gilt als der Standard für Enterprise-Blockchain-Plattformen und bietet einen einzigartigen Konsensansatz, der die Effizient bei der Leistung steigert und gleichzeitig die Anforderungen beim Datenschutz wahrt.
Als Open-Source Projekt bietet es eine innovative Open-Governance, bei der sich Unternehmen in ein neues Zeitalter für Vertrauen, Transparenz und Rechenschaft begeben. Hyperledger Fabric 2.0 ermöglicht Unternehmen den Zugriff auf ihre Netzwerke zu kontrollieren und vertrauliche Daten geheim zu halten. Eine branchenübergreifende Zusammenarbeit ist über dedizierte (bestimmte) Kanäle und überprüfbare intelligente Verträge gewährleistet.
Wesentlicher Bestandteil des Entwickler-Updates sind beispielsweise erhöhte Mitbestimmungsrechte und eine verbesserte Demokratisierung auf dem Weg zu mehr Dezentralisierung der Prozesse. Auch die Kanäle zur Kommunikation zwischen den Unternehmen wurden verbessert. So gibt es jetzt eine Privatsphäre-Einstellung, um Daten nur mit ausgewählten Partnern zu teilen.
Das neue Management für Chaincodes ist jetzt ebenfalls online. Es ermöglicht, dass sich mehrere Organisationen auf einen Schlüsselparameter im Chaincode einigen können und diesen dann im gemeinsamen Hauptbuch verwenden.
Hyperledger gehört zur Blockchain-Generation 2.0
Hyperledger Fabric 2.0 ist die kommerzielle Version eines der vielversprechendsten und kundenfreundlichsten Blockchain-Plattformen von IBM und SAP, beides Mitglieder im Linux-Konsortium. Das Blockchain-Projekt zählt zur Generation Blockchain 2.0 und nutzt Smart Contracts.
Die logikorientierte modulare Open-Source-Plattform bietet eine höhere Programmiersprache an als Blockchain-Plattformen der Generation 1.0, zu denen Bitcoin gehört. Inzwischen befindet sich bereit die dritte Generation, Blockchain 3.0, in der Entwicklung.
- Blockchain 1.0: Mit dem Konsensmechanismus Proof-of-Work werden Transaktionen mit Rechenleistung überprüft und dabei Coins (Kryptowährungen) erzeugt. Das Mining erzeugt neue Blöcke und Coins. Die Distributed-Ledger-Technologie wird für Kryptowährungen genutzt. Die Blockchain-Technologie der ersten Generation dient den automatisierten Zahlungen ohne Zwischeninstanz.
- Blockchain 2.0: Vor allem die Zentralisierung durch das Mining und die hohen Energiekosten führten zur Entwicklung von Blockchain 2.0. Der Proof-of-Stake Konsens wird genutzt, bei dem Validatoren die Nodes betreiben. Jeder dieser Nodes setzt Token zur Validierung von Transaktionen und gewinnt die damit verbundene Belohnung. Smart Contracts sind die Adaption der Blockchain 1.0 zu Blockhains der zweiten Generation.
- Blockchain 3.0: Smart Contracts werden zu dezentralen autonome Organisationseinheiten weiterentwickelt. Sie besitzen eigene Gesetzmäßigkeiten und einen hohen Autonomiegrad. Die Blockchains der dritten Generation sind losgelöst von Finanzaspekten und dem Transfer von Werten (Assets).
Die Blockchain 3.0-Technologie unterstützt beispielsweise die Weiterentwicklung von E-Government zu Web 3.0 und stellt dafür die notwendige Infrastruktur, Dienste und Prozesse bereit. Zusammen mit Informations- und Kommunikationstechnologien wie KI sind für die Kommunikation notwendig. Langfristiges Ziel ist die bessere Verfügbarkeit von Blockchain-Technologie für Unternehmen und Privatpersonen.
Hoher Datenschutz und Privatsphäre gewährleistet
Aber zurück zu Hyperledger Fabric 2.0, der zugangsbeschränkten (permissioned) Plattform und privates Blockchain-Projekt für die Kommunikation von Unternehmen. Die Plattform ist vor allem für organisationsübergreifende Anwendungen interessant, bei der der Zugang ausschließlich in Form einer Registrierung erfolgt und diese die Zustimmung aller Netzwerkteilnehmer bedarf.
Das technologieorientierte Konsortium sieht den Hauptzweck von Hyperledger Fabric 2.0 derzeit vor allem in den Bereichen Finanzsektor, Mobilität und Energie. Es wurde aber grundsätzlich entwickelt, um Applikationen in allen Industrien und Anwendungsbereichen zu unterstützen. Genau wie Ethereum und IOTA ist Hyperledger Fabric 2.0 wirtschaftsorientiert ausgelegt, beinhaltet aber umfassende Funktionen für Datensicherheit.
Hyperledger Fabric 2.0 implementiert intelligente Verträge mit dem eigens entwickelten Chaincodes. Dabei handelt es sich um einen Code, der auf den Hauptbuch im Ledger zugreift. Geschrieben werden die Chaincodes in einer der unterstützten Programmiersprachen Golang, Node.js und Java. Diese Chaincodes funktionieren wie normale Smart Contracts und enthalten Status- und Ledger-Daten.
Chaincodes & Smart Contracts
Die Blockchain ist ein verteiltes System, dass aus vielen Knoten besteht, die miteinander kommunizieren. Auf der Hyperledger Fabric Plattform lassen sich Chaincodes, -also digitale Verträge, ausführen. Als System-Chaincodes beinhalten sie mehrere einzelne Chaincodes, beispielsweise für die Ausführung von Verwaltungsfunktionen. Normalerweise verwenden nur Blockchain-Entwickler die Chaincode, um entweder
a) relevante intelligente Verträge zu bündeln, die die Domain-abhängigen Regeln für Geschäftsprozesse zwischen einer Reihe von Blockchain Organisationen enthalten oder
b) um Systemprogrammierungen auf der Low-Level Ebene des Fabric-Systems durchzuführen. Der Programmcode ist Domain-unabhängig und hängt als Systeminteraktion nicht mit den Smart Contracts für Geschäftsprozesse zusammen. Administratoren und Entwickler können diese Chaincodes für ihre eigenen Zwecke ändern.
Die Entwicklung und Verwaltung dieser System-Chaincodes ist allerdings eine sehr spezialisierte Tätigkeit, und daher von der Entwicklung herkömmlicher Transaktions-Chaincodes getrennt.
Jegliche Änderungen an ihnen bedarfen größtmöglicher Sorgfalt, da sie das ordnungsgemäße Funktionieren des Hyperledger Fabric Netzwerks garantieren. Kommt ein falsch programmierter System-Chaincode zum Einsatz, kann es auf Grund von mangelndem Konsens zu einem Ledger-Fork, einer Abspaltung des Hauptbuches, kommen.
Blockchain-Entwickler nutzen System-Chaincodes
In der Entwickler Dokumentation von Hyperledger Fabric 2.0 finden sich die Begriffe „Smart Contract“ und „Chaincode“ häufig synonym. Vereinfacht ausgedrückt kann man aber festhalten, dass Smart Contracts Transaktionen steuern, während Chaincodes die intelligenten Verträge bereitstellt. Innerhalb eines Chaincodes können Blockchain-Entwickler aber mehrere Smart Contracts definieren.
Wird ein Chaincode bereitgestellt, dann kommen immer alle Smart Contracts darin zur Anwendung. Ein Chaincode gilt auch als technischer Container für eine Gruppe von ähnlichen Smart Contracts. Ein Smart Contract greift programmgesteuert auf zwei Ledger zu:
- Die Blockchain, die den Verlauf aller Transaktionen unveränderlich aufzeichnet und
- Datenbank (World state) mit einem Cache des aktuellen Zustandes der Blockchain
Smart Contracts sind vor allem dafür da, um die „Zustandskopien“ der Blockchain in der Datenbank zu erstellen, zu bearbeiten oder zu löschen. Sie können aber auch den unveränderlichen Blockchain-Datensatz über alle Transaktionen abfragen. Was immer die Smart Contracts und die programmierten Schnittstellen (API) auf Teilnehmerseiten machen, auf der Blockchain liegt stets ein unveränderlicher Datensatz mit allen Aktivitäten.
Für die Definition von Smart Contracts durch Blockchain-Entwickler bedarf es sehr guter rechtlicher und technischer Fähigkeiten. Zunehmend bieten Dienstleister die rechtliche Prüfung und sonstige Kontrolle von Smart Contracts durch einen Auditor an. Da sich Smart Contracts von selbst ausführen, ist es wichtig, vor der Veröffentlichung alle Schwachstellen im Code zu finden.
Chaincodes für zweierlei Transaktionsarten
1) Erstellung eines neuen Chaincodes bei der Bereitstellung einer Transaktion. Nach der erfolgreichen Ausführung der Transaktion wird der Chaincode in die Blockchain abgespeichert.
2) Durchführung einer Operation auf Basis des zuvor erstellten Chaincodes. Wird der digitale Vertrag erfolgreich abgewickelt, führt der Chaincode die vorprogrammierte Funktion aus.
Ins Hauptbuch auf der Blockchain gelangen alle gültigen, aber auch ungültigen Smart Contracts. Nur die gültigen Transaktionen gelangen dagegen auf die Datenbank (World state) und aktualisieren damit den Cache. Die Bestätigung und Freigabe der digitalen Verträge funktioniert bei Hyperledger Fabric 2.0 anders als beispielsweise bei Ethereum oder Bitcoin.
Während dort jeder Knoten im Netzwerk gültige Transaktionen generieren kann, können das in Hyperledger Fabric 2.0 nur die „trusted organizations“, – die vertrauenswürdigen Organisationen in einem Netzwerk.
Damit will das Entwickler-Team bei Hyperledger für eine bessere Umsetzung von realen Anwendungsfällen sorgen. So können Unternehmen vorher genau festlegen, wer eine solche vertrauenswürdige Instanz in ihrem Netzwerk ist und sichern damit die Vertraulichkeit ihrer sensibler Daten zu. Außerdem führt diese Vorgehensweise der benutzerdefinierten Regeln zu einer praxistauglicheren Endorsment-Richtlinie.
Transaktionen gelten dann als gültig (gebilligt), wenn klar ist, dass die notwendigen Endorsment-Richtlinien eingehalten wurden und es während der Ausführung des Smart Contracts kein Zwischenupdate im Cache gab. Erst dann werden die Chaincodes (Transaktionen) dem Blockchain-Verlauf hinzugefügt. (Auch wenn sie als ungültig, – also nicht gebilligt, deklariert wurden)
Es gibt unterschiedliche Arten von System-Chaincodes, die dem Besteller (Orderer) zugeordnet sind. Der Besteller ist verantwortlich für die Bestellung von Transaktionen, die Erstellung eines neuen Blocks und die Verteilung eines neuen Blocks an alle Peers auf einem relevanten Kanal.
Sie erfassen Netzwerk-, Kanal- oder zugrundeliegende Systemkonfigurationen. Ihnen gegenüber stehen die Chaincodes der Benutzer (Client), die mit dem Fabric-Netzwerk gemäß der Endorsment-Richtlinien interagieren. Sie können Berechtigungen, Rollen und Attribute definieren und bewahren ihre Informationen in einem digitalen Zertifikat auf.
Die einzelnen System-Chaincodes in der Übersicht
- QSCC (Query System Chaincode) ist ein System-Chaincode für das Verwalten (Validieren) der Kanal-Konfigurationen und für Ledger- und Fabric-bezogene Abfragen. Alle Peers führen ihn aus , denn er stellt die Ledger APIs bereit,.
- CSCC (Configuration System Chaincode): Dieser System-Chaincode regelt den Prozess beim Erstellen und Ändern des Kanals und läuft auf allen Peers.
- LSCC (Lifecycle System Chaincode): Dieser System-Chaincode verwaltet den Lebenszyklus von Chaincodes. Er definiert die Regeln für Channels (Kanäle), verwaltet die Installation von Chaincodes auf den Peers und übernimmt die Genehmigung der Chaincode-Definitionen. Außerdem besitzen sie mehr Zugriff auf Ressourcen im Peer.
- ESCC (Endorsement System Chaincode): Dieser System-Chaincode bestätigt Antworten auf Transaktionen durch digitale Signaturen. Er führt den Chaincode aus, der für das Endorsment-Verfahren notwendig ist und erstellt einen Lese-/Schreibsatz. ESCC Chaincodes laufen in unterstützenden Peers und signieren kryptographisch die Transaktionsantwort. Zur Erinnerung: Die Endorsment-Richtlinie definiert, welche Peers sich auf die Ergebnisse von Transaktionen einigen müssen, damit diese als gültig definiert und auf den Ledern aller Peer im Kanal zugefügt wird. Ein Endorsing-Chaincode kann sich auch über Kanäle hinweg mit anderen Endorsing-Chaincodes verbinden, um dort die ausstehenden Peers für das Endorsment zu kontaktieren.
- VSCC (Validation System Chaincode): Ein System-Chaincode zur Validierung von Transaktionen anhand der Endorsment-Richtlinie. Nur wenn diese erfüllt sind, erhält die Transaktion den Vermerk „gültig“. Bei der Weitergabe der Transaktion prüfen alle Peer aus dem Block zunächst die Signatur des Bestellers. Der Chaincode setzt gemäß seiner programmierten Vorgaben einen Vermerk in den Code (gültig/ungültig). (Nur Version 1.4)
- MVCC ist kein Chaincode, sondern ein Mechanismus, um das Problem der doppelten Ausgaben (doppelte Buchführung) in Hyperledger Fabric zu vermeiden. Multi-Version Concurrency Control MVCC ist eine Versionsprüfung, die durchgeführt wird, um die Richtigkeit jeder Transaktion im empfangenen Block zu überprüfen.
Blockchain-Plattform für Businessanwendungen
Hyperledger Fabric ist ein Framework explizit für die Entwicklung von Businessapplikationen auf Distributed-Ledger-Technologien (DLT). Vier Punkte sind dafür wichtig und grenzen Hyperledger Fabric von öffentlichen Lösungen wie Ethereum oder Bitcoin ab:
- Es ist keine anonyme Teilnahme am Netzwerk möglich.
- Jeder Teilnehmer besitzt eine Identität zur Authentifizierung und entsprechende Rollen für die Zugriffskontrolle.
- Vertrauliche Transaktionen regeln, wer die Informationen sehen und die Transaktionen ausführen darf.
- Zudem ist keine Proof-of-Work-Validierung notwendig und wäre für eine Businessapplikation auch nicht praktikabel. Denn diese Konsensmechanismen beanspruchen zu viele Ressourcen und Zeit.
- In Hyperledger Fabric bildet die verteilte Überprüfung von Transaktionen die notwendigen Validierungen und Konsensbildung ab. Daraus ergibt sich die wohl wertvollste Eigenschaft für Unternehmen und zwar die Möglichkeit, Businesslogik zu implementieren.
Lesen Sie im zweiten Teil mehr zu Channels, dem Konsensverfahren, den Programmiersprachen und erfahren Sie, welche Neuerungen noch in der Hyperledger Fabric Version 2.0 auf Entwickler warten.