Was ist Hyperledger Fabric?
Die Linux Foundation gründete 2015 das Hyperledger-Projekt, um branchenübergreifende Blockchain-Technologien voranzutreiben. Anstatt einen einzigen Blockchain-Standard zu deklarieren, fördert es einen kollaborativen Ansatz zur Entwicklung von Blockchain-Technologien über einen Community-Prozess, mit geistigen Eigentumsrechten, die eine offene Entwicklung und die Annahme von Schlüsselstandards über die Zeit hinweg fördern.
Hyperledger Fabric ist eines der Blockchain-Projekte innerhalb von Hyperledger und verfügt wie andere Blockchain-Technologien über einen Ledger, verwendet Smart Contracts und ist ein System, mit dem die Teilnehmer ihre Transaktionen verwalten.
Hyperledger Fabric unterscheidet sich von einigen anderen Blockchain-Systemen dadurch, dass es privat und zugelassen ist. Anstelle eines offenen, erlaubnisfreien Systems, das unbekannten Identitäten die Teilnahme am Netzwerk ermöglicht (und Protokolle wie „Proof of Work“ zur Validierung von Transaktionen und zur Sicherung des Netzwerks erfordert), melden sich die Mitglieder eines Hyperledger Fabric-Netzwerks über einen vertrauenswürdigen Membership Service Provider (MSP) an.
Hyperledger Fabric bietet außerdem mehrere Plug-in-Optionen. Ledger-Daten können in verschiedenen Formaten gespeichert werden, Konsensmechanismen können ein- und ausgetauscht werden, und verschiedene MSPs werden unterstützt.
Hyperledger Fabric bietet auch die Möglichkeit, Kanäle zu erstellen, die es einer Gruppe von Teilnehmern erlauben, ein separates Ledger mit Transaktionen zu erstellen. Dies ist eine besonders wichtige Option für Netzwerke, in denen einige Teilnehmer Konkurrenten sein könnten und nicht wollen, dass jede Transaktion, die sie durchführen – z.B. ein Sonderpreis, den sie einigen Teilnehmern anbieten und anderen nicht – allen Teilnehmern bekannt ist. Wenn zwei Teilnehmer einen Kanal bilden, dann haben diese Teilnehmer – und keine anderen – Kopien des Ledgers für diesen Kanal.
Shared Ledger
Hyperledger Fabric hat ein Ledger-Subsystem, das aus zwei Komponenten besteht: dem Worldstate und dem Transaktionsprotokoll. Jeder Teilnehmer hat eine Kopie des Ledgers für jedes Hyperledger Fabric-Netzwerk, dem er angehört.
Die Worldstate-Komponente beschreibt den Zustand des Ledgers zu einem bestimmten Zeitpunkt. Sie ist die Datenbank des Ledgers. Die Komponente Transaktionsprotokoll zeichnet alle Transaktionen auf, die zum aktuellen Wert des Weltzustands geführt haben; sie ist die Aktualisierungshistorie für den Weltzustand. Das Ledger ist also eine Kombination aus der Weltzustandsdatenbank und der Transaktionsprotokollhistorie.
Das Ledger verfügt über einen austauschbaren Datenspeicher für den Weltzustand. Standardmäßig ist dies eine LevelDB-Schlüsselwertdatenbank. Das Transaktionsprotokoll muss nicht austauschbar sein. Es zeichnet einfach die Vorher- und Nachher-Werte der vom Blockchain-Netzwerk verwendeten Ledger-Datenbank auf.
Smart Contracts
Hyperledger Fabric Smart Contracts werden in Chaincode geschrieben und von einer Anwendung außerhalb der Blockchain aufgerufen, wenn diese Anwendung mit dem Ledger interagieren muss. In den meisten Fällen interagiert Chaincode nur mit der Datenbankkomponente des Ledgers, dem Weltstatus (z. B. durch Abfragen), und nicht mit dem Transaktionsprotokoll.
Chaincode kann in verschiedenen Programmiersprachen implementiert werden. Derzeit werden Go, Node.js und Java-Chaincode unterstützt.
Datenschutz
Abhängig von den Bedürfnissen eines Netzwerks könnten die Teilnehmer eines Business-to-Business(B2B)-Netzwerks sehr empfindlich darauf reagieren, wie viele Informationen sie austauschen.
Bei anderen Netzwerken wird der Datenschutz keine große Rolle spielen.
Hyperledger Fabric unterstützt Netze, in denen der Datenschutz (unter Verwendung von Kanälen) eine wichtige betriebliche Anforderung ist, sowie Netze, die vergleichsweise offen sind.
Konsens
Transaktionen müssen in der Reihenfolge ihres Auftretens in das Hauptbuch geschrieben werden, auch wenn sie zwischen verschiedenen Gruppen von Teilnehmern innerhalb des Netzes stattfinden. Dazu muss die Reihenfolge der Transaktionen festgelegt und eine Methode zur Zurückweisung fehlerhafter Transaktionen, die irrtümlich (oder böswillig) in das Ledger eingefügt wurden, eingeführt werden.
Dies ist ein gründlich erforschtes Gebiet der Informatik, und es gibt viele Wege, dies zu erreichen, jeweils mit unterschiedlichen Kompromissen. Zum Beispiel kann PBFT (PracticalByzantine Fault Tolerance) einen Mechanismus bereitstellen, mit dem Dateireplikate miteinander kommunizieren können, um jede Kopie konsistent zu halten, selbst im Falle einer Beschädigung. Bei Bitcoin erfolgt die Ordnung durch einen Prozess, der Mining genannt wird, bei dem konkurrierende Computer um die Lösung eines kryptografischen Rätsels wetteifern, das die Ordnung festlegt, auf der alle Prozesse anschließend aufbauen.
Hyperledger Fabric wurde so konzipiert, dass Netzwerkstarter einen Konsensmechanismus wählen können, der die Beziehungen zwischen den Teilnehmern am besten darstellt. Wie bei der Privatsphäre gibt es ein Spektrum von Bedürfnissen: von Netzwerken, die in ihren Beziehungen stark strukturiert sind, bis hin zu solchen, die eher auf Augenhöhe sind.