拜占庭将军问题(Byzantine Generals Problem)

拜占庭将军问题(Byzantine Generals Problem),是由莱斯利·兰波特在其同名论文[1]中提出的分布式对等网络通信容错问题。 在分布式计算中,不同的计算机通过通讯交换信息达成共识而按照同一套协作策略行动。但有时候,系统中的成员计算机可能出错而发送错误的信息,用于传递信息的通讯网络也可能导致信息损坏,使得网络中不同的成员关于全体协作的策略得出不同结论,从而破坏系统一致性。拜占庭将军问题被认为是容错性问题中最难的问题类型之一。

分布式对等网络中需要按照共同一致策略协作的成员计算机即为问题中的将军,而各成员计算机赖以进行通讯的网络链路即为信使。拜占庭将军问题描述的就是某些成员计算机或网络链路出现错误、甚至被蓄意破坏者控制的情况。

时间: 2024-08-13 17:11:12

拜占庭将军问题(Byzantine Generals Problem)的相关文章

【转载文章】拜占庭将军问题深入探讨

原文地址:http://www.8btc.com/baizhantingjiangjun part1: 拜占庭将军问题是什么? 1.1 拜占庭将军问题场景 1.2 与拜占庭将军相关问题:两军问题 part2:问题实质及形式化 2.1 拜占庭将军问题实质 2.2 形式化条件的推演  1)一致性 2)正确性 Part3:口头协议 满足以下三个条件的方式称为口头协议: A1:每个被发送的消息都能够被正确的投递 A2:信息接收者知道是谁发送的消息 A3:能够知道缺少的消息 3.1 口头协议算法OM(m)

什么是拜占庭将军问题

接触区块链的同学,多少都听说过拜占庭将军问题,经常看到或听到某某区块链使用某某算法解决了拜占庭将军问题,那么究竟什么是拜占庭将军问题呢? 什么是拜占庭将军问题 也被称为"拜占庭容错"."拜占庭将军问题". 拜占庭将军问题是Leslie Lamport(2013年的图灵讲得住)用来为描述分布式系统一致性问题(Distributed Consensus)在论文中抽象出来一个著名的例子. 这个例子大意是这样的: 拜占庭帝国想要进攻一个强大的敌人,为此派出了10支军队去包围

“拜占庭容错”、“拜占庭将军问题”

接触区块链的同学,多少都听说过拜占庭将军问题,经常看到或听到某某区块链使用某某算法解决了拜占庭将军问题,那么究竟什么是拜占庭将军问题呢? 什么是拜占庭将军问题 也被称为"拜占庭容错"."拜占庭将军问题".拜占庭将军问题是Leslie Lamport(2013年的图灵讲得住)用来为描述分布式系统一致性问题(Distributed Consensus)在论文中抽象出来一个著名的例子. 这个例子大意是这样的: 拜占庭帝国想要进攻一个强大的敌人,为此派出了10支军队去包围这

拜占庭将军

拜占庭将军问题很多人可能听过,但不知道是什么意思,本文从非专业的角度来讲讲,拜占庭将军问题到底是说什么的. 拜占庭将军问题(Byzantine Generals Problem),首先由Leslie Lamport与另外两人在1982年提出,很简单的故事模型,却困扰了计算机科学家们数十年. 故事大概是这么说的: 拜占庭帝国即中世纪的土耳其,拥有巨大的财富,周围10个邻邦垂诞已久,但拜占庭高墙耸立,固若金汤,没有一个单独的邻邦能够成功入侵.任何单个邻邦入侵的都会失败,同时也有可能自身被其他9个邻邦

[区块链] 拜占庭将军问题

接触区块链的同学,多少都听说过拜占庭将军问题,经常看到或听到某某区块链使用某某算法解决了拜占庭将军问题,那么究竟什么是拜占庭将军问题呢? 什么是拜占庭将军问题: "拜占庭将军问题"也被称为"拜占庭容错". 拜占庭将军问题是Leslie Lamport(2013年的图灵讲得住)用来为描述分布式系统一致性问题(Distributed Consensus)在论文中抽象出来一个著名的例子. 这个例子大意是这样的: 拜占庭帝国想要进攻一个强大的敌人,为此派出了10支军队去包围

拜占庭将军问题(一)

一.什么是拜占庭将军问题 拜占庭将军问题(Byzantine Generals Problem,是由莱斯利·兰波特在其同名论文[1]中提出的分布式对等网络通信容错问题.在分布式计算中,不同的计算机通过通讯交换信息达成共识而按照同一套协作策略行动.但有时候,系统中的成员计算机可能出错而发送错误的信息,用于传递信息的通讯网络也可能导致信息损坏,使得网络中不同的成员关于全体协作的策略得出不同结论,从而破坏系统一致性.拜占庭将军问题被认为是容错性问题中最难的问题类型之一. 莱斯利·兰波特在其论文中描述了

两将军问题、拜占庭将军问题、TCP三路握手过程的联系

2015年初时产生了一个疑问:基于不可靠的通信链路,为什么在两将军问题中永远无法达到共识,而在TCP三路握手中可以? 今天抽出了一些时间进行研究发现,实际上TCP三路握手也不是完全可靠的,只是一个近似的解决协议而已,可以看做是两将军问题的一个实际场景下的近似解决方案. 此外,两将军问题经常被与拜占庭将军问题搞混.一定要区分两个是完全不同的讨论对象.简而言之,两将军问题探讨的是不可靠信道下两方的通信准确性问题,而拜占庭将军问题探讨的是多方通信结果一致性和决策正确性的问题. 如果还不好理解,可以扣下

拜占庭将军问题

Seven machines send information to each other.As long as the number sent is within 2.0 of the correct number,the answer is correct.Two of the machines are faulty.Find the number that each machine would compute it it use: Sender 1 2 3 4 5 6 7 Receiver

分布式系统的事务处理【转】

转:http://coolshell.cn/articles/10910.html 当我们在生产线上用一台服务器来提供数据服务的时候,我会遇到如下的两个问题: 1)一台服务器的性能不足以提供足够的能力服务于所有的网络请求. 2)我们总是害怕我们的这台服务器停机,造成服务不可用或是数据丢失. 于是我们不得不对我们的服务器进行扩展,加入更多的机器来分担性能上的问题,以及来解决单点故障问题. 通常,我们会通过两种手段来扩展我们的数据服务: 1)数据分区:就是把数据分块放在不同的服务器上(如:uid %