节点与容错
BFT 系统中,节点分为诚实节点和拜占庭节点(恶意或故障节点)。系统的安全性取决于两者的比例。
节点类型
| 类型 | 行为 |
|---|---|
| 诚实节点 | 按协议规则行事,发送真实消息 |
| 崩溃节点 | 停止响应(不发送消息),但不发送错误消息 |
| 拜占庭节点 | 可能发送任意错误或矛盾的消息,主动作恶 |
崩溃节点是较轻微的故障,只需 n ≥ 2f+1 即可容忍;拜占庭节点是最严重的故障,需要 n ≥ 3f+1。
容错边界
4 个节点,最多容忍 1 个拜占庭节点:
✓ 1 个拜占庭 + 3 个诚实 → 系统正常
✗ 2 个拜占庭 + 2 个诚实 → 系统可能无法达成共识
网络分区
BFT 算法在同步网络假设下工作最好(消息在有限时间内送达)。在异步网络中,根据 FLP 不可能定理,不存在同时保证安全性和活性的共识算法。
现实中的 BFT 实现(如 Tendermint)通过引入超时机制,在部分同步假设下工作。
在演示中体验
在节点演示页面,你可以:
- 查看 4 个节点的当前状态(诚实/拜占庭)
- 标记某个节点为拜占庭节点,观察系统如何在容错范围内继续工作
- 超过容错上限时,观察系统无法达成共识