美文网首页
拜占庭将军问题

拜占庭将军问题

作者: 一冠王 | 来源:发表于2020-02-28 20:12 被阅读0次

拜占庭将军问题是由图灵奖得主Leslie Lamport提出的点对点通信中的基本问题。

东罗马帝国的首都君士坦丁堡地处希腊城邦拜占庭的旧址,于是又被称作拜占庭帝国。由于当时帝国国土辽阔,各支军队都驻扎在相隔很远的地方,军队之间都是靠信使来传递消息。

有一次,拜占庭帝国准备攻打一个同样强大的邻邦,采取兵分多路进行围攻的军事策略。因为对手的军事力量并不逊色,所以各个拜占庭将军必须同时率领自己的军队进行冲锋才能让对手手足无措。但是问题来了,由于各个将军皆身处异地,并且很有可能个别将军是叛徒,那么他会向其他将军传达撤退的假指令。从整体上看,在各个将军之间保证策略执行的一致性是军事战略成功的关键。

口口相传的拜占庭将军问题其实就是在讨论针对上述问题的有效解决方案。

区块链共识中所面临的问题同样如此。由于区块链网络是一个异步通讯系统,也就是说各个节点之间的通讯并不是完全保靠。可能由于网络故障导致通讯的延后或者中断,也可能存在恶意节点而发送错误的信息。

类比到拜占庭背景,就好像将军A要向将军B、C、D传达自己将要进攻或撤退的行动策略。节点间的网络故障就好像将军A派出的信使在送信的过程中被敌方击杀,这个口信可能永远都送不到将军B、C、D的手上;恶意节点就好像将军A是内奸,想要阻止这次军事行动,不但自己准备撤兵,还派信使告诉其他将军也一起撤兵。

所以,各个将军需要在出征之前就商定好对策,如何在上述问题都存在的情况下,保证大家的行动是一致的。要么在约定的时间一起出击攻城略地,要么在约定时间一起撤退坚守城池,而不会出现一部分将军出兵,一部分将军撤退的情况。

后来,Lamport证明出了当将军中叛徒数为x并且将军总数大于3x的情况下,忠实的将军可以达成军事命令上的一致性。

BFT是拜占庭容错,指整个系统内存在恶意节点,它会给其他节点发送假消息,是一种算法的描述属性。而PBFT指的是实用拜占庭容错机制,即一种经过复杂度优化的容错共识算法。这两个概念切莫混淆。

相关文章

网友评论

      本文标题:拜占庭将军问题

      本文链接:https://www.haomeiwen.com/subject/ebyrhhtx.html