风险提示:理性看待区块链,提高风险意识!

区块链中的拜占庭将军问题是什么?

1个回答

万良中@IQB6星评价

2020-10-12 23:15:17

区块链中的拜占庭将军问题是什么?

拜占庭帝国,又名东罗马帝国,在历史上是个军事强国,位于现在的土耳其。但这里所说的拜占庭将军问题(Byzantine failures)并不是历史真实事件,而是计算机科学家莱斯利·兰伯特针对点对点通信中的基本问题——分布式系统一致性问题特意编造的故事。

故事是这样编的:拜占庭帝国要去进攻一个敌国,派出了10支军队去包围这个敌国城池,这10支军队必须分开驻扎包围,而这个敌国十分强大,拜占庭军队里的任何一支,想要单独进攻的话都毫无胜算,除非至少超过一半(即6支及以上的军队)同时进攻,才能打败敌人。10支军队的拜占庭将军们不能够聚在一起开会商量“要不要进攻”和“什么时候进攻”,只能依靠通信兵传递信息,万一将军当中存在叛徒,传递了虚假信息,比如告诉其中5个军队去进攻,其它4个军队不进攻,就会导致全盘失败。在这种状态下,拜占庭将军们如何保证有多于6支军队在同一时间一起发起进攻,从而赢取战斗?

因此,拜占庭将军问题的简单描述就是说在互不见面、互不信任的分布式网络中,节点与节点之间如何达成共识,执行真实性的共同行动计划,达到行动一致的结果。

在比特币系统里,一个个分散的节点(矿工),就好比包围敌人的一个个拜占庭将军,如果有矿工作恶制造假账,就好比军队里出现叛徒。向其它节点传送假账就会破坏系统的真实性,而使用POW机制使得矿工需要找到一个正确的随机数才能记账,这个随机数谁都控制不了,这样大家就形成了共识努力去挖矿,这就是我们常说的拜占庭将军问题。