AICoin小课堂丨轻松看懂什么是拜占庭将军问题

2年前
标签:拜占庭将军问题010336
文章来源: AICoin信息君

AICoin小课堂丨轻松看懂什么是拜占庭将军问题_aicoin_图1

 

正如前面提到的,区块链是一个分布式的共享账本和数据库,整个网络是完全分散的,没有一个总的指挥中心,需要依靠不同的节点间彼此交换信息,达成共识后,才能统一行动。因此,也就容易存在有节点发送错误的信息,干扰了网络正常运行或者节点间产生分歧的情况。而这一类关于分布式系统一致性的问题,被称为拜占庭将军问题

 

拜占庭将军问题可以简单描述如下:

 

拜占庭帝国想要攻打一个国家,为此派出了10支军队去包围这个国家。虽然被包围的这个国家军事实力不如拜占庭帝国,但能够抵御5支常规拜占庭军队的同时袭击。帝国便命令这10支军队分别从不同的方位对敌国发起攻击,也就是说,这10支军队不能集合在一起单点突破,必须在分开的包围状态下同时攻击。而且他们任意一支军队单独进攻都毫无胜算,除非有至少6支军队同时发起进攻才能攻下敌国。所以,这10支军队被分散在敌国的四周,只能依靠通信兵相互通信来协商进攻意向(进攻或撤退)以及进攻时间。

 

但是依靠通信兵相互通信的话有一个重大的难题,那就是军队的领军人们不确定通信兵中是否有叛徒(或奸细)。如果有叛徒混在其中,并且擅自变更了进攻意向或者进攻时间,那对于军队们取胜是非常不利的。在这种情况下,拜占庭的将军们能否找到一种分布式的协议来让他们能够远程协商,从而赢取战斗,是至关重要的,而这就是著名的拜占庭将军问题。

 

所以,拜占庭将军问题归根结底就是要解决两个问题:①如何防止叛徒发布错误的军令;②如何保证将军们的军令是一致的。

 

如果将分布式网络代入拜占庭问题的话,那么整个分布式网络就相当于拜占庭帝国,而每个节点相当于里面的将军。

 

总的来说,拜占庭将军问题描述的是分布式网络会面临的以下两个问题:

 

1、如何解决各个节点之间的同步问题。假设在没有叛徒的情况下,将军A向其他将军传递进攻方案时,指出在今晚零点一起发起进攻,但将军B可能也同时派出了通信兵去传递今晚凌晨一点发起进攻的决定。

 

2、如何解决恶意节点故意发送错误信息干扰网络的运行的问题。假设在有叛徒情况下,叛徒会向不同的将军传递不同的进攻意向以及进攻时间信息,来干扰其他将军们达成一致。比如将军A向其他将军传递的是进攻意向,并指出在今晚零点一起发起进攻,但叛徒会向将军B传递的是撤退信息,向将军C传递的信息就变为明天早上八点发起袭击。

 

 

诚邀关注AICoin海外社交平台账号
【推特】AICoin中文频道(@AICoin6)
【电报】AICoin官方交流群

 

【仅供参考,若信息有误,请联系更改】

免责声明:本文章仅代表作者个人观点,不代表本平台的立场和观点。本文章仅供信息分享,不构成对任何人的任何投资建议。用户与作者之间的任何争议,与本平台无关。如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到support@aicoin.com,本平台相关工作人员将会进行核查。

评论

暂时没有评论,赶紧抢沙发吧!