拜占庭容错(BFT)是分布式系统中最强的容错模型。它源于“拜占庭将军问题”,旨在解决在互不信任的环境下,如何让诚实的节点达成共识。

与 CFT 不同,BFT 假设节点不仅会崩溃,还可能表现出任意行为,即存在 拜占庭故障,包括发送错误消息、伪造数据、甚至多个恶意节点合谋破坏系统。

核心假设

  • 拜占庭故障:节点可能表现出任何形式的错误(恶意攻击、软件 Bug、硬件损坏导致的数据错误等)。
  • 互不信任:系统参与方之间没有天然的信任基础。

典型算法

BFT 类算法是区块链技术的核心:

  1. PBFT (Practical Byzantine Fault Tolerance):第一个实用的异步网络环境下的 BFT 算法。
  2. PoW (Proof of Work):工作量证明,通过算力竞争解决拜占庭问题,比特币的核心。
  3. PoS (Proof of Stake):权益证明,通过持有代币的权重来达成共识。
  4. HotStuff:Libra (Diem) 使用的共识协议,具有线性通信复杂度。

容错能力

在包含 个节点的系统中,为了抵御 个恶意节点的攻击,通常需要: 这意味着系统需要至少 以上的诚实节点才能保证安全性和一致性。

应用场景

  • 公有链:如 Bitcoin, Ethereum。
  • 联盟链:如 Hyperledger Fabric (使用插件化共识)。
  • 跨组织协作:参与方之间存在利益冲突或缺乏信任的环境。
  • 高可靠性航空航天系统:防止硬件错误导致的随机数据损坏。