什么是拜占庭将军问题?
拜占庭将军问题由Leslie Lamport于1982年提出。Leslie Lamport是微软研究院的首席研究员。曾获得2013年图灵奖—计算机界的诺贝尔奖。Leslie Lamport有一个特点,他认为用故事来引出理论比较受大家欢迎。因此他在提出观点和问题时常用故事来吸引大家的眼球。拜占庭将军的故事就是Leslie Lamport在研究分布式系统容错时编出的一个故事。
拜占庭帝国是5~15世纪的东罗马帝国,也就是现在的土耳其。拜占庭城邦拥有巨大的财富,它的十个领邦垂涎已久。但拜占庭高墙耸立,固若金汤,没有一个单独领邦可以成功侵入。除非所有领邦一半以上同时进攻,才能攻破。但是这就引发很多问题,比如说其中一个或多个领邦发生背叛,或者有卧底从中捣乱的话,就会导致进攻失败。参与进攻的国家也会因此遭殃。这就是拜占庭将军问题。
拜占庭将军问题归根结底就是要解决两个问题:
第一:怎样防止叛军冒充忠诚的将军发布军令?
第二:怎样保证忠诚将军的军令是保持一致的?
自从拜占庭将军问题被提出,几十年来,科学家提出了很多解决方案,比如说口头协议、书面协议等等。但都存在各种各样局限性。
2008年诞生的比特币却完美的解决了拜占庭将军问题。在区块链当中,拜占庭的将军们被抽象成一个一个用户节点。将军们传播的军令抽象成交易信息。那么相应的拜占庭将军问题就转换成了两个问题。
第一:怎样防止恶意节点冒充诚实节点;
第二怎样保证所有节点记录的交易信息一致性。
对于第一个问题,中本聪使用了非对称加密技术,每一个交易信息都是由发送者使用私钥进行签名。比如说“进攻=A将军”这样,然后传播到其他各个节点,因为恶意节点无法获取发送者的私钥,也就无法对交易信息进行篡改,因此就保证了交易信息的可靠性。
对于第二个问题,为了保证所有节点的交易信息都是一致的,中本聪规定每隔10分钟打包一次交易信息。但是由于节点都有权力打包交易信息,以谁的数据为准?中本聪从Hashcash当中获取了灵感。就是以工作量做的最多的节点打包的数据为准。这样所有节点都只承认工作量最多的节点的数据。这样就可以保证所有节点记录的交易信息的一致性。但这里有一个前提条件,就是恶意节点的算力占全部节点算力的比例要小于50%,不然就会导致我们平常所说的51%攻击。
这样区块链就完美的解决的拜占庭将军问题。
本文来自,仅作分享,存在异议请联系平台删除。本文观点不代表刺猬财经 - 刺猬区块链资讯站立场。