Skip to content

定理Theorem

共识与原子广播等价性

施工中 · 内容逐步修订

Equivalence of consensus and atomic broadcast

在固定成员、可靠信道与同一崩溃故障及活性版本下,共识和原子广播可相互归约。

形式陈述 ​

本库的分布式主线可按“可靠广播 → 共识 → 原子广播及其等价定理 → 状态机复制”阅读:可靠广播先固定消息传播与去重责任,共识决定一个值或一个日志位置,本页证明连续共识与全序交付可以互相构造,状态机复制再消费这条一致日志。本页只承担中间的等价定理,不重复定义四个相邻抽象。

固定进程集合 Π 与崩溃上界 f,采用可靠点对点信道和公平异步执行,并让两侧使用同一种 crash-stop 故障模型。本页固定分布式共识的 uniform 一致性,以及原子广播的统一前缀规格:后来崩溃进程已经作出的决定或交付也受安全条件约束,终止性则要求正确进程最终完成。在这组固定参数下,任一原语的实现都能用作黑盒构造出另一个。

辅助可靠广播采用本库的普通 crash 版本:正确发送者的消息最终到达所有正确进程,正确进程一旦可靠交付,其他正确进程也最终可靠交付,且任何进程都不交付伪造或重复消息。这里不额外要求 uniform reliable agreement。每条待排序消息包含全局唯一的 ID 与完整 payload;crash-stop 进程停止前遵守协议,不会为同一 ID 伪造不同内容。

用原子广播实现共识:每个进程广播自己的提议值,并决定自己交付的第一条消息所含的值。统一前缀保证任何两个已决定进程,即使后来崩溃,也取得同一首条消息。

用共识实现原子广播时,先可靠传播完整消息,再依次运行编号为 1,2,3,… 的共识实例。每个进程把自己已经可靠交付、尚未原子交付的完整消息组成有限提案集合。所有正确进程持续参加每个编号实例;本地集合为空时也提议空集,不能等到本地有待排消息才启动该槽位。第 k 个决定值本身包含整批消息的 ID 与 payload;进程过滤已交付 ID,按固定 ID 次序交付其余消息,然后进入第 k+1 个实例。这沿用 Chandra–Toueg Figure 7 的“决定消息集合后直接交付”步骤;持续空提案在这里明确保证 uniform 前缀版本不会漏掉仅由后来崩溃进程先参与的槽位。

决定已经给出了完整内容,因此不再等待本地另一次可靠交付。例如一个进程独自可靠交付 m、将其提议后崩溃,普通可靠广播可能不再把 m 交给任何正确进程;若该提案被共识选中,正确进程仍直接从同一决定集合取得 m。多加一个“等本地可靠交付”的条件反而可能永久阻塞。若提案只含 ID、摘要或存储地址,就不具备这个保证,需要另证 payload 可取回。

安全性按槽位归纳:uniform 共识使所有决定该槽位的进程取得同一消息集合,固定批内排序和 ID 去重再给出共同交付前缀。决定值来自真实提案,每个提案又只含可靠交付过的消息,因此没有伪造;后来崩溃进程交付过的批次,也会随正确进程完成同一槽位而被交付。

还须排除消息饥饿。对正确进程广播的 m,普通可靠传播最终使所有正确进程取得它。若 m 尚未被先前槽位排定,每个进程便把它保留在此后每个提案中。有限个崩溃结束、所有正确进程获知 m 以后,再越过此前已经提交提案的有限个槽位,剩余提案都包含 m;共识的提案有效性迫使对应决定包含它。每个实例终止,正确进程持续参加,所以必会到达这样的槽位。这个论证依赖持续重提和实例进展,不是仅凭“一直调用共识”就自动成立。

这一定理不覆盖动态成员或成员重配置,也不把 crash-stop 归约自动提升为拜占庭版本。后两类模型需要重新定义合法消息、认证、法定人数和活性条件,再分别证明归约。

直觉

原子广播的实质是维护一本所有人一致的日志,而日志无非是"接连不断地回答'下一项是什么'";每一次回答恰好是一个共识问题,所以无穷次共识拼出原子广播。反方向更轻:全序交付的第一条消息本身就是一次全体一致、来源合法且人人可得的决定。这个等价把两个表面不同的抽象钉在同一难度等级上——一个是"就一个值达成一致"的一次性任务,一个是"永远保持同序"的持续性服务,理论上却互为改写。由此得到的方法论收益是双向搬运:关于共识的任何可能性、不可能性或最弱假设刻画,都自动成为关于原子广播的同类结论,反之亦然。

共识与原子广播的双向构造
例子与边界

把"原子广播实现共识"的方向走一遍即可看到各性质如何对号入座:设进程 p 提议 vp 并全序广播。由广播的有效性与一致交付,每个正确进程最终会交付某条第一消息,故共识的终止性成立;由全序性质,所有正确进程交付的第一条消息相同,故一致性成立;又因交付的消息必是某进程实际广播的提议,有效性成立。三条性质分别恰好由广播规格的三个组成部分兑现,这种一一对应正是"等价"的直观内容。

边界方面:仅有可靠广播不足以替代原子广播——它保证消息集合一致却不统一顺序,不同副本按不同交错写日志立即分叉。单独一次共识也不够——一个实例只能决定有限信息,为无穷多条消息定序需要无穷多个实例(或改用多决策的共识变体)。若改变两侧的 uniform 范围、辅助广播的传播责任或终止性量词,即使名称仍叫“共识”和“原子广播”,也须重新证明这些步骤;本页只证明上述 uniform 共识与统一前缀广播版本,其他版本须分别核对已交付消息与故障进程的量词。

推论与应用

这一等价性让可能性与不可能性在两个抽象间迁移。FLP 不可能性说异步崩溃模型中确定性共识无法保证终止,等价性立即推出确定性原子广播同样不可能;Chandra–Toueg 用故障检测器刻画共识可解性的结果,也可转用于原子广播。

工程上,反复运行共识为序列位置填值,可实现复制日志的 committed 前缀;把日志条目按序送入确定性状态机,便得到状态机复制。归约保证的是一致且持续推进的交付序列;本地未提交尾部如何恢复、已交付命令如何持久应用,仍由复制日志和状态机实现分别承担。

参考资料
  • Nancy A. Lynch, Distributed Algorithms, Morgan Kaufmann, 1996,Chs. 14–17, consensus and total-order broadcast reductions。
  • Tushar D. Chandra and Sam Toueg, “Unreliable Failure Detectors for Reliable Distributed Systems,” Journal of the ACM 43(2), 1996,§7、Figure 7:共识决定完整消息集合后直接交付。本文另明确 uniform 前缀目标所需的一致性和持续实例参与条件。
关系图谱9 个相邻概念 · 1 类关系

拖动节点调整位置。

显示关系

显示:依赖

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