拜占庭将军问题—如何在不信任的环境下达成共识

什么是拜占庭将军问题?区块链是如何完美解决该问题的?本文将从拜占庭本质问题,一一对应到区块链场景中,详解 “如何在不信任的环境下,达成真正有效共识?”

拜占庭将军问题—如何在不信任的环境下达成共识

什么是拜占庭将军问题?

拜占庭将军问题由Leslie Lamport于1982年提出。Leslie Lamport是微软研究院的首席研究员。曾获得2013年图灵奖—计算机界的诺贝尔奖。Leslie Lamport有一个特点,他认为用故事来引出理论比较受大家欢迎。因此他在提出观点和问题时常用故事来吸引大家的眼球。拜占庭将军的故事就是Leslie Lamport在研究分布式系统容错时编出的一个故事。

拜占庭帝国是5~15世纪的东罗马帝国,也就是现在的土耳其。拜占庭城邦拥有巨大的财富,它的十个领邦垂涎已久。但拜占庭高墙耸立,固若金汤,没有一个单独领邦可以成功侵入。除非所有领邦一半以上同时进攻,才能攻破。但是这就引发很多问题,比如说其中一个或多个领邦发生背叛,或者有卧底从中捣乱的话,就会导致进攻失败。参与进攻的国家也会因此遭殃。这就是拜占庭将军问题。

拜占庭将军问题归根结底就是要解决两个问题:

第一:怎样防止叛军冒充忠诚的将军发布军令?

第二:怎样保证忠诚将军的军令是保持一致的?

自从拜占庭将军问题被提出,几十年来,科学家提出了很多解决方案,比如说口头协议、书面协议等等。但都存在各种各样局限性。

2008年诞生的比特币却完美的解决了拜占庭将军问题。在区块链当中,拜占庭的将军们被抽象成一个一个用户节点。将军们传播的军令抽象成交易信息。那么相应的拜占庭将军问题就转换成了两个问题。

第一:怎样防止恶意节点冒充诚实节点;

第二怎样保证所有节点记录的交易信息一致性。

对于第一个问题,中本聪使用了非对称加密技术,每一个交易信息都是由发送者使用私钥进行签名。比如说“进攻=A将军”这样,然后传播到其他各个节点,因为恶意节点无法获取发送者的私钥,也就无法对交易信息进行篡改,因此就保证了交易信息的可靠性。

对于第二个问题,为了保证所有节点的交易信息都是一致的,中本聪规定每隔10分钟打包一次交易信息。但是由于节点都有权力打包交易信息,以谁的数据为准?中本聪从Hashcash当中获取了灵感。就是以工作量做的最多的节点打包的数据为准。这样所有节点都只承认工作量最多的节点的数据。这样就可以保证所有节点记录的交易信息的一致性。但这里有一个前提条件,就是恶意节点的算力占全部节点算力的比例要小于50%,不然就会导致我们平常所说的51%攻击。

这样区块链就完美的解决的拜占庭将军问题。

转载声明:本文 由CoinON抓取收录,观点仅代表作者本人,不代表CoinON资讯立场,CoinON不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。若以此作为投资依据,请自行承担全部责任。

声明:图文来源于网络,如有侵权请联系删除

风险提示:投资有风险,入市需谨慎。本资讯不作为投资理财建议。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2019年12月13日 下午5:02
下一篇 2019年12月13日 下午5:03

相关推荐

拜占庭将军问题—如何在不信任的环境下达成共识

星期五 2019-12-13 17:03:02

拜占庭将军问题—如何在不信任的环境下达成共识

什么是拜占庭将军问题?

拜占庭将军问题由Leslie Lamport于1982年提出。Leslie Lamport是微软研究院的首席研究员。曾获得2013年图灵奖—计算机界的诺贝尔奖。Leslie Lamport有一个特点,他认为用故事来引出理论比较受大家欢迎。因此他在提出观点和问题时常用故事来吸引大家的眼球。拜占庭将军的故事就是Leslie Lamport在研究分布式系统容错时编出的一个故事。

拜占庭帝国是5~15世纪的东罗马帝国,也就是现在的土耳其。拜占庭城邦拥有巨大的财富,它的十个领邦垂涎已久。但拜占庭高墙耸立,固若金汤,没有一个单独领邦可以成功侵入。除非所有领邦一半以上同时进攻,才能攻破。但是这就引发很多问题,比如说其中一个或多个领邦发生背叛,或者有卧底从中捣乱的话,就会导致进攻失败。参与进攻的国家也会因此遭殃。这就是拜占庭将军问题。

拜占庭将军问题归根结底就是要解决两个问题:

第一:怎样防止叛军冒充忠诚的将军发布军令?

第二:怎样保证忠诚将军的军令是保持一致的?

自从拜占庭将军问题被提出,几十年来,科学家提出了很多解决方案,比如说口头协议、书面协议等等。但都存在各种各样局限性。

2008年诞生的比特币却完美的解决了拜占庭将军问题。在区块链当中,拜占庭的将军们被抽象成一个一个用户节点。将军们传播的军令抽象成交易信息。那么相应的拜占庭将军问题就转换成了两个问题。

第一:怎样防止恶意节点冒充诚实节点;

第二怎样保证所有节点记录的交易信息一致性。

对于第一个问题,中本聪使用了非对称加密技术,每一个交易信息都是由发送者使用私钥进行签名。比如说“进攻=A将军”这样,然后传播到其他各个节点,因为恶意节点无法获取发送者的私钥,也就无法对交易信息进行篡改,因此就保证了交易信息的可靠性。

对于第二个问题,为了保证所有节点的交易信息都是一致的,中本聪规定每隔10分钟打包一次交易信息。但是由于节点都有权力打包交易信息,以谁的数据为准?中本聪从Hashcash当中获取了灵感。就是以工作量做的最多的节点打包的数据为准。这样所有节点都只承认工作量最多的节点的数据。这样就可以保证所有节点记录的交易信息的一致性。但这里有一个前提条件,就是恶意节点的算力占全部节点算力的比例要小于50%,不然就会导致我们平常所说的51%攻击。

这样区块链就完美的解决的拜占庭将军问题。