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

  • 时间:
  • 浏览:0
  • 来源:大发时时彩_时时彩破解_大发时时彩破解

背景:

  拜占庭将军间题也不我人们如果听过,但问你具体是哪些意思。没法究竟哪些是拜占庭将军间题呢? 本文从最通俗的故事讲起,并对该间题进行抽象,并告诉当当让我们 歌词 拜占庭将军间题为哪些在区块链领域作为原先重点研究间题。

哪些是拜占庭将军间题:

  “拜占庭将军间题”也被称为“拜占庭容错”。

  拜占庭将军间题是Leslie Lamport(2013年的图灵讲得住)用来为描述分布式系统一致性间题(Distributed Consensus)在论文中抽象出来原先著名的例子。

  这名例子大意是原先的:

  拜占庭帝国你会进攻原先强大的敌人,为此派出了10支军队去包围这名敌人。这名敌人虽不比拜占庭帝国,但也足以抵御5支常规拜占庭军队的一块儿袭击。这10支军队在分开的包围情形下一块儿攻击。当当让我们 歌词 任一支军队单独进攻都毫无胜算,除非有为宜6支军队(一半以上)一块儿袭击并能攻下敌国。当当让我们 歌词 分散在敌国的四周,依靠通信兵骑马相互通信来协商进攻意向及进攻时间。困扰哪些将军的间题是,当当让我们 歌词 不选用当当让我们 歌词 中有无有叛徒,叛徒如果擅自变更进攻意向如果进攻时间。在这名情形下,拜占庭将军们并能保证有多于6支军队在同一时间一块儿发起进攻,从而赢取战斗? 

注:“  拜占庭将军间题中未必去考虑通信兵有无会被截获或无法传达信息等间题,即消息传递的信道绝无间题。Lamport如果证明了在消息如果丢失的不可靠信道上试图通过消息传递的法律法律措施达到一致性是不如果的。也不我有,在研究拜占庭将军间题的如果,如果假定了信道是没法间题的。 ”


 通俗分析:

  单从底下的说明如果无法理解这名间题的僵化 性,当当让我们 歌词 来简单分析一下:

  先看在没法叛徒情形下,假使 原先将军A提原先进攻提议(如:明日下午1点进攻,你你会加入吗?)由通信兵通信分别告诉但会 的将军,如果幸运中的幸运,他收到了但会 6位将军以上的同意,发起进攻。如果不幸,但会 的将军也在此时发出不同的进攻提议(如:明日下午2点、3点进攻,你你会加入吗?),如果时间上的差异,不同的将军收到(并认可)的进攻提议如果是不一样的,这是如果总是出现A提议有1个支持者,B提议有原先支持者,C提议有原先支持者等等。

  加在但会 僵化 性,在有叛徒情形下,原先叛徒会向不同的将军发出不同的进攻提议(通知A明日下午1点进攻, 通知B明日下午2点进攻等等),原先叛徒也会如果同意多个进攻提议(即同意下午1点进攻又同意下午2点进攻)。

  叛徒发送前后不一致的进攻提议,被称为“拜占庭错误”,而并能补救拜占庭错误的这名容错性称为「Byzantine fault tolerance」,简称为BFT。


间题抽象:

  求解拜占庭将军间题,隐含要满足以下原先条件:

  1)每个忠诚的将军回会 并能 收到相同的命令值vi(vi是第i个将军的命令)。

  2)如果第i个将军是忠诚的,没法他发送的命令和每个忠诚将军收到的vi相同。

  于是,拜占庭将军间题的回会 描述为:原先发送命令的将军要发送原先命令给其余n-原先将军,使得:

  IC1.所有忠诚的接收命令的将军遵守相同的命令;

  IC2.如果发送命令的将军是忠诚的,没法所有忠诚的接收命令的将军遵守所接收的命令。

  Lamport对拜占庭将军间题的研究表明,当n>3m时,即叛徒的个数m小于将军总数n的1/3时,通过口头同步通信(假设通信是可靠的),回会 构造一块儿满足IC1和IC2的补救方案,即将军们回会 达成一致的命令。但如果通信是可认证、防篡改伪造的(如采用PKI认证,消息签名等),则在任意多的叛徒(为宜得有原先忠诚将军)的情形下都回会 找到补救方案。

  而在异步通信情形下,情形就没法没法乐观。Fischer-Lynch-Paterson定理证明了,假使 有原先叛徒处于,拜占庭将军间题就无解。翻译成分布式计算语言,在另原先守护系统进程异步系统中,假使 有原先守护系统进程不可靠,没法就不处于原先协议,此协议能保证有限时间内使所有守护系统进程达成一致。

  由此可见,拜占庭将军间题在原先分布式系统中,是原先非常有挑战性的间题。如果分布式系统回会 依靠同步通信,但会 性能和效率单位将非常低。但会 寻找这名 实用的补救拜占庭将军间题的算法老也不分布式计算领域中的原先重要间题。

