速读谷 > 游戏小说 > 神的模仿犯 > 第313章 拜占庭容错算法

第313章 拜占庭容错算法(1 / 4)

蔡志远继续解释道:

“比如,现在一共有五名将军,其中两名将军认为应该进攻,而另外两名将军认为应该撤退。“这时候,第五名将军是个叛徒,他告诉进攻的将军『我也会进攻』,又告诉撤退的将军『我也会撤退』。

“于是,想要进攻的将军认为,现在有三支军队同意进攻,超过了半数,所以明天应该进攻。“而想要撤退的将军认为明天应该撤退。

“最后的结果,就是两个将军进攻,两个将军撤退,导致战争失败。

“这就是『去中心化』所带来的问题,因为这五个将军都是平级的,没有一个拥有绝对权限的指挥者,所以在互相商量策略的过程中,就会产生这样的问题。 ”

郑杰恍然点头:“原来如此!那这个办法怎解决呢?也没办法验证具体是哪个将军在说谎吧? ”蔡志远解释道:“其实要解决这个问题很简单:多问几遍就行了。

“假设我是其中一名将军a,而将军b告诉我他要和我一起进攻。

“如果我信了,那就有可能会被骗,因为将军b有可能是叛徒,他可能只跟我说了进攻,跟别人说了撤退。

“所以,这时候我应该再去问将军c,我问他:“将军b跟你说的是进攻还是撤退? '

“然后我再去挨个问其他所有的将军,汇总将军b给他们说的所有信息。

“其他将军告诉我的『将军b给他们的信息』也不一定真实,因为其他将军面可能也有叛徒,可能存在『将军b跟他们说进攻,他们却告诉我将军b说了撤退』这种情况。

“所以,我挨个问一遍『将军b对你们说了什」,如果『进攻』比较多,那我就把将军b的意见记为『进攻』;

“然后再挨个问一遍『将军c对你们说了什」,如果『撤退』比较多,那我就把将军c的意见记为『撤退』。

“就这样,我通过反复套娃的方式,不断地排除少数派答案,最后得出的结论,就是更准确的『多数派答案』。

“在满足『拜占庭容错』的情况下,我们强制要求所有将军都遵守这一套策略,并且必须坚决执行最终的结论。

“那我们就可以确保大家一起进攻或者一起撤退。”

郑杰有些困惑:“在满足『拜占庭容错』的情况下?也就是蔡哥你之前说过的,叛徒人数必须少于三分之一?”

蔡志远点了点头:“是的。

“我们用3名将军的情况来举个例子:

最新小说: CSGO:这个选手太听劝了! CS:坏了,真让他成Goat了 开局一座核心舱 让祸害正道,你做游戏奖励他们? 为了飞升,我只好去做游戏了 落地一把98K LOL:当你将一切做到极致 英雄联盟之巅峰王座 恭喜你被逮捕了 峡谷正能量