两军问题

我们来看一下好处理器的情况,但通信线路有问题。这就是所谓的两军问题,可以概括如下:

A,B 两军师协同攻击敌军C, A和B在物理上是分开的,并使用信使进行通信。 A向B发送一个消息“ 让我们在黎明发起攻击 ”。 B收到消息并同意,用“ OK ”消息发送回信使者。信使到达A,但是A意识到B不知道信使是否安全地返回了。如果B不相信A得到了承认,那么就不会相信这次袭击应该发生,因为军队不会自己胜利。 A可以选择用“ A received the OK ” 的消息将信使发送回B,但A将不确定B是否接收到该消息。二军的问题表明,即使与没有缺陷的处理器,两个进程之间可证明协议是不是 可以用不可靠的通信通道。

拜占庭两军问题详解图解算法

在现实世界中,我们需要在通信和计算速度上设置上限,并且如果在有限的时间内没有响应,就要考虑一个过程是有缺陷的。

失败 - 停止,也称为失败 - 沉默,是失败的进程不通信的条件。

拜占庭故障是有故障的过程继续进行通信,但可能会产生错误信息。我们可以创建一个弹性的失败停止的共识算法。如果有n个进程,其中t可能有错误,那么进程永远不会期望收到超过(nt)个确认。现在一致的问题是要确保所有进程都做出相同的决定,即使每个进程从一组不同的进程接收(nt)答案(可能是由于部分网络分段或路由问题)。

故障停止弹性算法可以被演示如下。这是一个迭代算法。每个阶段包括:

一个进程广播它的首选值和它所看到的也有这个首选值的进程的数量(这个计数被称为基数,最初为1)。

该过程接收(nt)答案,每个答案都包含一个首选值和基数。

然后该过程可以改变其优选值,根据哪个值是其他过程最喜欢的值。它将相应的基数更新为已经收到的响应数量加上它本身。

继续这个过程,直到一个进程接收到至少有n / 2个基数的单个值的t个消息。这意味着至少有一半的系统已经达成了相同的价值。在这一点上,再运行两个阶段,播放这个值。

随着阶段的数量达到无穷大,未达成共识的可能性接近0。

为了更容易在现实世界中开发算法,我们可以放宽异步的定义并允许一些同步。

系统中可能存在几种不同步:

进程异步:进程可能会进入睡眠状态或暂停任意时间。

通讯异步:消息到达目的地的时间没有上限。

消息顺序异步:消息可能以不同于发送的顺序传送。

已经证明[Dolev,Dwork,Stockmeyer]认为,使流程同步是不够的,但是以下任何一种情况都足以使共识协议成为可能:

进程和通信同步:在进程休眠时间和消息传输上设置一个上限)。

进程和消息顺序同步:在进程休眠时间和消息顺序上设置一个上限)。

消息顺序同步和广播能力。

通信同步,广播能力和发送/接收原子性。 发送/接收原子性意味着处理器可以执行接收消息,执行计算和发送消息到其他进程的操作。

拜占庭在同步系统中的失败

拜占庭将军问题的解决方案并不明显,直观或简单。他们不在这些笔记中。

我们研究了通信线路不可靠的情况,通信可靠或失败。另一个需要考虑的情况是可靠的通信线路,但是有故障的(不是故障停止的)处理器。拜占庭故障是失败的处理器,而不是保持安静(故障停止),而是与错误的数据通信。

拜占庭将军问题

拜占庭将军问题 说明了可靠的通讯线路和拜占庭式失败的共识。

在这个问题上,有n个陆军将领分头。通信是可靠的(无线电或电话),但是 将军中的m是叛徒(有故障),并试图通过向他们提供不正确的信息来防止他人达成一致。问题是忠诚的将军还能达成一致吗?具体来说,每个将军都知道他的部门的规模。在算法的最后,每个将军都可以知道其他忠诚部门的兵力吗?

Lamport展示了一种适用于某些情况的解决方案。他的回答这个问题是,任何解决方案克服的问题米叛徒需要至少3 名 1参与者(2 名 1忠实将领)。

这意味着超过三分之二的将军必须是忠诚的。此外,已经证明,没有协议可以用少于m + 1轮消息交换和O(mn2)消息来克服m个故障。如果n

显然,这是一个相当昂贵的解决方案。

尽管拜占庭模型可能适用于某些类型的专用硬件,但在通用分布式计算环境中很少有用。

拜占庭将军问题使用签名的消息是有变化的。这意味着来自忠诚将领的讯息不能被伪造或修改。在这种情况下,存在可以实现达成共识的值算法Ñ ≥ M + 2,其中

n =处理器

总数m =故障处理器总数

AD:【微信:v985585微博@区块链神吐槽】

区块链技术用解决拜占庭将军问题_两军问题_拜占庭将军问题详解图解算法相关推荐

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

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

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

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

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

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

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

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

  5. 区块链技术用解决拜占庭将军问题_区块链中的拜占庭将军问题解析

    今天我们要讲的内容是:"什么是拜占庭将军问题"? 我们在之前讲过,分布式账本可以说是区块链的框架,每一个人都可以自由地参与进来,共同处理区块链中的数据,基于这一点,区块链实际上就是 ...

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

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

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

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

  8. 区块链技术助力解决小微企业融资难融资贵问题

    人民银行营业管理部联合北京银保监局.北京证监局等部门印发关于<进一步完善北京民营和小微企业金融服务体制机制行动方案(2021-2023年)>,本次方案要求强化金融科技赋能小微民营企业健康发 ...

  9. Bitcoin比特币与BlockChain区块链技术

    一.比特币的历史 比特币现在大火,一枚7000多人民币,遥想当年1万枚才买一张价值25美元的披萨优惠券,如果上天能给我回到当年的机会的话,我一定买买买!!! 比特币有很高的开采及投资价值,被我们中国人 ...

最新文章

  1. 自动驾驶又陷“派系”之争:该约束行人还是让车更完美
  2. IIS负载均衡-Application Request Route详解第一篇: ARR介绍
  3. JSON和JSONP【JS+AJAX跨域原理和实现】
  4. Java编程思想 学习笔记7
  5. 缓冲运动之框架開始一级简单框架实例
  6. eclipse maven scm
  7. linux vg划分目录,修改根目录所在VG名称
  8. NOIP2013D1T3货车运输(最大生成树+倍增lca)
  9. 如何使用jmeter录制脚本
  10. 使用vue构建组件化开发项目
  11. app系统软件开发外包的费用:开发app多少钱的费用?
  12. python节日贺卡图片大全_简单漂亮三年级新年贺卡图片大全
  13. HaiBox-E边缘计算盒子怎么样,关于HaiBox-E边缘计算盒子的评析
  14. 数据结构 Huffman树(霍夫曼树、哈夫曼树)
  15. Win7系统系统还原被禁用怎么办【系统天地】
  16. JAVA Base64加密解密
  17. 计算机放音乐声音小在吗调,功放声音很小是什么原因,该怎么调?
  18. Android实现计时与倒计时(限时抢购)
  19. uniapp购物车界面模板
  20. Windows电脑桌面透明云便签怎么自定义设置便签快捷键?

热门文章

  1. pip安装gunicorn_gunicorn部署Flask服务
  2. 2023上半年的九个觉悟
  3. “材料主义”会是鞋服行业新的增长驱动力吗?
  4. 人体正常生理指标(太有用了)
  5. oracle addm报告分析,Oracle addm
  6. STM32F051K8U6按键中断实例
  7. PHPExcel 读取文件内容
  8. 嵌入式项目的开发经验
  9. meavn的下载及安装
  10. 洛谷 P2001 硬币的面值 题解