火星链 火星链
Ctrl+D收藏火星链

NERA:一文读懂拜占庭将军问题

作者:

时间:1900/1/1 0:00:00

拜占庭将军问题(TheByzantineGeneralsProblem)提供了对分布式共识问题的一种情景化描述,由LeslieLamport等人在1982年首次发表。论文《TheByzantineGeneralsProblem》同时提供了两种解决拜占庭将军问题的算法:口信消息型解决方案(Asolutionwithoralmessage);签名消息型解决方案(Asolutionwithsignedmessage).论文:https://www-inst.eecs.berkeley.edu/本文之后将详细讲述这两种算法。事实上,拜占庭将军问题是分布式系统领域最复杂的容错模型,它描述了如何在存在恶意行为(如消息篡改或伪造)的情况下使分布式系统达成一致。是我们理解分布式一致性协议和算法的重要基础。拜占庭将军问题描述

拜占庭将军问题描述了这样一个场景:

图1.拜占庭将军问题拜占庭帝国(ByzantineEmpire)军队的几个师驻扎在敌城外,每个师都由各自的将军指挥。将军们只能通过信使相互沟通。在观察敌情之后,他们必须制定一个共同的行动计划,如进攻(Attack)或者撤退(Retreat),且只有当半数以上的将军共同发起进攻时才能取得胜利。然而,其中一些将军可能是叛徒,试图阻止忠诚的将军达成一致的行动计划。更糟糕的是,负责消息传递的信使也可能是叛徒,他们可能篡改或伪造消息,也可能使得消息丢失。为了更加深入的理解拜占庭将军问题,我们以三将军问题为例进行说明。当三个将军都忠诚时,可以通过投票确定一致的行动方案,图2展示了一种场景,即GeneralA,B通过观察敌军军情并结合自身情况判断可以发起攻击,而GeneralC通过观察敌军军情并结合自身情况判断应当撤退。最终三个将军经过投票表决得到结果为进攻:撤退=2:1,所以将一同发起进攻取得胜利。对于三个将军,每个将军都能执行两种决策(进攻或撤退)的情况下,共存在6中不同的场景,图2是其中一种,对于其他5中场景可简单地推得,通过投票三个将军都将达成一致的行动计划。

Outlier Ventures联合NewOrder DAO推出的DeFi Base Camp加速器公布最新一期入选项目:金色财经报道,Outlier Ventures联合DeFi协议免许可孵化器NewOrderDAO推出的DeFi Base Camp加速器公布最新一期入选项目包括Swipelux、EventHorizon、Helix、QiProtocol、31Third、SYNTHR、Coaction、Rampnalysis。[2023/5/22 15:19:21]

图2.三个将军均为忠诚的场景当三个将军中存在一个叛徒时,将可能扰乱正常的作战计划。图3展示了GeneralC为叛徒的一种场景,他给GeneralA和GeneralB发送了不同的消息,在这种场景下GeneralA通过投票得到进攻:撤退=1:2,最终将作出撤退的行动计划;GeneralB通过投票得到进攻:撤退=2:1,最终将作出进攻的行动计划。结果只有GeneralB发起了进攻并战败。

ApeCoin社区新提案拟创建APE DEX:5月13日消息,ApeCoin 社区新提案拟创建 APE DEX,计划实现由多资产池支持的 ERC-20 代币的去中心化兑换,这些资产池将从做市和 Swap 费用中赚取 LP 费用,继而吸引 APE 流动性,推动更低的 APE 购买 / 出售交易费用。该提案投票截止日期为 5 月 18 日,当前反对票比例达到 86.48%。[2023/5/13 15:00:39]

图3.二忠一叛的场景事实上,对于三个将军中存在一个叛徒的场景,想要总能达到一致的行动方案是不可能的。详细的证明可参看LeslieLamport的论文。此外,论文中给出了一个更加普适的结论:如果存在m个叛将,那么至少需要3m+1个将军,才能最终达到一致的行动方案。解决方案

