拜占庭将军问题的起源

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拜占庭将军问题的起源相关的知识,希望对你有一定的参考价值。

参考技术A

拜占庭位于如今的土耳其的伊斯坦布尔,是东罗马帝国的首都。由于当时拜占庭罗马帝国国土辽阔,为了防御目的,因此每个军队都分隔很远,将军与将军之间只能靠信差传消息。 在战争的时候,拜占庭军队内所有将军和副官必需达成一致的共识,决定是否有赢的机会才去攻打敌人的阵营。但是,在军队内有可能存有叛徒和敌军的间谍,左右将军们的决定又扰乱整体军队的秩序。在进行共识时,结果并不代表大多数人的意见。这时候,在已知有成员谋反的情况下,其余忠诚的将军在不受叛徒的影响下如何达成一致的协议,拜占庭问题就此形成。

易理解的拜占庭将军问题——深入剖析

参考技术A

拜占庭将军问题和两军问题实质是不一样的,不能混为一谈。其中两军问题如下图所示:

两军问题描述:

和拜占庭将军问题有一定的相似性也有不同之处,所以我们必须注意的是:

两军问题的根本问题在于信道的不可靠,也就是信号做不到真正的同步,那么想要做到真正的同步唯一的办法就是量子通信——毕竟遇事不决量子搞定:

到底是一个关于一致性和正确性的算法问题。针对的是忠诚的将军,因为叛徒可以做出任何超出约定的判断。我们就是要在有叛徒的干扰下,找到一个抗干扰的算法。

类似TCP/IP的三次握手,我们也同样的是采用容错机制,通过限制一部分条件最后使得在有叛徒的情况下依然能够得到信息的真实性。

失效说明:

满足以下三个条件的方式称为口头协议:

对于正整数 和 ,当图 是 -正则的是,定义算法 OM(m, p)

在算法中,司令官发送一个签名的命令给他的每个副官。然后,每个副官添加他的签名到命令上,并发送给其他副官,收到命令的副官再添加他的签名发送给其他副官......

算法还假定了一个 choice 函数,作用在一个命令的集合上来获得一个单独的命令。 choice 函数需要满足:

例如, choince 函数可以是取有序集合 的中位数。

令 指由将军 签名的命令值 , 指命令指 由将军 签名后再由将军 签名。令将军 为司令官,每个副官 维护一个命令集 ,包含他收到的被正确签名的命令值。(如果司令官是忠诚的,这个值集的元素不会超过一个)。

书面协议的结论非常令人兴奋,这不是解决了拜占庭将军问题了吗?但请注意我们在A1~A4中实际上是添加了一些条件的,这使得拜占庭将军问题在这些假设下能够解决,但是在实际状况中却会有一些问题。观察A1-A4,我们做了一些在现实中比较难以完成的假设,比如:

以上是关于拜占庭将军问题的起源的主要内容,如果未能解决你的问题,请参考以下文章

易理解的拜占庭将军问题——深入剖析

什么是拜占庭将军问题

什么是拜占庭将军问题

什么是拜占庭将军问题

[区块链] 拜占庭将军问题

转载文章拜占庭将军问题深入探讨