Seit der Einführung von Bitcoin im Jahr 2008, als peer-to-peer elektronisches Cash-System, wurden viele weitere Kryptowährungen geschaffen, jede mit einem bestimmten Mechanismus. Eines aber, das fast alle Kryptowährungen gemeinsam haben, ist die Blockchain als Kernelement ihrer Architektur.
Mit wenigen Ausnahmen sind Blockchains bewusst dezentral aufgebaut und arbeiten als digitales Aufzeichnungsmodell (Ledger), das von einem verteilten Netzwerk von Computerknoten (Nodes) verwaltet wird. Aus diesem Grund ermöglichte die Blockchain-Technologie die Schaffung vertrauensunabhängiger Wirtschaftssysteme, in denen transparente und zuverlässige Finanztransaktionen ohne die Notwendigkeit von Vermittlern durchgeführt werden konnten. Kryptowährungen werden als praktikable Alternative zu traditionellen Bank- und Zahlungssystemen eingesetzt, deren Dienstleistungen stark vom Vertrauen der Nutzer abhängig sind.
Wie die meisten verteilten Computersysteme müssen sich die Teilnehmer eines Kryptowährungsnetzwerks regelmäßig über den aktuellen Status der Blockchain einigen, was wir als Konsensfindung definieren. Allerdings ist es keineswegs einfach über verteilte Netzwerke sicher und vertrauenswürdig Konsens zu erreichen.
Wie schafft es also ein verteiltes Netzwerk von Computerknoten Konsens zu finden, wenn einige der Knoten wahrscheinlich versagen oder unehrlich handeln? Das ist die grundlegende Frage des Problems der sogenannten byzantinischen Generäle, aus der das Konzept der byzantinischen Fehlertoleranz hervorging.
Was ist das Problem der byzantinischen Generäle?
Mit 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 versuchen, sich auf ihren nächsten Schritt zu einigen.
Das Dilemma geht davon aus, dass jeder General seine eigene Armee hat und dass sich jede Gruppe an verschiedenen Orten in der Stadt befindet, die sie angreifen wollen. Die Generäle müssen sich auf einen Angriff oder Rückzug einigen. Es spielt keine Rolle, ob sie angreifen oder sich zurückziehen, solange alle Generäle einen Konsens erzielen, d.h. sich auf einen gemeinsamen Beschluss einigen, um ihn in Koordination auszuführen.
Daher können wir die folgenden Ziele 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 die gleiche Entscheidung treffen und sie gleichzeitig ausführen.
Die oben genannten Kommunikationsprobleme hängen damit zusammen, dass ein General nur über Nachrichten, die von einem Kurier weitergeleitet werden, mit einem anderen kommunizieren kann. Die zentrale Herausforderung des Problems der byzantinischen Generäle besteht daher darin, dass die Botschaften irgendwie verzögert, zerstört oder verloren gehen können.
Darüber hinaus können ein oder mehrere Generäle, selbst wenn eine Nachricht erfolgreich zugestellt wird, (aus welchem Grund auch immer) böswillig handeln und eine betrügerische Nachricht senden, um die anderen Generäle zu verwirren, was zu einem Totalversagen führt.
Wenn wir das Dilemma auf den Kontext von Blockchains anwenden, repräsentiert jeder General einen Netzwerkknoten und die Knoten müssen einen Konsens über den aktuellen Status des Systems erreichen. Anders ausgedrückt, die Mehrheit der Teilnehmer innerhalb eines verteilten Netzwerks muss die gleiche Aktion vereinbaren und ausführen, um ein vollständiges Versagen zu vermeiden.
Daher ist der einzige Weg, einen Konsens in diesen Arten von verteilten Systemen zu erreichen, mindestens ⅔ oder mehr zuverlässige und ehrliche Netzwerkknoten zu haben. Das bedeutet, dass, wenn die Mehrheit des Netzwerks beschließt, böswillig zu handeln, das System anfällig für Störungen und Angriffe ist (wie z.B. die 51% Attacke).
Byzantinische Fehlertoleranz (BFT)
Mit wenigen Worten, die byzantinische Fehlertoleranz (BFT) ist definiert als die Eigenschaft eines Systems das Problemdilemma der byzantinischen Generäle zu überwinden. Das bedeutet, dass ein BFT-System auch dann weiterarbeiten kann, 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 damit mehrere Möglichkeiten, ein BFT-System aufzubauen. Ebenso gibt es verschiedene Ansätze für eine Blockchain, um byzantinische Fehlertoleranz zu erreichen, und das 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 Fall Bitcoin als Beispiel.
Während das Bitcoin-Protokoll die primären Regeln des Systems vorschreibt, definiert der PoW-Konsensalgorithmus, wie diese Regeln befolgt werden, um einen Konsens zu erzielen (z.B. bei der Überprüfung und Validierung von Transaktionen).
Obwohl das Konzept des Proof of Work älter ist als Kryptowährungen selber, entwickelte Satoshi Nakamoto eine modifizierte Version des PoW in Form eines Algorithmus, der die Schaffung von Bitcoin als BFT-System erst ermöglichte.
Beachte, dass der PoW-Algorithmus nicht 100% tolerant gegenüber byzantinischen Fehlern ist, aber aufgrund des kostenintensiven Mining-Prozesses und der zugrunde liegenden kryptographischen Techniken hat sich der PoW als eine der sichersten und zuverlässigsten Implementierungen für Blockchain-Netzwerke erwiesen. Daher wird der von Satoshi Nakamoto entwickelte Proof of Work Konsensalgorithmus von vielen als eine der genialsten Lösungen für die byzantinischen Fehler angesehen.
Fazit
Das Problem der byzantinischen Generäle ist ein faszinierendes Dilemma, das schließlich zu den BFT-Systemen führte, die in verschiedenen Bereichen umfassend Anwendung finden. Über die Blockchain-Industrie hinaus sind einige weitere Anwendungsfälle von BFT-Systemen die Luft- und Raumfahrtindustrie sowie die Kernkraftindustrie.
Im Kontext von Kryptowährungen ist eine effiziente Netzwerkkommunikation zusammen mit einem guten Konsensmechanismus für jedes Blockchain-Ökosystem von zentraler Bedeutung. Die Sicherung dieser Systeme ist ein ständiges Unterfangen, und die bestehenden Konsensalgorithmen müssen noch einige Grenzen überwinden (z.B. Skalierbarkeit). Dennoch sind PoW und PoS als BFT-Systeme sehr interessante Ansätze, und die potenziellen Anwendungsbereiche inspirieren sicherlich zu weitreichenden Innovationen.