Hyperledger ist eine Implementierung der Blockchain Technologie, die im Unterschied zu Implementierungen wie Bitcoin oder Ethereum einem „industriellen“ Zweck dient, zum Beispiel der Realisierung von zuverlässigen und fälschungssicheren Lieferketten, sogenannten Supply Chains. Die Hyperledger Fabric ist das Protokoll hierzu.

Die Fabric beschreibt alle Komponenten einer Hyperledger Implementierung. Dabei handelt es sich um logische Kategorien und nicht um eine Implementierung wie z.B. in der IBM Blockchain. Die Microsoft Azure Implementierung von Hyperledger Fabric habe ich hier beschrieben.

Die Fabric beschreibt also die Architektur. Die hier beschriebenen Services sind ein wesentlicher Bestandteil dieser Architektur.

 

Transaction, World State, Ledger, Member – Einige wichtige Begriffe vorab

Für das Gesamtverständnis der hier beschriebenen Architektur sind die folgenden Terminologien

  • Transaction
  • World State
  • Ledger
  • Member

von Bedeutung. Einen vollständige Liste aller Terminologien findet man hier.

Eine Transaction ist eine Funktionen, die in der Blockchain „ausgeführt“ wird. Sie ist in einer Programmiersprache implementiert und wird als Chaincode oder Smart Contract bezeichnet. Das Ergebnis der Transaktion ist immer ein World State. Ein solcher Status könnte zum Beispiel lautet: „Produkt wurde ausgeliefert“. Transaktionen werden im Ledger festgehalten, der auch den World State beinhaltet. Der Ledger ist technisch als Blockchain, also als verteilte Datenbank, implementiert. Alle im Ledger festgehaltenen Transaktionen können deshalb nicht mehr verfälscht werden. Details zur Blockchain finden man in diesem Beitrag.

Members sind die Beteiligten an einer Hyperledger Blockchain. Members sind in einer Hyperledger Implementierung nicht anonym und haben Rollen, also Berechtigungen. Deshalb wird Hyperledger auch als Permissioned Blockchain bezeichnet.

Beschreibung der Fabric Services

Die Architektur beschreibt drei Services:

  • Membership Services
  • Blockchain Services
  • Chaincode Services

In der konkreten Implementierung in Microsoft Azure heißen dieses Services Member Nodes, Peer Nodes und Order Nodes.

Membership Services

Von der Grundidee her kann ein Smart Contract nur dann funktionieren, wenn die beteiligten Members bekannt sind und eine fälschungssichere Identität haben. Dieses muss über die Membership Services gewährleistet werden. Der Kern dieser Services besteht in der Erzeugung und Zuweisung von Zertifikaten, enrollment certificates. Gleichzeitig wird gewährleistet, dass alle Transaktionen über sogenannte transaction certificates autorisiert werden können und einem Member eindeutig zugewiesen sind. Diese Zertifikate werden in der Blockchain gespeichert und gewährleisten, dass Transaktionen über mehrere Blöcke verlinkt werden können.

Die Implementierung der Member Services ist Aufgabe der Anbieter von Blockchain Diensten wie zum Beispiel Microsoft, IBM, SAP und Amazon.

Blockchain Services

Aufgabe der Blockchain Services ist die Implementierung eines Peer-To-Peer Protokolls, damit die an der Blockchain beteiligten Knoten über das Internet miteinander kommunizieren können. Auf diesen Services können dann verschiedene Consensus Protokolle aufsetzen, wie z.B. Prove of Work oder Practical Byzantine Fault Tolerance, PBFT.

Chaincode Services

Die Chaincode Services gewährleisten, dass der ChainCode, Smart Contract, in einer sicheren Sandbox ausgeführt wird. Technische Basis hierfür sind Docker Container und Runtime Umgebungen wie Go, Java oder Node.js. Das Protokoll ist aber offen für andere Umgebungen und beliebige Programmiersprachen.

Fazit

Die Implementierung der Fabric Services bilden das „Ökosystem“, in dem Smart Contract Entwickler Anwendungen schreiben können, die eine Permissioned Blockchain voraussetzen. Dieser Zusammenhang ist nochmal in der folgenden Grafik zusammengefasst, die nochmal die wichtigsten Komponenten für das Gesamtverständnis zusammenfasst.

Die wichtigsten Komponenten der Hyperledger Fabric
Hyperledger Fabric – die wichtigsten Komponenten

Die Fabric ermöglicht es also, dass mehrere Unternehmen mit einer Anwendung vertrauensvoll und sicher Transaktionen durchführen können. Die Identität der Teilnehmer, die Transaktionen und die Anwendung selbst sind vor Verfälschungen und Manipulationen geschützt. Um es auf den Punkt zu bringen:

Unternehmen können vertrauensvoll zusammen arbeiten, obwohl sie sich nur partiell vertrauen. 

 

Weiteres