Bitcoin und Blockchain sind derzeit in aller Munde. Informatiker und Juristen in Privatwirtschaft und öffentlicher Verwaltung interessieren sich in erster Linie für die darunter liegende Blockchain-Technologie und welche Services sich daraus entwickeln lassen, andere beschäftigt insbesondere der rasante Wertzuwachs der Bitcoins und die mit dem Handel von Bitcoins verbundenen Risiken, Dabei fällt vor allem auf, dass der Blockchain-Technologie immer ungeheures Einsatzpotential nachgesagt wird, aber es an wirklichen Use Cases außerhalb von Kryptowährungen noch mangelt. Um diese Use Cases zu finden, ist es zunächst wichtig, den gesamten Blockchain- und Bitcoin-Komplex auseinander zu nehmen und zu verstehen, was welche Komponente darin eigentlich leistet.
Was ist Bitcoin?
Fangen wir bei der „Anwendung“ Bitcoin an: Bitcoin ist ein verteiltes System, in dem digitale Werte anonym ohne eine zentrale Instanz ausgetauscht werden. Das wichtigste Kriterium ist dabei, dass das Vertrauen in die Richtigkeit des „Kontostands“ (den es so in Bitcoin gar nicht gibt, sondern nur einen Saldo aller jemals aufgezeichneten Transaktionen) durch die Replikation der Transaktionsaufzeichnungen – gehalten in Blockchains – auf viele, nicht per se als vertrauenswürdig eingeschätzte Teilnehmer erzeugt wird. Es ist dieser engverwobene Komplex aus Bitcoin-Anwendung, Blockchain-Technologie und Replikationsverfahren, der ein sicheres System schafft, allerdings eines, welches einen hohen ökologischen Preis für seine Sicherheit fordert. Ob dieser Preis für andere Use Cases gerechtfertigt ist, ist Teil der Überlegungen in diesem Blogartikel und der folgenden. Bitcoin ist sogenannter „Chaincode“, quasi die Nutzlast der Blockchain. Über das Konzept von Bitcoin selbst wollten wir hier allerdings überhaupt nicht sprechen.
Was ist die Blockchain?
Die „Datenbank“ von Bitcoins ist die Blockchain, als zweite Kernkomponente des Bitcoin-Systems. Das Prinzip einer einfachen Blockchain ist relativ simpel: man nimmt den Inhalt eines Blockchain-Blocks bildet eine Checksumme (Hash) daraus zusammen mit der Checksumme des vorangegangenen Blocks und macht diese Checksumme zum Bestandteil des nächsten Blocks, der wiederum mit dem übernächsten verknüpft wird. Diese Checksumme ist einmalig, da sie nur aus der Folge aller Blöcke berechnet werden kann, d.h. das Herausnehmen eines Blocks in der Kette würde die Checksumme aller folgenden verändern. Das ist ein nettes Feature, bedeutet aber beileibe keinen Nachweis dafür, dass die Blockchain nicht verändert wurde. Was also macht eine Blockchain sicher, im Sinne der Integrität der enthaltenen Informationen? Man könnte ja einen Block aus der Kette entfernen, alle Checksummen wieder neu berechnen und keiner merkt‘s.
Warum ist diese Blockchain so vertrauenswürdig?
Das Vertrauen in die Integrität der Bitcoin-Blockchain entsteht durch die Replikation der Blockchain-Blöcke in ein Netzwerk von anderen Servern, die somit als eine Art „Zeugen“ für die Korrektheit der Informationen fungieren. Eine reine Kopie der Blöcke einer Blockchain reicht nun aber noch nicht aus, weil Bitcoin ja ein komplett verteiltes System sein soll, in dem es keine zentrale Funktion gibt, der vertraut werden kann. Nun kommt die dritte wesentliche Funktion, das „Konsensusprotokoll“ ins Spiel: sie schafft das Vertrauen, dass die Daten in den verteilten Blockchains korrekt sind. Wie funktioniert das?
Eine Bitcoin-Transaktionskette (der Chaincode) wird in das Netzwerk der teilnehmenden Blockchain-Server verschickt, die daraufhin sofort beginnen, einen neuen Block für die Blockchain zu berechnen und den neuen Block an die anderen Server zu verteilen. Eine Regel im Konsensusprotokoll der Bitcoin-Blockchain ist, dass ein teilnehmender Blockchain-Server die jeweils längere Kette eines anderen Servers übernehmen muss. Leider ist nun aber nicht garantiert, dass alle Blockchain-Server bei der Verteilung der Transaktionsdaten erreicht werden und die Transaktion verarbeiten können, zudem könnte jemand die Mehrheit der Blockchains manipulieren und somit behaupten, dass seine Version der Blockchain die korrekte ist.
Was ist ein Blockchain-Consensus-Protokoll?
Nun kommt ein weiterer Faktor ins Spiel, der diesem Consensus-Protokoll bei Bitcoin den Namen „Proof-of-work“ gegeben hat. Im Bitcoin-System und deren Blockchain gibt es eine weitere Vorschrift, dass ein weiteres Datenfeld zu inkludieren ist, welches die Checksumme des Blocks in einen bestimmten Wert zwingt, die “Nonce“. Derzeit ist die Regel derart, dass der Hashcode eines Blockchain-Block inklusive der Nonce mit vier startenden Nullen zu beginnen hat. Um diesen Hashwert zu berechnen muss man viele, viele zufällige Berechnungen durchführen, deren Anzahl nicht vorhersagbar ist. d.h. man muss solange die Nonce verändern, bis die startenden vier Nullen als Ergebnis herauskommen. Das Erzeugen einer gefälschten Blockchain ist damit derart aufwendig, dass die Mehrheit der anderen Blockchain-Nodes auch jederzeit schneller sein können, insbesondere wenn ganze Ketten von Blöcken gefälscht werden. Die Einstellung mit den derzeit vier führenden Nullen ist so gewählt, dass eine Blockberechnung im Mittel ca. zehn Minuten dauert, selbst wenn man große Rechnerkapazitäten dafür einsetzen würde.
Das bedeutet, dass die Nachberechnung einer Blockchain, aus der man einen Block löscht der weiter vom Ende entfernt angesiedelt ist, Tage, Wochen oder Monate dauern würde. Im Protokoll ist definiert, dass diese Schwierigkeit in Zukunft steigen wird (z.B. durch fünf und später mehr führende Nullen), weil die Rechnerleistung auch ständig steigt.
Es würde nun niemand diesen Aufwand für die Berechnung eines Blocks betreiben, wenn die Blockerzeugung in der Bitcoin-Blockchain nicht belohnt werden würde, der Gewinner bei der Blockberechnung bekommt Bitcoins als Belohnung. Das ist das sog. „Bitcoin-Mining“ und der einzige Weg neue Bitcoins zu erzeugen. Inzwischen verbraucht die Berechnung dieses Consensus-Protokolls einen wesentlichen Anteil des weltweiten Energieverbrauchs. Das ist natürlich ein ökologischer Wahnsinn und für einen Einsatz der Blockchain außerhalb eines Kryptowährungsumfelds wahrscheinlich eher ungeeignet.
Fragen, die man sich nun stellen muss
- Die Blockchain à la BitCoin (mit dem Proof-of-Work-Consensus-Protokoll) ist – soweit man das derzeit einschätzen kann – fälschungssicher. Aber würde eine kommerzielle Anwendung der Blockchain den ökologischen und folglich auch ökonomischen Preis, der damit einhergeht, bezahlen wollen?
- Welche Einschränkungen sind zu erwarten, wenn man ein anderes Consensus-Protokoll verwendet?
- Wenn andere Consensus-Protokolle weniger Fälschungssicherheit bieten, welche Voraussetzungen müssen bei der Replikation (z.B. Anzahl und Art von Replikationsteilnehmern) gegeben sein, damit Blockchain-Technologie Sinn macht?
- Wie kann eine andere Blockchain-Technologie dann noch gegen andere Verfahren der verteilten und revisionsfähigen Speicherung (distributed ledger) konkurrieren?
Andere Blockchain-Consensus-Protokolle
Die Diskussionen um den Einsatz von Blockchain im Nicht-Kryptowährungsbereich sind ohne das Verständnis von Blockchain-Consensus-Protokollen und der grundsätzlichen Mechanismen der Blockchain wenig sinnvoll. Es gibt allerdings Lösungen, um Blockchain-Konzepte – und hier sind es insbesondere die weniger rechenaufwendige Consensus-Protokolle die den Unterschied ausmachen – in anderen Umfeldern als Bitcoin einzusetzen. So wird z.B. mit sog. Proof-of-Stake- oder Round-Robin-Protokollen gearbeitet. Mehr dazu erfahren sie in der Fortsetzung dieses Blogs.
Ein sehr guter Artikel mit einer sehr guten Erklärung. Viele haben die einzelnen Begriffe sicherlich schon einmal gehört, aber was sich tatsächlich dahinter verbirgt, wissen nur wenige. Das hier ist vielen ganz sicher eine große Hilfe.