LeslieLamport在论文中给出了两种拜占庭将军问题的解决方案,即口信消息型解决方案(Asolutionwithoralmessage)和签名消息型解决方案(Asolutionwithsignedmessage)。1、口信消息型解决方案首先,对于口信消息(Oralmessage)的定义如下:A1.任何已经发送的消息都将被正确传达;A2.消息的接收者知道是谁发送了消息;A3.消息的缺席可以被检测。基于口信消息的定义,我们可以知,口信消息不能被篡改但是可以被伪造。基于对图3场景的推导,我们知道存在一个叛将时,必须再增加3个忠将才能达到最终的行动一致。为加深理解,我们将利用3个忠将1个叛将的场景对口信消息型解决方案进行推导。在口信消息型解决方案中,首先发送消息的将军称为指挥官,其余将军称为副官。对于3忠1叛的场景需要进行两轮作战信息协商,如果没有收到作战信息那么默认撤退。图4是指挥官为忠将的场景,在第一轮作战信息协商中,指挥官向3位副官发送了进攻的消息;在第二轮中,三位副官再次进行作战信息协商,由于GeneralA、B为忠将,因此他们根据指挥官的消息向另外两位副官发送了进攻的消息,而GeneralC为叛将,为了扰乱作战计划,他向另外两位副官发送了撤退的消息。最终CommandingGeneral,GeneralA和B达成了一致的进攻计划,可以取得胜利。

Cardano推出EVM兼容侧链工具包:3月6日消息,Cardano背后开发公司Input Output Global(IOG)宣布推出自定义EVM兼容侧链工具包,目前概念验证版已上线测试网,该工具包由三个核心组件,分别是:Mainchain Plutus脚本(支持安全的跨链交易和代币移动)、链上追踪器(跟踪管理侧链的主链数据和事件)、侧链模块(解释主链数据并实施必要的账本调整),开发人员将能够为Cardano构建自定义侧链,继而支持更多链上功能和可扩展性。(Micky)[2023/3/6 12:45:27]

图4.指挥官为忠将的场景图5是指挥官为叛将的场景,在第一轮作战信息协商中,指挥官向GeneralA、B发送了撤退的消息,但是为了扰乱GeneralC的决定向其发送了进攻的消息。在第二轮中,由于所有副官均为忠将,因此都将来自指挥官的消息正确地发送给其余两位副官。最终所有忠将都能达成一致撤退的计划。

DAO Maker于10月16日结束的治理提案或将停止其去年攻击事件后提出的补偿计划:10月15日消息,DAO Maker治理投票显示,将提议暂停USDR赎回,目前投票领先的投票选项表明受影响的用户有机会获得原计划中规定的金额,但不会得到补偿。本次投票将于10月16日结束。去年7月,DAO Maker发生攻击事件,而后提出分两阶段进行补偿计划,相关的DAO Maker用户表示该团队试图使用协议治理来停止补偿过程。(Rekt)[2022/10/16 14:29:15]

图5.指挥官为叛将的场景如上所述,对于口信消息型拜占庭将军问题,如果叛将人数为m,将军人数不少于3m+1,那么最终能达成一致的行动计划。值的注意的是,在这个算法中,叛将人数m是已知的,且叛将人数m决定了递归的次数,即叛将数m决定了进行作战信息协商的轮数,如果存在m个叛将,则需要进行m+1轮作战信息协商。这也是上述存在1个叛将时需要进行两轮作战信息协商的原因。2、签名消息型解决方案同样,对签名消息的定义是在口信消息定义的基础上增加了如下两条:A4.忠诚将军的签名无法伪造,而且对他签名消息的内容进行任何更改都会被发现;A5.任何人都能验证将军签名的真伪。基于签名消息的定义,我们可以知道,签名消息无法被伪造或者篡改。为了深入理解签名消息型解决方案,我们同样以3三将军问题为例进行推导。图6是忠将率先发起作战协商的场景,GeneralA率先向GeneralB、C发送了进攻消息,一旦叛将GeneralC篡改了来自GeneralA的消息,那么GeneralB将将发现作战信息被GeneralC篡改,GeneralB将执行GeneralA发送的消息。

