iX 7/2018
S. 44
Titel
Blockchain
Aufmacherbild

Von Bitcoin bis Ripple: Hyperledger-Implementierungen im Vergleich

Sicher verkettet

Die Kryptowährung Bitcoin ist die älteste Real-World-Implementierung der Blockchain-Technik. Ein Blick auf ihre Stärken und Schwächen sowie auf die Alternativen von IOTA bis Ripple.

Man kann am eigenen Erfolg scheitern. Ein Beispiel dafür ist die Kryptowährung Bitcoin. Angetreten war diese Idee eines immer noch unbekannten Erfinders als vollwertiges alternatives Geld, mit dem man sowohl seinen Kaffee bezahlen als auch unabhängig von staatlicher Währungswillkür Vermögen aufbauen können sollte.

Als die Währung aber auf massenhaftes Interesse stieß, zeigte sich die Technik dem Ansturm nicht gewachsen. Neben der durch Spekulation getriebenen Volatilität dauerten Zahlungen zeitweise mehrere Stunden, wenn nicht Tage, oder erforderten exorbitante Transaktionsgebühren.

Dass sich Bitcoins als alltägliches Zahlungsmittel als ungeeignet erwiesen, hat seinen Grund in Skalierungsschwierigkeiten. Ein in der IT nicht gerade unbekanntes Problem: Was im Laborversuch einwandfrei funktioniert, bricht unter hoher Last zusammen oder kommt zum Stillstand.

Um diesen Mechanismus bei der Blockchain-Implementierung von Bitcoin zu verstehen, ist ein Blick auf die technischen Details nötig.

Vertrauen unter Unbekannten

Wie der Name nahelegt, handelt es sich bei einer Blockchain um verkettete Blöcke. In diesen Blöcken können sich beliebige digitale Assets befinden, also Dokumente, Transaktionsaufzeichnungen, Programmcode et cetera. Wichtig ist, dass

 der Inhalt der Blöcke fälschungssicher gespeichert ist,

 ihre Authentizität nicht durch eine externe Instanz, sondern inhärent durch kryptografische Verfahren gesichert ist,

 ihre Besitzer sich weder gegenseitig vertrauen noch kennen müssen

 und alle Teilnehmer Zugriff auf alle Blöcke haben.

Öffentliche Einsehbarkeit kann, muss aber nicht zu den Eigenschaften einer Blockchain gehören. Es gibt öffentliche wie Bitcoin und private etwa zwischen Lieferanten und Herstellern. Unterschiedlich sind auch die Zugangshürden, die Spanne reicht von „Jeder kann mitmachen“ bis zu streng geschützten Dokumentenketten.

Für die Fälschungssicherheit sorgt eine besondere Art der Verkettung: Jeder neue Block enthält den Hashwert seines Vorgängers. Dieser Hashwert geht wiederum in die Berechnung des nächsten Blocks mit ein. Als Algorithmus zur Berechnung des Hashwerts wird bei Bitcoin SHA-256 eingesetzt, der Secure Hash Algorithm der zweiten Generation mit einer Hashlänge von 256 Bit.

Die Idee hinter diesem Verfahren: Verändert man einen der Blöcke, stimmt die ganze Kette nicht mehr. Aber: Man könnte die ganze Kette neu berechnen. Das wäre mit der heute verfügbaren Rechenleistung selbst bei der derzeitigen Länge der Bitcoin-Blockchain von einer guten halben Million Blöcken nicht unmöglich. Und wenn man dann noch genügend viele Teilnehmer überreden kann, die gefälschte Kette statt der ursprünglichen vorzuhalten, ist das Verfahren dahin.

Jeder Block enthält den Hashwert seines Vorgängers. Die „Nonce“ wird so lange verändert, bis der Hashwert den aktuellen Vorgaben entspricht (Abb. 1).

Darum erfordert die Bitcoin-Technik, dass nicht irgendein SHA-256-Wert berechnet wird, sondern ein bestimmter, der eine gegebene Größe nicht überschreiten darf. Anders ausgedrückt: der eine bestimmte Anzahl führender 0-Digits enthält, bei Bitcoin derzeit zwei.

Das geht natürlich nur, wenn man den Inhalt der Blöcke so lange verändert, bis der geforderte Wert den Anforderungen genügt. Da man dazu nicht den Nutzinhalt der Blöcke verändern darf, wird ein 32-Bit-Wert hochgezählt, die sogenannte Nonce. Und zwar so lange, bis der Hashwert „stimmt“. Dieses Einziehen einer künstlichen Hürde bezeichnet man als „Proof of Work“. Sprich: Es darf nur mitmachen, wer ein Mindestmaß an – leider sinnlosem – Fleiß an den Tag gelegt hat.

Passend machen durch Ausprobieren

Zu den Implementierungsdetails von Bitcoin gehört, dass das Finden eines passenden Hashwerts im Durchschnitt 10 Minuten dauert. Sollte die Mehrheit der Teilnehmer diesen Wert signifikant unterschreiten, wird die Anzahl der führenden Nullen erhöht.

Dieses Generieren neuer Blöcke wird als „Mining“ bezeichnet, denn wer als Erster den geforderten Hashwert errechnet hat und diesen Block im Netz der Bitcoin-Knoten propagiert, erhält derzeit 12,5 Bitcoins. Nicht nur das: Inhalt des neuen Blocks, für den der Hashwert gebildet wurde, sind rund 2000 Transaktionen, deren Transaktionsgebühr der erfolgreiche Miner erhält.

Diese Transaktionen holt sich der Miner aus dem „Mempool“, in dem alle verifizierten Transaktionen, also Überweisungen, gespeichert sind. Dass er sich dabei die Transaktionen mit den höchsten Transaktionsgebühren heraussucht, ist naheliegend.

Das beschriebene Verfahren kann zu Kollisionen führen, da verschiedene Miner gleichzeitig einen gültigen Hashwert für den von ihnen zusammengestellten Block finden können. Auf Block n folgt dann nicht nur ein Block n + 1, sondern auch Block (n + 1)'. Wer letztlich „gewinnt“, entscheidet sich anschließend: Wenn die Mehrheit der Miner die nächsten Blöcke an Block n + 1 baut, bleibt dieser gültig und (n + 1)' wird verworfen und vice versa. Die Transaktionen in den verworfenen Blöcken wandern zurück in den Mempool.

Solch eine Kollision tritt circa einmal pro Tag auf. Das wirft die Frage auf, wann man sich sicher sein kann, dass ein generierter Block – und damit die enthaltenen Transaktionen – nicht mehr ungültig wird. Dazu gibt es recht komplexe Wahrscheinlichkeitsberechnungen. Ergebnis: Wenn es drei Blöcke als Nachfolger gibt, ist man ziemlich sicher, bei sechs Blöcken ist es äußerst unwahrscheinlich, dass ein anderer Zweig der Kette das Rennen macht.

Wann ein Bitcoin-Transfer sicher ist

Vergegenwärtigt man sich nun wieder die durchschnittlich angesetzten 10 Minuten, die das Generieren eines Blocks dauert, heißt das: Erst nach einer Stunde ist ein Bitcoin-Transfer wirklich sicher.

Das ist ein Grund, warum Bitcoins als Zahlungsmittel für viele alltägliche Zwecke schlecht geeignet sind. Ein weiterer ist die begrenzte Skalierbarkeit.

Eine Bitcoin-Überweisung hat durchschnittlich eine Größe von 500 Bytes. Im 1 MByte großen Block der klassischen Bitcoin-Blockchain lassen sich rund 2000 Transaktionen unterbringen, was angesichts der 10 Minuten Dauer zur Blockgenerierung rund 200 Transaktionen pro Minute ergibt. Zum Vergleich: PayPal bringt es auf etwa 3600, Visa auf 100 000 Transaktionen pro Minute.

Die Zahlen sprechen für sich. Das Ergebnis waren die teils exorbitant langen Wartezeiten für Bitcoin-Transfers und die damit zusammenhängenden hohen Transaktionsgebühren. Denn die Miner pickten sich nur noch lohnende Transaktionen heraus, die mehr als 10 Euro pro Überweisung an Gebühren enthielten. Ein weiteres Skalierungsproblem stellt die Größe der Bitcoin-Blockchain dar. Sie liegt mittlerweile bei über 160 GByte – auf jedem der mehr als 10 000 Mining-Knoten. (Die Schätzungen über die Anzahl der Mining Nodes differieren stark, zwischen 10 000 und 60 000.)

Anzumerken bliebe zwar, dass versucht wurde, in Forks der klassischen Bitcoins die Skalierungsprobleme durch technische Veränderungen wie andere Blockgrößen in den Griff zu bekommen. Aber man ist immer noch weit von der Performance klassischer Zahlungssysteme entfernt.

All das spricht gegen Bitcoin als Zahlungsmittel im Alltag. Nicht aber gegen diese Kryptowährung als Anlage jenseits staatlich kontrollierter Währungen. Mit Gold bezahlt man auch nicht beim Brötchenholen, aber als Teil einer diversifizierten Anlagestrategie ist es nach wie vor beliebt.