这位童鞋,拜占庭将军问题了解一下!

这位童鞋,拜占庭将军问题了解一下!

亚洲财经商学院

刚接触区块链的小伙伴,多多少少都听说过拜占庭将军问题,经常看到或听到某某链使用某某算法解决了拜占庭将军问题,那么究竟什么是拜占庭将军问题呢?

这位童鞋,拜占庭将军问题了解一下!

拜占庭将军问题(Byzantine failures)是由莱斯利·兰伯特提出的点对点通信中的基本问题。含义是在存在消息丢失的不可靠信道上试图通过消息传递的方式达到一致性是不可能的。因此对一致性的研究一般假设信道是可靠的,或不存在本问题。

这位童鞋,拜占庭将军问题了解一下!这位童鞋,拜占庭将军问题了解一下!

感觉一头雾水有木有?别急,看完下面这个故事先......

故事是由一个叫Leslie Lamport的人为了描述分布式系统一致性问题(Distributed Consensus)编的。大致内容如下:

Long long ago,战火纷飞,拜占庭帝国为了抵御来自各个方向的敌人,派出了9支军队守卫边疆。由于敌人十分强大,任何一支军队都无法单独对抗它,除非有至少5个军队联合作战才能打败它。然而军队之间分隔很远,他们之间只能通过信使互相传递消息。困扰9位将军的问题是,他们不确定他们中是否有叛徒(包括信使),叛徒可能擅自变更作战意向或作战时间。在这种状态下,拜占庭将军们怎样才能保证有多于5支军队在同一时间联合作战从而赢得胜利呢?

这位童鞋,拜占庭将军问题了解一下!
这位童鞋,拜占庭将军问题了解一下!

01

假如没有叛徒,将军A提出一个进攻提议:“明日上午10点发起进攻。”然后由信使分别告诉其他的将军,如果一切顺利,他收到了其他4位以上的将军的同意,发起进攻。如果不幸,另外两位将军B和C也在此时发出不同的作战提议(如:撤退,明日下午3点/4点再进攻),由于时间上的差异,不同的将军收到(并认可)的作战提议可能不同,这就可能出现A将军的提议有3个支持者,B将军的提议有4个支持者,C将军的提议有2个支持者等等。以上情况均无法满足5个军队共同作战的条件。这就是拜占庭将军问题的由来。

这位童鞋,拜占庭将军问题了解一下!

02

假如有叛徒存在,这时叛徒会向不同的将军发出不同的作战提议(如通知A明日上午10点进攻, 通知B明日下午2点进攻等等),同时,一个叛徒也会可能同意多个进攻提议(即同意上午10点进攻又同意下午2点进攻),造成消息混乱。

叛徒发送前后不一致的进攻提议,被称为“拜占庭错误”,而能够处理拜占庭错误的这种容错性称为「Byzantine fault tolerance」,简称为BFT。

这位童鞋,拜占庭将军问题了解一下!

相信大家已经可以明白这个问题的复杂性了。

解决方案

在比特币出现之前,解决分布式系统一致性问题主要是Lamport提出的Paxos算法或其衍生算法。Paxos类算法仅适用于中心化的分布式系统,这样的系统的没有不诚实的节点,不会发送虚假错误消息,但允许出现网络不通或宕机出现的消息延迟。

这位童鞋,拜占庭将军问题了解一下!

中本聪在比特币中创造性地引入了“工作量证明(POW )”来解决这个问题。通过POW增加了发送信息的成本,降低节点发送消息的速率,这样就可以保证在一个时间只有一个节点在进行广播,同时在广播时会附上自己的签名。

这个过程就像一位将军A在向其他的将军(B、C、D…)发起一个进攻提议一样,将军B、C、D…看到将军A签过名的进攻提议书,如果是诚实的将军就会立刻同意进攻提议,而不会发起自己新的进攻提议。

以上就是比特币网络中单个区块达成共识的方法(取得一致性)。

这位童鞋,拜占庭将军问题了解一下!这位童鞋,拜占庭将军问题了解一下!

理解了单个区块取得一致性的方法,那么整个区块链如果达成一致也好理解。

我们稍微把将军问题改一下:假设攻下一个城堡需要多次的进攻,每次进攻的提议必须基于之前最多次数的胜利进攻下提出的(只有这样敌方已有损失最大,我方进攻胜利的可能性就更大),这样约定之后,将军A在收到进攻提议时,就会检查一下这个提议是不是基于最多的胜利提出的,如果不是,将军A就不会同意这样的提议,如果是,将军A就会把这次提议记下来。这就是比特币网络最长链选择。

经济学分析

工作量证明其实相当于提高了发布虚假区块的成本。在工作量证明下,只有第一个完成证明的节点才能广播区块,因此竞争难度非常大,需要很高的算力,如果不成功算力就白白的耗费了(算力是需要成本的)。如果有这样的算力作为诚实的节点,同样也可以获得很大的收益(这就是矿工所作的工作),也就减少了节点发布虚假区块的可能,整个系统也因此而更稳定。

这位童鞋,拜占庭将军问题了解一下!

很多人批评工作量证明浪费了巨大的电力,促使人们去探索新的解决共识问题的机制。权益证明机制(POS)就是一个代表,在拜占庭将军问题的角度来看,它同样提高了叛徒的成本,因为账户需要首先持有大量余额才能有更多的几率广播区块。

说到底,共识算法的核心就是解决拜占庭将军问题。

强烈推荐!

中国首家可挖矿的区块链化教育平台

免费囤币,坐等升值!

1500万枚AFCC送!送!送!

(扫码下载【亚财商学院】APP)

精彩推荐

  • 感谢原作者的辛苦创作,如转载涉及版权等问题,请联系我们进行删除处理,谢谢!!

关于我们

  • 亚洲财经商学院(简称亚财商学院)是由亚洲财经发起成立,清华大学等院校合作办学,是中国首家互联网金融黄埔军校。

  • 专为在校大学生、普通投资者、金融从业者、拟从业者等有互联网金融教育需求的用户提供学历教育、职业教育、实践教育、资格认证等四方面培训课程。

联系我们

长按二维码关注我们吧

↓↓↓


分享到:


相關文章: