几员将领各说各话
目录 · 2
有人撒谎、有人传错,队伍还能不能听令?
三支队伍围城,三位将军各守一方,只能靠传令兵互通“几时攻”。可营里混进了奸细,发的令真假难辨;三位将军里,说不定哪位自己就叛了。要是各听各的,必乱。他们立下规矩:每人把听到的号令广播给另两人,再照“多数人说的”行事。即便有一两位说了假话,多数人凑成的真号令,仍能把城攻下。
揭示
这则故事想说的概念是:拜占庭容错(Byzantine Fault Tolerance)。
英文定义(Byzantine Fault Tolerance):The ability of a system to reach agreement even when some components fail arbitrarily or act maliciously, given enough non-faulty nodes.
它属于哪个领域:分布式系统 / 容错(Distributed Systems / Fault Tolerance)
拜占庭容错研究“任意错误(含恶意)”下如何达成共识。需多于三分之一节点作恶时才失效,是区块链等系统的基石。
故事里的隐喻对应什么
- 三将军传令 → 分布式节点
- 混进奸细 → 任意/恶意故障
- 广播再照多数 → 容错阈值(少于三分之一的 恶意)
- 多数真号令攻城 → 达成正确共识