区块链技术用解决拜占庭将军问题_区块链中的拜占庭将军问题解析
今天我们要讲的内容是:“什么是拜占庭将军问题”?
我们在之前讲过,分布式账本可以说是区块链的框架,每一个人都可以自由地参与进来,共同处理区块链中的数据,基于这一点,区块链实际上就是一个大的分布式计算网络。
它并没有一个类似中央指挥室的东西来发号施令,整个网络是完全分散的,要依靠不同的节点间,彼此交换信息、达成共识,才能统一行动,整个过程就像无领导小组讨论一样。
对此,有人就提出了疑问,万一有节点发送了错误的信息,干扰网络正常运行或者大家产生了分歧怎么办?于是,学者们便建立了一个模型,统一将这类用来描述分布式系统一致性的问题,称为拜占庭将军问题。
所谓拜占庭将军问题是这样的:
拜占庭帝国想要攻打一个国家,它派出了多支军队进行围攻,但敌国军事实力也很强,将军们必须在同一个时间,一起发动进攻才能获取胜利。
现在的问题在于,每个将军都分散在敌国四周,只能依靠通信兵骑马相互通信,确定进攻的时间,可是一方面通讯兵可能会在送信过程中被敌方击杀,另一方面根据不可靠消息,在这些将军中有叛徒的存在,叛徒可能会擅自变更进攻意向或者进攻时间,从而向其他将军传达虚假指令,影响他人判断。
如果整个分布式网络相当于拜占庭帝国,而每个节点相当于里面的将军,那么在这种状态下,该怎么做才能保证网络中的全部节点对于某个事情达成一致?(即将军们在同一时间一起发起进攻,从而赢取战斗)这就是拜占庭将军问题。
所以简单来说,拜占庭将军描述的是,分布式网络会面临的两个问题:
1)如何解决各个节点之间的同步问题。比如在没有叛徒情况下,将军 A 向其他将军传递进攻方案时(如:明日下午 2 点进攻),可能将军B也在传递进攻方案(如:明日下午 3点进攻)。
2)如何解决恶意节点,故意发送错误信息干扰网络的运行的问题。比如在有叛徒情况下,叛徒会向不同的将军发出不同的进攻提议,干扰其他将军们达成一致。
后来大家发现,想要在分布式网络中,让每一个节点都不出错是不可能的,于是就有人提出了“拜占庭容错”的观点来解决拜占庭将军的问题,这个解决办法就是信息的伪造或错误并不重要,只要诚实的将军数量大于总数的三分之二,即使有少部分不诚实的将军存在,整个系统也可以达成一致。
于是大家以此为基础,设计出了很多解决方案。
区块链四大核心技术中的共识机制,就是为了解决这个问题,而诞生的一个方案。
责任编辑;zl
区块链技术用解决拜占庭将军问题_区块链中的拜占庭将军问题解析相关推荐
- 区块链技术用解决拜占庭将军问题_什么是拜占庭将军问题
接触区块链的同学,多少都听说过拜占庭将军问题,经常看到或听到某某区块链使用某某算法解决了拜占庭将军问题,那么究竟什么是拜占庭将军问题呢? 接触区块链的同学,多少都听说过拜占庭将军问题,经常看到或听到某 ...
- 区块链技术能解决贫富差距两极分化问题吗?
我们现在的生活水平越来越高,生活质量越来越好,越来越多的老百姓进入了小康社会,大家还以为贫富差距在不断缩小,其实,事实却是,贫富差距在一天天的拉大,并且这不只是我国存在的现象,而是全球性的问题.不管是 ...
- 区块链+支付:区块链技术是什么?它如何在支付行业中使用?
技术在不断变化,其能力正在不断扩大.各个行业的领导者都在寻找新的技术解决方案,以满足全球人口压倒性的数字需求.其中一个重要的例子是银行机构.金融机构.区块链科技公司开始关注如何使用区块链技术和支付方式 ...
- 区块链技术与溯源业务实践。_如何通过区块链技术丰富您的在线业务?
区块链技术与溯源业务实践. It is believed that blockchain will radically change the economy of the country and th ...
- BC:带你温习并解读《中国区块链技术和应用发展白皮书》—国内外区块链发展现状
BC:带你温习并解读<中国区块链技术和应用发展白皮书>-国内外区块链发展现状 目录 区块链发展演进路径 2.1.1 技术来源 2.1.2 区块链1.0--数字货币 2.1.3 区块链2.0 ...
- 区块链技术用解决拜占庭将军问题_区块链是如何解决拜占庭将军问题的?
原标题:区块链是如何解决拜占庭将军问题的? 区块链火爆后不少人认为它是继蒸汽机.电力.互联网之后第四代具有颠覆性的技术.但凡了解它,或者对比特币有一定见解的人,都多多少少听过拜占庭将军问题.现阶段区块 ...
- 区块链技术用解决拜占庭将军问题_区块链技术6:拜占庭将军问题
本篇主要结合Lamport((2013年的图灵奖得主) 1982年的论文<Byzantine Generals Problem>讲一讲拜占庭将军问题(Byzantine Generals ...
- 区块链技术用解决拜占庭将军问题_区块链设计核心难题:拜占庭将军问题
在前面两期中,主要对区块链的基本概念和基本设计原则进行说明,现在有了这些背景知识后,再去学习更深层的知识将会更加容易.本期我们一起研究一下拜占庭将军问题,这是区块链解决的一个核心难题,通过理解这个问题 ...
- 区块链技术用解决拜占庭将军问题_区块链技术如何解决拜占庭将军问题?
如果10个将军中的几个同时发起消息,势必会造成系统的混乱,造成各说各的攻击时间方案,行动难以一致. 谁都可以发起进攻的信息,但由谁来发出呢?中本聪巧妙地在个系统加入了发送信息的成本,即:一段时间内只有 ...
最新文章
- Ubuntu 16.04源码编译安装nginx 1.10.0
- Win10远程桌面失败,这可能是由于CredSSP加密Oracle修正 解决方法
- 关于“数据可视化思考者”的8条军规
- Hadoop家族学习路线图
- C语言学习之有一个分数序列2/1、3/2、5/3、8/5、13/8、21/13,……求出这个数列的前20项之和。
- Convolutional Sequence to Sequence Learning笔记
- 想拥有高清壁纸不用那么麻烦!
- linux命令的帮助信息,Linux查询命令帮助信息(知道)
- 惊恐的市场洗牌网游市场诞生危机论
- 22、redis中数据库默认是多少个db 及作用?
- bzoj4093: [Usaco2013 Dec]Vacation Planning
- 论文阅读笔记——面盒:一种高精度的中央处理器实时人脸检测器
- CentOS 7超详细安装与网络配置
- m3u8视频下载和转码mp4
- 好嗨游戏:20款最好玩的运动游戏:足球、篮球、网球等等(上)
- java毕业设计_基于MVC的公司报账系统
- QQ空间无法点赞或者QQ空间点赞被取消
- Ruby ERB模板注入检测
- ZYNQ仿真器当做串口使用
- linux下配置mysql_linux下安装mysql