Byzantine Faults Börsenlexikon Vorheriger Begriff: Omission Faults Nächster Begriff: Timing Faults

Eine Art von Fehlern in verteilten Systemen, bei denen ein Node absichtlich oder zufällig falsche, inkonsistente oder böswillige Daten sendet, was die Konsensfindung erschwert und byzantinische Fehlertoleranz-Mechanismen erfordert

Byzantine Faults bezeichnen in der Informatik eine besonders komplexe Klasse von Fehlern in verteilten Systemen. Im Gegensatz zu einfacheren Fehlertypen wie Crash Faults (Ausfälle) oder Omission Faults (Kommunikationsauslassungen), zeichnen sich byzantinische Fehler dadurch aus, dass sich ein Knoten beliebig fehlerhaft oder sogar böswillig verhalten kann. Dies kann das Versenden widersprüchlicher Informationen an verschiedene Teilnehmer ebenso einschließen wie das absichtliche Untergraben des Konsensprozesses. Der Begriff geht auf das sogenannte „Byzantine Generals Problem“ zurück, das 1982 von Leslie Lamport, Robert Shostak und Marshall Pease formuliert wurde.

Charakteristik byzantinischer Fehler

Ein Systemknoten, der einen byzantinischen Fehler aufweist, kann sich auf folgende Weise verhalten:

  1. Widersprüchlich: Sendet unterschiedliche Nachrichten an verschiedene Knoten zur selben Zeit.

  2. Unvorhersehbar: Verhält sich inkonsistent, ohne erkennbare Regel oder Absicht.

  3. Böswillig: Verfolgt aktiv das Ziel, das System zu stören oder zu manipulieren.

  4. Täuschend: Gibt sich korrekt funktionierend, obwohl fehlerhaftes Verhalten vorliegt.

  5. Manipulativ: Führt bewusst falsche Berechnungen oder Signaturen aus.

Byzantinische Fehler sind deshalb besonders kritisch, weil sie nicht nur technische Defekte, sondern auch kompromittierte Teilnehmer oder Angriffe durch Dritte modellieren.

Das Byzantine Generals Problem

Das zugrundeliegende Gedankenexperiment beschreibt eine Situation, in der mehrere Generäle einer Armee (verteilt über ein Netzwerk) sich auf einen gemeinsamen Angriffszeitpunkt einigen müssen. Einige dieser Generäle könnten jedoch Verräter sein, die widersprüchliche oder falsche Informationen weitergeben. Die zentrale Frage lautet:

Wie können sich loyale Generäle auf eine gemeinsame Entscheidung einigen, auch wenn einige unter ihnen Verrat begehen?

Die formale Lösung dieses Problems zeigt, dass zur Tolerierung von f byzantinischen Fehlern mindestens n ≥ 3f + 1 Knoten erforderlich sind. Nur so kann gewährleistet werden, dass die korrekten Knoten eine Mehrheit bilden und durch Quorumbildung Konsens herstellen.

Beispiele für byzantinisches Verhalten

In der Praxis können byzantinische Fehler durch verschiedene Ursachen entstehen:

  • Softwarekompromittierung: Ein Knoten wurde durch Malware manipuliert.

  • Fehlkonfiguration: Der Knoten verarbeitet Nachrichten anders als vorgesehen.

  • Hardwaredefekte: Speicherfehler führen zu inkonsistentem Verhalten.

  • Absichtlicher Angriff: Ein Akteur sendet gezielt falsche Transaktionen oder manipulierte Blöcke.

  • Kollusion: Mehrere fehlerhafte Knoten arbeiten zusammen, um das System zu unterlaufen.

Ein Beispiel aus Blockchain-Systemen: Ein Validator gibt gegenüber einem Teil des Netzwerks an, einen Block A zu akzeptieren, und gegenüber einem anderen Teil, Block B. Ohne Mechanismen zur Fehlererkennung könnten dadurch inkonsistente Zustände entstehen.

Toleranz byzantinischer Fehler

Ein System gilt als byzantinisch fehlertolerant (BFT), wenn es trotz des Vorhandenseins von bis zu f böswilligen oder inkonsistenten Knoten weiterhin korrekt funktioniert. Dies bedeutet insbesondere:

  • Konsistenz: Alle ehrlichen Knoten stimmen über denselben Systemzustand überein.

  • Verfügbarkeit: Das System kann weiter Transaktionen verarbeiten.

  • Integrität: Falsche Informationen beeinflussen nicht das endgültige Ergebnis.

