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

拜占庭将军问题 / 拜占庭容错

作者: 江南_烟雨 | 来源:发表于2019-01-26 18:29 被阅读0次

Byzantine Generals Problem / Byzantine Fault Tolerance

  • 拜占庭将军问题也就是分布式网络一致性问题(Distributed Consensus)
  • 拜占庭容错是莱斯利·兰伯特(Leslie Lamport)用来描述分布式系统一致性问题时,在论文中抽象出的著名的例子
  • 莱斯利·兰伯特是美国计算机科学家,是2013年图灵奖得主
  • 拜占庭将军的故事大意:

1.拜占庭(古希腊城市,现今土耳其伊斯坦布尔,旧名叫做君士坦丁堡)。拜占庭帝国,即东罗马帝国。
2.拜占庭帝国想进攻一个强大的大人,派10支军队包围敌人。敌人虽不比拜占庭帝国强大,但是足以抵御5支拜占庭帝国军队同时进攻。这10支军队分开包围,任何一支单独进攻都毫无胜算,至少需要6支军队同时袭击才能得胜。
3.拜占庭帝国的这10支军队分散在敌国四周,依靠通信兵起码相互通信来协商进攻或者撤退。各支军队行动策略限定为进攻或撤退2种。
4.问题在于:

     a.没有叛徒情况下,一个将军提出进攻提议,其他将军同事发出了不同进攻提议。出于时间差异,不同将军收到并认可的提议就是不同的;
     b.将军中可能出现判断;
     c.拜占庭将军问题不考虑通信兵是否被截获或无法传递信息等问题,也就是认为消息传递的信道绝无问题。兰伯特已经证明了在消息可能丢失的不可靠通信上,通过消息传递方式达成一致性是不可能的。所以在研究拜占庭将军问题时,已假定信道没有问题。
  • 分布式计算中,不同计算机通过通讯交换信息达成共识,从而按照同一套协作策略来行动。但是有时候系统中成员计算机可能出错而发出错误信息,使得网络中不同的成员关于全体协作的策略得出不同的结论,从而就破坏了系统的一致性。
  • 拜占庭将军问题被认为是容错性问题中最难的问题类型之一。共识算法的核心就是解决拜占庭将军问题。
  • 解决分布式系统一致性问题主要是兰伯特提出的Paxos算法。但是该算法仅仅适用于中心化的分布式系统,这样的系统中没有不诚实节点。
  • 1999年,有人提出了PBFT算法(Practical Byzantine Fault Tolerance, 实用的拜占庭容错算法)。

1.叛徒等于或大于三分之一,拜占庭问题无解;
2.当叛徒数量不到三分之一,那么忠诚将军就至少有三分之二,此时拜占庭问题有解,仍然可以达到容错。

  • 比特币系统通过POW共识机制巧妙地解决了拜占庭容错问题。

1.POW增加发送信息的成本,降低了节点发送消息的速度,保证一段时间内只有一个节点广播消息,同时在广播上附上签名。这样就解决了因为时间差而导致消息传递不一致的问题;
2.对于将军做叛徒的问题,比特币系统的解决方案就是,让比特币网络中每个节点没有动机和动力做叛徒。

     a.POW工作量证明机制提高了做叛徒(发布虚假区块)的成本,在工作量证明下,只有第一个完成证明的节点才能广播区块,竞争难度非常大,需要很高算例,如果不成功其算力就白白的耗费了(算力是需要成本的),如果有这样的算力作为诚实的节点,可以获得很大的收益(这就是矿工所作的工作),这也实际就不会有做叛徒的动机,整个系统也因此而更稳定。
     b.对于51%攻击问题,那更是提高了做叛徒的成本。拥有这么大的算力的,自然就是希望依赖比特币系统而盈利的,当然更不会造假而损坏自身利益。
     c.当然很多人批评POW工作量证明机制造成巨大的电力浪费,促使人们去探索新的解决一致性(共识)问题的机制:权益证明机制(POS : proof  of  Stake)是一个代表。在拜占庭将军问题的角度来看,它同样提高了做叛徒的成本,因为账户需要首先持有大量余额才能有更多的几率广播区块。如果已经拥有这么大的利益,当然更不会造假而损坏自身利益了。

相关文章

  • 浅读共识算法

    PBFT(拜占庭容错实用算法) 拜占庭问题:拜占庭将军问题是一个协议问题,拜占庭帝国军队的将军们必须全体一致的决定...

  • 拜占庭将军问题 / 拜占庭容错

    Byzantine Generals Problem / Byzantine Fault Tolerance 拜...

  • 拜占庭将军问题与拜占庭容错

    拜占庭将军问题 拜占庭将军问题是有关于共识如何达成的。用一个故事可以说明: 很久以前,有一个强大的帝国叫作拜占庭,...

  • 区块链技术基础—常见共识算法

    拜占庭将军问题 提到共识算法就不得不提到拜占庭将军问题。 拜占庭将军问题,是由莱斯利·兰波特在其同名论文拜占庭将军...

  • 拜占庭容错(BFT)

    拜占庭容错是一个定义容许属于拜占庭将军问题失败类别的系统的特性。One example of BFT in use...

  • 图解分布式raft协议

    主要是介绍简化版拜占庭将军问题的解决方案:Raft 共识算法。 拜占庭将军问题是分布式领域最复杂、最严格的容错模型...

  • 区块链04之拜占庭将军问题

    Byzantine Generals Problem 中文:拜占庭将军问题 解释 拜占庭将军问题(Byzantin...

  • 三. 区块链系统的核心之一-分布式共识机制

    区块链系统的核心之一-分布式共识机制 1 拜占庭将军问题 1)拜占庭将军问题由来 拜占庭将军问题(Byza...

  • firstday--拜占庭之口头协议

    拜占庭将军核心描述:军中可能有叛徒、却要保证进攻一致、由此发展成容错理论 问题场景:拜占庭将军想要攻打一个强大的敌...

  • 什么是拜占庭将军问题

    拜占庭将军问题也被称为“拜占庭容错”。是Leslie Lamport(2013年的图灵讲)用来为描述分布式系统一致...

网友评论

      本文标题:拜占庭将军问题 / 拜占庭容错

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