区块链应用技术上的拜占庭问题深度解析

了解过区块链的人相信都听说过拜占庭问题,这个问题是1982年,由 Leslie Lamport 与另外两人提出的,注意看年份,这个问题肯定不是拜占庭的将军们提出的,所以这是一个科学假设,但不可否认,现实中处处都有这样的问题!

这是一个非常有现实意义的科学问题,如果能解决,将会对人类社会产生重大影响。然而可惜的是,在比特币诞生之前,没有人真正意义上解答出过这道题。

拜占庭将军问题

拜占庭将军问题的故事大概是说:在富裕的拜占庭帝国周边有10个一直想侵占拜占庭这块沃土的邻邦。而这些邻邦又没有独自战胜拜占庭帝国的能力,需至少一半的邻邦才可获胜,并且要时刻提防其他邻邦的入侵。在这种没有信任基础的情况下这10个邻邦要如何达成共识,完成占领拜占庭帝国的目的,这是一个令人困扰的问题。

拜占庭将军问题还作出了,10个邻邦中可能有叛徒的假设,叛徒在传递信息时可以不受限制的传播假消息,故意混淆视听。这就更加大了达成共识的难度,也使得这个问题更贴合实际。

如果再考虑到没有人可以统一发号施令,消息传递过程中被篡改,收到的消息不能确认是本人所下达等问题,统一的行动步调将更难达成。面对如此错综复杂的问题“中本聪”又是怎么解决的呢?

分布式和去中心化

细看一下这个问题就能发现,这是一个分布式和去中心化结构的问题,区块链正是拥有着这样的特点。首先这里没有一个中心领导机构,不可能让每个邻邦同时发布自己的命令,那样的话就会乱套,不知道究竟听谁的。所以在决策每一个问题时都需要一个公平的方式选举一个代表来发号施令。

比特币采用了工作量证明的方式选取一个节点进行广播。基本逻辑是大家一起做一道数学题,最先算出答案的获得记账权。因为计算出数学题需要庞大的计算量和算力,所以需要耗费大量的电力。相对于说谎,花费这么大的电力就显得得不偿失,这也有效的杜绝了作恶。

现在已经有了可信任的发号施令者,接下来就要保证消息可以准确传递,叛徒的假消息无法破坏整体行动。关于这一点,需要所有的将军们能够直接互相通讯,而不是通过某个邮件服务商中转,否则就又不安全了。于是,还有一个技术是必须的,那就是点对点传输技术,这一概念WIKI上说1964年就有人提出。

点对点传输

比特币就是采用了点对点传输的方式。在传输的过程中为了信息的安全可靠,运用了非对称加密和哈希加密算法等加密算法,保证了信息传递时不可篡改,加密不可逆,真实性可确认。事实上让人感到耳目一新的非对称加密算法直到1976年,才由Whitfield Diffie 与 Marty Hellman 共同发明。

通过非对称加密技术,我们又完美解决了两个问题:

1,因为每个人都是自己的密钥,进一步加强了安全性。

2,自己的密钥是公钥和私钥配对的,这样你发送了那些信息,转发了那些信息,在加密和解密的过程中,天然就会被记录。

这样一来,就可以确保收到的信息没有被篡改且是对方所发。比特币又制定了信息全网同步的规则,所以你的行动会告知每一个人,只要叛徒的数量不超过一半(超过一半本就不可能获胜)。在追随多数人的行动的前提下,就可以达成共识,占领拜占庭帝国。

共识机制的产生

其实在历史上,曾经有科学家做过一个最小化的沙盘推演,说只要叛徒的数量大于等于三分之一,拜占庭问题就不可解。我们假设拜占庭一共就三个将军ABC:

1,如果发出信息的A是叛徒,那不用说,另外接到信息的两个将军,直接就废了。

2,如果A发出信息,另外两个人有一个是叛徒,这个叛徒就可以告诉另外一个人,A是叛徒,别听他的。另外一个人也很有可能废了,至少迷茫了。

所以,三个人中,只要有一个是叛徒,就会导致三分之二以上的问题,这场仗必输!

我们只能假设,只要大部分将军靠谱就行,但是至少要三分之二以上都靠谱吧,不然你这国家还有存在的意义么?而比特币更牛,说不要三分之二,我们只要51%就能保障系统正常!

区块链解决了拜占庭将军问题,其实也就是解决了在去中心化系统中如何达成共识的问题。比特币运用了工作量证明的方法,在随后的区块链的发展中又出现了权益证明等其他方法。相信随着区块链的发展还会有更多更好的共识机制产生。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180808A1U3TH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券