“拜占庭模型是对抗环境下协议设计的基准:复制状态机、区块链、航空航天冗余控制都以它为威胁模型。理论侧,它催生了拜占庭可靠广播、拜占庭共识与可验证秘密共享等原语,各自带有依模型而异的容错阈值;工…”
形式陈述 ​
拜占庭可靠广播把可靠广播的故障假设从崩溃升级为拜占庭故障:在包含发送者的
- 有效性(Validity):若发送者正确且广播了
,则每个正确进程最终交付 ; - 不重复(No duplication):每个正确进程在同一广播实例中至多交付一次;
- 完整性(Integrity,也称 Authenticity):若某个正确进程交付了带发送者标识的
,则 曾在该广播实例中发送 ;有些规格只在 正确时陈述这一项,因为拜占庭进程是否真正“调用了广播”并没有可由其他进程观察的外部语义; - 一致交付(Agreement):若某个正确进程交付了
,则所有正确进程最终都交付同一个 。
经典实现是 Bracha 的异步 echo/ready 协议,工作于
直觉
崩溃模型下的可靠广播只需对抗“消息没发完”,转发即可补齐传播;拜占庭发送者却可能蓄意对不同人说不同话,因此核心任务从补齐传播升级为压制分歧。Byzantine quorum给出关键交叠:每个正确进程对每个广播实例只 echo 一个值,两个越过门槛的证据集必共享正确身份,于是至多一个值能形成证书。ready 阶段再让“已有足够证据准备交付”这一事实扩散并自我放大。分歧压制与交付扩散分别承担 Agreement 的安全部分与传播部分,缺少任一阶段都不能得到完整规格。
例子与边界
取
这引出关键边界:当发送者故障时,协议只保证“要么所有正确进程交付同一个值,要么所有正确进程都不交付”,不保证交付某个预先指定的“真实值”——发送者若对不同人给出不同输入,所谓唯一真实值本就没有定义。另一条边界是模型强度:为崩溃故障设计的可靠广播无法对抗身份冒用、两面话与选择性发送;引入数字签名会防止其他进程伪造发送者的声明,并改变可容忍阈值与协议结构,但持有私钥的拜占庭发送者仍可亲自签署两个矛盾值。因此签名版协议必须重新给出阈值与证明,不能直接套用这里的无签名分析。
推论与应用
拜占庭可靠广播可在纯异步模型中实现,因为发送者故障时允许所有正确进程都不交付;它因此常作为异步拜占庭共识、可验证秘密共享与随机化协议的子例程。在区块或提案传播中,它能保证同一发送者、同一广播实例不会在正确进程处形成两个不同交付结果,却不负责在多个提议者之间选定某一区块高度的唯一内容;后者还需要共识协议补上候选选择与必然终止。知识链条上,它位于崩溃模型的可靠广播与拜占庭共识之间:先把任意发送者的候选压缩到至多一个,再由更强原语解决最终必须决定什么。
参考资料
- Gabriel Bracha, Asynchronous Byzantine Agreement Protocols, Information and Computation 75(2), 1987,pp. 130–143。
- Nancy A. Lynch, Distributed Algorithms, Morgan Kaufmann, 1996,Chs. 1–25。