在这里,当当让我们 歌词 先给出分布式计算蕴含关拜占庭欠缺和故障的原先定义:

  定义1:拜占庭欠缺(Byzantine Fault):任何观察者未必同厚度看,表现出不同症状的欠缺。

  定义2:拜占庭故障(Byzantine Failure):在回会 并能 共识的系统中如果拜占庭欠缺愿因丧失系统服务。 

  在分布式系统中,有无所有的欠缺或故障都能称作拜占庭欠缺或故障。像死机、丢消息等欠缺或故障回会 算为拜占庭欠缺或故障。拜占庭欠缺或故障是最严重欠缺或故障,拜占庭欠缺有不可预测、任意性的欠缺,例如于遭黑客破坏,中木马的服务器也不我原先拜占庭服务器。

  在原先有拜占庭欠缺处于的分布式系统中,所有的守护系统进程有无原先初始值。在这名情形下,共识间题(Consensus Problem),也没法多寻找原先算法和协议,使得该协议满足以下原先属性。

  1)一致性(Agreement):所有的非欠缺守护系统进程都回会 并能 同意同原先值。

  2)正确性(Validity):如果所有的非欠缺的守护系统进程有相同的初始值,没法所有非欠缺的守护系统进程所同意的值回会 并能 是同原先初始值。

  3)可刚刚刚刚刚开始性(Termination):每个非欠缺的守护系统进程回会 并能 最终选用原先值。

  根据Fischer-Lynch-Paterson的理论,在异步通信的分布式系统中,假使 有原先拜占庭欠缺的守护系统进程,就不如果找到原先共识算法,可一块儿满足上述要求的一致性、正确性和可刚刚刚刚刚开始性要求。在实际情形下,根据不同的假设条件,有也不我有不同的共识算法被设计出来。哪些算法各有优势和局限。算法的假设条件有以下几种情形:

  1)故障模型:非拜占庭故障/拜占庭故障。

  2)通信类型:同步/异步。

  3)通信网络连接:节点间直连数。

  4)信息发送者身份:实名/匿名。

  5)通信通道稳定性:通道可靠/不可靠。

  6)消息认证性:认证消息/非认证消息。


中本聪的补救方案:

  在总是出现比特币如果,补救分布式系统一致性间题主也不我Lamport提出的Paxos算法或其衍生算法。Paxos类算法仅适用于中心化的分布式系统,原先的系统的没法不诚实的节点(不想发送虚假错误消息,但允许总是出现网络不通或宕机总是出现的消息延迟)。

  中本聪在比特币中创造性的引入了“工作量证明(POW : Proof of Work)”来补救这名间题,有兴趣可进一步阅读工作量证明(猛击!)。

  通过工作量证明就增加了发送信息的成本,降低节点发送消息效率单位,原先就以保证在原先时间回会 并能 原先节点(或是很少)在进行广播,一块儿在广播总要附上买车人的签名。

  这名过程就像一位将军A在向但会 的将军(B、C、D…)发起原先进攻提议一样,将军B、C、D…想看 将军A签过名的进攻提议书,如果是诚实的将军就会立刻同意进攻提议,而不想发起买车人新的进攻提议。

  以上也不我比特币网络中是单个区块(账本)达成共识的法律法律措施(取得一致性)。

  理解了单个区块取得一致性的法律法律措施,没法整个区块链(总账本)如果达成一致也好理解。

  当当让我们 歌词 稍微把将军间题改一下:

  假设攻下原先城堡回会 并能 多次的进攻,每次进攻的提议回会 并能 基于如果最多次数的胜利进攻下提出的(回会 并能 原先敌方已有损失最大,我方进攻胜利的如果性就更大),原先约定如果,将军A在收到进攻提议时,就会检查一下这名提议有无基于最多的胜利提出的,如果有无(基于最多的胜利)将军A就不想同意原先的提议,如果是的,将军A就会把这次提议记下来。这也不我比特币网络最长链选用 (猛击!)


 经济学分析

  工作量证明随便说说为宜提高了做叛徒(发布虚假区块)的成本,在工作量证明下,回会 并能 第原先完成证明的节点并能广播区块,竞争难度非常大,回会 并能 很高的算力,如果不成功其算力就软软耗费了(算力是回会 并能 成本的),如果有原先的算力作为诚实的节点,同样并回会 获得很大的收益(这也不我矿工所作的工作),这也实际就不想有做叛徒的动机,整个系统也但会 而更稳定。

  矿工挖矿获得比特币奖励以及记账所得的交易费用使得矿工更希望维护网络的正常运行,而任何破坏网络的非诚信行为总要损害矿工自身的利益。但会 ,即使但会 比特币矿池具备强大的算力,它们都没法作恶的动机,反而有动力维护比特币的正常运行,如果这和它们的切实利益相关。

  注:原始的拜占庭容错系统随还都上能 否并能 展示其理论上的可行性而欠缺实用性另外,还回会 并能 额外的时钟同步机制支持算法的僵化 度也是随节点增加而指数级增加。实用拜占庭容错系统(PBFT)(猛击!)降低了拜占庭协议的运行僵化 度,从指数级别降低到多项式级别(Polynomial),使拜占庭协议在分布式系统中应用成为如果。

总结:共识算法的核心也不我补救拜占庭将军间题(分布式网络一致性间题)。


 REFERENCE

  1. Lamport L,Shostak R,Pease M.The Byzantine generals problem.ACM Trans.on Programming Languages and Systems,1982,4(3):382-401.

  2. Fischer,M.J.,Lynch,N.A.,Paterson,M.:Impossibility of distributed consensus with one faulty process.J.ACM 32(2),374-382(1985).
  3. 《区块链技术指南》邹均,张海宁,唐屹,李磊 著

【时间仓促,如有错误,欢迎指正! ||   欢迎留下您的评语!  当当让我们 歌词 一块儿探讨、学习区块链!】

【转载请注明出处!http://www.cnblogs.com/X-knight/