Zur Erreichung dieser Eigenschaften müssen BFT-Systeme speziell entwickelte Konsensprotokolle einsetzen, die auch unter adversen Bedingungen korrekt arbeiten.

BFT-Konsensprotokolle

Zur Bewältigung byzantinischer Fehler existieren spezielle Konsensmechanismen, darunter:

  1. PBFT (Practical Byzantine Fault Tolerance)
    Ein deterministisches Protokoll, das durch dreiphasige Kommunikation (Pre-Prepare, Prepare, Commit) Konsens zwischen n ≥ 3f + 1 Knoten herstellt. Wird z. B. in Hyperledger Fabric verwendet.

  2. IBFT (Istanbul BFT)
    Eine optimierte Variante von PBFT, häufig in permissioned Blockchains (z. B. Quorum) verwendet. Bietet hohe Finalität bei geringer Blocklatenz.

  3. Tendermint
    BFT-basiertes Protokoll mit deterministischem Konsens und Blockfinalität. Wird z. B. in Cosmos eingesetzt.

  4. HotStuff
    Modernes BFT-Protokoll mit linearer Kommunikationskomplexität. Grundlage für das Libra (Diem) Projekt von Meta.

Diese Protokolle sind in der Regel für kleinere, kontrollierte Netzwerke konzipiert, da die Kommunikationskomplexität mit der Teilnehmerzahl steigt.

Voraussetzungen und Einschränkungen

Zur Tolerierung byzantinischer Fehler gelten strikte mathematische Bedingungen. Insbesondere:

  • Für f tolerierbare Fehler müssen mindestens n ≥ 3f + 1 Knoten vorhanden sein.

  • Für Konsensbildung ist die Zustimmung von mindestens 2f + 1 Knoten erforderlich.

  • Die Kommunikation muss authentifiziert und verifizierbar sein (z. B. durch digitale Signaturen).

  • Knoten benötigen ein verteiltes Vertrauensmodell, oft durch ein Membership Management.

Zudem sind BFT-Protokolle netzwerkintensiv und erfordern häufige Nachrichtenrunden, was ihre Skalierbarkeit begrenzt. Für große öffentliche Blockchains wie Bitcoin oder Ethereum ist BFT daher nicht praktikabel.

Vergleich zu anderen Fehlermodellen

Fehlertyp Verhalten des Knotens Fehlerursache Fehlertoleranz (n)
Crash Fault Vollständiger Ausfall Stromverlust, Softwareabsturz n ≥ f + 1
Omission Fault Nachricht wird nicht gesendet/empfangen Netzwerkstörung, Pufferüberlauf n ≥ f + 1 bis n ≥ 2f + 1
Byzantine Fault Beliebiges, potenziell böswilliges Verhalten Angriff, Softwarekompromittierung n ≥ 3f + 1

Byzantinische Fehler sind damit das allgemeinste und gefährlichste Fehlermodell, da sie alle anderen enthalten.

Anwendungen in der Blockchain-Technologie

In Blockchain-Systemen ist byzantinische Fehlertoleranz von zentraler Bedeutung, insbesondere in folgenden Kontexten:

  1. Permissioned Blockchains: z. B. Quorum, Hyperledger Fabric, Tendermint-basierte Systeme

  2. Konsortiumsnetzwerke: Zusammenschluss vertrauenswürdiger Organisationen mit Governance-Modell

  3. Kritische Infrastrukturen: Gesundheitswesen, digitale Identitäten, staatliche Register

  4. Token-Netzwerke mit sofortiger Finalität: z. B. Stablecoins im Interbankenverkehr

Public Blockchains wie Bitcoin und Ethereum verwenden keine klassischen BFT-Protokolle, sondern setzen auf probabilistische Konsensmechanismen wie Proof-of-Work oder Proof-of-Stake, die durch wirtschaftliche Anreize byzantinisches Verhalten indirekt unterbinden.

Fazit

Byzantine Faults stellen das komplexeste Fehlermodell in verteilten Systemen dar und modellieren ein Verhalten, das beliebig fehlerhaft, inkonsistent oder böswillig sein kann. Die sichere Handhabung solcher Fehler erfordert speziell entwickelte Konsensprotokolle und hohe Redundanz im Systemaufbau. In Blockchain-Anwendungen sind BFT-Mechanismen insbesondere in kontrollierten Netzwerken mit hohem Sicherheitsbedarf unverzichtbar. Trotz ihrer Komplexität bieten sie dort den entscheidenden Vorteil sofortiger Finalität und integrer Konsensfindung, auch unter potenziell schädlichem Verhalten einzelner Teilnehmer.