PRE:科普 | 共识算法的分类(下)

——Part4?拜占庭容错算法——

▲PBFT

实用性拜占庭容错算法,是一种在信道可靠的情况下解决拜占庭将军问题的实用方法。拜占庭将军问题最早由LeslieLamport等人在1982年发表的论文提出,论文中证明了在将军总数n大于3f,背叛者为f或者更少时,忠诚的将军可以达成命令上的一致,即3f+1<=n,算法复杂度为O(n^f+1)。随后MiguelCastro和BarbaraLiskov在1999年发表的论文中首次提出PBFT算法,该算法容错数量也满足3f+1<=n,算法复杂度降低到了O(n2)。

下面介绍PBFT算法的核心共识流程,如图4所示。

图4.三阶段共识

欧易OKEx将于3月18日推出DeFi系列科普视频:据欧易OKEx官方消息显示,欧易OKEx将正式推出DeFi系列科普视频《欧易DeFi20讲》,本系列节目由欧易OKEx亚太区CEO马克金主讲。该视频首期将于3月18日11:00(HKT)推出,用户可以在欧易OKEx官方学院、金色财经观看。

《欧易DeFi20讲》主要包含DeFi入门指南、全景解读DeFi生态及如何参与DeFi三个篇章,可以轻松使用户了解DeFi原理,洞察DeFi价值,掌握DeFi热点,更多详情请关注欧易OKEx官方学院。[2021/3/18 18:55:59]

在请求request阶段,客户端发起请求,主节点收到客户端的请求后,将触发核心共识流程。算法的核心共识流程分为三个阶段:pre-prepare阶段,prepare阶段,commit阶段。其中,节点在prepare阶段和commit阶段各进行了一轮投票,分别对消息的合法性与待执行进行了确认。图中,c代表客户端,0、1、2、3代表节点的编号,在视图为0的情况下,节点0是主节点,节点1、2、3为从节点。打叉的3号代表拜占庭节点,这里表现的恶意行为就是对其它节点的请求无响应。

声音 | CNBC主持人:加密货币最大的缺点之一就是难以向外行快速科普:CNBC主持人Ran NeuNer近期发推称,加密货币最大的缺点之一就是很难向外行快速解释。当人们要求我向他们解释比特币时,我知道他们至少需要一个小时才能真正理解。[2019/9/10]

pre-prepare阶段:主节点在收到客户端的请求后,会主动向其它节点广播pre-prepare消息,其中,v为当前视图,n为主节点分配的请求序号,D(m)为消息摘要,m为消息本身。从节点在收到pre-prepare消息之后,会对该消息进行合法性验证,若通过验证,那么该节点就会进入pre-prepared状态,表示该请求在从节点处通过合法性验证。否则,从节点会拒绝该请求,并触发视图切换流程。

prepare阶段:当从接到进入到pre-prepared状态后,会向其它节点广播prepare消息,其中,i为当前节点标识序号。其他节点收到消息后,如果该请求已经在当前节点进入pre-prepared状态,并且收到2f条来自不同节点对应的prepare消息(包含自身发出的以及主节点的pre-prepared消息),那么该请求就进入到prepared状态。

动态 | 浙江卫视节目科普支付宝区块链防伪溯源产品:昨日,在浙江卫视播出的科普综艺栏目《智造将来》现场,支付宝首次展示了支付宝区块链防伪溯源产品,以接地气的方式公开向大众展示区块链在生活中的应用。[2019/3/4]

commit阶段:当请求在当前节点进入prepared状态后,本节点会向其它节点广播commit消息。如果该请求已经在当前节点达到prepared状态,并且收到2f+1条来自不同节点对应的commit消息(包含自身),那么该请求就会进入到committed状态,并可以进行执行。执行完毕后,节点会将执行结果反馈给客户端进行后续判断。

——Part5?新型共识算法——

▲HotStuff

HotStuff是一个建立在部分同步模型上的拜占庭容错协议。HotStuff具有线性视图变更的特性,把轮换主节点融入了常规共识流程中,切换主节点无需增加其他协议和代价,且系统在此期间还能继续对外提供服务。该特性解决了PBFT最棘手的视图变更问题,包括实现复杂度高、完成时间不确定以及整个过程系统不能正常对外提供服务等。此外,HotStuff还将共识流程的通信复杂度降低至O(n)。

