第313章 拜占庭容错算法
所以将军B就无法判断将军A和将军C到底哪个是叛徒,因为‘进攻’和‘撤退’的命令各一票,无法形成多数。“同理,将军B在执行这个策略的时候,也没法判断将军A和将军C哪个是叛徒。“这是最简单的一种情况,如果将军的数量变多,比如同时有7个将军,其中有2个是叛徒的话,情况会变得复杂很多,要套娃很多次才能最终得到结论。“所以我才说,这种问题不需要自己真的推算,只要记住结论就行了。“结论就是,当叛徒人数达到三分之一或者更多时,这个问题就不可解。“反过来说,想要让这个问题可解,就要把叛徒人数控制在少于三分之一的情况。“套一下三个房间的人数,就一目了然了。“‘4人房间’,3人答题,所以只要有1名恶意自由人,这个问题就不可解。“‘8人房间’,7人答题,在房间中有3名恶意自由人的情况下,不可解。“‘13人房间’,12人答题,在房间中有4名恶意自由人的情况下不可解。” 郑杰恍然大悟:“原来如此!“所以蔡哥你用这个公式套了一下,立刻就知道‘8人房间’其实是最安全的,因为我们只需要进入1名己方的自由人占位置,这个问题就一定可解。” 秦瑶还是没明白:“等一下,虽然我听得还是不太明白,但这个公式我记住了。“我现在的疑问是,这个拜占庭问题,具体是怎么套到游戏规则里的?” 郑杰自告奋勇地说道:“我来解释吧!“在第二阶段进入房间之后,实际上是‘答题人’和‘出题人’之间的博弈。“比如说,我们在‘8人房间’开黑店,那就是我们来扮演‘答题人’,而其他社区后进入房间的玩家扮演‘出题人’。“我们‘答题人’一方的目标是,达成一致选项,这样就能拿到额外奖励,从‘出题人’身上赚签证时间;“而反过来,‘出题人’一方的目标是,让我们无法达成一致选项。“比较简单的方法是,‘出题人’一方的普通玩家,只要故意跟我们选择不同选项就可以了。“所以,我们才需要设置房间规则,强制这些玩家必须提交多数派选项。“‘提交建议’这个功能,实际上就是在模拟‘拜占庭容错算法’的运算过程,每个玩家都必须强制发送当前的多数派建议,但是会有一定的时间间隔。“所以在一遍一遍地发送之后,除自由人以外,所有普通答题人的建议会变成同一个选项。“之后,游戏规则会强制这些玩家提交这个选项,就达成了‘全员一致’的目标。“但就像蔡哥说的,‘提交建议’的模拟过程,本身需要‘多数派建议达到一定数量’之后才能成立。“‘自由人’玩家,实际上扮演了‘恶意节点’和‘叛徒’,他们会不
—— 本章完 ——
喜欢本书?返回书籍详情,加入书架第一时间接收更新提醒