Hyperledger Composer und andere relevante Projekte von Hyperledger

Hyperledger Fabric kann auf zwei Arten verwendet werden. Zum einen als ursprüngliche Variante direkt mit einem Low-Level Ansatz und zum anderen als neuere Variante mit Hilfe des High-Level-Blockchain-Tools namens Hyperledger Composer.

Folgende Abbildung gibt eine Übersicht über bestehende für Fabric relevante Projekte von Hyperledger.

Cello ist ein Blockchain-Modul-Toolkit und eines der Hyperledger-Projekte der Linux Foundation. Ziel von Hyperledger Cello ist es, das schnell und unkompliziert Blockchain „as a Service“ zu ermöglichen, um damit den Aufwand für die Erstellung, Verwaltung und Beendigung von Blockchains zu reduzieren. Es ist generisch für verschiedene Blockchain-Implementierungen von Hyperledger ausgelegt, so wird z. B. statt Chaincode der Begriff Smart Contract verwendet.

Explorer als weiteres Projekt von Hyperledger ist ein Blockchain-Analyse-Tool, welches Blöcke, Transaktionen und zugehörige Daten, Netzwerkinformationen (Name, Status, Liste der Knoten), Chaincodes sowie alle anderen im Ledger gespeicherten relevanten Informationen anzeigen und abfragen kann.

Caliper ist ein Blockchain-Benchmark-Tool, mit der es möglich ist die Leistung einer bestimmten Blockchain-Implementierung mit einer Reihe von vordefinierten Anwendungsfällen zu messen.

Vorteile bei der direkten Verwendung von Hyperledger Fabric

Mit Fabric können direkt alle Einstellungsmöglichkeiten verwendet werden, z. B. können beliebig viele Kanäle verwendet werden.

Die unmittelbare Verwendung von Fabric unterstützt eine Ver- und Entschlüsselung mit AES-256 der Daten beim Schreiben und Lesen durch Chaincode auf die verteilte Datenbank.

Gegenüber Composer gibt es noch einen weiteren Vorteil. Wenn eine externe Bibliothek benötigt wird, ist es möglich Änderungen direkt hinzufügen bzw. diese durch Kompilierung zu inkludieren. Bei einer Implementierung mittels Golang stehen viele systemnahen Bibliotheken wie beispielsweise Verschlüsselungsroutinen von Golang zur Verfügung.

Durch die Verwendung des High-Level Hyperledger Componser würde grundsätzlich eine weitere Abhängigkeit von Software (einem weiteren Layer) bestehen, der Fehler und Updateverzögerungen beinhalten könnte. In jedem Fall muss zunächst ein Fabric-Netzwerk erstellt werden. Composer selbst bietet keine Möglichkeit ein Fabric-Netzwerk zu verwalten. Aus den eben genannten Gründen wird von der Verwendung von Hyperledger Composer als Tool zur Implementierung eher abgeraten. Der Aspekt der Performance müsste hier noch aber genauer untersucht werden.

Abgrenzung von Fabric zu anderen Blockchainlösungen

Das Open-Source-Blockchain-Framework Hyperledger Fabric wurde ursprünglich nur von IBM entwickelt. Die Entwickler von IBM beschreiben in einem Paper (siehe unten) warum welche Technologie- und Designentscheidungen für Fabric getroffen wurden und informieren dort auch über ein Benchmark, bei dem Bitcoin mit einer in Fabric implementierten Kryptowährung verglichen wird.

Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains. Elli Androulaki, Artem Barger, Vita Bortnikov, Christian Cachin, Konstantinos Christidis, Angelo De Caro, David Enyeart und Christopher Ferris.  https://arxiv.org/abs/ 1801.10228

