Seit der Einführung von Bitcoin im Jahr 2008 als Peer-to-Peer-Electronic-Cash-System wurden viele andere Kryptowährungen geschaffen, jede mit einem besonderen Mechanismus. Aber eine Sache, die fast alle Kryptowährungen gemeinsam haben, ist die Blockchain als Kernelement ihrer Architektur.
Mit wenigen Ausnahmen sind Blockchains absichtlich dezentralisiert und arbeiten als digitales Hauptbuch, das von einem verteilten Netzwerk von Computerknoten geführt wird. Aus diesem Grund ermöglichte die Blockchain-Technologie die Schaffung von vertrauenslosen Wirtschaftssystemen, in denen transparente und zuverlässige Finanztransaktionen ohne Zwischenhändler durchgeführt werden können. Kryptowährungen werden als praktikable Alternative zu herkömmlichen Bank- und Zahlungssystemen angenommen, die in hohem Maße von Vertrauen abhängig sind.
Wie bei den meisten verteilten Computersystemen müssen sich die Teilnehmer eines Kryptowährungsnetzwerks regelmäßig über den aktuellen Stand der Blockchain einigen, und das nennen wir Konsensfindung. Es ist jedoch alles andere als einfach, in verteilten Netzwerken auf sichere und effiziente Weise einen Konsens zu erreichen.
Wie kann sich also ein verteiltes Netzwerk von Computerknoten auf eine Entscheidung einigen, wenn einige der Knoten wahrscheinlich ausfallen oder unehrlich handeln? Dies ist die grundlegende Frage des so genannten Problems der byzantinischen Generäle, aus dem das Konzept der byzantinischen Fehlertoleranz hervorging.
Was ist das Problem der byzantinischen Generäle?
In wenigen Worten: Das Problem der byzantinischen Generäle wurde 1982 als logisches Dilemma konzipiert, das veranschaulicht, wie eine Gruppe byzantinischer Generäle Kommunikationsprobleme haben kann, wenn sie versucht, sich auf ihren nächsten Zug zu einigen.
Das Dilemma geht davon aus, dass jeder General seine eigene Armee hat und dass sich jede Gruppe an verschiedenen Orten rund um die Stadt befindet, die sie angreifen will. Die Generäle müssen sich darauf einigen, entweder anzugreifen oder sich zurückzuziehen. Es spielt keine Rolle, ob sie angreifen oder sich zurückziehen, solange alle Generäle einen Konsens erreichen, d.h.,
Daher können wir die folgenden Anforderungen in Betracht ziehen:
- Jeder General muss sich entscheiden: Angriff oder Rückzug (ja oder nein);
- Nachdem die Entscheidung getroffen wurde, kann sie nicht mehr geändert werden;
- Alle Generäle müssen sich auf dieselbe Entscheidung einigen und sie synchronisiert ausführen.
Die erwähnten Kommunikationsprobleme hängen damit zusammen, dass ein General mit einem anderen nur durch Nachrichten kommunizieren kann, die durch einen Kurier weitergeleitet werden. Die zentrale Herausforderung des Byzantinischen Generalsproblems besteht folglich darin, dass die Nachrichten irgendwie verzögert werden, zerstört werden oder verloren gehen können.
Auch wenn eine Nachricht erfolgreich zugestellt wird, können sich ein oder mehrere Generäle (aus welchen Gründen auch immer) dazu entschließen, böswillig zu handeln und eine gefälschte Nachricht zu senden, um die anderen Generäle zu verwirren, was zu einem totalen Fehlschlag führt.
Wenden wir das Dilemma auf den Kontext von Blockchains an, so stellt jeder General einen Netzwerkknoten dar, und die Knoten müssen einen Konsens über den aktuellen Zustand des Systems erzielen. Anders ausgedrückt: Die Mehrheit der Teilnehmer in einem verteilten Netzwerk muss sich einig sein und dieselbe Aktion ausführen, um einen vollständigen Ausfall zu vermeiden.
Daher ist die einzige Möglichkeit, in dieser Art von verteilten Systemen einen Konsens zu erreichen, die Existenz von mindestens ⅔ oder mehr zuverlässigen und ehrlichen Netzwerkknoten. Das bedeutet, wenn die Mehrheit des Netzes beschließt, böswillig zu handeln, ist das System anfällig für Ausfälle und Angriffe (wie den 51%-Angriff).
Byzantinische Fehlertoleranz (BFT)
In wenigen Worten, Byzantinische Fehlertoleranz (BFT) ist die Eigenschaft eines Systems, das in der Lage ist, der Klasse von Ausfällen zu widerstehen, die aus dem Byzantinischen Generellen Problem abgeleitet sind. Das bedeutet, dass ein BFT-System in der Lage ist, seinen Betrieb fortzusetzen, selbst wenn einige der Knoten ausfallen oder böswillig handeln.
Es gibt mehr als eine mögliche Lösung für das Problem der Byzantinischen Generäle und daher auch mehrere Möglichkeiten, ein BFT-System aufzubauen. Ebenso gibt es verschiedene Ansätze für eine Blockchain, um byzantinische Fehlertoleranz zu erreichen, und dies führt uns zu den sogenannten Konsensalgorithmen.
Blockchain-Konsensalgorithmen
Wir können einen Konsensalgorithmus als den Mechanismus definieren, durch den ein Blockchain-Netzwerk einen Konsens erreicht. Die gängigsten Implementierungen sind Proof of Work (PoW) und Proof of Stake (PoS). Aber nehmen wir den Bitcoin-Fall als Beispiel.
Während das Bitcoin-Protokoll die primären Regeln des Systems vorgibt, definiert der PoW-Konsensalgorithmus, wie diese Regeln befolgt werden, um einen Konsens zu erreichen (zum Beispiel während der Überprüfung und Validierung von Transaktionen).
Obwohl das Konzept des Proof of Work älter ist als die Kryptowährungen, entwickelte Satoshi Nakamoto eine modifizierte Version davon als Algorithmus, der die Schaffung von Bitcoin als BFT-System ermöglichte.
Bei dem PoW-Algorithmus ist zu beachten, dass er nicht zu 100 % tolerant gegenüber byzantinischen Fehlern ist, aber aufgrund des kostenintensiven Mining-Prozesses und der zugrunde liegenden kryptografischen Techniken hat sich PoW als eine der sichersten und zuverlässigsten Implementierungen für Blockchain-Netzwerke erwiesen. In diesem Sinne wird der von Satoshi Nakamoto entwickelte Proof-of-Work-Konsensalgorithmus von vielen als eine der genialsten Lösungen für die byzantinischen Fehler angesehen.
Abschlussgedanken
Das Problem der byzantinischen Generäle ist ein faszinierendes Dilemma, das schließlich zu den BFT-Systemen führte, die in verschiedenen Szenarien ausgiebig eingesetzt werden. Neben der Blockchain-Industrie gibt es einige Anwendungsfälle für BFT-Systeme in der Luft- und Raumfahrt sowie in der Kernkraftindustrie.
Im Zusammenhang mit Kryptowährungen ist eine effiziente Netzwerkkommunikation zusammen mit einem guten Konsensmechanismus für jedes Blockchain-Ökosystem entscheidend. Die Sicherung dieser Systeme ist ein ständiges Unterfangen, und die bestehenden Konsensalgorithmen müssen noch einige Einschränkungen (wie die Skalierbarkeit) überwinden. Nichtsdestotrotz sind PoW und PoS sehr interessante Ansätze für BFT-Systeme, und die potenziellen Anwendungen regen sicherlich zu weitreichenden Innovationen an.