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

区块链的起源—拜占庭将军问题

01

拜占庭将军问题的起源

拜占庭位于如今的土耳其的伊斯坦布尔,是东罗马帝国的首都。由于当时拜占庭罗马帝国国土辽阔,为了防御目的,因此每个军队都分隔很远,将军与将军之间只能靠信差传消息。

在战争的时候,拜占庭军队内所有将军和副官必需达成一致的共识,决定是否有赢的机会才去攻打敌人的阵营。但是,在军队内有可能存有叛徒和敌军的间谍,左右将军们的决定又扰乱整体军队的秩序。在进行共识时,结果并不代表大多数人的意见。这时候,在已知有成员谋反的情况下,其余忠诚的将军在不受叛徒的影响下如何达成一致的协议,拜占庭问题就此形成。

通俗点说就是如果土耳其的各个小岛的将军一起去攻打罗马,11位拜占庭将军去打仗, 他们各自有权力观测敌情并作出判断, 进攻或撤退, 那么怎么让他们只用传令兵达成一致呢?

解决方案:投票

每位将军作出决定后都将结果飞鸽传书给其余所有将军, 这样所有将军都能获得同样的11份(包括自己)结果, 取多数, 即可得到全军都同意的行为.

但如果这11位将军中有间谍呢? 假设有9位忠诚的将军, 5位判断进攻, 4位判断撤退, 还有2个间谍恶意判断撤退, 虽然结果是错误的撤退, 但这种情况完全是允许的. 因为这11位将军依然保持着状态一致性.

达成共识并不是开个会这么简单,而是真正的去攻打拜占庭帝国。很多情况下间谍会口是心非。并且修改情报这样就会出现各种问题。

1.叛徒可能欺骗一些将军造成去攻打的虚假情报。

2.叛徒可能会迷惑别的将军使他们信息不一样。

3.叛徒可能会建议别的将军采取叛变的措施。

为了解决这个问题,人们发现必须满足两个条件。分布式和签名

分布式和签名

想要打赢这场战争必须两点:

证明将军们接收到的信息是一样的

指挥人必须是中间人,如果间谍在指挥系统那么这场战争不可能赢。

这两点说的比较简单但是实现起来比较复杂。科学家对于解决方案给出了两个方案。

口头信息传达:

1.命令的内容不会被破坏, 无论来自间谍或者忠臣

2.命令的来源一定可以判断

3.如果有将军不发命令, 可以被感知

书面形式传达:

1.将军们一起使用不可以被篡改的签名

2.任何人都可以确定签名的可靠性

利用分布式和签名机制可以完全的解决拜占庭将军问题但是在现实中却完全不同。

如果每个国家像其他国家派出11个信使和传达兵,在一起加起来至少需要121次才能传输完毕,并且每个国家可能回复不同的时间,所以协商是个很大的问题。

区块链技术的诞生

互联网的诞生从解决了我们信息的传输问题,解决了我们信息的传输成本。

如果在现代,将军们可以在微信中讨论这个问题,最终确定进攻时间。但是如果拜占庭帝国可以监控微信呢?这时候我们就需要一个去中心化的信任系统——区块链。

中本聪在区块链中加入了时间戳,和非对称加密算法使区块链具有签名属性和不可篡改属性。很好的解决了拜占庭将军问题。

这时如果出现背叛怎么办?

如果出现背叛就检查每一个人的书面进攻和撤退协议,背叛者给有的将军的答案并不一样,这样就可以找出叛徒。

由此,在一个分布式的机制中,尽管有坏人,坏人可以做任意事情,比如不响应、发送错误信息、对不同将军发送不同决定、不同将军联合起来干坏事等等。但是,只要大多数人是好人,就可能打败拜占庭帝国。

拜占庭将军问题,是由莱斯利·兰伯特1982年提出的点对点通信中的基本问题。伟大的创新一般都是站在巨人的肩膀上进行的。

罗振宇在得到中说过一句话:文明的进程不只是财富的膨胀和个人的自由,其实还有一根坚定而强韧的线索,就是建立共同体,换句话说,就是怎样定义“我们”。知道我们是谁,协作才能展开,财富才能积累,安全才能获得,尊严才能建构。

后真相时代正在不断地削弱我们的共同体意识,而这正是我们的文明之锚。

过去,建立共同体或者定义我们的方式有很多种;但是除了国家这个共同体之外,血缘、地域、阶层、单位……这些共同体构建依据都在发生不同程度的弱化。

那么认知会成为构建共同体的依据吗?不会,因为它太脆弱,因为每个人的认知成长都不同步。

李好的金融世界

群已满,要加群的朋友请添加小助手。

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券