中科院自动化研究所将面向大中小学生开展区块链等主题的科普讲座:5月21日,新华网讯,今年,中国科学院自动化研究所将举办第十四届“自动化之光”公众科学开放日活动。届时,自动化所将面向大中小学生分别开展《脑与智能》、《区块链技术与平行智能》、《大数据时代的视觉智能》、《动画真奇妙》等4个主题报告,用实例和生动的演示深入浅出地为大家揭示智能技术的原理和奥妙。[2018/5/21]

HotStuff的基础共识流程围绕一个核心的三轮共识投票展开,在该过程中,视图以单调递增的方式不断切换。在每个视图内,都有一个唯一主节点负责打包区块、收集和转发消息并生成QC。整个过程包括5个阶段,准备阶段、预提交阶段、提交阶段、决定阶段和最终阶段。主节点想要提交某个分支,需要在PREPARE、PRE-COMMIT和COMMIT这三个阶段收集n-f个共识节点的带签名的投票消息,并利用门限签名算法把他们合成一个证书,随后广播给从节点。

财政部副部长朱光耀:数字经济还处在发展的过程中,要以科普、推动的态度来推进数字经济发展:今日,在中国发展高层论坛2018年会上,财政部副部长朱光耀表示:“数字经济还处在发展的过程中,要以科普、推动的态度来推进数字经济发展。也要关注数字经济的其他影响,包括税收征管、反监管措施等要跟上。”[2018/3/25]

图5.BasicHotStuff共识流程

Basic-HotStuff各个阶段的流程高度相似,HotStuff作者便提出Chained-HotStuff来简化Basic-HotStuff的消息类型,并允许Basic-HotStuff的各阶段进行流水线处理。流程如图6所示:

图6.Chained-HotStuff是Basic-HotStuff的流水线形式,v表示视图view,圆角矩阵表示一个node

▲HoneyBadgerBFT

FLP定理从理论上证明了在纯异步环境下不可能存在一种确定性的共识协议。后世的研究者们为了绕过这个定理,不得不在两个方向上进行妥协:要么加强对网络的假设,要么引入随机源。HoneyBadgerBFT协议,这是一个完全异步的共识协议,它不依赖于任何关于网络环境的时间假设。异步共识协议则完全不需要考虑timer的设置。为了保证协议的活性,异步协议需要引入随机源,简单来说就是当协议无法达成共识的时候,借助上帝抛骰子的方式随机选择一个结果作为最终结果。

HoneyBadgerBFT通过模块化的方式解决了拜占庭环境下的原子广播问题,即如何保证在异步和拜占庭环境下,各个节点按相同顺序收到相同的消息。HoneyBadgerBFT首先将ABC分解成一个核心模块,异步共同子集。之后将ACS分解成了RBC(ReliableBroadcast)和ABA(AsynchronousBinaryAgreement)两个子模块。整体的算法分为三个步骤:

1)每个节点交易随机选择一些交易,所有节点的总交易个数是B。每个节点的交易进行加密生成x。

2)通过ACS协议将每个节点加密的交易进行广播,以及形成统一交易序列。

3)解密交易生成区块。

——Part6?总结——

上述介绍的共识机制有着各自的优缺点,对于不同的区块链系统,我们需要结合实际使用场景与网络规模,采用不同的共识算法。下面我将以表格的形式对目前各平台使用的共识机制进行简要的对比与总结:

作者简介

袁超趣链科技基础平台部共识算法研究小组

参考文献

LamportL,ShostakR,PeaseM.TheByzantinegeneralsproblem//Concurrency:theWorksofLeslieLamport.2019:203-226.

CastroM,LiskovB.PracticalByzantinefaulttolerance//OSDI.1999,99(1999):173-186.

CastroM,LiskovB.PracticalByzantinefaulttoleranceandproactiverecovery.ACMTransactionsonComputerSystems(TOCS),2002,20(4):398-461.

IttaiAbraham,GuyGueta,DahliaMalkhi,LorenzoAlvisi,RamakrishnaKotla,andJean-PhilippeMartin.Re-visitingfastpracticalbyzantinefaulttolerance.CoRR,abs/1712.01367,2017.

MillerA,?XiaY,?CromanK,etal.TheHoneyBadgerofBFTProtocols//AcmSigsacConferenceonComputer&CommunicationsSecurity.ACM,2016:31-42.

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

[0:0ms0-1:480ms