Skip to content

拜占庭可靠广播

Byzantine reliable broadcast · Byzantine broadcast

即使发送者或接收者存在拜占庭故障,正确进程仍满足一致交付性质的广播原语。

条目类型
模型

形式陈述

拜占庭可靠广播把可靠广播的故障假设从崩溃升级为拜占庭故障:在包含发送者的 n 个进程中,至多 f 个可任意偏离协议,发送者也可能是其中之一;其余正确进程仍须满足下列性质。

  • 有效性(Validity):若发送者正确且广播了 v,则每个正确进程最终交付 v
  • 不重复(No duplication):每个正确进程在同一广播实例中至多交付一次;
  • 完整性(Integrity,也称 Authenticity):若某个正确进程交付了带发送者标识的 (s,v),则 s 曾在该广播实例中发送 v;有些规格只在 s 正确时陈述这一项,因为拜占庭进程是否真正“调用了广播”并没有可由其他进程观察的外部语义;
  • 一致交付(Agreement):若某个正确进程交付了 v,则所有正确进程最终都交付同一个 v

经典实现是 Bracha 的异步 echo/ready 协议,工作于 n>3f、点对点认证信道(接收者可确认消息来自谁,但不使用数字签名)的异步系统中。其常见阈值取法为:收到发送者的值后回送 echo;收到超过 n+f2 个对同一值的 echo(或 f+1 个 ready)后发送 ready;收到 2f+1 个 ready 后交付。具体阈值随模型与变体而异,属于协议设计而非原语定义。

直觉

崩溃模型下的可靠广播只需对抗“消息没发完”,转发即可补齐传播;拜占庭发送者却可能蓄意对不同人说不同话,因此核心任务从补齐传播升级为压制分歧。Byzantine quorum给出关键交叠:每个正确进程对每个广播实例只 echo 一个值,两个越过门槛的证据集必共享正确身份,于是至多一个值能形成证书。ready 阶段再让“已有足够证据准备交付”这一事实扩散并自我放大。分歧压制与交付扩散分别承担 Agreement 的安全部分与传播部分,缺少任一阶段都不能得到完整规格。

Bracha 广播的分叉、交集与阈值
例子与边界

n=4f=1,故障的发送者把 v 发给另外三个正确进程中的两个,把 v 发给剩下的一个。触发 ready 的 echo 门槛是超过 4+12,即至少 3 个 echo;任意两个含 3 个进程身份的 echo 集合至少交叠 2 个身份,其中至少一个属于正确进程,而正确进程不会为两个不同值都发送 echo。因此 vv 不可能同时越过门槛,至多一个值可能被交付——这正是一致性证明的骨架。同时该例也显示了代价:若三个正确进程分裂为 2 对 1,且故障进程不补足任何一边,可能没有值达到门槛,所有正确进程都不交付。

这引出关键边界:当发送者故障时,协议只保证“要么所有正确进程交付同一个值,要么所有正确进程都不交付”,不保证交付某个预先指定的“真实值”——发送者若对不同人给出不同输入,所谓唯一真实值本就没有定义。另一条边界是模型强度:为崩溃故障设计的可靠广播无法对抗身份冒用、两面话与选择性发送;引入数字签名会防止其他进程伪造发送者的声明,并改变可容忍阈值与协议结构,但持有私钥的拜占庭发送者仍可亲自签署两个矛盾值。因此签名版协议必须重新给出阈值与证明,不能直接套用这里的无签名分析。

推论与应用

拜占庭可靠广播可在纯异步模型中实现,因为发送者故障时允许所有正确进程都不交付;它因此常作为异步拜占庭共识、可验证秘密共享与随机化协议的子例程。在区块或提案传播中,它能保证同一发送者、同一广播实例不会在正确进程处形成两个不同交付结果,却不负责在多个提议者之间选定某一区块高度的唯一内容;后者还需要共识协议补上候选选择与必然终止。知识链条上,它位于崩溃模型的可靠广播与拜占庭共识之间:先把任意发送者的候选压缩到至多一个,再由更强原语解决最终必须决定什么。

参考资料
  • 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。
关系图谱7 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
分类位置

上位 / 更一般

下位 / 直接特例

暂未标注直接特例。