今天我们要讲的内容是:“什么是拜占庭将军问题”?

我们在之前讲过,分布式账本可以说是区块链的框架,每一个人都可以自由地参与进来,共同处理区块链中的数据,基于这一点,区块链实际上就是一个大的分布式计算网络。

它并没有一个类似中央指挥室的东西来发号施令,整个网络是完全分散的,要依靠不同的节点间,彼此交换信息、达成共识,才能统一行动,整个过程就像无领导小组讨论一样。

对此,有人就提出了疑问,万一有节点发送了错误的信息,干扰网络正常运行或者大家产生了分歧怎么办?于是,学者们便建立了一个模型,统一将这类用来描述分布式系统一致性的问题,称为拜占庭将军问题。

所谓拜占庭将军问题是这样的:

拜占庭帝国想要攻打一个国家,它派出了多支军队进行围攻,但敌国军事实力也很强,将军们必须在同一个时间,一起发动进攻才能获取胜利。

现在的问题在于,每个将军都分散在敌国四周,只能依靠通信兵骑马相互通信,确定进攻的时间,可是一方面通讯兵可能会在送信过程中被敌方击杀,另一方面根据不可靠消息,在这些将军中有叛徒的存在,叛徒可能会擅自变更进攻意向或者进攻时间,从而向其他将军传达虚假指令,影响他人判断。

如果整个分布式网络相当于拜占庭帝国,而每个节点相当于里面的将军,那么在这种状态下,该怎么做才能保证网络中的全部节点对于某个事情达成一致?(即将军们在同一时间一起发起进攻,从而赢取战斗)这就是拜占庭将军问题。

所以简单来说,拜占庭将军描述的是,分布式网络会面临的两个问题:

1)如何解决各个节点之间的同步问题。比如在没有叛徒情况下,将军 A 向其他将军传递进攻方案时(如:明日下午 2 点进攻),可能将军B也在传递进攻方案(如:明日下午 3点进攻)。

2)如何解决恶意节点,故意发送错误信息干扰网络的运行的问题。比如在有叛徒情况下,叛徒会向不同的将军发出不同的进攻提议,干扰其他将军们达成一致。

后来大家发现,想要在分布式网络中,让每一个节点都不出错是不可能的,于是就有人提出了“拜占庭容错”的观点来解决拜占庭将军的问题,这个解决办法就是信息的伪造或错误并不重要,只要诚实的将军数量大于总数的三分之二,即使有少部分不诚实的将军存在,整个系统也可以达成一致。

于是大家以此为基础,设计出了很多解决方案。

区块链四大核心技术中的共识机制,就是为了解决这个问题,而诞生的一个方案。

责任编辑;zl

