首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

深入分析中本聪如何用比特币解决在分布式结构中“拜占庭将军”难题的

分布式结构的难题

比特币在被发明的时候,目的是为了做一个分布式去中心化的货币,不会被某个国家或者中心所控制。

可是如果采用分布式结构,在互联网时期就有一个难题,并且这个难题困扰了研究人员很多年。

这个难题叫“拜占庭难题”,讲的是当分布式结构里面存在恶意节点时会产生的一系列后果。

当然Leslie Lamport把它用一个故事表达出来了。

故事简单说来是这样的:

中世纪的土耳其就是拜占庭帝国,富有而强大,但是一旦强大起来则会穷兵黩武,但是拜占庭帝国国土面积很大,军队都是各自镇守一方,如果要进攻,只能靠传令兵来传令(本问题不考虑传令兵被俘虏等情况)。

虽然拜占庭帝国很强大,敌人也不弱,单一的军队是无法打败敌人的,必须要几位将军领兵一起发动攻击。

那就会存在一个问题,并不是每一个将军都是忠于国家的,里面一定会有叛徒和内奸,并且所有将军都知道他们中间存在叛徒,叛徒可能会影响将军们的决策。

举个栗子

敌国派三个将军A、B、C出兵它国,如果B将军偷偷和敌国联合的话。

那么叛徒可能造成哪些负面效果?

·叛徒可能会故意怂恿其他将军行动。

·叛徒可能迷惑其他的将军,让他们接收到不一样的信息。

假如A将军发布了进攻的命令,而B却告诉C将军,A让我们按兵不动,那么C就会收到进攻和不动两个命令。

到底听哪个命令呢?这样就无法达成一个共识了。

还不懂?再举个栗子

三个小姐姐A,B,C玩的很好。

可是小姐姐B却很虚伪,有次小姐姐A对B和C说,明天周末一起出去玩。

可是B却偷偷对C说,刚A和我打电话,明天活动取消,并且她根本不想和你一起玩,带着你玩纯粹是没办法吧啦吧啦……

那这样就会产生两种结果。

·C到底要不要出去玩?因为A说出去玩,B说A并不想和C出去玩。

·C会对A的友情产生怀疑,A是否是一个虚伪的人?但是又碍于面子不好打电话给A求证,最后塑料姐妹不欢而散。

在拜占庭难题中,只要恶意节点达到1/3,则问题无解。

这个问题是Lamport在1982年在斯坦福帮助NASA完成项目时提出的,提出这个问题也并不是考虑到互联网和比特币的应用场景,当时仅仅是为了解决航天飞机的安全控制系统。

这个问题一直有很大的争议,因为一直都没有一个很好的办法来解决,有的相对解决办法,如口头协议,书面协议,我们就不在这里赘述了。

就算进入互联网时代,也没有一个非常完整的方法来有效的解决这个问题。

直到……

中本聪

比特币创始人

我有很多比特币,来抓我,你来抓我,如果你能抓到我,我就跟你嘿嘿嘿……

中本聪发明的比特币问世,他可以说是简化了这个问题,在每个将军都是同等地位,不存在从属关系的情况下。他用了两个手段,一个是叫工作量证明(POW),一个是奖励机制。

这个工作量证明就是解决了各个将军之间可以随便发信息的问题,比如3个将军,都同时给对方发自己的军令,那就是同时发9条军令。而且现实情况不是复杂的多吗??如果都同时发消息,那早都混乱不堪了。

那中本聪就给大家定了个规矩,按顺序来发令,那几个将军谁也不服谁。怎么办?大家先去做算术题吧,这就是所谓的哈希运算,谁先算出题来,谁就有资格发令,这总公平吧。假如A将军先做出算术题,那么A先发。

那A先做完了数学题,其他将军就停止做算数,然后都在自己这里记录下来,并确认A确实是最先做出算术题的,那就A将军获得发出广播的资格。并且大家重头开始做算术题,还是谁做的快谁先发令,如此往复。

假如叛徒B也解出来了题目,B说是我先解出来的,怎么办呢?没关系,聪哥说了,咱们按解答的先后顺序,给第一个解答出来的盖个章,这个印章上有顺序和时间,这也就是时间戳

那还有了,假如十多个将军,某个将军最先做出算术题,其他将军凭啥帮你确认和记录时间呢?那这就有一个奖励机制了。

参与做题并且记录这个事情的人,都会给一点奖励,这也就是比特币,按照现在的奖励是每挖出一个区块(做一次计算题),其他参与并同意这个事情的人可以分得25个比特币。

但是比特币考虑的环境里,是有两个限制的。

第一:所有节点必须是分布式,去中心化的,也就是说每个将军必须都是平等的,没有一个中心对他们直接下达指令。

第二:必须采用非对称加密的手段,这样每个将军发出的指令和签名不能被篡改。(因为内容比较多并且涉及到拜占庭问题和两军问题的差异,这里就不再赘述,将开新文详细说明)。

拜占庭问题是为了解决由谁来发起信息,并且怎么保证信息的同步和一致性。

而比特币的区块链技术则是解决了由谁来挖出区块,并且让整个链上的所有区块统一的问题。

两者的问题在某些意义上可谓是一样的,虽然在现实环境中有所不同,可是区块链技术却为解决拜占庭难题提供了现行的最合理的方法,也为后继者打开了心的思路。

所以比特币并不只是一串数字,背后所用到的技术和原理解决了相当多的问题,无可否认它是伟大的。

区块链蓝海——蓝海学院

文案|小李子

了解区块链最新资讯,技术干货

区块链课程即将上线

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券