Fabric hat folgende Eigenschaften:

  • Hyperledger Fabric als private, zugangsbeschränkte Blockchain verwendet keine Kryptowährung und somit keine Schürfung (engl. mining). Dies steht im Gegensatz zu vielen anderen Blockchain-Plattformen, die auf eine Kryptowährung angewiesen sind, um Programme auszuführen. Der Konsensmechanismus von Fabric ist deshalb weniger rechenaufwendig.
  • Fabric unterstützt die Implementierung von Smart Contracts in den gängigen generischen Programmiersprachen Golang und JavaScript und ist daher potentiell flexibler und einfacher erweiterbar als eine geschlossene domänenspezifische Sprache. Weitere Unterstützungen für andere Sprachen sind in der Entwicklung (z. B. für Java).
  • Komponenten wie Konsensmechanismus und Mitgliederverwaltung sind als Plug-and-Play-Module entwickelt worden um sie einfach austauschen zu können. In vielen anderen Blockchain-Implementierungen sind die einzelnen Komponenten unveränderlich, weil diese fest codiert wurden.
  • Kanäle (engl. channels) ermöglichen es einer Gruppe von Teilnehmern separate Blockchains innerhalb eines Netzwerks zu erstellen, um die Wahrung des Datenschutzes und der Vertraulichkeit zu gewährleisten. Daten müssen somit nur dort gespeichert werden, wo sie auch verwendet werden müssen. Diese Möglichkeit der Unterteilung in viele einzelne Blockchains innerhalb einer Anwendung ist vermutlich ein Alleinstellungsmerkmal von Fabric.

Hyperledger Projekte

Hyperledger betreibt verschiedene Projekte bzw. Frameworks für Blockchainanwendungen. Jedes dieser Projekte begann außerhalb von Hyperledger. Fabric ist eines dieser Blockchain-Frameworks, welches hauptsächlich von IBM entwickelt und an Hyperledger gesponsert wurde. Die folgende Tabelle zeigt eine Übersicht über die bestehenden Blockchain-Frameworks in Hyperledger.

Diese Frameworks sind vollständig getrennte Projekte mit verschiedenen Zielsetzungen, Technologien und Implementierungen.

Gründung des Hyperledger Projekts

Im Dezember 2015 gab die Linux Foundation die Gründung des Hyperledger Projekts bekannt. Ziel des Projekts ist es, eine branchenübergreifende Zusammenarbeit für die Entwicklung von Blockchain-Technologien als Open-Source-Projekte voranzutreiben, wobei besonderes Augenmerk laut eigenen Aussagen auf die Verbesserung der Performance, Zuverlässigkeit und Variabilität dieser Systeme gelegt wird (im Vergleich zu vergleichbaren Implementierungen in bestehenden Kryptowährungen), sodass diese in der Lage sein sollen, globale Geschäftstransaktionen (z. B. der Finanzindustrie) zu unterstützen.

Blockchainarten

Blockchains sind in öffentliche und private unterteilt. Die öffentlichen Blockchains sind für jedermann zugänglich und jeder kann dort als Teilnehmer agieren und letztendlich Daten hinzufügen. Eine private Blockchain dagegen ist immer ein geschlossenes System, indem nur berechtigte Kooperationspartner in einem geteilten Netzwerk miteinander interagieren und entsprechend ihre Knoten in das Netzwerk für die verteilte Datenbank mit einbringen. Es erfolgt somit eine Limitation der Teilnehmerberechtigten. Diese Variante empfiehlt sich beispielsweise für den Bankenbereich wegen seiner Datenschutzproblematik.

Was ist ein Chaincode?

Hyperledger Fabric bietet keine API, mit der Daten direkt in die Blockchain gelesen oder geschrieben werden können. Jede Anfrage an die Hyperledger Fabric Blockchain wird durch smart contracts, dem sogenannten Chaincode, gesteuert. Diese sind Programme (z. B.   in der Programmiersprache Go), die direkt auf den Peer-Knoten von Hyperledger Fabric installiert und ausgeführt werden. Chaincode stellen Funktionen zur Verfügung, die von den Clients aufgerufen werden müssen und steht somit zwischen den Clients und der Blockchain.

Anwendungsmöglichkeit für eine Blockchain

Neben der Entwicklung eines sicheren, dezentralen und kontrollierten Systems für Kryptowährungen sind auch andere Anwendungen denkbar, wie z. B. die Lösung des in vielen wirtschaftlichen Geschäftsprozessen vorherrschenden Vertrauensproblems. Dabei werden sogenannte Intermediäre wie Banken oder Notare ersetzt, die als vertrauenswürdige Aufsichtsbehörde innerhalb eines Geschäftsprozesses den Prozess absichern. Ihre Aufgabe werden dann von einer Blockchain übernommen, die unbestechlich, fälschungssicher und immer auf der Basis der gleichen Werte arbeitet.

Was ist die Idee einer Blockchain?

Im Gegensatz zu den heutigen Systemen, in denen die privaten Programme eines Teilnehmers zur Fortschreibung seiner privaten Datenbestands verwendet werden, verfügt eine Blockchain über ein gemeinsames Programm zur Verwaltung eines gemeinsamen Datenbestands über den Transaktionen transparent abgewickelt werden können. Alle Blockchainsysteme haben den Grundgedanken des Austauschs von Daten und Prozessen:

Die Blockchain ist ein verteiltes System, das aus vielen Knoten besteht, die miteinander kommunizieren. Jeder Knoten einer Blockchain speichert eine exakte Kopie der Daten und führt ein gleiches identisches Program (den Chaincode) aus, d. h. es findet eine verteilte Speicherung statt, wobei Änderungen an den jeweils gespeicherten Datenkopien nur über die verteilten Prozesse ermöglicht werden. Dabei ist der Chaincode als Programm das zentrale Element, da Transaktionen (und Abfragen) nur mittels Chaincode verarbeitet werden (Chaincode wird auch smart contract genannt). Transaktionen müssen von Chaincode-Prozessen der Blockchain bewilligt werden, damit sie ausgeführt werden und nur bewilligte Transaktionen können Änderungen an den gespeicherten Daten durchführen.

Veränderung an den Daten werden nur angefügt, sodass in chronologischer Reihenfolge die Änderungen festgehalten werden. Dadurch entsteht ein historischer Datenbestand, welcher mittels kryptographischer Verfahren miteinander verkettet ist.

Durch die verteilte Datenhaltung entsteht die Schwierigkeit, dass sich alle Knoten auf eine gemeinsame Änderungsreihenfolge für eine Datenänderung einigen. Deshalb muss man um eine Änderungen synchronisieren zu können, eine Übereinstimmung gefunden werden, in welcher Reihenfolge die Änderungen berücksichtigt werden sollen. Dafür verwendet man einen Konsensmechanismus.

Was ist Hyperledger Fabric?

Hyperledger Fabric ist eine Blockchain-Framework-Implementierung und eines der Hyperledger-Projekte der Linux Foundation. Als Grundlage für die Entwicklung von Anwendungen oder Lösungen mit einer modularen Architektur bietet Hyperledger Fabric die Möglichkeit, Komponenten wie Konsensus- und Mitgliedschaftsdienste mittels Plug-and-Play zu nutzen. Hyperledger Fabric nutzt die Containertechnologie, um smart contracts, sogenannte „Chaincodes“, zu hosten, die die Anwendungslogik des Systems beinhalten.

Willkommen

Nicht zuletzt die Beliebtheit von Bitcoin [Nakamoto, 2008] hat das Interesse an Blockchaintechnologien angefacht.

Dieser Blog soll eine Übersicht über das Hyperledger Fabric Projekt – eine Variante der Blockchain – sein, indem hier wichtigten Fakten gesammelt, präsentiert und bewertet werden.

Schlüsselwörter: Blockchain, Hyperledger, Hyperledger Fabric