CN115987516A - 拜占庭环境下的异步二元共识链生成方法 - Google Patents
拜占庭环境下的异步二元共识链生成方法 Download PDFInfo
- Publication number
- CN115987516A CN115987516A CN202211501553.6A CN202211501553A CN115987516A CN 115987516 A CN115987516 A CN 115987516A CN 202211501553 A CN202211501553 A CN 202211501553A CN 115987516 A CN115987516 A CN 115987516A
- Authority
- CN
- China
- Prior art keywords
- consensus
- node
- value
- byzantine
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
本发明属于计算机技术领域,特别涉及一种拜占庭环境下的异步二元共识链生成方法,根据联盟链网路逻辑及物理拓扑结构,获取异步结点集合,所述异步结点集合中包含异步顺序执行的各结点及各结点对应公钥;异步结点集合异步轮次执行条件下,利用预设的单链生成规则来生成点对点网络数据交易传输链路,且在每一异步轮次中,各新生区块通过映射函数链接至当前轮次链尾区块,并依据验证结点集中每个非拜占庭结点提议的共识值来对新生区块进行验证确认,并依据验证确认的投票比例是否满足预设共识门限值来产生共识区块。本发明从链生成视角分析联盟链网络逻辑拓扑与物理拓扑结构对性能的影响来生成共识链路,防止联盟链出现分叉,提升联盟链共识性能。
Description
技术领域
本发明属于计算机技术领域,特别涉及一种拜占庭环境下的异步二元共识链生成方法。
背景技术
随着无许可区块链在电子加密货币领域应用的巨大成功,基于去中心化身份认证和群体共识的区块链网络规模持续扩大。但受限于***规模、性能和部署成本等,无许可区块链短期内难以在某些关键业务场景和领域得到广泛应用,越来越多的研究聚焦于基于许可准入机制的联盟区块链(Consortium Blockchain,CBC)。CBC将提议者集合限制为n个已知结点,基于链的权益证明或拜占庭容错(Byzantine Fault Tolerance,BFT)的权益证明,以容错共识方式提议新区块,在不需要多次确认的情况下完成新交易验证,抑制潜在拜占庭结点对***的影响,交易处理效率显著高于工作量证明机制驱动的无许可公有链。近年来,联盟链应用场景不断拓展,提供服务的多样性和持久性都得到了前所未有的提升,为网络环境下多方合作信息服务实体间身份认证和信任迁移提供了新的途径。公有链通常与特定的电子加密货币相关联,采用PoW(Proof of work)、PoS(Proof of stake)或拓展的共识机制,在设计时未对参与结点的位置、计算存储能力及准入方式等进行限定。相比之下,联盟链依赖可信服务或联盟机构对结点进行身份验证,其主要目标是在逻辑上以不可篡改和可追溯方式存储数据,并通过在其上部署和运行智能合约实现去中心化价值流动。联盟链的出现极大地拓宽了解决跨域认证问题的探索空间,以去中心化方式实现了跨域通信亟待解决的自证身份、互证信任、共证真实等功能。
为满足联盟机构多信任域信息服务实体间不同的应用需求,并与侧链、分片机制等具有良好可扩展性的研究保持兼容,联盟链共识机制不断更新。联盟链共识机制确保联盟网络各结点存储在分布式账本中的内容达成一致,并保护数据免受未经授权访问,对于联盟链可扩展性、交易速度、交易确定性和安全性等性能实现起着重要作用。联盟链用户可通过API创建互相平行的联盟单链,并设定初始共识机制,允许属于同一联盟机构的各异构平行单链采用不同的共识机制,同时,可在任意时刻通过投票表决机制实现各平行单链共识机制升级。通过在混合联盟链环境中部署智能合约协调***在若干侧链或分片之间达成安全共识。然而,联盟链拜占庭网络分区环境下,不同联盟链网络管理域中信息服务实体之间交互频繁,基于异步消息传递的共识机制仍面临挑战。在联盟链网络分区期间,可满足分布式***的可扩展性或安全性,但最终确定区块冲突的共识机制不同,***可扩展性对安全性的影响程度不同,不能两者兼得。因此,进一步对联盟链共识机制进行深入研究,提升异构联盟链网络中分区网络服务共识机制的安全性和可扩展性,提高不同信任域间信任迁移和数据共享效率,具有重要的学术意义和广泛的应用价值。
在现有主流联盟链平台基础之上,出现了许多提高联盟链性能的研究。部分性能驱动的联盟链共识协议通过委托机制保证账本一致性和分区容错性,但减少了参与共识的核心结点数量,降低了***去中心化带来的安全性。随着更多联盟机构的加入,将多云部署专用链接用于实现更高的跨云带宽,从而使联盟链结点获得联盟网络内的高网络带宽和低延迟,降低数据移动成本。然而,鉴于权限分配、地理位置等限制,联盟链的部署模型与公有链的部署模型大不相同。后者通常分布广泛,具有与万维网非常相似的带宽和延迟特性,联盟链应用特别是云提供商提供的区块链托管解决方案,通常存在更严格的结点访问权限控制。通常需要部分结点作为协调器,若协调器为非拜占庭结点,且消息在异步轮次中传递及时,则协调器将其提议广播给联盟链网络内所有结点;若协调器为拜占庭结点,则可通过利用它在共识轮次内拥有的力量来阻碍算法性能,进而影响联盟链共识性能。
发明内容
为此,本发明提供一种拜占庭环境下的异步二元共识链生成方法,从链生成视角分析联盟链网络逻辑拓扑与物理拓扑结构对性能的影响来生成共识链路,防止联盟链出现分叉,提升联盟链共识性能。
按照本发明所提供的设计方案,提供一种拜占庭环境下的异步二元共识链生成方法,包含如下内容:
根据联盟链网路逻辑及物理拓扑结构,获取异步结点集合,所述异步结点集合中包含异步顺序执行的各结点及各结点对应公钥;
异步结点集合异步轮次执行条件下,利用预设的单链生成规则来生成点对点网络数据交易传输链路,且在每一异步轮次中,各新生区块通过映射函数链接至当前轮次链尾区块,并依据验证结点集中每个非拜占庭结点提议的共识值来对新生区块进行验证确认,并依据验证确认的投票比例是否满足预设共识门限值来产生共识区块。
作为本发明中拜占庭环境下的异步二元共识链生成方法,进一步地,异步结点集合中,各节点公私钥对由椭圆曲线加密算法生成,其中,非拜占庭结点利用各自私钥对新生区块进行验证确认。
作为本发明中拜占庭环境下的异步二元共识链生成方法,进一步地,预设单链生成规则包含:不等高原则、不包含原则及不叠加原则,其中,不等高原则为:针对拥有共同创世区块的任意两个区块,且该任意两个区块绝对多数链接中的有序区块的高度不相等;不包含原则为:针对拥有共同创世区块的任意两个区块,该任意两个区块绝对多数链接中对应有序区块不关联;不叠加原则为:对于大于零的任意区块高度n,任一区块最多存在一个绝对多数链接使区块高度为n。
作为本发明中拜占庭环境下的异步二元共识链生成方法,进一步地,区块的绝对多数链接,依据验证结点集中是否有超过预设门限值的验证结点对当前链尾区块确认投票和对新生区块验证,如果有,则将当前链尾区块和新生区块构成的有序区块作为区块的绝对多数链接。
作为本发明拜占庭环境下的异步二元共识链生成方法,进一步地,依据每个非拜占庭结点提议的共识值来对新生区块进行验证确认,包含:首先,结点提议共识初始值赋值给二元提议共识值的本地当前估计;接着,各非拜占庭结点进行共识值清洗,过滤掉拜占庭结点提议的共识值;然后,每个结点通过广播消息及反馈来交换共识值估计,并依据反馈获取中间辅助值集,其中,中间辅助值集中数值来自不同结点广播本地共识值集的当前值;最后,依据中间辅助值集来确定结点提议共识的共识值候选者。
作为本发明拜占庭环境下的异步二元共识链生成方法,进一步地,每个结点通过广播消息及反馈来交换共识值估计中,每个非拜占庭结点广播当前轮次用于共识的二元值,并获取一组其他结点提议且用于共识的二元值,依据二元值来达成一致共识,其中,二元值为结点本地共识值集的当前二元值。
作为本发明拜占庭环境下的异步二元共识链生成方法,进一步地,依据每个非拜占庭结点提议的共识值来对新生区块进行验证确认,,并依据验证确认的投票比例是否满足预设共识门限值来产生共识区块,还包含:依据联盟链上各节点本地时间偏差来设置时间延迟上限,利用时间延迟上限设置时间窗口,以在该时间窗口内链路各节点均接收到相关广播消息;并分析验证结点集中非拜占庭结点行为,利用验证结点集归一化结点聚合指数和信任度评价值来对验证结点集进行动态调整。
作为本发明拜占庭环境下的异步二元共识链生成方法,进一步地,归一化结点聚合指数表示为:其中,a为拜占庭结点占比,Mi为第i轮验证结点总数,为验证结点vj在第i轮的投票,V为验证结点集,BFFi为第i轮区块确定因子,N为区块个数。
作为本发明拜占庭环境下的异步二元共识链生成方法,进一步地,信任度评价值表示为:其中,f(p,q)表示结点p对结点q的可信度评价,k为各共识轮次联盟链结点个数,η为指定时间内正常工作的验证结点占比,i表示第i轮共识,S表示联盟结点集。
作为本发明拜占庭环境下的异步二元共识链生成方法,进一步地,利用验证结点集归一化结点聚合指数和信任度评价值来对验证结点集进行动态调整,包含:每个共识轮次结点可信度评价值高于预设值的验证结点信誉值保持不变,可信度评价值低于预设值或不投票的验证结点信誉值削减,并将信誉值低于信誉阈值的验证结点移出验证结点集。
本发明的有益效果:
本发明通过分析联盟链结构对共识性能的影响来设置避免链分叉的单链生成规则,并通过分析网络分区、挽留过时延、拜占庭节点占比、验证结点状态对共识过程影响来生成异步共识轮次下的共识链。进一步通过实验数据表明,本案共识方案在时延、吞吐量等方面能够表现出较好的异步环境共识效能,能够提高联盟链共识效率和安全性。
附图说明:
图1为实施例中异步二元共识链生成流程示意图;
图2为实施例中ABBCA与Coin的时延对比示意;
图3为实施例中不受限条件下的吞吐量测试示意;
图4为实施例中受限条件下的吞吐量测试示意。
具体实施方式:
为使本发明的目的、技术方案和优点更加清楚、明白,下面结合附图和技术方案对本发明作进一步详细的说明。
联盟链通常由机构背书确定验证者集合和出块机制,从现有的块中投票生成子块,从而构建一个不断生长的区块树,树的根部被为“创世区块”。正常情况下,出块机制使各区块生成单链的形式,即一个父块只有一个子块。然而由于网络延迟或恶意攻击,一个父块会不可避免产生多个待确认子块。联盟链共识要做的工作就是在异步结点集(Asynchronous node set,ANS)异步顺序执行条件下,从每个父块的若干待确认子块中只选择一个子块,即从区块树中选择一条最权威的链。本发明实施例,提供一种拜占庭环境下的异步二元共识链生成方法,参见图1所示,包含如下内容:
S101、根据联盟链网路逻辑及物理拓扑结构,获取异步结点集合,所述异步结点集合中包含异步顺序执行的各结点及各结点对应公钥;
S102、异步结点集合异步轮次执行条件下,利用预设的单链生成规则来生成点对点网络数据交易传输链路,且在每一异步轮次中,各新生区块通过映射函数链接至当前轮次链尾区块,并依据验证结点集中每个非拜占庭结点提议的共识值来对新生区块进行验证确认,并依据验证确认的投票比例是否满足预设共识门限值来产生共识区块。
可基于ANS的联盟链生成模型(ANS based consortium chain generationmodel,ACCGM),能够从链生成视角分析联盟链网络逻辑拓扑与物理拓扑结构对其性能的影响,利用防止联盟链出现分叉的单链生成规则来生成共识区块,以提升联盟链共识性能。其中,ANS为联盟链***由k个异步顺序执行的结点及其公钥构成的集合,可记作“异步”是指每个结点都以随时间变化的特定速度工作,且该结点的工作状态对其他结点透明。“顺序”是指各结点在工作向前推进过程中,一次仅执行一个原子步骤。
ANS通过异步可靠的联盟链点对点网络交换数据进行通信,任何一对结点都可以通过双向通信信道建立连接,在网络传输过程中,交易不会丢失、被复制或被篡改,但存在交易传输延迟。ni∈Γ表示联盟链结点,B表示区块,t≥0时,假设各结点ni已获得部分或全部链上区块账本即创世区块g是所有结点在初始时刻唯一知道的块,即各结点公、私钥可由椭圆曲线加密算法生成,并使用结点私钥对新生区块进行验证确认。
各新生区块B可通过映射函数P链接至当前链尾区块P(B),块间关系可递归地表示为:
P0(B):=B (1)
P2(B):=P(P(B)) (2)
Pi(g):=φ,i∈N (3)
式(1)、(2)是对块链的递归表示,式(3)中g为创世区块,不存在父区块,式(4)限定块间关系不存在循环。根据递归性,将生成和包含区块B的链C(B)定义为从B到g的路径,即
CB:=(B,P(B),…,Pi-1(B),g) (5)
由于网络延迟、eclipse攻击等原因,在链生成模型中,允许不同的联盟链结点感知不同的块集,即:
联盟链生成过程中,块链共识具有继承性,即:
若B′≠B,且B′∈CB,则称B′为B的祖先区块,相应地,称B为B′的子孙区块,若B′=P(B),则称B为B′的直接子孙结点。根据继承性可知,块B所在的区块链状态是通过执行从创世区块g开始的CB中的所有交易获得。
假设在由k个结点构成的联盟链***中,最多允许存在个拜占庭结点,他们可能做出任意行为,例如崩溃、无法发送或接收消息、发送任意消息、以任意状态启动、执行任意状态转换等,还可以利用诚实结点“污染”计算,例如,通过发送与部分诚实结点错误估计值具有相同内容的消息,从而影响***共识。拜占庭结点不能无限制推迟接收消息,但可以通过修改接收消息的顺序来控制网络。特别是,在完全异步的消息传递***中,没有共识算法可以同时确保***安全性和可扩展性。为确保***达到最终共识,本案实施例中,可假设在某个特定时间之后,消息传输和结点计算延迟存在时间上限δ。
若联盟链任意结点v在t时刻收到某个消息,则链上其他结点能够保证在时间窗口[t,t+δ]内收到该消息。联盟链上各结点的本地时间偏差都被纳入到δ。假设结点na当前处理区块的时间戳为ta_Stamp,当某个区块的时间戳是tb_Stamp,且tb_Stamp>ta_Stamp时,意味着时间戳为tb_Stamp的区块发生在将来,那么结点na就会拒绝该区块;若tb_Stamp<ta_Stamp-δ,表示时间戳为tb_Stamp的区块已经被确认,则结点na也会拒绝该区块。
延迟时间上限δ条件下,***将包含ts_Stamp时刻s的区块头、最高块块高l(s)、块哈希H(s)、新提议区块u的哈希h(s|u)以及由验证者v的私钥创建的有效签名且满足式(8)的合法验证视为正确验证,记作
可以看出,结点投票的正确性取决于该结点进行投票的链。通常情况下,验证者v广播一条六元组投票消息:当前链尾结点区块头s,高度l(s),对s区块头的哈希H(s)、新提议区块u的哈希h(s|u)、时间戳及验证者v的签名。当前链尾结点s必须是新提议区块u的祖先,否则就认为这个投票是非法的。如果验证者v的公钥不在验证者集合中,那么这个投票也是非法的。
如果联盟链上一个区块s存在子孙区块u,且u获得了超过门限值的正确投票,那么区块s被确定。即:
作为递归定义的基础,通常认为创世区块g既获得了超过门限值的正确投票也是最终确定的。定义4中,区块u′为区块u的子孙区块,若区块s及其子孙区块u都获得了超过门限值的正确投票,那么称为区块s被确定。sthreshold,uthreshold为在延迟上限为δ时的共识门限值。
绝对多数链接指对有序区块(s,u),记作s→u,至少有超过门限值的验证者已经发布了对当前链尾区块s确认投票和对新打包区块u的δ-验证。
当且仅当拥有共同创世区块g的两区块s、u位于不同分支时,两区块s和u发生了区块冲突。即:
因此,如果链上两个区块s、u都不是对方的祖先或后代,那么这两个最终确定的区块是相互冲突的。因此,链尾区块s是最终确定的,要么它是创世区块,要么当且仅当:(1)链尾区块s已获得超过阈值的验证结点投票;(2)存在绝对多数链接s→u;(3)区块s、u不冲突;(4)区块高度h(u)=h(s)+1。
进一步地,区块的绝对多数链接,依据验证结点集中是否有超过预设门限值的验证结点对当前链尾区块确认投票和对新生区块验证,如果有,则将当前链尾区块和新生区块构成的有序区块作为区块的绝对多数链接。
作为优选实施例,进一步地,为防止链分叉,预设单链生成规则可设置为包含:不等高原则、不包含原则及不叠加原则,其中,不等高原则为:针对拥有共同创世区块的任意两个区块,且该任意两个区块绝对多数链接中的有序区块的高度不相等;不包含原则为:针对拥有共同创世区块的任意两个区块,该任意两个区块绝对多数链接中对应有序区块不关联;不叠加原则为:对于大于零的任意区块高度n,任一区块最多存在一个绝对多数链接使区块高度为n。
防止链分叉且保障单个联盟链上最多存在一个合理区块高度n(n>0)的单链生成规则中,不等高规则可表示为:如果使得Pi(s1)=Pj(s2)=g(i>0,j>0),且s1→u1和s2→u2是不同的绝对多数联结,那么h(u1)≠h(u2)。不包含规则可表示为:如果使得Pi(s1)=Pj(s2)=g(i>0,j>0),且s1→u1和s2→u2是不同的绝对多数联结,那么h(s1)<h(s2)<h(u2)<h(u1)是不成立的。不叠加规则可表示为:对于任何高度n(n>0),最多存在一个绝对多数联结s→u使得h(t)=n。
联盟链准入机制大大提高了基于ACCGM的联盟链***抵御外部攻击的能力,然而无法甄别和阻止拜占庭结点对***的威胁。ACCGM共识过程中,拜占庭结点可在不违反联盟机构规则的情况下发起异常投票,得到某个最终结果,或保留计算过程中的中间数据,对其他参与者的数据进行推断并窥探。一方面,当验证结点发起不投票行为,导致验证者正确投票比例低于共识门限值,将无法产生共识区块。另一方面,若验证者的恶意投票或错误行为导致同一轮次产生两个或两个以上的冲突确认区块,要么产生链分叉,要么使用链外治理机制以牺牲一个分支为代价支持其中另一分支。因此,分析验证结点行为对于构建***激励机制,保障联盟链正确形成具有重要作用。
激励机制受到以下方面影响:1)恶意投票、错误投票或不投票结点占比越大惩罚越严重;2)导致无法共识或链分叉情况将加重惩罚。下面进行形式化分析。
假设在联盟链某块s上写入m个区块后(m为常数)块s被概率确认,则第i轮块s的区块确定因子BFF(block Finalisation factor)为:
其中,为从区块s写入联盟链至当前轮次i经历的共识轮次。rs,i≥m,h(si)-h(s)<m时,意味着区块s之后的rs,i个轮次中存在未共识轮次,例如由于恶意投票、错误投票或不投票结点占比较大,从而使正确投票达不到预设共识门限值,无法获得共识。
vj∈V,0<j≤Mi,Mi为第i轮验证结点总数,验证结点vj在第i轮的投票记为
通过分析验证结点行为,得出用以表征联盟机构共识能力的验证结点聚合指数。机构在第i轮的归一化验证结点聚合指数Ci可表示为
由拜占庭结点占比a∈(0,1/3)可知,2/3<(1-a)<1,且当BFFi<N时,|BFFi-N|≥1,因此Ci∈(0,1)。
基于ACCGM的联盟链分布式网络环境下,由机构作背书为结点提供初始信誉,这是一种基于认证和授权的静态信任管理机制。然而,在各结点自主参与计算过程中,使用初始信誉评估结点行为往往呈现出一定程度的滞后性。例如,联盟链网络中结点具有交易或区块路由转发能力,受到恶意劫持的高初始信誉结点可自主更改转发路由,甚至丢弃部分交易或区块。若高初始信誉结点提供欺诈服务或不提供服务,将严重威胁***共识。为提高结点信誉评价的准确性和动态适应能力,可通过建立基于共识轮次信息反馈的联盟链结点信任模型,给出依赖来自结点间加权信任反馈的结点信誉动态维持机制,并对上述模型进行定性和定量评估,进一步分析结点信誉与联盟链网络共识的关系。
第i共识轮次结点p对结点q的可信度评价函数f(p,q)i可表示为:
其中,为联盟机构对联盟结点集信任度的标准偏差。
假设各共识轮次联盟链结点个数均为k,用η∈(0,1]表示一段时间内正常工作的验证结点占比,(1-η)表示非正常工作的验证结点占比,机构信誉值随η值动态变化,则第i共识轮次联盟机构结点集信任度可表示为:
上式中,i=0表示在初始轮次结点间没有交互历史,将初始轮次的直接信任度设定为η。
***在每轮开始共识之前,当验证结点集归一化验证结点聚合指数Ci和信任度评价函数DΓ,i值均低于门限值时,对验证结点集合进行动态调整:Ⅰ)保持在每个轮次结点可信度评价函数值高于预设值的验证结点的信誉值不变,Ⅱ)减少结点可信度评价函数值低于预设值或不投票验证结点的信誉值,Ⅲ)将信誉值低于信誉阈值的验证结点移出验证结点集。这将导致正常工作的验证结点在联盟机构的影响力增加,显著降低***共识风险。
通过上述对网络分区、网络时延、拜占庭结点占比、验证结点状态等对共识过程影响的分析发现,存在个拜占庭结点的联盟链***中,可以使用结点的本地随机策略或共享公共随机策略来概率性地解决k个结点之间的共识问题,然而,不能有效解决异步消息传递***中的共识问题。为解决上述问题,下面进一步分析拜占庭结点对联盟链共识的影响,给出一种新颖的基于异步二元拜占庭共识(asynchronous binary Byzantineconsensus algorithm,ABBCA)的联盟链生成机制。
基于ABBCA的联盟链生成机制依赖于结点二元取值的多对多通信,扩展拜占庭共识的通用定义,允许一个确定的共识值集组合多个提议。一方面,假设仅由拜占庭结点提议的值不能被共识,非拜占庭结点可以在无协调结点帮助的情况下快速确定共识结果。另一方面,如果非拜占庭结点提议的共识值不一致,将提前终止该轮共识。令是由结点提议的一组共识值集,在多元共识中可以包含任意数量的值,为简化问题,在二元共识中取假设每个非拜占庭结点都提议一个共识值,二元拜占庭共识问题可转换为让每个结点以满足以下属性的方式决定一个值:确定性,每个非拜占庭结点最终都会提议一个用于共识的值;一致性,没有两个非拜占庭结点决定不同的值;有效性,如果所有非拜占庭结点都提议用于共识的相同的值,则共识结果不会是其他值。
ABBCA算法依赖于结点二元取值的多对多通信(binary value broadcast),表示为BiVa-B。在BiVa-B实例中,每个非拜占庭结点ni广播当前轮次用于共识的二元值,并通过网络获得一组其他结点提议的用于共识的二元值,存储在本地只读变量集ξi中,ξi初始化为φ,当接收到新值时集合ξi元素增加。如果至少(κ+1)个非拜占庭结点ni广播相同的值则各非拜占庭结点ni将添加到其本地只读变量集ξi中。如果ni是非拜占庭结点,且则已由非拜占庭结点进行广播。如果非拜占庭结点ni将添加其本地只读变量集ξi,则最终对每个非拜占庭结点nj,有最终,每个非拜占庭结点ni的本地只读变量集ξi不为空。
每个非拜占庭结点ni的本地只读变量集ξi(i)变为非空,(ii)变为相等,(iii)包含非拜占庭结点广播的所有值,并且(iv)不包含仅通过拜占庭结点广播的值。
进一步,建立***模型该模型可以在异步消息传递***中提供较强的***有效性和一致性,以及满足联盟链应用需求的确定性,结点ni涉及的局部变量如表1所示,主要流程如算法1所示。结点ni在异步轮次中进行,通过调用bin-propose提议共识初始值把赋值给二元提议共识值的本地当前估计estimatei之后,各非拜占庭结点进入一系列异步轮次。在任意轮次r中,非拜占庭结点ni分三个阶段进行。
表1结点局部变量
首先,结点提议共识初始值赋值给二元提议共识值的本地当前估计;接着,各非拜占庭结点进行共识值清洗,过滤掉拜占庭结点提议的共识值;然后,每个结点通过广播消息及反馈来交换共识值估计,并依据反馈获取中间辅助值集,其中,中间辅助值集中数值来自不同结点广播本地共识值集的当前值;最后,依据中间辅助值集来确定结点提议共识的共识值候选者。每个非拜占庭结点广播当前轮次用于共识的二元值,并获取一组其他结点提议且用于共识的二元值,依据二元值来达成一致共识,其中,二元值为结点本地共识值集的当前二元值。并可依据联盟链上各节点本地时间偏差来设置时间延迟上限,利用时间延迟上限设置时间窗口,以在该时间窗口内链路各节点均接收到相关广播消息;并分析验证结点集中非拜占庭结点行为,利用验证结点集归一化结点聚合指数和信任度评价值来对验证结点集进行动态调整。每个共识轮次结点可信度评价值高于预设值的验证结点信誉值保持不变,可信度评价值低于预设值或不投票的验证结点信誉值削减,并将信誉值低于信誉阈值的验证结点移出验证结点集。
阶段1:共识值清洗:过滤掉拜占庭结点提议的共识值。结点ni进入下一轮,广播其当前二元共识值估计。在BiVa-broadcast()算法中,结点ni从个结点接收到相同的共识提议值后,重新广播该值。当从个不同进程接收到时,各结点ni才将其添加到ξi[r]并转发该值。此外,当一个共识提议值通过BiVa-deliver转发时,它也会被添加到ξi[r]。最终,所有非拜占庭结点的集合ξ变为非空、相等,并且仅包含非故障结点广播的所有共识提议值。
阶段2:共识值估计交换,达成一致共识。在这个阶段,结点ni广播消息Auxiliary[r](),其内容是ξi[ri]。然后,结点ni一直等待,直到它收到一组满足以下两个属性的αi值。αi值来自至少个不同结点的Auxiliary[r]()集合。由于第一阶段可以过滤掉拜占庭结点的BiVa-broadcast()返回值,即使拜占庭结点发送包含仅由拜占庭结点提议值的虚假消息集Auxiliary[r](),αi也将仅包含由非拜占庭结点广播的共识值估计。
因此,在任何一轮r中,仅包含由非拜占庭结点使用BiVa-broadcast()算法广播的值。
阶段3:共识确定值收敛。此阶段是确定结点ni共识值候选者的本地计算阶段,共识确定值收敛过程取决于αi的内容。如果αi包含单个元素则成为结点ni的新共识值估计,同时也是共识确定值的候选者。如果αi={0,1},那么结点ni无法决定新共识值估计。由于这两个值都是由非拜占庭结点提出的,为了收敛一致,ni可以依据共享策略选择其中一个值作为它的新共识值估计。例如,选择b=rmod2,因为该值在同一轮的所有非拜占庭结点中都是相同的。
上述基于ABBCA的联盟链生成机制中,结点ni通过调用decide获得当前轮次的共识值然而调用decide并没有终止其对算法的参与,即调用返回后结点ni继续循环执行下去,这是因为结点决策过程中可能需要帮助其他结点在随后的两轮中收敛到确定的共识值。
为验证本案方案有效性,下面结合实验数据做进一步解释说明:
在5台服务器上构建了由100个虚拟验证结点组成的Ethereum仿真测试环境,实验平台如下:CPU为Xeon-E5、内存大小为64G、操作***为Ubuntu-64bit。构造联盟链CA,验证结点总数n=100,拜占庭结点占比记为a,联盟链构造交易时间间隔记为Δ,单次共识的交易数量记为τ。
鉴于拜占庭结点行为会极大地影响基于二元拜占庭共识的链生成过程,构造以下四种典型拜占庭攻击行为(Byzantine attack,BA)进行***性能测试:
BA1:拜占庭结点发送比特翻转值,即在协议规范期望发送比特时,拜占庭结点发送比
特b;
BA2:拜占庭结点发送比特随机值和翻转值的组合;
BA3:拜占庭结点不响应任何事务;
BA4:拜占庭结点形成联盟,通过发送消息来阻碍非拜占庭结点在各轮次的共识进度。
1、时延测试,为消除构造交易时间间隔对时延的影响,取Δ=1ms,在限定的四种经典拜占庭结点攻击行为BA1~BA4下,与随机拜占庭共识算法Coin的时延对比情况如图2所示。
由图2可以看出,随着拜占庭结点占比a逐渐增大,ABBCA与Coin两种算法的时延均有所增加,且a值越大,两种算法的时延增量越显著,这表明交易处理时延与拜占庭结点占比呈现正相关。在特定的a取值及限定的四种经典拜占庭结点攻击行为BA1~BA4下,ABBCA时延均优于Coin时延,四种攻击行为下,ABBCA总时延相较Coin降低了52%。当a→0+时,ABBCA与Coin算法下交易时延趋于稳定,随着a值增大,在四种经典拜占庭结点攻击行为BA1~BA4下交易时延呈现出一定弱鲁棒性。在图2(c)中,BA3攻击行为下,ABBCA算法取得时延均值最小值382ms,在图2(d)中,BA4攻击行为下,ABBCA算法取得时延均值最大值331ms。
2、吞吐量测试,分为共识轮次时间r不受限和公式轮次时间r受限两种情形。
共识轮次时间r不受限是指将r设置为足够大,使得区块交易可以在小于r的时间内达成共识,此时共识轮次时间将不会对共识时间及吞吐量产生影响。根据时延测试结果,将r设置为1s,拜占庭结点占比a=33%,联盟链构造交易时间间隔Δ=1ms,单次共识的交易数量τ=10,20,30,40,在限定的四种经典拜占庭结点攻击行为BA1~BA4下进行吞吐量测试,测试结果如图3所示。由图3可以看出,在共识轮次时间r不受限条件下,四种拜占庭攻击场景中吞吐量均随着单次共识交易数量的增加而增加。在特定的拜占庭攻击场景下,当单次共识交易数量从1缓慢增加时,***吞吐量显著提升,例如图3中由τ=10至τ=20阶段;当单次共识的交易数量增加到一定程度时,***吞吐量增量放缓,例如图3中由τ=30至τ=40阶段。四种攻击场景下,拜占庭攻击BA3对***吞吐量影响最弱,最大吞吐量均值为243TPS,这是由于不做任何响应的拜占庭结点攻击方式增大了非拜占庭结点占比,从而在某种程度上降低了共识时间;拜占庭攻击BA4对***吞吐量影响最强,最大吞吐量均值为232TPS。
共识轮次时间r受限是指将r设置为能够对共识时间及吞吐量产生影响的合理值。根据时延测试结果,将r设置为500ms,拜占庭结点占比a=33%,联盟链构造交易时间间隔Δ=1ms,单次共识的交易数量τ=10,20,30,40,在限定的四种经典拜占庭结点攻击行为BA1~BA4下进行吞吐量测试,测试结果如图4所示。相比不受限条件下的吞吐量测试结果,图4中将共识轮次时间r设置为500ms时,***吞吐量在四种攻击方式下均有所下降,同等条件下获得的最高吞吐量均值下降9.2%,最低吞吐量均值下降约50%。图4(c)中,BA3攻击方式下,***吞吐量下降幅度较小,这是由于拜占庭结点不响应任何事物从某种程度上增大了非拜占庭结点的影响力,因此,削弱了共识轮次时间降低对共识效率的影响。图4(a)和图4(d)中,BA1和BA4攻击方式下,***吞吐量下降幅度较大,这是由于拜占庭结点的影响降低了共识效率,导致部分共识无法在一个共识轮次时间内完成,尤其是单次共识交易数量较多时,上述影响更加显著。此外,在BA4攻击方式下,拜占庭结点形成联盟后,无法控制来自非拜占庭结点消息的速度或顺序,但可以观察并根据非拜占庭结点接收或转发消息的时机,来决定他们发送消息的时间,从而更加显著地阻碍轮次内的共识进度。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的***而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的各实例的单元及方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已按照功能一般性地描述了各示例的组成及步骤。这些功能是以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不认为超出本发明的范围。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如:只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种拜占庭环境下的异步二元共识链生成方法,其特征在于,包含如下内容:
根据联盟链网路逻辑及物理拓扑结构,获取异步结点集合,所述异步结点集合中包含异步顺序执行的各结点及各结点对应公钥;
异步结点集合异步轮次执行条件下,利用预设的单链生成规则来生成点对点网络数据交易传输链路,且在每一异步轮次中,各新生区块通过映射函数链接至当前轮次链尾区块,并依据验证结点集中每个非拜占庭结点提议的共识值来对新生区块进行验证确认,并依据验证确认的投票比例是否满足预设共识门限值来产生共识区块。
2.根据权利要求1所述的拜占庭环境下的异步二元共识链生成方法,其特征在于,异步结点集合中,各节点公私钥对由椭圆曲线加密算法生成,其中,非拜占庭结点利用各自私钥对新生区块进行验证确认。
3.根据权利要求1所述的拜占庭环境下的异步二元共识链生成方法,其特征在于,预设单链生成规则包含:不等高原则、不包含原则及不叠加原则,其中,不等高原则为:针对拥有共同创世区块的任意两个区块,且该任意两个区块绝对多数链接中的有序区块的高度不相等;不包含原则为:针对拥有共同创世区块的任意两个区块,该任意两个区块绝对多数链接中对应有序区块不关联;不叠加原则为:对于大于零的任意区块高度n,任一区块最多存在一个绝对多数链接使区块高度为n。
4.根据权利要求3所述的拜占庭环境下的异步二元共识链生成方法,其特征在于,区块的绝对多数链接,依据验证结点集中是否有超过预设门限值的验证结点对当前链尾区块确认投票和对新生区块验证,如果有,则将当前链尾区块和新生区块构成的有序区块作为区块的绝对多数链接。
5.根据权利要求1所述的拜占庭环境下的异步二元共识链生成方法,其特征在于,依据每个非拜占庭结点提议的共识值来对新生区块进行验证确认,包含:首先,结点提议共识初始值赋值给二元提议共识值的本地当前估计;接着,各非拜占庭结点进行共识值清洗,过滤掉拜占庭结点提议的共识值;然后,每个结点通过广播消息及反馈来交换共识值估计,并依据反馈获取中间辅助值集,其中,中间辅助值集中数值来自不同结点广播本地共识值集的当前值;最后,依据中间辅助值集来确定结点提议共识的共识值候选者。
6.根据权利要求5所述的拜占庭环境下的异步二元共识链生成方法,其特征在于,每个结点通过广播消息及反馈来交换共识值估计中,每个非拜占庭结点广播当前轮次用于共识的二元值,并获取一组其他结点提议且用于共识的二元值,依据二元值来达成一致共识,其中,二元值为结点本地共识值集的当前二元值。
7.根据权利要求1所述的拜占庭环境下的异步二元共识链生成方法,其特征在于,依据每个非拜占庭结点提议的共识值来对新生区块进行验证确认,,并依据验证确认的投票比例是否满足预设共识门限值来产生共识区块,还包含:依据联盟链上各节点本地时间偏差来设置时间延迟上限,利用时间延迟上限设置时间窗口,以在该时间窗口内链路各节点均接收到相关广播消息;并分析验证结点集中非拜占庭结点行为,利用验证结点集归一化结点聚合指数和信任度评价值来对验证结点集进行动态调整。
10.根据权利要求7或8或9所述的拜占庭环境下的异步二元共识链生成方法,其特征在于,利用验证结点集归一化结点聚合指数和信任度评价值来对验证结点集进行动态调整,包含:每个共识轮次结点可信度评价值高于预设值的验证结点信誉值保持不变,可信度评价值低于预设值或不投票的验证结点信誉值削减,并将信誉值低于信誉阈值的验证结点移出验证结点集。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211501553.6A CN115987516A (zh) | 2022-11-28 | 2022-11-28 | 拜占庭环境下的异步二元共识链生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211501553.6A CN115987516A (zh) | 2022-11-28 | 2022-11-28 | 拜占庭环境下的异步二元共识链生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115987516A true CN115987516A (zh) | 2023-04-18 |
Family
ID=85956936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211501553.6A Pending CN115987516A (zh) | 2022-11-28 | 2022-11-28 | 拜占庭环境下的异步二元共识链生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115987516A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117354315A (zh) * | 2023-08-29 | 2024-01-05 | 长江水上交通监测与应急处置中心 | 一种大跨度地域航运数据链的共识方法及*** |
-
2022
- 2022-11-28 CN CN202211501553.6A patent/CN115987516A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117354315A (zh) * | 2023-08-29 | 2024-01-05 | 长江水上交通监测与应急处置中心 | 一种大跨度地域航运数据链的共识方法及*** |
CN117354315B (zh) * | 2023-08-29 | 2024-06-04 | 长江水上交通监测与应急处置中心 | 一种大跨度地域航运数据链的共识方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Gaži et al. | Proof-of-stake sidechains | |
Leng et al. | Blockchain security: A survey of techniques and research directions | |
Jesus et al. | A survey of how to use blockchain to secure internet of things and the stalker attack | |
Eyal et al. | {Bitcoin-NG}: A scalable blockchain protocol | |
JP2020523838A (ja) | ネットワークの障害時におけるオフ・ブロックチェーン・チャネルに関して生じるセキュリティ関連脆弱性に対処するためのシステム及び方法 | |
Zhu et al. | Hybrid blockchain design for privacy preserving crowdsourcing platform | |
CN113343311A (zh) | 基于信誉模型和数字签名机制的区块链共识方法和*** | |
CN113940032A (zh) | 用于在区块链网络中记录工作历史并证明声誉的方法和装置 | |
CN114503146A (zh) | 用于在区块链网络中注册和鉴别矿工身份的方法和装置 | |
CN115987516A (zh) | 拜占庭环境下的异步二元共识链生成方法 | |
Das | Toward next generation of blockchain using improvized bitcoin-ng | |
CN112583598A (zh) | 一种复杂物联网联盟链***通信机制 | |
Berrang et al. | Albatross–an optimistic consensus algorithm | |
Prabhakar et al. | TCON-A lightweight Trust-dependent Consensus framework for blockchain | |
Gojka et al. | Security in distributed ledger technology: An analysis of vulnerabilities and attack vectors | |
Das et al. | Transaction finality through ledger checkpoints | |
Elbuz et al. | Designing a secure blockchain-based trading platform for internet of things | |
Katal et al. | Blockchain consensus algorithms: study and challenges | |
CN113839768A (zh) | 一种基于卫星链中继的跨链通信方法 | |
Maram et al. | Interactive authentication | |
Gauthier et al. | Topos: A Secure, Trustless, and Decentralized Interoperability Protocol | |
Nourmohammadi et al. | Sharding and its impact on fork probability | |
CN111598389A (zh) | 一种基于区块链的防范票据市场风险的交易*** | |
Lajoie-Mazenc et al. | Handling bitcoin conflicts through a glimpse of structure | |
De Angelis et al. | Evaluating Blockchain Systems: A Comprehensive Study of Security and Dependability Attributes. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |