Natürlich ist die oben beschriebene Datenstruktur nur dann von Wert, wenn ihr vertraut wird. Die spannende Frage ist, wie es möglich ist, das Vertrauen zwischen unzuverlässigen Parteien in einem dezentralen System zu fördern. Mit anderen Worten, wie kann sichergestellt werden, dass alle Parteien jedem einzelnen Block in der Kette vertrauen können? Die Blockchain-Technologie erzeugt ein solches Vertrauen durch zwei wesentliche technische Komponenten, durch asymmetrische Kryptografie und den sogenannten Konsensmechanismus.
2.2.2 Konsensmechanismus
Wie einigt man sich nun in einem dezentralen System auf die durchgeführten Transaktionen? Mit anderen Worten, wie gelangen neue Transaktionsblöcke in die Blockchain (vgl. Schritt 2)? Schließlich ist das Hinzufügen von Blöcken ja die einzig durchführbare Operation und es gibt keine Möglichkeit, bereits existierende Informationen abzuändern oder gar zu löschen. Daher besteht grundsätzlich ein Anreiz, Transaktionen hinzuzufügen, die den Urheber des Blockchain-Eintrags begünstigen. An diesem Punkt kommt die wesentliche Innovation der Blockchain-Technologie ins Spiel, der Konsensmechanismus. Dieser Mechanismus regelt, welcher Knoten seinen Block als nächstes in die Blockchain übertragen darf. Dieser Schritt ist zentral, denn auf der einen Seite soll es keine zentrale Instanz geben, die das Hinzufügen neuer Informationen kontrolliert. Wenn aber jeder beliebige Knoten grundsätzlich neue Informationen anhängen kann, muss man auf der anderen Seite befürchten, dass unehrliche Knoten versuchen, sich dabei ungerechtfertigt zu bereichern. Genau mit diesem Trade-off versucht der Konsensmechanismus umzugehen. Hierzu gibt man zunächst möglichst vielen oder sogar allen Knoten die generelle Möglichkeit, einen neuen Block hinzuzufügen. Damit sich hinreichend viele Knoten an diesem Schritt beteiligen, wird den Knoten, die neue Transaktionen sammeln, prüfen und mit dem Ziel bündeln, den nächsten Block an die bestehende Kette anhängen zu dürfen (die sogenannten Miner), eine Belohnung in Aussicht gestellt. Miner stehen folglich im Wettbewerb zueinander und es gilt, diesen Wettbewerb sinnvoll zu gestalten. So sollten die Knoten einen Anreiz haben, nur Blöcke mit legitimen Transaktionen zu erstellen, die weder zu sich selbst noch zu allen bereits in der Blockchain enthaltenen Transaktionen in Konflikt stehen. Insbesondere sollten also keine Transaktionen Teil des Blockkandidaten sein, die ein und denselben Vermögenswert mehrfach ausgeben (sogenannte Double Spend-Problematik).
Der weitverbreitetste Konsensmechanismus ist der dem Bitcoin-Netzwerk zugrunde liegende Proof-of-Work Mechanismus. Die Kernidee besteht darin, das Erstellen eines Blocks zu verteuern, die Überprüfbarkeit der Korrektheit eines neuen Blockkandidaten aber für alle anderen sehr günstig zu gestalten. Dadurch werden „Falschmeldungen“ teuer und können leicht entlarvt werden.
Zu diesem Zweck werden sogenannte Hash-Funktionen eingesetzt. Eine Hash-Funktion bildet eine große Datenmenge (etwa den gesamten Inhalt eines Blocks) auf eine kleine Datenmenge (den Hash-Wert) festgelegter Größe (256 Bit im Falle der Bitcoin-Blockchain) ab. Die Hash-Funktion ist dabei so gestaltet, dass kleine Veränderungen der Eingangsdaten (etwa das Austauschen eines Buchstaben oder einer Zahl) zu einem völlig anderen Output führen. Die Bitcoin-Blockchain gibt nun einen bestimmten Maximalwert für den Hash-Wert vor, definiert durch die Anzahl führender Nullen. Um diesen Zielwert zu erreichen, wird einem Block eine Zahl (sogenannte Nonce) hinzugefügt. Diese Zahl wird nun durch Ausprobieren so lange verändert, bis der Hash-Wert die Vorgabe erfüllt. Die Zahl der Versuche pro Zeiteinheit, eine zulässige Lösung zu finden, bezeichnet man als Hash-Rate. Der erste Knoten, der eine solche zulässige Lösung findet, darf der Blockchain den Block hinzufügen und erhält eine Belohnung
5 (vgl. Schritt 2). Da die Erfolgsaussichten des Minings mit der eingesetzten Rechenleistung steigen, setzen Miner Hochleistungrechner ein, was zu einem sehr hohen Energieverbrauch führt.
6 Hat ein Miner erfolgreich einen neuen Block an die Blockchain angehängt, können alle anderen Knoten sehr leicht verifizieren, dass die Aufgabe in der Tat gelöst wurde. Dazu müssen sie nur den Block einschließlich der Nonce als Input in die Hash-Funktion eingeben und prüfen, ob der resultierende Hash-Wert die Vorgabe erfüllt. Ebenfalls überprüfbar ist die Validität der in einem Block enthaltenen Transaktionen relativ zur Historie. An dieser Stelle würden double spends, also Mehrfachausgaben desselben Vermögenswertes, unmittelbar erkannt (vgl. Schritt 3). Ungültige Blöcke werden von ehrlichen Knoten einfach ignoriert, wohingegen ein neuer gültiger Blockkandidat Teil der Blockchain wird, indem die Miner bei ihrer nächsten Blockerstellung auf diesen Block referenzieren (vgl. Schritt 4).
Die Verknüpfung, die aus den einzelnen Blöcken eine Kette (eben die Blockchain) macht, wird dadurch erreicht, dass jeder Block den Hashwert des vorherigen Blocks enthält. Würde in irgendeinem Block der Kette eine manipulative Veränderung vorgenommen, so würde das den Hash-Wert dieses Blocks und damit auch die Hash-Werte aller nachfolgenden Blöcke verändern, so dass eine solche Manipulation leicht aufdeckbar wäre. Den Hash-Wert eines Blocks kann man sozusagen als den Fingerabdruck des Blocks interpretieren.
Es kann passieren, dass quasi zeitgleich zwei korrekte neue Blöcke an die Blockchain angehängt werden, so dass gleichzeitig zwei Versionen der Blockchain in Umlauf sind. In diesem Fall muss geregelt werden, welche Version dem aktuellen Zustand entspricht. Konsensregel ist, dass dies die Kette mit der höchsten eingeflossenen Arbeitsleistung ist. In der Regel ist dies die jeweils längste Kette. Je mehr Blöcke daher auf einen bestimmten Block folgen, desto sicherer ist es, dass das Kollektiv diesen Block als Teil der Blockchain betrachtet.
7
Letztlich erschwert dieser Proof-of-Work Mechanismus das Erstellen und Hinzufügen neuer Blöcke künstlich, indem zunächst eine geeignete Nonce gefunden werden muss. Die Schwierigkeit dieser probabilistischen Trial-and-Error Aufgabe wird im Bitcoin-Netzwerk so gewählt, dass im Schnitt alle zehn Minuten ein neuer gültiger Block entsteht. Die dabei vom Miner geleistete Arbeit ist namensgebend für den Proof-of-Work Mechanismus.
Im Ergebnis wird über diesen Proof-of-Work Mechanismus geregelt, dass sich das Kollektiv an Netzwerkteilnehmern auf den aktuellen Zustand der Blockchain einigt und den darin enthaltenen Daten vertraut. Das Vertrauen entsteht hier nicht durch einen „vertrauenswürdigen“ Intermediär. Vielmehr werden die Kosten für einen erfolgreichen Angriff auf die Daten – die immense Rechenleistung, die hierfür notwendig wäre – prohibitiv hoch gesetzt und gleichzeitig Anreize für ehrliches Verhalten gesetzt. Eine funktionierende Blockchain-Technologie ersetzt sozusagen den „vertrauenswürdigen“ Intermediär durch technologisches Vertrauen.
Je nach Ausgestaltungsart (vgl. Abschn.
2.3) der Blockchain sind andere Konsensmechanismen eventuell geeigneter. Eine Alternative zum ressourcenintensiven Proof-of-Work Mechanismus ist beispielsweise das „Proof-of-Stake“ Konzept, bei dem die Wahrscheinlichkeit, seinen erstellten Blockkandidaten anhängen zu dürfen, vom Vermögensanteil abhängt, den man an der Blockchain bzw. den darüber erfassten Wertgegenständen hält. Die wesentliche Idee dabei ist, denjenigen Akteuren eine höhere Verantwortung und damit auch Kontrolle zu geben, die ein hohes Interesse am Erfolg der jeweiligen Blockchain haben. In Industrieanwendungen, die in der Regel nicht primär darauf ausgelegt sind, Konsens zwischen unzuverlässigen Parteien herzustellen, kommen weitere Mechanismen in Frage, die auf einer gewissen Anzahl an vertrauenswürdigen Knoten basieren (Proof-of-Authority).