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

3分钟看懂拜占庭将军问题,带你高段位装X

今天没有前戏,直接切入正题。

机哥要给你们讲个故事,有趣的“拜占庭将军问题”。

这个问题很关键。因为它不仅是区块链发展的起点,更是过年时候你在兄弟姐妹面前高大上的装X神器。

说得好了你就是那个最有学问的“别人家的孩子”。

01

先聊什么是共识机制,听起来有点懵逼,其实理解起来并不困难。

在中心化的系统里,比如公司,老板说什么就是什么,说往东大家就都往东。

但在一个去中心化的系统里,没有老板这样的角色。

比如今天过年,你们一家三口讨论晚上去哪吃饭。你爸说附近新开一个烧烤店味道不错;你妈不同意,说垃圾食品没营养,要去喝个潮汕砂锅粥;你一听,也不乐意,觉得冬天吃火锅最舒坦。三个人僵持不下。

再比如一个临时搭伙的驴友团,有人想往东,有人要往西,一群人无头苍蝇似的四散。

这种时候,多个完全平等的人,如果能达成一致性的行动,则行动成功。如果达不成一致性,则失败。

那么就需要有一个共识机制来决定最终的行动。

如何通过一个合适的共识机制,让整个系统能做出统一的决定,就是拜占庭问题的本质。

02

拜占庭将军问题其实不像传说中那样,源于公元5世纪的东罗马战场,而是产生于1982年一个美国科学家写论文时的头脑风暴。

拜占庭国土辽阔,为了防御敌人,每个军队都分隔很远,互相之间只能通过信差传递消息。

出行靠走,通讯靠吼。

而战争时,拜占庭军队内所有将军意见必须一致,同时进退才能赢。

此时有5个将军,平级的,要一起决定进攻还是撤退,以及进退的时间。

他们决定投票。每个将军都派出信差,将自己的决定传达给其他四人,这样一来,每个人看到信息后,加上自己的票数,获得3票的就是最终结果。

那么问题来了,困扰这些将军的是:不确定他们中是否有叛徒?叛徒会不会擅自变更进攻意向或者进攻时间?

机哥来帮你们做做题。

如果这5位将军中,有1位叛徒,会有两种情况:

A:

其他4位将军投票,2进攻2撤退时,这个叛徒放出虚假消息:“撤退”。

得到2进攻3撤退的投票结果,最终撤退。

B:

如果4位将军投票,2进攻2撤退时,叛徒狡诈得很,两边骗。

对2位进攻的将军说“进攻”,对2位撤退的将军又说“撤退”。

2位进攻的将军以为:3进攻2撤退,最终进攻;

2位撤退的将军以为:3撤退2进攻,最终撤退。

最终内部混乱,一不小心就亡了。

而且,即使没有叛徒,五位将军一致进攻,但通讯消息不即时,设想的进攻时间不一致,秩序混乱,又怎么办?

能否找到一种办法,让他们能够远程协商,即时沟通,从而赢得胜利呢?

拜占庭将军们到底是聪明啊,还是想到了妙招——工作量证明。

这里我用一个简单的例子给大家解释下,还是上面那5个将军:

互联网时代好啊,机哥给这5个将军分别配了一台电脑,首先这是不是就解决了通讯时间延迟的问题?

但是问题来了,如果这5个将军同时发起决策,决策还有分歧,势必会造成混乱,行动难以一致。那该怎么办?

但如果将军A首先对将军B、C、D、E发起一条决策内容:“我将在明天下午3点进攻,你愿意加入吗?”

将军B、C、D、E看到将军A签过名的决策提议,同意的话,他们也会在上面盖个戳,轮流确认,多重签名。

这种共识机制,就有效地确保了大家行动的统一。

03

再回看我们大中华,继续聊。

战国时期,七雄并立,混战不休。

七国间冲突不断,可外交活动却更加频繁,为什么?

因为在多方意图联手,攻击某一国的时候,都会面临这个所谓的“拜占庭将军问题”——既要合作,又因为每个节点间彼此的不信任,要防范自己被偷袭。

这个问题是非常重要的,也是互联网诞生后技术进化上的一个重要障碍。

试想一下,把上述的“叛徒”替换成:一个故障的发送错误信息的服务器、一份失效的医疗纠纷合同、一个为获取暴利做的假票据......都成立。

如果说这个“叛徒”是我们社会中各类型信息节点的隐喻,那么“拜占庭将军问题”所描述的场景,就是现在难以辨别信息、难以产生信任的社会的悲观隐喻。

在互联网上就是一群完全平等的节点,只能通过通信来协调。如何在没有权威,不能相互信任的基础上,对某个事情达成一致性意见,这是非常有意义的。

04

罗胖曾说:认知不会成为构建共同体的依据,因为它太脆弱。

可是某天,中本聪拍了拍脑袋,提出比特币,拜占庭将军问题有了一种新的思路:区块链技术提供了一种极为灵巧的解决方案。

简单来说就是,比特币就是一个公开的账本,并且实时更新,所有人都在维护它。

如果你要做叛徒,攻击整个网络,在比特币的工作量共识机制下,需要付出巨大的成本:破坏整个网络50%以上的算力。

然而,令人拍案叫绝的是,如果你真的这么666,用这些算力去诚实地挖矿,获得的收益比你当叛徒更高!

这样要怎么选,不用机哥说了吧?

同理,拜占庭将军A发出一条决策后,全网广播,其他将军验证认可他的身份,这样的信息模块也就形成了“区块链”。

区块链解决的就是最核心的“信任”问题,把人与人之间的信任成本降到极低的水平,拜占庭将军问题也就得到了解决。

在互联网时代,这就是最大的利益点。

不知道机哥今天解释得够不够通俗易懂?

老铁们回家过年,走亲串友,唠嗑的时候把这个抛出来聊一聊,保准他们都听得一愣一愣的,装X装得这么高大上就属你了。

有什么疑问,可以给机哥留言交流,觉得不错打个记号点个赞咯。

想进交流群的朋友,扫码添加助理

关注币圈收割机,拥抱未来世界

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券