细说拜占庭将军问题和类两军问题

比特币或者说区块链技术的一个重要成就,就是解决了拜占庭将军问题。说到拜占庭将军问题,不得不提的还有类两军问题。

这些听起来像军事理论的东西,为什么会和区块链联系起来呢?拜占庭将军问题其实是一个共识问题。首先由莱斯利兰.波特与另外两人于1982年提出。核心描述是军中可能有叛徒,却要保证进攻一致。由此引申到了计算领域,发展成了一个容错理论。随着比特币的出现和兴起。这个著名的问题又重新进入了大众视野。

关于拜占庭将军问题,我们来做一个简单的描述。拜占庭帝国想要进攻一个强大的敌人,为此派出了十支军队去包围这个敌人。这个敌人虽然不比拜占庭帝国,但也足以抵御五支常规拜占庭将军军队的同时进攻。基于一些原因,这十支军队不能集中在一起,单点突破,必须分开包围状态下同时进攻。他们任何一支军队单独进攻都毫无胜算。除非有至少六支部队同时进攻才能攻下敌国。他们分散在帝国的四周依靠通信兵相互通信来协商进攻意向及进攻时间。困扰这些将军的问题是他们不确定他们中是否有叛徒。叛徒可能擅自变更进攻意向或者进攻时间。在这种状态下,拜占庭将军们能否找到一种分布式的协议来让他们能够远程协商从而赢取战争的胜利。这就是拜占庭将军问题。

应该明确的是拜占庭将军问题中并不是去考虑通信兵是否会被截获或者无法传递信息等问题。及信息传递的信道是绝无问题的。兰波特已经证明了在消息可能丢失的不可靠信道上试图通过信息传递的方法达成一致性是不可能的。所以在研究拜占庭将军问题的时候我们已经假定了信道是没有问题的。并在这个前提下去做移植性和容错性的相关研究。如果需要考虑信道是有问题的,这就涉及到另一个问题了——那就是两军问题。

如咱们图中所示:a军驻扎在沟渠里,b军分散在沟渠两边。a军比任何一只b军都要强大。但是b军若能同时进攻则能够打败a军。他们不能够远程沟通。只能通过派遣通信兵穿过渠道去通知对方b军协商进攻时间。是否存在一个能使b军必胜的通信协议,这个就是两军问题。

看到这里,我们可以发现两军问题和拜占庭将军问题有一定的相似性。但我们必须注意的是通信兵是通过敌人的渠道,在这个过程中他可能被捕。也就是说两军问题中信道是不可靠的,并且其中没有叛徒的说法。这就是两军问题和拜占庭将军问题的根本性不同。对于两个问题的一致性解决方法,就涉及到了计算机算法的一些问题了。如果大家感兴趣,可以去深入的研究。

你可能感兴趣的:(细说拜占庭将军问题和类两军问题)