区块链技术用解决拜占庭将军问题_区块链中的拜占庭将军问题解析相关推荐

  1. 区块链技术用解决拜占庭将军问题_什么是拜占庭将军问题

    接触区块链的同学,多少都听说过拜占庭将军问题,经常看到或听到某某区块链使用某某算法解决了拜占庭将军问题,那么究竟什么是拜占庭将军问题呢? 接触区块链的同学,多少都听说过拜占庭将军问题,经常看到或听到某 ...

  2. 区块链技术能解决贫富差距两极分化问题吗?

    我们现在的生活水平越来越高,生活质量越来越好,越来越多的老百姓进入了小康社会,大家还以为贫富差距在不断缩小,其实,事实却是,贫富差距在一天天的拉大,并且这不只是我国存在的现象,而是全球性的问题.不管是 ...

  3. 区块链+支付:区块链技术是什么?它如何在支付行业中使用?

    技术在不断变化,其能力正在不断扩大.各个行业的领导者都在寻找新的技术解决方案,以满足全球人口压倒性的数字需求.其中一个重要的例子是银行机构.金融机构.区块链科技公司开始关注如何使用区块链技术和支付方式 ...

  4. 区块链技术与溯源业务实践。_如何通过区块链技术丰富您的在线业务?

    区块链技术与溯源业务实践. It is believed that blockchain will radically change the economy of the country and th ...

  5. BC:带你温习并解读《中国区块链技术和应用发展白皮书》—国内外区块链发展现状

    BC:带你温习并解读<中国区块链技术和应用发展白皮书>-国内外区块链发展现状 目录 区块链发展演进路径 2.1.1 技术来源 2.1.2 区块链1.0--数字货币 2.1.3 区块链2.0 ...

  6. 区块链技术用解决拜占庭将军问题_区块链是如何解决拜占庭将军问题的?

    原标题:区块链是如何解决拜占庭将军问题的? 区块链火爆后不少人认为它是继蒸汽机.电力.互联网之后第四代具有颠覆性的技术.但凡了解它,或者对比特币有一定见解的人,都多多少少听过拜占庭将军问题.现阶段区块 ...

  7. 区块链技术用解决拜占庭将军问题_区块链技术6:拜占庭将军问题

    本篇主要结合Lamport((2013年的图灵奖得主) 1982年的论文<Byzantine Generals Problem>讲一讲拜占庭将军问题(Byzantine Generals ...

  8. 区块链技术用解决拜占庭将军问题_区块链设计核心难题:拜占庭将军问题

    在前面两期中,主要对区块链的基本概念和基本设计原则进行说明,现在有了这些背景知识后,再去学习更深层的知识将会更加容易.本期我们一起研究一下拜占庭将军问题,这是区块链解决的一个核心难题,通过理解这个问题 ...

  9. 区块链技术用解决拜占庭将军问题_区块链技术如何解决拜占庭将军问题?

    如果10个将军中的几个同时发起消息,势必会造成系统的混乱,造成各说各的攻击时间方案,行动难以一致. 谁都可以发起进攻的信息,但由谁来发出呢?中本聪巧妙地在个系统加入了发送信息的成本,即:一段时间内只有 ...

最新文章

  1. Ubuntu 16.04源码编译安装nginx 1.10.0
  2. Win10远程桌面失败,这可能是由于CredSSP加密Oracle修正 解决方法
  3. 关于“数据可视化思考者”的8条军规
  4. Hadoop家族学习路线图
  5. C语言学习之有一个分数序列2/1、3/2、5/3、8/5、13/8、21/13,……求出这个数列的前20项之和。
  6. Convolutional Sequence to Sequence Learning笔记
  7. 想拥有高清壁纸不用那么麻烦!
  8. linux命令的帮助信息,Linux查询命令帮助信息(知道)
  9. 惊恐的市场洗牌网游市场诞生危机论
  10. 22、redis中数据库默认是多少个db 及作用?
  11. bzoj4093: [Usaco2013 Dec]Vacation Planning
  12. 论文阅读笔记——面盒:一种高精度的中央处理器实时人脸检测器
  13. CentOS 7超详细安装与网络配置
  14. m3u8视频下载和转码mp4
  15. 好嗨游戏:20款最好玩的运动游戏:足球、篮球、网球等等(上)
  16. java毕业设计_基于MVC的公司报账系统
  17. QQ空间无法点赞或者QQ空间点赞被取消
  18. Ruby ERB模板注入检测
  19. ZYNQ仿真器当做串口使用
  20. linux下配置mysql_linux下安装mysql

热门文章

  1. 获得汉字拼音首字母的工具类
  2. 提高mysql吞吐量_【调优】从吞吐量角度提升数据库整体性能
  3. Git-移动记录仪 贴心小棉袄 reflog
  4. JavaScript如何获取和失去焦点
  5. 教你快速在github上添加密钥,赶快收藏起来吧
  6. Web 安全之内容安全策略详解(Content-Security-Policy,CSP)
  7. form表单标签的enctype属性的作用
  8. IPA少儿模特冬季赛 2022第七届中国少儿模特明星盛典 全新启航
  9. B2B2C商城系统开发模式有哪些?
  10. VirusTotal api 在 python 中的 URL,域名使用