区块链共识机制中,常见的一个名词是——拜占庭将军问题。小白每次试图去理解它的时候,百度百科出来的每一个字都认识,但合在一起就觉得晦涩难懂,难以静心看下去。
正是这个心路历程让我有了这篇写作灵感,像小白一样对它复杂的解释缴械投降的人不在少数,想要全面了解区块链,拜占庭将军问题是一个绕不过的门槛,如果小白能通俗易懂的解释拜占庭将军问题,那岂不是为众多小白谋福利。
哈哈。好,为了这个灵感,我看了二十几篇关于拜占庭将军问题的文章,终于有了一些能让我自圆其说的认识。
对话链上ChainUP江南:99%的交易所技术服务新选择——WaaS联盟到底是什么?:随着Filecoin的主网上线在即,链上云平台率先支持FIL/USDT币对,并同步上线300多家交易所。上线一周,各大二线交易所的Filecoin币对及其期货交易量都十分惊人,是什么能让链上云如此敏锐的把握市场动向?
随后,LINK大热,同期链上云推出LINK3L期货,再次带动市场,掀起一波高潮。这背后又是怎样强大的系统能够支撑如此庞大,而且还能快速跟上热门主链和币种开发的服务?
专注优质项目,抢滩优质资产,是什么让链上ChainUP成为区块链行业最受信任和青睐的交易系统服务商?
7月23日晚20:00,链上ChainUP市场部合伙人江南将做客金色微访谈,带你看链上ChainUP在技术服务赛道的乘风破浪。[2020/7/23]
首先,明确一点,拜占庭将军问题不是一个真实的故事,而是学者通过虚拟故事描述的分布式节点传输信息时如何保持数据的一致,即共识这个问题。
现场 | 区块大陆创始人杨扬:Libra第一次向全世界展示了什么叫区块链:金色财经现场报道,2019年第一财经金融科技峰会12月1日在北京举行。区块大陆创始人兼首席科学家杨扬在“区块链与数字货币”高峰对话环节表示,Libra第一次向全世界展示了什么叫区块链,几大互联网巨头和独角兽公司的联盟非常少见。区别于以太坊、比特币的获客生态建设模式,Facebook是一家真正的互联网区块链公司,它拿手上28亿用户来换场景,这是从来没有人干过的事情。但它们为什么会有互信基础,因为大家的利益都被写在区块链上面。[2019/12/1]
拜占庭是真实存在的,拜占庭帝国又称东罗马帝国,是欧洲最悠久的君主制国家,军事力量很强大。莱斯利兰伯特,微软研究院的首席研究员,用一个历史上真实的国家虚拟一个故事,本意是想吸引眼球,让更多的人对共识机制产生兴趣,但谁知这个故事讲的也挺复杂,也被演绎了好几个版本,版本中共同的一点是:拜占庭式一个帝国,富有而辽阔的帝国,有10个部队和10个将军,要发动一场战争。接下来有两个主要的版本。
声音 | OKEx CEO:美国司法体系很复杂 USDT案件短期内不会有什么结果:OKEx CEO Jay Hao发布微博称,USDT案件短期内不会有什么结果,美国的司法体系很复杂、追求程序正义,对于USDT这种新事物不会简单的判决合法或者非法,USDT的律师也有各种手段延缓案件进度,光USDT如何定性这件事就要法庭辩论很久。法制社会的好处是一切可以依法办理,对于法律模糊的案件,需要公开透明的听证和审理。 ????[2019/7/30]
版本一:拜占庭帝国周围有10个小国,每个小国都有部队和将军,这些小国的将军们必须达成共识一半以上同时进攻才能打败拜占庭。
动态 | 新西兰2018年第一热搜为“比特币是什么?”:据新西兰《信报》消息,2018年新西兰人热搜的六大主题出炉,分别为:新的开始,参与赛事,本土英雄,暴风雨天气,丰富多彩和稀奇古怪的问题,生酮饮食法。丰富多彩和稀奇古怪的问题中,第一热搜的问题是“比特币是什么?”,然后是对如何查找IP地址和截屏的查询。[2018/12/19]
版本二:拜占庭有10支军队、10个将军,一起去攻击强大的敌人。这些军队分散在敌国的周边,需要达成协议至少有6支军队同时进攻才能胜利。
如果单纯从故事的名字来判断,应该是版本二更可靠一些,第二个版本的将军才是拜占庭的将军啊,版本一中的将军不是拜占庭的将军。所以,我们以版本二位蓝本,继续研究下去。
拜占庭将军问题的核心是如何让地位平等的10个将军达成共识同时进攻,确保胜利。每个将军各派9个通信兵发出进攻命令,每个将军将受到来自9个将军的信息“进攻”、“何时进攻”、“不进攻”。9个信息都同意进攻,且进攻时间一致的概率太低,迅速达成共识的可能性基本为零。
本身达成共识的概率就太低,实际应用中还有很多其他难点,距离很远,将军不能聚在一起开会;可能有叛徒;通信兵可能被杀;信息被敌国截获;无法确认消息来源的真实性;将军在商量的过程中浪费时间,贻误战机。重重阻挠,很难让各将军达成共识发动进攻。
拿出现叛徒的事来进行示例。为了更好的解释,先将10个将军简化成3个将军。将军A、将军B、将军C,其中将军B是叛徒。将军A对将军B、C发出进攻的消息,将军B发出不进攻的消息,并同时告诉将军C他收到将军A不进攻的消息。此时的将军C混乱了,他没办法判断将军A到底是要进攻还是不进攻?正是由于上述原因,只要三个将军中出现一个叛徒,即叛徒等于1/3,拜占庭将军问题就不可解决。
拿商量过程太长,贻误战机的因素继续举例。还是三个将军,将军A、将军B、将军C,三个将军中没有叛徒。将军A对将军B、C发出明天下午一点进攻的消息,将军B对将军A、C发出明天上午十点进攻的消息,此时将军C也无所适从,到底选择哪个时间进攻?继续将军A发个消息给将军B,我认为下午一点进攻何最合适,原因是……;将军B也发消息给将军A,我认为上午十点进攻最合适,原因是……。等将军A和将军B统一意见,同时再告诉将军C进攻时间时,已经是两天后了。这已经是最简化的模型,没有考虑叛徒和将军C的意见,都如此复杂。
以上只是将问题简化为3个分布式节点,考虑单一因素的影响都很难达成一致,如果节点增多,各种因素交叉影响,那情况将更为复杂。解决这个问题一直没有好的办法。
小结
如果将场景放回现实世界中,那就是一个去中心化的分布式系统,将军们是里面的节点,而节点间通信过程中可能会出现的信息丢失、重复,甚至是内容损坏和篡改问题。如果要让系统运行顺利起来,就需要一个可信的“客观机器”。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。