Avalanche上被动收入协议Aleph Finance决定解散:6月21日消息,Avalanche上被动收入协议Aleph Finance宣布将解散,Aleph Finance表示决定结算的主要原因是糟糕的市场环境、节点niche被Strong block管理不善所摧毁以及公众对于锁定和质押产品的情绪等。(alephfinance)[2022/6/22 4:43:46]

图6.忠将率先发起作战协商图7是叛将率先发起作战协商的场景,叛将GeneralC率先发送了误导的作战信息,那么GeneralA、B将发现GeneralC发送的作战信息不一致,因此判定其为叛将。可对其进行处理后再进行作战信息协商。

图7.叛将率先发起作战协商签名消息型解决方案可以处理任何数量叛将的场景。总结在分布式系统领域,拜占庭将军问题中的角色与计算机世界的对应关系如下:将军,对应计算机节点;忠诚的将军,对应运行良好的计算机节点;叛变的将军,被非法控制的计算机节点;信使被杀,通信故障使得消息丢失;信使被间谍替换,通信被攻击,攻击者篡改或伪造信息。如上文所述,拜占庭将军问题提供了对分布式共识问题的一种情景化描述,是分布式系统领域最复杂的模型。此外,它也为我们理解和分类现有的众多分布式一致性协议和算法提供了框架。现有的分布式一致性协议和算法主要可分为两类:一类是故障容错算法(CrashFaultTolerance,CFT),即非拜占庭容错算法,解决的是分布式系统中存在故障,但不存在恶意攻击的场景下的共识问题。也就是说,在该场景下可能存在消息丢失,消息重复,但不存在消息被篡改或伪造的场景。一般用于局域网场景下的分布式系统,如分布式数据库。属于此类的常见算法有Paxos算法、Raft算法,、ZAB协议等。一类是拜占庭容错算法,可以解决分布式系统中既存在故障,又存在恶意攻击场景下的共识问题。一般用于互联网场景下的分布式系统,如在数字货币的区块链技术中。属于此类的常见算法有PBFT算法、PoW算法。

看完本文,你对这两种解决方案有什么看法?欢迎在评论区跟我们讨论!

标签:RALERAGENNERAUrals Cointera币放弃HygenGlobal Funeral Care

火必交易所热门资讯
NEX:Nexus Mutual:本次漏洞披露带给我们的启示是什么?

编者按:本文来自加密谷Live,作者:RoxanaDanila,翻译:子铭,Odaily星球日报经授权转载。在过去的一周之内,我们已经收到了两个负责任的漏洞披露.

1900/1/1 0:00:00
以太坊:星球日报 | Bakkt比特币期货合约交易量已超过现金结算比特币产品成交量;近七日Tether新发行1.57亿USDT

头条Bakkt比特币期货合约交易量已超过现金结算比特币产品成交量根据Skew的最新数据,Bakkt的实物结算期货交易量超过了其现金结算产品的交易量.

1900/1/1 0:00:00
GIL:当教育碰上区块链,能解决教育行业哪些痛点?

突如其来的疫情,不仅打乱了生活的节奏,也让本应正常展开的工作、学习都相继受到影响。事实上,不只各大院校在面临疫情特殊时期无法开展线下教学,对于很多从未面临过如此情况的线下教培机构来说,疫情的冲击.

1900/1/1 0:00:00
ENTR:Decentraland:会是区块链时代的“第二人生”吗?

编者按:本文来自蓝狐笔记,Odaily星球日报经授权转载。前言:说到虚拟现实世界,互联网时代有“第二人生”,而区块链时代有“Decentraland”,两者最本质的区别是什么?Decentral.

1900/1/1 0:00:00
SDT:什么是区块链稳定币?如何查询稳定币数据?

稳定币是指价格波动性较低的加密货币,稳定币的价格与法定货币挂钩。例如USDT,即Tether发行的稳定币,与美元USD挂钩,1USDT约等于1美元.

1900/1/1 0:00:00
EOS:EOS散户:BM像一个有梦想的中二青年

BM的“乱来”,让回调中的EOS的价格又崩了。在这之前,EOS趋势向好。一方面,受到减半行情提振,EOS处于领涨状态,投资者们对EOS的信心有所回升.

1900/1/1 0:00:00