Lec 9容错同步共识下界
Lec 9 容错同步共识下界
对应 Lynch《Distributed Algorithms》第 6.4–6.7 节与第 7.1 节 · 主题:拜占庭 、网络连通度、任何共识 轮下界与 k-agreement
TL;DR
- 借助六边形系统构造与不可区分性拼接,严格证明拜占庭共识在无签名情况下必须满足进程数 (弱拜占庭亦无法逾越此界)。
- 在不完全网络中,网络拓扑需满足连通度 ,以防御恶意节点在顶点割上的双面欺骗。
- 即使仅存在停止故障,任何确定性共识算法都至少需要 轮;将一致性放宽到至多 个决定值时,紧界为 轮。
1. 本讲要回答的核心问题
Lec 8 的算法代价不菲:拜占庭需 、所有算法都用 轮。本讲证明这些代价并非偶然,而是问题固有的下界:
- 进程数: 拜占庭共识必须 ;
- 连通度: 不完全图上需 ;
- 问题强度: 连弱拜占庭也逃不掉 ;
- 轮数: 即便只有停止故障,也需 轮;
- k-agreement: 放宽到 个决定值,紧界为 轮。
贯穿全讲的技术是不可区分性(indistinguishability)与情景拼接(scenario argument)。
2. 拜占庭需
2.1 基础情形:三进程容不下一个拜占庭故障
引理 6.26. 三个进程无法在一个可能故障的前提下求解拜占庭共识。
证明(六边形论证 / Hexagon Argument). 反设三进程算法 容忍一个拜占庭故障。取 中每个进程的两份拷贝,拼成一个六边形系统 :无撇拷贝 初值 ,带撇拷贝 初值 (首尾相接成环)。
不是用来解共识的——它只是一个合法的同步系统,每个进程只有邻居的局部命名,看不出有重复拷贝;对每个进程而言, 的局部视图与三角形系统 完全一样。设 为 在上述输入下的(唯一)执行:
- 对 看: 像三角形 中“进程 1 故障、2 和 3 初值 0”的执行 (那个“故障的 1”实为 的组合,是合法拜占庭行为)。故 在 决定 ⇒ 在 也决定 。
- 对 看: 像“进程 3 故障、 初值 1”的执行 。故 决定 。
- 对 (连接两侧的边)看: 像“进程 2 故障”的执行 ,迫使 与 一致。
但 决定 、 决定 ——三个视图给出的约束相互冲突, 不可能有良定义行为。矛盾。
直觉: 把两份“输入相反”的算法拷贝缝成一个环,每条边在某个进程眼里都像“对面那半是个故障进程”。算法被迫同时满足两侧互斥的有效性,环上首尾“决定 0”与“决定 1”无法弥合。
2.2 一般情形
把 个进程分成三组,每组 个,用一个三进程系统模拟(每组当一个“超级进程”,组内全故障等价于一个拜占庭进程)。于是 的解会给出三进程容一故障的解,与引理 6.26 矛盾。
定理. 拜占庭共识可解当且仅当 。
3. 不完全图的连通度
完全图之外,拜占庭共识的可解性取决于图的连通度 (删去使图不连通的最少顶点数):
定理. 在 节点图上拜占庭共识可解 当且仅当 且 。
直觉:连通度 时,存在一个 的顶点割把图分成两半;对手用 个故障节点在割上“两面说不同的话”,两半各自被引向不同决定——这是六边形论证在图上的推广。
4. 弱拜占庭也需
**弱拜占庭共识(Weak Byzantine Agreement)**只把有效性减弱为:
弱拜占庭有效性
若无任何故障且所有进程初值同为 ,则只能决定 。 (即:只在“完全无故障”的执行里要求有效,比普通拜占庭弱得多。)
即便如此,同样的六边形/情景拼接方法可证:
定理. 弱拜占庭共识仍需 。
这说明 的壁垒非常稳健——削弱有效性并不能绕过它。
5. 任何共识都需 轮
最重要的轮数下界,即便只有停止故障、即便 也成立:
定理. 不存在能让所有非故障进程在 轮内决定的共识算法(停止或拜占庭)。
不失一般性地假设:完全图、所有进程恰在第 轮末决定并停机、每轮每进程向所有人发消息、。
通信模式是三元组集合 的子集(哪些进程在第几轮发给谁,不含消息内容)。称其好,若:
- 所有 ;
- 停止单调——若 缺失则一切 ()也缺失(进程一旦某轮没发就永不再发);
- 至多 个故障进程。 :::
5.1 先看
反设有 1 轮算法 。构造一条执行链 ,使得:(a) 首执行唯一决定 ;(b) 末执行唯一决定 ;(c) 相邻两执行对某个“两边都非故障”的进程不可区分。
- :全 、无故障,由有效性决定 。
- 逐步删去进程 1 发出的消息(一次一条):删去 后,对除 外的进程不可区分( 故存在这样的非故障进程),决定值不变……删完进程 1 的全部消息。
- 把进程 1 的输入从 0 改成 1:因 1 此时不发消息,对其他进程不可区分。
- 逐条补回进程 1 的消息,到达 (仅进程 1 初值 1、无故障)。
- 对进程 重复,终于 (全 、无故障),由有效性决定 。
链上每步决定值不变,却从 走到 ,矛盾。
5.2 一般 :分块论证
把 ()份 拷贝拼成长链系统 ,用“信息在 轮内传播不到块 中央”的论证:执行 与 对块 中除两端各 个外的进程在前 轮不可区分,于是对 的中央进程 在 轮内不可区分。 在 决定 ⇒ 在 也决定 ,但 中 本应决定 ,矛盾。
直觉: 每“用掉一个故障”只能在不可区分链上推进一步;要把“全 0 决定 0”与“全 1 决定 1”连起来需要 步,故至少 轮。这与 Lec 4 着色下界的“降维/链式”论证同源。
6. k-Agreement:放宽一致性
把“全体决定同一值”放宽为“决定值落在某个大小 的集合里”:
::: definition k-Agreement 规范
- 一致性: 存在 ,,所有决定值 。
- 有效性(强版本): 任何决定值是某进程的初值。
- 终止性: 所有非故障进程最终决定。 :::
6.1 算法 FloodMin
FloodMin: 每进程维护 (初始为自己初值)。共 轮,每轮广播 并更新为收到值与自身的最小者;最后决定 。
正确性核心引理:
引理 7.1. 活跃进程 之集 随 单调不增:。 引理 7.2. 若某轮 至多 个进程故障,则 。
由引理 7.2: 轮中必有一轮故障数 (否则总故障数 ),那一轮起 并保持,故 个决定值。
定理. FloodMin 在 轮内求解 k-agreement。且这是紧的——存在匹配下界 。
7. 本讲小结与下界全景
| 下界 | 结论 | 故障类型 | 技术 |
|---|---|---|---|
| 进程数 | 拜占庭 | 六边形 + 三组归约 | |
| 连通度 | 拜占庭 | 顶点割上的双面欺骗 | |
| 问题强度 | 弱拜占庭仍需 | 拜占庭 | 同六边形方法 |
| 轮数 | 轮 | 即便停止 | 不可区分性链 / 分块 |
| k-agreement | (紧) | 停止 | 收缩 + 组合下界 |
核心方法论:不可区分性——构造一条相邻执行对某非故障进程“看起来一样”的链,迫使决定值无法沿链改变,从而把“显然该决定 0”与“显然该决定 1”逼出矛盾。