Wie funktioniert eine Blockchain?

   geschrieben von Lidia Kurt    |      3. Januar 2023

Bei den meisten Blockchains speichern die Blöcke Informationen zu Transaktionen zwischen Adressen. Diese Adressen werden auch Public Keys genannt. Besitzer der Adressen können durch Signierung von Transaktionen mit einem geheimen Schlüssel Transaktionen auslösen. Dieser geheime Schlüssel ist auch als Private Key bekannt. Gegenseitiges Einverständnis über den Inhalt der Blöcke wird zwischen den Teilnehmern, auch Nodes genannt, mittels einem Konsensmechanismus gefunden. Blöcke enthalten mehrere Transaktionen und werden kryptographisch mittels Hashing-Funktionen aneinandergebunden. Diese einzelnen Schritte und Begriffe werden im Folgenden beleuchtet.

Public und Private Key

Public und Private Keys sind zusammengehörende Paare. Der Public Key ist öffentlich bekannt. Im traditionellen Finanzbereich ist dieser am ehesten mit einer IBAN-Nummer vergleichbar. Es ist die öffentliche Adresse, welche als Kontoadresse für das Senden und Erhalten von Transaktionen dient. Private Keys dagegen sind, wie der Name impliziert, geheim und sollten auch geheim gehalten werden. Jeder, der Zugang zum Private Key hat, hat auch die Möglichkeit Transaktionen von der Adresse aus auszulösen, die auf der Adresse liegenden Vermögenswerte an andere Adressen zu senden und so sich diese zu eigen machen.

Public und Private Keys hängen mittels asymmetrischer Kryptographie zusammen. Kern der asymmetrischen Kryptographie sind Funktionen, welche in eine Richtung einfach und in die andere Richtung unmöglich zu lösen sind. Aus dem Private Key kann der Public Key einfach generiert werden. Jedoch ist es praktisch unmöglich, bei Kenntnis des Public Keys den Private Key abzuleiten.

Asymmetrische Kryptografie kann folglich auf zwei Wege verwendet werden:

  • Verschlüsselung: Eine Information kann gesendet und mit dem Public Key verschlüsselt werden. Nur diejenige Person im Besitz des Private Keys kann die Information entschlüsseln und lesen.
  • Signierung: Eine Information kann mit dem Private Key signiert werden. Nur die Person im Besitz des Private Keys kann dies vornehmen. Alle anderen Parteien können jedoch mit dem Public Key verifizieren, dass die Information genau in diesem Inhalt von der effektiven Partei signiert wurde.

Der zweite Weg ist für Blockchains das zentrale Element: Die Funktion der Signierung wird genutzt, um in einem Blockchain-System Transaktionen auszulösen. Die Senderin einer Transaktion kann diese digital signieren. Die anderen Teilnehmer des Systems können die Transaktion mittels Public Key validieren. So kann sichergestellt werden, dass die Transaktion von der effektiven Besitzerin der Adresse initiiert wurde.

Hashing

Ein Block in einer Blockchain beinhaltet mehrere Transaktionen. Blöcke werden kryptographisch aneinandergebunden. Sie sind so linear verbunden und bilden eine klar geordnete Sequenz, eine sog. Kette. In einem Blockchain-Netzwerk können verschiedene Ketten nebeneinander existieren. Als gültige Blockchain-Kette gilt jedoch jeweils nur die längste Kette – also diejenige Kette mit den meisten aneinandergereihten, gültigen Blöcken.

Die Verbundenheit der Blöcke erfolgt durch eine kryptographische Hashfunktion. Dies ist eine mathematische Funktion, welche einen beliebigen Eingabewert (z.B. Zahlenfolge, Transaktionsdaten, Text, etc.) mit beliebiger Länger (z.B. 4-stellige Zahl, 2-seitiger Text, etc.) nehmen kann und einen Ausgabewert von immer derselben Länge produziert. Bei gleichem Eingabewert resultiert immer der gleiche Ausgabewert. Jedoch auch nur eine kleinste Veränderung des Eingabewertes führt zu einem völlig anderen Ausgabewert. Eine Variante einer solchen Hashfunktion ist SHA256. Als Beispiel zeigt die folgende Abbildung wie die SHA256-Hashfunktion für ganz unterschiedliche Eingabewerte verschiedene, genau gleich lange Ausgabewerte produziert. Bei den ersten beiden Einträgen wurde lediglich ein Satzzeichen geändert, die Ausgabewerte sind jedoch völlig verschieden. Ob Zahlenkombinationen oder ganze Texte, die Länge des Ausgabewertes bleibt jedoch derselbe.

Kryptographisch ist eine Hashfunktion, wenn es unmöglich ist, einen anderen Eingabewert zu finden, der zum selben Ausgabewert führt. Zudem ist es für eine externe Partei unmöglich, von einem bekannten Ausgabewert den Eingabewert herauszufinden.

