加载中…
正文 字体大小:

比特币与拜占庭将军问题

(2018-01-23 21:26:27)
标签:

杂谈

比特币

区块链

分类: 拜占庭将军问题

1. 起源

        拜占庭是古东罗马帝国的首都,当时拜占庭罗马帝国国土辽阔,因此每支军队都分隔很远,将军与将军之间只能靠信差传递消息。在战争的时候,拜占庭军队内所有将军必需达成一致的共识才能行动。但是,在军队内有可能存有叛徒和敌军的间谍,左右将军们的决定。即便达成共识,结果可能并不代表所有忠诚将军们的意见。这时候,在已知有不忠诚将军的情况下,其余忠诚的将军在不受叛徒的影响下如何达成一致的协议,就是所谓拜占庭将军问题。

2. 点对点通信(Peer to Peer)

        P2P网络是指位于同一网络中的每台计算机都彼此对等,各个节点共同提供网络服务,不存在任何“特殊”节点,每个网络节点以扁平(flat)的拓扑结构相互连通。各节点之间的通信即为点对点通信。
p2p网络模型

        对比中心化网络,在P2P网络中不存在任何服务端(server)、中央化的服务。P2P网络的节点之间交互连接、协同,每个节点在对外提供服务的同时也使用网络中其他节点所提供的服务,每个节点即是服务端又是客户端。P2P网络不仅仅去除了中心化带来的风险(中心化可能作恶),还可以提高传输的效率。

3. P2P网络中的拜占庭将军问题

         P2P网络中的每个节点对等,没有网络中心,那么确认一个节点的行为是否有效,需要全网或者代表全网的多个节点达成共识,如何达成这样的共识,在P2P网络中解决这样的问题实质上与传统的拜占庭将军问题类似。

4. 比特币与互联网

        比特币的设计是一种点对点的电子现金,适用去中心化的P2P网络,现代互联网是世界上最大的P2P网络,为比特币提供了最佳应用场景,也让比特币成为全球通用数字货币成为一种可能。

       按照比特币的设计,所有参与比特币的节点会同时进行一种计算,目的是找到一个极大的且满足一定条件的数,当某一个节点最先计算出这样一个数时,它会提交所有节点进行确认,这个结果的有效性需要全体节点达成共识,才能给予其比特币的奖励,因为所有的节点都想获得奖励,如果有节点抢先得到结果,就有可能有其他节点想要欺骗或窃取该成果,那么如何达成正确的共识实际上就是解决类似拜占庭将军问题。

5.比特币中的拜占庭问题解决

        从前面的叙述中,我们可以看出要想解决拜占庭将军问题,实际上是存在一定的前提条件的。

        一是不能所有的将军都是叛徒,因为这时已经不是达成共识的问题了,问题的性质就变了;二是信息可以正确的传递给对方,也就是说传递的通道是不存在问题的;如果传递通道存在问题,那就没有讨论如何达成共识的必要了。

        比特币采用密码技术,设计区块链机制解决了拜占庭将军问题,使得共识能够顺利而准确的达成。

        (一)密码技术。采用签名密码算法,节点使用保密的私钥签名,网络中的任何节点都可以通过公开的密钥确认节点身份的真实性,也就是解决了节点的“忠诚”问题 

        (二)区块链机制。这是一种天才的设计,是将各种现有的技术完美结合而形成的一种共识机制。全网将达成的共识形成一个结构化的区块,其中使用密码技术保证数据的真实性、防篡改性,以后的每一个共识都采用区块记录,并将所有的区块按时间顺序形成链条,每个节点都可以验证区块的真实性,区块链上的每个区块就是每一个共识。

     

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
前一篇:关于区块链
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

    < 前一篇关于区块链
      

    新浪BLOG意见反馈留言板 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有