Tolérance aux pannes byzantines (BFT)

The property of a distributed system to reach consensus and operate correctly even when algunos nodes act maliciously or fail arbitrarily.

Byzantine Fault Tolerance (BFT) is the capacity of a network to withstand 'Byzantine faults'—a class of failures where components may not only stop working but also provide conflicting or false information. In a BFT system, consensus is maintained as long as the number of faulty nodes does not exceed a certain threshold, typically defined as (n-1)/3. Unlike simple crash-fault tolerance, BFT assumes that nodes can be adversarial and intentionally attempt to subvert the network.

        graph LR
  Center["Tolérance aux pannes byzantines (BFT)"]:::main
  Pre_distributed_systems["distributed-systems"]:::pre --> Center
  click Pre_distributed_systems "/terms/distributed-systems"
  Pre_consensus_mechanism["consensus-mechanism"]:::pre --> Center
  click Pre_consensus_mechanism "/terms/consensus-mechanism"
  Rel_byzantine_generals_problem["byzantine-generals-problem"]:::related -.-> Center
  click Rel_byzantine_generals_problem "/terms/byzantine-generals-problem"
  Rel_sybil_attack["sybil-attack"]:::related -.-> Center
  click Rel_sybil_attack "/terms/sybil-attack"
  Rel_consensus_mechanism["consensus-mechanism"]:::related -.-> Center
  click Rel_consensus_mechanism "/terms/consensus-mechanism"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 Explique-moi comme si j'avais 5 ans

🛡️ C'est une règle de vote qui permet à un groupe de s'entendre sur un plan, même si quelques personnes essaient de semer la confusion.

🤓 Expert Deep Dive

La BFT est plus complexe que la tolérance aux pannes simples (CFT). Elle nécessite que $2/3$ des nœuds soient honnêtes. Le protocole pBFT a été le premier à être utilisable concrètement avant d'être optimisé par des algorithmes comme HotStuff.

🔗 Termes associés

📚 Sources