Illustration-der-SHA256-Hashfunktion
Abbildung: Illustration der SHA256 Hashfunktion (Quelle: Kurt, L. & Kurt, D. (2022). Digitale Assets & Tokenisierung. Wiesbaden: Springer Gabler)

Beim Hashing zur Aneinanderreihung von Blöcken einer Blockchain geschieht nun Folgendes: Aus einem Block kann ebenfalls ein Hashwert erzeugt werden. Dazu werden alle Informationen eines Blocks als Eingabewert genommen und damit als Ausgabewert ein Hashwert generiert. Ein Block wird so aufgebaut, dass er neben den Transaktionsdaten auch jeweils den Hashwert des vorherigen Blocks als Information enthält. Somit ist der Hashwert eines Blockes immer vom Hashwert des vorherigen Blockes abhängig.  Die Blöcke sind damit chronologisch geordnet. Wenn nun ein Teilnehmer eine Information in einem Block rückwirkend ändern möchte, wäre das in Theorie möglich. Nur ist eine solche Manipulation für jedermann ersichtlich: Wird in einem Block nur die kleinste Information verändert, resultiert ein neuer Hashwert. Dieser stimmt nun nicht mehr mit den nachfolgenden Blöcken überein und damit wird die Verbindung zu den nachfolgenden Blöcken unterbrochen. Es ist also für jedermann ersichtlich, dass der eine Block manipuliert wurde. Die folgende Abbildung illustriert diese Verkettung der Blöcke mittels Hashfunktion. Im oberen Teil der Abbildung sieht man, wie alle Blöcke jeweils den Hashwert des vorherigen Blocks mitenthalten und aus ihnen jeweils ein neuer Hashwert generiert wird. Die Hashwerte der verketteten Blöcke stimmen überein. Im unteren Teil der Grafik wird ein Block manipuliert: Transaktion Nummer 5 wird gelöscht. Daraus resultiert ein völlig anderer Hashwert im zweiten Block. Dieser stimmt nun nicht mehr mit dem Hashwert der nachfolgenden Blöcke überein. Dieser Block und diese Blockkette würden nun von den anderen Teilnehmern im System nicht mehr akzeptiert. Sie stellt nicht mehr die längste Kette an gültigen Blöcken im System dar. Die Manipulation des einen Teilnehmers hat damit keinen Effekt.

Zusammenkettung-von-Blöcken-mittels-Hashfunktion
Abbildung: Zusammenkettung von Blöcken mittels Hashfunktion (Quelle: Kurt, L. & Kurt, D. (2022). Digitale Assets & Tokenisierung. Wiesbaden: Springer Gabler)

Nodes

Bis anhin wurde davon gesprochen, dass «Teilnehmer» das Blockchain-Netzwerk aufrechterhalten. Diese Teilnehmer werden korrekterweise als Nodes bezeichnet. Eine Node ist ein Nutzer – technisch gesehen ein Computer, welcher die Blockchain Software ausführt. Dabei gilt es zwischen vollen Nodes, Mining Nodes und Lightweight-Nodes zu unterscheiden:

  • Volle Nodes bewahren eine vollständige Kopie der Datenbank bei sich auf, senden und empfangen Daten von anderen Nodes und validieren Transaktionen.
  • Mining Nodes nehmen zusätzlich noch am Mining Prozess teil – vorausgesetzt ein solcher ist in der Blockchain vorgesehen (siehe nächster Abschnitt).
  • Lightweight-Nodes dagegen bewahren nicht das vollständige Register aller historischen Transaktionen auf, sondern arbeiten mit ausgewählten vollen Nodes für die Teilnahme am System zusammen. Das ist insbesondere dort von Nutzen, wo das Register eine grosse Datenmenge beansprucht, welche beim Nutzer (z.B. Geräte ohne grossen Speicherplatz) nicht aufbewahrt werden kann.

Die von den Nodes ausgeführten Aktivitäten sind durch die Blockchain automatisiert, nur sehr wenig manuelle Aktivität ist dabei erforderlich. Gewisse Typen von Blockchains, wie beispielsweise die Bitcoin Blockchain, umfassen einen Mining Prozess. Wenn Transaktionen ausgelöst werden, validieren andere Nodes die Transaktion. Validierte Transaktionen werden von Mining Nodes zu einem Block gruppiert und anschliessend im Netzwerk publiziert und geteilt. Mining Nodes werden in der Regel von leistungsstarken Computern betrieben und in gewissen Blockchains finanziell entschädigt.

Konsensus

Gegenseitiges Einverständnis über den Inhalt der Blöcke wird zwischen den Nodes mittels einem Konsensmechanismus gefunden. Dabei geht es um die Frage, wie Einigkeit zwischen den Teilnehmern erreicht wird, welche Blöcke mit welchem Inhalt auf der Blockchain publiziert werden. Es gibt eine Vielzahl verschiedener Konsensmechanismen. Am meisten Beachtung finden aktuell die beiden Mechanismen Proof of Work und Proof of Stake. Proof of Work ist der bei Bitcoin implementierte Konsensmechanismus. Auch Ethereum baute noch auf Proof of Work auf, ist aber aktuell im Prozess zur Umstellung auf Proof of Stake. Beide Konsensmechanismen – Proof of Work und Proof of Work – beinhalten eine Vielzahl von Elementen, damit die Funktionsweise sichergestellt werden kann. Hier soll vereinfacht auf die wichtigsten Komponenten eingegangen werden.

