Skip to content

拜占庭故障

Byzantine failure

故障进程可任意偏离协议并向不同接收者发送矛盾信息。

形式陈述

拜占庭故障允许故障进程任意偏离协议:发送矛盾消息、伪造本地状态、选择性沉默、串谋或按对手策略行动。模型需明确至多 f 个故障、信道是否认证、网络同步程度以及对手是否自适应。正确进程仍按协议执行。拜占庭容错目标通常分为安全性与活性;可容忍比例不是故障定义本身,而由具体模型和任务决定,例如经典无认证拜占庭一致性出现 n>3f 的门槛。

直觉

崩溃进程只是停止工作,拜占庭进程却可能有目的地制造彼此不一致的现实,因此协议必须让正确节点即使收到相互冲突的信息仍保持一致。

例子与边界

一个副本可向节点 A 声称“提交 0”,同时向节点 B 声称“提交 1”,称为 equivocation。数字签名能证明消息来源并限制伪造,但不能阻止持钥故障节点签署冲突消息;阈值和协议仍需重新分析。将网络丢包、软件 bug 或被攻陷节点都粗略称为 Byzantine 之前,必须确定对手能力和信道假设。

推论与应用

该模型用于复制状态机、区块链、航空航天和对抗环境协议。它驱动可靠广播、拜占庭共识、PBFT 和可验证秘密共享等构造。

参考资料
  • Nancy A. Lynch, Distributed Algorithms, Morgan Kaufmann, 1996,Chs. 6 and 14, Byzantine processes and agreement。
  • Miguel Castro and Barbara Liskov, “Practical Byzantine Fault Tolerance,” OSDI 1999,Full paper, Byzantine replica and adversary model。