如何用区块链技术解释拜占庭将军问题?

2019-03-16  本文已影响0人  集佰客资源共享平台

拜占庭将军问题很多人可能听过,但不知道是什么意思,

今天小编就让你三分钟看懂区块链智慧是如何解决拜占庭将军问题的。

拜占庭:

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

问题“来源”:

拜占庭帝国即中世纪的土耳其,拥有巨大的财富,周围10个邻邦垂诞已久,但拜占庭高墙耸立,固若金汤,没有一个单独的邻邦能够成功入侵。任何单个邻邦入侵的都会失败,同时也有可能自身被其他9个邻邦入侵。拜占庭帝国防御能力如此之强,至少要有十个邻邦中的一半以上同时进攻,才有可能攻破。

然而,如果其中的一个或者几个邻邦本身答应好一起进攻,但实际过程出现背叛,那么入侵者可能都会被歼灭。

于是每一方都小心行事,不敢轻易相信邻国。这就是拜占庭将军问题。

问题”核心“:

拜占庭假设是对现实世界的模型化,由于硬件错二误、网络拥塞或断开以及遭到恶意攻击,计算机和网络可能出现不可预料的行为。拜占庭失效是指一方给另一方发送消息,另一方没有收到,或者收到了错误的信息的情形。简单说就是解决信息传递的一致性”和“正确性”问题。

问题”解决方案“:

解决方案一:口头协议

各个国家派信兵向其他所有国家传达口信,每个国家再将自己收到的口信传达给其他国家以供决策,最终多数投票即为共识。最终达成以下三点:

1、每个被发送的消息都能够被正确投递;

2、信息接受者知道消息是谁发的;

3、沉默(不发消息 ) 可以被检测;

解决方案二:书面协议

如果不形成共识会导致失败

各个国家派信兵向其他国家发送书面信息,并附其签章,其他国家收到书信后附上自己的意见与签章再发给剩余国家,最终得到共识。实现了以下三点:

1、签章有记录,解决溯源问题

2、签章难以伪造,篡改会被发现

3、任何国家都可验证其他国家的签章真伪

解决方案三:区块链技术,信息同步,达成共识

中本聪在比特币白皮书中,通过“比特币协议”给出了终极解决方案。

1、引入“工作量证明”机制(PoW),只有第一个完成规定计算工作的国家才能传播信息,从而保证一段时间内只有一个提案。

2、引入非对称加密算法,为信息传递提供签名技术支持,以保证消息传递的私密性,且不可抵赖、不可篡改。

于是10个国家组成了这样一个分布式网络:

1、每个国家都有一份实时与其他国家同步的消息账本。

2、账本里有每个国家的签名都是可以验证身份的。如果有哪些消息不一致,可以知道消息不一致的是哪些国家。

3、尽管有消息不一致的,只要超过半数同意进攻,少数服从多数,共识达成。

由此,在一个分布式的系统中,尽管有坏人,坏人可以做任意事情(不受protocol限制),比如不响应、发送错误信息、对不同节点发送不同决定、不同错误节点联合起来干坏事等。但是,只要大多数人是好人,就完全有可能去中心化地实现共识。

上一篇下一篇

猜你喜欢

热点阅读