Im Falle von Proof of Work Konsensmechanismen darf diejenige Mining Node im Netzwerk den Block publizieren, welche ein mathematisches Puzzle erfolgreich gelöst hat. Zur Lösung der Aufgabe ist Rechenleistung notwendig. Die richtige Lösung des Puzzles ist der Beweis dafür, dass die Rechenleistung – und damit Elektrizitätskosten – aufgewendet wurde. Nach erfolgreicherer Meisterung der Aufgabe sendet die Minig Node den Block zusammen mit der Lösung der mathematischen Aufgabe an das Netzwerk. Die anderen Teilnehmer validieren nun den Inhalt des Blocks und die Lösung der mathematischen Aufgabe. Dabei prüfen sie auch, ob der Vermögenswert nicht bereits vorher ausgegeben wurde („Double Spending“). Während das Lösen des Puzzles kostenintensiv war, ist die Validierung der Lösung äusserst einfach und benötigt keine nennenswerten Kapazitäten. Wenn die anderen Teilnehmer mit dem Block einverstanden sind, fügen sie ihn zu ihrer Instanz der Blockchain hinzu und verteilen ihn im Netzwerk weiter. Das mathematische Puzzle ist eigentlich in sich selbst genommen sehr sinnfrei (es geht einfach gesprochen um das Erraten von Zahlen). Gleichzeitig ist es das zentralste Element im Proof of Work Konsensmechanismus, da es die Teilnehmer von böswilligen Aktivitäten abhält. Es können so nicht willkürlich und nach Belieben falsche Blöcke ins Netzwerk gegeben werden. Es lohnt sich auch nicht, die Rechenleistung für das Publizieren von Blöcken aufzuwenden, welche falsche Transaktionen enthalten, da diese nicht von den anderen Teilnehmern angenommen werden würden. Die Blöcke nur bei den Registerkopien der selber kontrollierten Nodes anzufügen, bewährt sich ebenfalls nicht: Die anderen Teilnehmer des Systems werden nicht auf diese Version der Blockchain abstellen.

Falls eine einzelne Person oder Institution die Proof of Work Blockchain eigenhändig kontrollieren möchte, müsste sie 51% der Rechenleistung des Systems aufwenden. Eine solche Attacke ist bei grossen Netzwerken wie Bitcoin und Ethereum nicht nur finanziell praktisch unmöglich, sondern aus wirtschaftlicher Perspektive auch sinnlos.

Das zentralste Element von Proof of Work – die aufzuwendende Rechenleistung und damit Energieintensität – ist gleichzeitig auch aus Perspektive der Nachhaltigkeit der grösste Nachteil an der Konsenstechnologie. Unter anderem deswegen wird an Weiterentwicklungen geforscht. Am meisten Aufmerksamkeit findet dabei der Konsensmechanismus Proof of Stake. In diesem Verfahren werden Teilnehmer zur Publikation der Blöcke ausgewählt in Abhängigkeit vom Währungsvolumen, welches sie auf der Plattform haben. Ein Vorgehen wäre beispielsweise, dass die Teilnehmer zufällig ausgewählt werden, wobei die Wahrscheinlichkeit an ihren Anteil an der Plattform gebunden wird. Besitzt ein Teilnehmer beispielsweise 10% aller ausstehenden Währungsanteile, dürfte er zufällig gestreut im Schnitt jedes zehnte Mal einen Block publizieren. Eine weitere Idee ist auch, miteinzubeziehen, wie lange sich ein Teilnehmer bereits auf der Plattform bewegt und sich auf dieser engagiert. Der Beweggrund hinter Proof of Stake liegt in der Annahme, dass Teilnehmer mit einem grossen Einsatz, das beste Interesse der Plattform verfolgen. Delegated Proof of Stake stellt eine Weiterentwicklung des Proof of Stake Algorithmus dar. Bei diesem Konsensmechanismus werden von den Netzwerk-Teilnehmern über das Blockchain-Netzwerk «Delegierte» gewählt, welche für die Validierung der Transaktionen zuständig sind. Die «Delegierten» sind bestimmte Netzwerk-Nodes.

Quellen

Kurt, L. & Kurt, D. (2022). Digitale Assets & Tokenisierung. Wiesbaden: Springer Gabler

OECD. (19. Juni 2018). Blockchains Unchained: Blockchain Technology and its Use in the Public Sector. Abgerufen von https://www.oecd-ilibrary.org/governance/blockchains-unchained_3c32c429-en

Hinterlasse einen Kommentar