节点与容错

BFT 系统中,节点分为诚实节点和拜占庭节点(恶意或故障节点)。系统的安全性取决于两者的比例。

节点类型

类型 行为
诚实节点 按协议规则行事,发送真实消息
崩溃节点 停止响应(不发送消息),但不发送错误消息
拜占庭节点 可能发送任意错误或矛盾的消息,主动作恶

崩溃节点是较轻微的故障,只需 n ≥ 2f+1 即可容忍;拜占庭节点是最严重的故障,需要 n ≥ 3f+1。

容错边界

4 个节点,最多容忍 1 个拜占庭节点:
✓ 1 个拜占庭 + 3 个诚实 → 系统正常
✗ 2 个拜占庭 + 2 个诚实 → 系统可能无法达成共识

网络分区

BFT 算法在同步网络假设下工作最好(消息在有限时间内送达)。在异步网络中,根据 FLP 不可能定理,不存在同时保证安全性和活性的共识算法。

现实中的 BFT 实现(如 Tendermint)通过引入超时机制,在部分同步假设下工作。

在演示中体验

在节点演示页面,你可以:

  • 查看 4 个节点的当前状态(诚实/拜占庭)
  • 标记某个节点为拜占庭节点,观察系统如何在容错范围内继续工作
  • 超过容错上限时,观察系统无法达成共识