Seit der Einführung von Bitcoin im Jahr 2008 als Peer-to-Peer-System für elektronisches Bargeld wurden viele weitere Kryptowährungen geschaffen, jede mit einem bestimmten Mechanismus. Eines haben jedoch fast alle Kryptowährungen gemeinsam: die Blockchain als Kernelement ihrer Architektur.
Mit wenigen Ausnahmen sind Blockchains absichtlich dezentralisiert und funktionieren als digitales Hauptbuch, das von einem verteilten Netzwerk von Computerknoten verwaltet wird. Aus diesem Grund ermöglichte die Blockchain-Technologie die Schaffung vertrauensloser Wirtschaftssysteme, in denen transparente und zuverlässige Finanztransaktionen ohne die Notwendigkeit von Vermittlern ausgeführt werden konnten. Kryptowährungen werden als praktikable Alternative zu traditionellen Bank- und Zahlungssystemen angenommen, die stark auf Vertrauen angewiesen sind.
Wie bei den meisten verteilten Computersystemen müssen sich die Teilnehmer eines Kryptowährungsnetzwerks regelmäßig über den aktuellen Status der Blockchain einigen. Dies nennen wir Konsensbildung. Allerdings ist es alles andere als einfach, in verteilten Netzwerken auf sichere und effiziente Weise einen Konsens zu erzielen.
Wie kann sich also ein verteiltes Netzwerk von Computerknoten auf eine Entscheidung einigen, wenn die Wahrscheinlichkeit besteht, dass einige der Knoten ausfallen oder unehrlich handeln? Dies ist die grundlegende Frage des sogenannten Problems der byzantinischen Generäle, das zur Geburtsstunde des Konzepts der byzantinischen Fehlertoleranz führte.
Was ist das Problem der byzantinischen Generäle?
Kurz gesagt wurde das Problem der byzantinischen Generäle im Jahr 1982 als logisches Dilemma konzipiert, das zeigt, wie eine Gruppe byzantinischer Generäle Kommunikationsprobleme haben kann, wenn sie versucht, sich auf ihren nächsten Schritt zu einigen.
Das Dilemma geht davon aus, dass jeder General seine eigene Armee hat und dass jede Gruppe an verschiedenen Orten rund um die Stadt stationiert ist, die sie angreifen will. Die Generäle müssen sich darauf einigen, ob sie angreifen oder sich zurückziehen. Es spielt keine Rolle, ob sie angreifen oder sich zurückziehen, solange alle Generäle einen Konsens erzielen, d. h. sich auf eine gemeinsame Entscheidung einigen, um diese koordiniert auszuführen.
Daher können wir die folgenden Anforderungen berücksichtigen:
Jeder General muss 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 derselben Entscheidung zustimmen und diese synchron ausführen.
Die oben genannten Kommunikationsprobleme hängen damit zusammen, dass ein General nur über Nachrichten mit einem anderen kommunizieren kann, die von einem Kurier weitergeleitet werden. Folglich besteht die zentrale Herausforderung des byzantinischen Generalsproblems darin, dass die Nachrichten irgendwie verzögert, zerstört oder verloren gehen können.
Selbst wenn eine Nachricht erfolgreich zugestellt wurde, kann es sein, dass ein oder mehrere Generäle (aus welchem Grund auch immer) beschließen, in böswilliger Absicht zu handeln und eine betrügerische Nachricht zu senden, um die anderen Generäle zu verwirren, was zu einem völligen Misserfolg führen kann.
Wenn wir das Dilemma auf den Kontext von Blockchains anwenden, 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 zustimmen und dieselbe Aktion ausführen, um einen vollständigen Ausfall zu vermeiden.
Daher besteht die einzige Möglichkeit, in diesen Arten von verteilten Systemen einen Konsens zu erreichen, darin, mindestens ⅔ oder mehr zuverlässige und ehrliche Netzwerkknoten zu haben. Dies bedeutet, dass das System anfällig für Fehler und Angriffe ist (wie z. B. den 51%-Angriff), wenn sich die Mehrheit des Netzwerks für böswillige Handlungen entscheidet.
Byzantinische Fehlertoleranz (BFT)
Kurz gesagt ist die byzantinische Fehlertoleranz (Byzantine Fault Tolerance, BFT) die Eigenschaft eines Systems, das der Fehlerklasse widerstehen kann, die sich aus dem Problem der byzantinischen Generäle ergibt. Das bedeutet, dass ein BFT-System auch dann weiterarbeiten kann, wenn einige Knoten ausfallen oder böswillig agieren.
Für das Problem der byzantinischen Generäle gibt es mehr als eine mögliche Lösung und daher mehrere Möglichkeiten, ein BFT-System aufzubauen. Ebenso gibt es verschiedene Ansätze, wie eine Blockchain byzantinische Fehlertoleranz erreichen kann, 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 als Beispiel den Fall Bitcoin.
Während das Bitcoin-Protokoll die primären Regeln des Systems vorschreibt, definiert der PoW-Konsens-Algorithmus, wie diese Regeln befolgt werden, um einen Konsens zu erreichen (beispielsweise während der Überprüfung und Validierung von Transaktionen).
Obwohl das Konzept des Proof of Work älter ist als Kryptowährungen, entwickelte Satoshi Nakamoto eine modifizierte Version davon als Algorithmus, der die Schaffung von Bitcoin als BFT-System ermöglichte.
Beachten Sie, dass der PoW-Algorithmus nicht 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 byzantinische Fehler angesehen.
Abschließende Gedanken
Das Problem der byzantinischen Generäle ist ein faszinierendes Dilemma, das schließlich zu den BFT-Systemen führte, die in verschiedenen Szenarien umfassend eingesetzt werden. Über die Blockchain-Industrie hinaus gibt es einige Anwendungsfälle für BFT-Systeme in der Luft- und Raumfahrt sowie in der Kernkraftindustrie.
Im Kontext der Kryptowährungen ist eine effiziente Netzwerkkommunikation zusammen mit einem guten Konsensmechanismus für jedes Blockchain-Ökosystem von entscheidender Bedeutung. Die Sicherung dieser Systeme ist ein fortlaufender Prozess, und die bestehenden Konsensalgorithmen müssen noch einige Einschränkungen (wie Skalierbarkeit) überwinden. Dennoch sind PoW und PoS sehr interessante Ansätze als BFT-Systeme, und die potenziellen Anwendungen inspirieren sicherlich weitreichende Innovationen.