CN114189325B - 具有高容错可扩展的拜占庭容错方法、装置及存储介质 - Google Patents
具有高容错可扩展的拜占庭容错方法、装置及存储介质 Download PDFInfo
- Publication number
- CN114189325B CN114189325B CN202111375279.8A CN202111375279A CN114189325B CN 114189325 B CN114189325 B CN 114189325B CN 202111375279 A CN202111375279 A CN 202111375279A CN 114189325 B CN114189325 B CN 114189325B
- Authority
- CN
- China
- Prior art keywords
- group
- consensus
- node
- nodes
- hash
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3255—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using group based signatures, e.g. ring or threshold signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
- H04L2209/463—Electronic voting
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Hardware Redundancy (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种具有高容错可扩展的拜占庭容错方法、装置及存储介质,方法包括:引入一致性哈希算法,将各节点IP信息通过哈希计算后映射在哈希环上,并根据区块信息在哈希环上进行共识主节点、各组代表节点以及各小组节点的选择;采用先组内共识再组间共识,设计节点选择性广播模型和代表节点计票模型;基于所述节点选择性广播模型和代表节点计票模型获取高容错可扩展的拜占庭容错的上限;对分组共识可能存在的各组代表节点联合作恶和组间节点联合作恶分别进行了概率分析;根据高容错可扩展的拜占庭容错的共识流程,计算出通信复杂度。装置包括:处理器和存储器。本发明既能保证共识的民主又能提升网络扩展性、降低网络通信复杂度以及提高容错性能。
Description
技术领域
本发明涉及区块链共识领域,尤其涉及一种具有高容错可扩展的拜占庭容错方法、装置及存储介质,特别涉及联盟链中共识算法的扩展性、容错性的问题。
背景技术
目前,PBFT(实用拜占庭容错)算法已经成为联盟链中应用最广泛的共识算法。但由于PBFT算法存在通信复杂度高、可扩展性差、容错性差等问题,这使得区块链的相关项目性能很难满足实际业务需求。
近年来针对PBFT出现了很多改进算法。例如,一些算法将PBFT与公链共识算法相结合。其核心思想是通过PoW(工作量证明)、PoS(权益证明)等算法选出一定数量的节点作为委员会,然后由委员会通过PBFT算法产生区块。这类算法通常适用于代币的场景,但实际的联盟链中是没有代币流通。所以,一系列基于信誉机制的拜占庭容错算法相继被提出。通过信誉机制来筛选共识节点,将整个网络的共识变成了由部分节点或者委员会来参与。通常,这类算法可以有效地降低通信复杂度,提高网络扩展能力。
发明人在实现本发明的过程中发现上述方法还会存在以下的缺点与不足:
第一:区块链技术的初衷是去中心化和民主化,而基于信誉的节点选择倾向于中心化,因此这类共识算法在区块链中的应用与去中心化的初衷有所违背;
第二:通过信誉值选择节点时,一些信誉高的节点任务量大,消耗的资源多,因此,网络中的节点可能倾向于懒惰;
第三:这类算法降低了高信誉节点作恶成本,增加了联合作恶风险,进而影响到整个网络共识的安全。
所以,如何设计一种高效、去中心化的共识方法来解决区块链的瓶颈就显得尤为重要。
发明内容
本发明针对已有的PBFT以及相关改进算法并不能做到保证去中心化、民主化的同时,在网络扩展性、通信复杂度以及容错性方面的性能也提升的问题,本发明提出了一种具有高容错可扩展的拜占庭容错方法、装置及存储介质,本发明既能保证共识的民主又能提升网络扩展性、降低网络通信复杂度以及提高容错性能,详见下文描述:
第一方面,一种具有高容错可扩展的拜占庭容错方法,所述方法包括以下步骤:
引入一致性哈希算法,将各节点IP信息通过哈希计算后映射在哈希环上,并根据区块信息在哈希环上进行共识主节点、各组代表节点以及各小组节点的选择;
采用先组内共识再组间共识,设计节点选择性广播模型和代表节点计票模型;
基于所述节点选择性广播模型和代表节点计票模型获取高容错可扩展的拜占庭容错的上限;
对分组共识可能存在的各组代表节点联合作恶和组间节点联合作恶分别进行了概率分析;
根据高容错可扩展的拜占庭容错的共识流程,计算出通信复杂度。
在一种实施方式中,所述根据区块信息在哈希环上进行共识主节点、各组代表节点以及各小组节点的选择具体为:
每一轮共识时,首先根据hash(masterip+previoushash+viewnumber)计算出哈希值,
previoushash表示上一个区块哈希,masterip表示上一轮共识的主节点ip,viewnumber表示视图号;
确定哈希值在哈希环上的位置后,由顺时针方向离该哈希值最近的节点担任本轮共识主节点,各小组成员则是在主节点选择后,按照哈希环顺时针方向从第viewnumber个节点开始,每隔m个节点为一个小组进行选择;
各组代表节点是根据小组形成的哈希环,再结合hash(masterid+viewnumber+groupnumber)选择出本轮共识中小组的代表节点,groupnumber表示小组编号;
首次分组时,主节点为环上顺时针方向的第一个节点,viewnumber初始值为0。
在一种实施方式中,所述组内共识采用一轮广播共识,
其中,replica0作为主节点,client作为客服端,in-prepare阶段每m个共识节点构成一个子网络;将每组最后一个节点作为小组的代表节点,客服端给主节点发送消息后,将触发网络共识;通过组内和组间共识后,最终将达成一致的消息写入区块链中。
在一种实施方式中,所述节点选择性广播模型,用于当组内共识出现异常时,小组内非代表节点能参与组间共识,确保各节点共识的民主性;
所述代表节点计票模型,用于防止共识中拜占庭节点的投票对整个共识的影响,如果小组内拜占庭节点数不超过小组的最大容忍数,那么这种拜占庭节点对组内共识和组间共识不构成危害,在票数统计时算有效票。
第二方面,一种具有高容错可扩展的拜占庭容错装置,所述装置包括:
引入模块,用于将各节点IP信息通过哈希计算后映射在哈希环上,并根据区块信息在哈希环上进行共识主节点、各组代表节点以及各小组节点的选择;
设计模块,用于采用先组内共识再组间共识,设计节点选择性广播模型和代表节点计票模型;
获取模块,用于基于所述节点选择性广播模型和代表节点计票模型获取高容错可扩展的拜占庭容错的上限;
概率分析模块,用于对分组共识可能存在的各组代表节点联合作恶和组间节点联合作恶分别进行了概率分析;
计算模块,用于根据高容错可扩展的拜占庭容错的共识流程,计算出通信复杂度。
第三方面、一种具有高容错可扩展的拜占庭容错装置,所述装置包括:处理器和存储器,所述存储器中存储有程序指令,所述处理器调用存储器中存储的程序指令以使装置执行第一方面中的任一项所述的方法步骤。
第四方面,一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时使所述处理器执行第一方面中的中的任一项所述的方法步骤。
本发明提供的技术方案的有益效果是:
1、本发明采用一致性哈希算法实现节点身份的隐藏以及共识节点的分组,不仅提高了共识的安全性也有效避免了节点间大量通信,降低了通信复杂度,提高了网络的可扩展性;
2、为了保证分组共识的安全,本发明首次提出了节点选择性广播模型和代表节点计票模型,将一致性哈希算法与建立的两种模型相结合,相比于现有的算法,本发明真正做到了在遵从区块链去中心化的同时其容错能力和可扩展能力也得到了提升;
3、本发明通过实验分析证明了本发明所能容忍的拜占庭节点最大个数将超过网络节点个数的1/3,满足了实际应用中的多种需要。
附图说明
图1为一种具有高容错可扩展的拜占庭容错方法的流程图;
图2为一种具有高容错可扩展的拜占庭容错方法的原理图;
图3为节点选择性广播模型的流程图;
图4为代表节点计票模型的流程图;
图5为n=17时代表节点联合作恶的概率分析图;
图6为不同分组时P值分析图;
图7为m=4时不同网络下的引入FND(确定的拜占庭个数)模型分析图;
图8为一种具有高容错可扩展的拜占庭容错装置的结构示意图;
图9为一种具有高容错可扩展的拜占庭容错装置的另一结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面对本发明实施方式作进一步地详细描述。
实施例1
本发明实施例提供了一种具有高容错可扩展的拜占庭容错方法,参见图1和图2,该方法包括以下步骤:
步骤101:引入一致性哈希算法,将各节点IP信息通过哈希计算后映射在哈希环上,并根据区块信息在哈希环上进行共识主节点、各组代表节点以及各小组节点的选择;
本发明实施例通过上述设计使得共识节点的选择不需要中心化的机制,并且提前隐藏了节点身份,达到抑制节点作恶的目的。
步骤102:采用先组内共识再组间共识,设计了节点选择性广播模型和代表节点计票模型;
其中,采用先组内共识再组间共识,通过分组共识来提高共识网络的可扩展能力降低通信复杂度;组间共识是由各组代表节点一起参与共识,为了监督各代表节点共识行为避免各代表节点的作恶,本发明实施例设计了节点选择性广播模型。该模型使得组内共识出现异常时,小组内非代表节点也能参与组间共识,确保各节点共识的民主性。但又为了防止共识中拜占庭节点的投票对整个共识的影响,本发明实施例又设计了代表节点计票模型。
步骤103:为了分析该算法的容错性能,结合提出的两种模型和理论推导分析HSBFT(高容错可扩展的拜占庭容错)算法容错上限,发现该算法的容错上限不是一个确定值,而是一个区间;
步骤104:对分组共识可能存在各组代表节点联合作恶以及各小组共识节点联合作恶的风险,对各组代表节点联合作恶和组间节点联合作恶发生的概率分别进行了作恶分析;
通过具体的分析得出了本发明实施例设计的方法大概率容错上限是超过1/3的结论。此外,由于该方法的分组采用一致性哈希算法提前隐藏了节点的身份,节点间要想联合作恶是很难的。因此,进一步说明了该算法的容错性上限将超过1/3。其结论也有效缩小了步骤103的容错上限所在区间范围。
步骤105:为了验证推论的容错上限将超过1/3,引入了FND模型进行模拟共识实验行验证;
其中,通过实验发现该算法的容错上限的确超过了1/3。
步骤106:根据HSBFT共识流程,简化计算出其通信复杂度,其表达式如下所示:
其中,n表示总的共识节点数,m表示各小组的共识节点数,C表示总的通信量,由上述表达式(1)可以得出HSBFT算法的复杂度是O([(n-1)/m]2)。比PBFT共识复杂度O(n2)低。
综上所述,本发明实施例通过上述步骤101-步骤106实现了既能保证共识的民主又能提升网络扩展性、降低网络通信复杂度以及提高容错性能。
实施例2
下面结合图2-图6对实施例1中的方案进行进一步地介绍,详见下文描述:
步骤201:引入一致性哈希算法,将各节点IP信息通过哈希计算后映射在哈希环上,根据区块信息在哈希环上进行共识主节点、各组代表节点以及各小组节点的选择;由于该算法为了保证共识节点的匿名和去中心化,对于分组、代表节点的选择以及主节点的选择,本发明实施例采用的是一致性哈希算法。各节点按照hash(nodeip)算出自身哈希值(其中nodeip表示节点IP),由于一致性哈希算法具有抗碰撞性以及平衡分散性。因此,可以将各节点映射值尽可能地呈均匀分布在0~232的哈希环上。每一轮共识时,首先根据hash(masterip+previoushash+viewnumber)计算出哈希值(其中previoushash表示上一个区块哈希,masterip表示上一轮共识的主节点ip,viewnumber表示视图号),并确定此哈希值在环上的位置后,由环顺时针方向最近的节点担任本轮共识的主节点。各小组成员则是在主节点选择后,按照哈希环顺时针方向从第viewnumber个节点开始,每隔m个节点为一个小组进行选择。各小组的代表节点则是根据小组形成的哈希环,再结合
hash(masterid+viewnumber+groupnumber)选择出本轮共识中小组的代表节点(其中,
groupnumber表示小组编号)。首次分组时,主节点为环上顺时针方向的第一个节点,viewnumber初始值为0。通过一致性算法可以保证各节点事先对分组和代表节点选择的不确定性,减少拜占庭节点的联合作恶的风险。
步骤202:在HSBFT算法中,将原有PBFT算法中prepare(准备)阶段的全网络广播改成了组内广播和组间广播两部分,先由各小组进行组内广播共识后,再由各组代表节点进行组间广播共识;
由于组内共识并不代表全局共识结果,因此,为了避免过于繁琐的通信,组内共识中采用一轮广播共识。图1是本发明实施例提出的HSBFT算法的流程图。其中replica0作为主节点,client作为客服端,in-prepare阶段每m个共识节点构成一个子网络。另外为了描述方便,图中将每组最后一个节点作为小组的代表节点。客服端给主节点发送消息后,将触发网络共识。随后通过组内和组间共识后,最终达成一致的消息将写入区块链中。
步骤203:假设整个网络节点数为n,子网络中从节点个数为m(其中m=3f1+1,f1=1,2,3......),子网络的个数R=[(n-1)/m](其中R取整,并且R≥4)。另外,由n≥3f+1(其中f是可以容忍的最大拜占庭节点数)结论可知,各组最多能容忍E=[(m-1)/3]个拜占庭节点。
在in-prepare阶段,各组内共识结束后,将由各代表节点代表各小组共识结果参与组间共识。但组内共识结果是否正确以及代表节点是否是拜占庭节点都可能会影响到全网的共识。因此,本发明实施例设计了一种带有监督能力的模型,去监督代表节点共识行为。同时又提出了从节点选择性广播模型,该模型中假设拜占庭节点组内共识行为和组间共识行为是一致的。那么在in-prepare阶段除各组代表节点以外的非拜占庭节点一旦发现组内共识出现异常,都将触发out-prepare阶段广播。
例如:各小组内部从节点发现代表节点消息与自身消息不一致或者在in-prepare阶段限定时间内没能收到代表节点的消息,组内从节点将向其他组的代表节点广播out-prepare消息。另外,in-prepare阶段没能分组的节点在out-prepare阶段也是可以向其他组的代表节点广播out-prepare消息。此外,对于各小组代表节点当达到in-prepare阶段的限定时间后,不论收到多少有效票都会将收到的有效签名和自身签名采用BLS(聚合签名)后,发送给其他代表节点进入out-prepare阶段。
因此,通过该模型可以让组内非拜占庭节点尽可能的不受拜占庭节点的影响,并且对代表节点起到了监督作用。如果节点自身是非拜占庭节点,就算第一阶段组内共识没有达成一致,也可以通过主节点的二轮广播得到全网最终的共识结果。从节点选择性广播流程图如2所示。
步骤204:提出代表节点计票模型,各代表节点依靠该模型完成对各组共识的有效票数统计;
其中,节点选择性广播模型有效地监督了代表节点共识行为,使得共识更民主。但是会出现在in-prepare阶段组内共识后拜占庭节点也参与了out-prepare阶段广播。因此,为了避免out-prepare阶段组间共识中拜占庭节点投票对整个网络共识的影响,本发明实施例需要设计一种计票模型去弱化拜占庭节点的投票影响。于是提出了代表节点计票模型,各代表节点依靠该模型完成对各组共识的有效票数统计。也可以说通过该模型决定out-prepare阶段参与广播的节点的投票权重。例如,out-prepare阶段代表节点首先确认接收消息签名是否有效,如果有效并且是其他代表节点发来的聚合签名、同时有效签名个数超过m-E计为m票,否则有效签名个数就是聚合签名个数。此外,普通从节点的有效签名都计为1票。
该代表节点计票模型的核心原则是:如果小组内拜占庭节点数不超过小组的最大容忍数,认为这些拜占庭节点对组内共识和组间共识是不构成危害的,在全网共识中是可以被容忍的,所以在票数统计时也算有效票。另外,就算小组的代表节点失效,但是小组内的非拜占庭节点向其他代表节点投票数是超过m-E,那么这种小组也算达成了全票共识。
因此,在out-prepare阶段只要所有的代表节点没有全部失效,就会有代表节点通过代表节点计数模型达到全网共识门限票数,然后将收集到的与自身消息一致的有效签名聚合后转发给主节点。主节点将聚合签名信息和统计的票数信息作为全网共识的凭证,向全部共识节点进行第二次广播,全节点通过验证主节点的二次广播消息,验证通过后向客服端回复,当客服端收到(n-1)/2+1条不同节点的回复消息,认为全网达成一致性共识。
因此,通过代表节点的计数模型,不仅让各组中非拜占庭节点的投票得到了很好的统计,而且降低了组内拜占庭节点对全网共识的影响。图4是代表节点计数流程图。
步骤205:在HSBFT共识协议中是由组内共识和组间两轮投票共识后,才能形成最终的共识结果。out-prepare阶段一共R个共识组,由n≥3f+1结论,为了保证组间共识的安全性,out-prepare阶段最多容忍w=[(R-1)/3]个组共识异常。因此,需要去分析确保整个系统安全性和活性的阈值。
在PBFT共识算法中,容忍的拜占庭节点上限是一个值,只要拜占庭节点个数不大于整个网络共识节点数的1/3时,是可以保证正确共识。但是对于HSBFT算法,其容错上限并不是一个确定的值,而是一个区间。在out-prepare阶段,各组代表节点全部都是拜占庭节点整个共识是不可能成功。这时容错个数取得最小值等于共识组数R。由代表节点的计票模型可知,当R-w个组都达到最大容错个数E也是可以保证R-w个组全票共识,达到全网共识门限票数。但要求所有代表节点不能全部失效时,才可能共识成功。
因此,假设所有代表节点没有全部失效,容错个数的最大值就是达成正确一致共识所需非拜占庭节点最少的时候。即R-w个组正确共识,并且正确共识的每个组都达到最大容错个数E,剩下的w个组全是拜占庭节点,最后得出公式(2),T表示容错个数最大值。由于不能确定未能分组的从节点是否是拜占庭节点,所以忽略了in-prepare阶段未能分组的从节点。最终,可以得出HSBFT协议容错个数的区间为[R,T]。
步骤206:由HSBFT容错个数的推论分析,知道当网络中的拜占庭节点超过网络的分组数时,会出现各组代表节点全部是拜占庭节点导致整个网络共识失败的这种情况。
为了分析出所有代表节点全为拜占庭节点的概率,假设各节点彼此独立不相关,得出了如下公式(3)(其中用K表示失败概率,i表示网络中的拜占庭节点数)。其中表示从n个共识节点中随机选出R个节点。/>表示这R个代表节点又全部来自i个拜占庭节点。最后得到的概率就是当前i个拜占庭下,出现各代表节点全为拜占庭节点的概率。
根据得到的公式(3),取n=17,m=4绘制出了图5,可以看到按照步骤205推论的容错个数所在[4,7]区间内,k值几乎等于0。可见各代表节点全为拜占庭节点的概率其实是很低的。并且对更大的网络也进行过分析,实验发现随着网络的变大,容错个数所在区间内各代表节点全为拜占庭节点的概率都是趋于0。因此,可以得出这样一个结论。当各节点是彼此独立时,在容错区间内随机选取R个代表节点,并且这R个代表节点全部是拜占庭节点几乎是不可能的。
步骤207:由步骤205的容错个数的区间分析,当容错个数取最大值时,达成正确一致性共识所需的非拜占庭节点个数最少。
所以,当拜占庭节点个数超过容错区间的最大值,在out-prepare阶段是不可能有R-w个组正确共识,整个网络的共识将失效。但是,由从节点选择性广播模型和代表节点计票模型,得知随着网络中拜占庭节点的比例逐渐增加时,拜占庭节点数不用超过容错区间的最大值,也是有可能破坏网络的共识。只要拜占庭节点按照一定的分组方式破坏R-w个组共识,out-prepare阶段各代表节点就不可能达到共识门限。因为破坏每个组共识的最小成本就是E+1个拜占庭节点,所以只要有R-w个组、每个组都有E+1个拜占庭节点,整个网络就达不成共识。出现这种破坏R-w个组共识失败的现象,称为各组间拜占庭节点的联合作恶。所以,本发明实施例希望推导出在不同网络下,各组间从节点联合作恶最少节点个数与整个网络节点数的比值,称这个比值为分界点P。当拜占庭节点个数的比值大于当前网络的P值,就有可能出现拜占庭节点组间联合作恶的这种情况。
在分析之前,需要说明out-prepare阶段共识门限要求R-w个正确共识的组,其实并不一定是真有R-w个组达成正确一致性共识。结合代表节点计票模型,实际上是指所有正确一致共识组的全票数加上参与out-prepare阶段广播的其他从节点的有效投票数之和大于等于(R-w)m时。等同于全网至少有R-w个组达成了一致性共识,这时out-prepare阶段的代表节点才能达到commit阶段向主节点发送消息的阈值。
其中,在对P值的分析中,由于不能确定in-prepare阶段未被分组的从节点是否是拜占庭节点。因此,依然忽略了未能分组的从节点。假设有H个组遭到破坏,先推出网络能容忍的最大破坏组数,具体见公式(4)所示。
通过公式(4)得出关于H的不等式,当H取最大整数时,表示网络能容忍的最大破坏组数Hmax。那么Hmax+1表示组间联合作恶的最少组数,因此参与各组间联合作恶至少需要[E+1](Hmax+1)个拜占庭节点,该值与n的比值就是当前网络大小为n时分界点P的值。当拜占庭节点的比例大于P时拜占庭节点就可能出现各组间节点联合。
于是选取m=4、7、10,当R≥4时。分析不同n值下的P点变化,其中为了分析的方便选择(n-1)正好是m的整倍数进行分析,最后实验情况如图6所示。由于设计算法的初衷是针对大网络的拜占庭容错共识,从图6可以看到不论m取多少,最终P值都是在1/3附近。也就是说在大网络中,拜占庭节点数比例小于总数的1/3时,是不会出现组间联合作恶导致网络共识失败的现象,或者说出现的概率极低。
步骤208:由步骤205得到的容错个数的区间,通过步骤206代表节点全为拜占庭节点的概率,获知容错上限所在区间各代表节点全为拜占庭节点的概率很低。针对步骤207中分界点P的分析,又知道在大网络下,组间联合作恶导致网络共识失败是在拜占庭节点比例超过网络节点数的1/3时才会发生。
因此,综合上述的分析可知,HSBFT算法通过一致性哈希算法对共识节点的选择,再结合节点选择性广播模型和代表节点计票模型的方法,是可以保证当各节点彼此独立不相关时,网络容错上限大概率会超过1/3。
实施例3
下面结合图7对实施例1和2中的方案进行可行性验证,详见下文描述:
引入FND模型(faulty number determined model)并结合建立的两个模型进行模拟共识实验。当取m=4时,分别在网络大小为101、201、301时进行实验,实验中拜占庭节点都是相互独立随机的分配在各小组中,分析系统共识成功率随网络中拜占庭节点数的变化。在每种拜占庭节点个数下,进行200次模拟实验,统计共识成功次数得出共识成功率。
最后实验结果如图7所示,可以看到容错上限的确超过了1/3。当拜占庭节点个数小于网络节点个数的1/3时,可能会出现代表节点全部是拜占庭节点以及组间联合作恶的现象。但图中共识成功率为1到开始出现共识失败的拐点对应的拜占庭数大于当前网络共识节点数的1/3。并且随着网络的变大,拐点和1/3处的差距将越来越大。可见随着网络的逐渐变大,当拜占庭节点小于网络节点数的1/3时,要形成各代表节点全为拜占庭节点以及组间联合作恶破坏共识的概率其实都是很低的。
实施例4
一种具有高容错可扩展的拜占庭容错装置,参见图8,该装置包括:
引入模块1,用于将各节点IP信息通过哈希计算后映射在哈希环上,并根据区块信息在哈希环上进行共识主节点、各组代表节点以及各小组节点的选择;
设计模块2,用于采用先组内共识再组间共识,设计节点选择性广播模型和代表节点计票模型;
获取模块3,用于基于所述节点选择性广播模型和代表节点计票模型获取高容错可扩展的拜占庭容错的上限;
概率分析模块4,用于对分组共识可能存在的各组代表节点联合作恶和组间节点联合作恶分别进行了概率分析;
计算模块5,用于根据高容错可扩展的拜占庭容错的共识流程,计算出通信复杂度。
其中,引入模块1包括:
计算子模块11,用于每一轮共识时,首先根据:
hash(masterip+previoushash+viewnumber)计算出哈希值,previoushash表示上一个区块哈希,masterip表示上一轮共识的主节点ip,viewnumber表示视图号;
共识主节点选择子模块12,用于确定哈希值在哈希环上的位置后,由顺时针方向离该哈希值最近的节点担任本轮共识主节点,各小组成员则是在主节点选择后,按照哈希环顺时针方向从第viewnumber个节点开始,每隔m个节点为一个小组进行选择;
代表节点选择子模块13,用于各组代表节点是根据小组形成的哈希环,再结合
hash(masterid+viewnumber+groupnumber)选择出本轮共识中小组的代表节点,groupnumber表示小组编号。
本发明实施例对各器件的型号除做特殊说明的以外,其他器件的型号不做限制,只要能完成上述功能的器件均可。
上述各个模块的执行主体可以是计算机、单片机、微控制器等具有计算功能的器件,具体实现时,本发明实施例对执行主体不做限制,根据实际应用中的需要进行选择。
综上所述,本发明实施例通过上述模块实现了既能保证共识的民主又能提升网络扩展性、降低网络通信复杂度以及提高容错性能。
实施例5
一种具有高容错可扩展的拜占庭容错装置,参见图9,该装置包括:处理器6和存储器7,存储器6中存储有程序指令,处理器7调用存储器6中存储的程序指令以使装置执行实施例1中的以下方法步骤:
引入一致性哈希算法,将各节点IP信息通过哈希计算后映射在哈希环上,并根据区块信息在哈希环上进行共识主节点、各组代表节点以及各小组节点的选择;
采用先组内共识再组间共识,设计节点选择性广播模型和代表节点计票模型;
基于节点选择性广播模型和代表节点计票模型获取高容错可扩展的拜占庭容错的上限;
对分组共识可能存在的各组代表节点联合作恶和组间节点联合作恶分别进行了概率分析;
根据高容错可扩展的拜占庭容错的共识流程,计算出通信复杂度。
在一种实施方式中,根据区块信息在哈希环上进行共识主节点、各组代表节点以及各小组节点的选择具体为:
每一轮共识时,首先根据hash(masterip+previoushash+viewnumber)计算出哈希值,
previoushash表示上一个区块哈希,masterip表示上一轮共识的主节点ip,viewnumber表示视图号;
确定哈希值在哈希环上的位置后,由顺时针方向离该哈希值最近的节点担任本轮共识主节点,各小组成员则是在主节点选择后,按照哈希环顺时针方向从第viewnumber个节点开始,每隔m个节点为一个小组进行选择;
各组代表节点是根据小组形成的哈希环,再结合hash(masterid+viewnumber+groupnumber)选择出本轮共识中小组的代表节点,groupnumber表示小组编号;
首次分组时,主节点为环上顺时针方向的第一个节点,viewnumber初始值为0。
在一种实施方式中,组内共识采用一轮广播共识,
其中,replica0作为主节点,client作为客服端,in-prepare阶段每m个共识节点构成一个子网络;将每组最后一个节点作为小组的代表节点,客服端给主节点发送消息后,将触发网络共识;通过组内和组间共识后,最终将达成一致的消息写入区块链中。
在一种实施方式中,节点选择性广播模型,用于当组内共识出现异常时,小组内非代表节点能参与组间共识,确保各节点共识的民主性;
代表节点计票模型,用于防止共识中拜占庭节点的投票对整个共识的影响,如果小组内拜占庭节点数不超过小组的最大容忍数,拜占庭节点对组内共识和组间共识不构成危害,在票数统计时算有效票。
这里需要指出的是,以上实施例中的装置描述是与实施例中的方法描述相对应的,本发明实施例在此不做赘述。
上述的处理器6和存储器7的执行主体可以是计算机、单片机、微控制器等具有计算功能的器件,具体实现时,本发明实施例对执行主体不做限制,根据实际应用中的需要进行选择。
存储器7和处理器6之间通过总线8传输数据信号,本发明实施例对此不做赘述。
实施例6
基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,存储介质包括存储的程序,在程序运行时控制存储介质所在的设备执行上述实施例中的方法步骤。
该计算机可读存储介质包括但不限于快闪存储器、硬盘、固态硬盘等。
这里需要指出的是,以上实施例中的可读存储介质描述是与实施例中的方法描述相对应的,本发明实施例在此不做赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。
计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者通过计算机可读存储介质进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质或者半导体介质等。
本发明实施例对各器件的型号除做特殊说明的以外,其他器件的型号不做限制,只要能完成上述功能的器件均可。
本领域技术人员可以理解附图只是一个优选实施例的示意图,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种具有高容错可扩展的拜占庭容错方法,其特征在于,所述方法包括以下步骤:
引入一致性哈希算法,将各节点IP信息通过哈希计算后映射在哈希环上,并根据区块信息在哈希环上进行共识主节点、各组代表节点以及各小组节点的选择;
采用先组内共识再组间共识,设计节点选择性广播模型和代表节点计票模型;
基于所述节点选择性广播模型和代表节点计票模型获取高容错可扩展的拜占庭容错的上限;
对分组共识可能存在的各组代表节点联合作恶和组间节点联合作恶分别进行了概率分析;
根据高容错可扩展的拜占庭容错的共识流程,计算出通信复杂度;
所述根据区块信息在哈希环上进行共识主节点、各组代表节点以及各小组节点的选择具体为:
每一轮共识时,首先根据hash(masterip+previoushash+viewnumber)计算出哈希值,previoushash表示上一个区块哈希,masterip表示上一轮共识的主节点ip,viewnumber表示视图号;
确定哈希值在哈希环上的位置后,由顺时针方向离该哈希值最近的节点担任本轮共识主节点,各小组成员则是在主节点选择后,按照哈希环顺时针方向从第viewnumber个节点开始,每隔m个节点为一个小组进行选择;
各组代表节点是根据小组形成的哈希环,再结合hash(masterid+viewnumber+groupnumber)选择出本轮共识中小组的代表节点,groupnumber表示小组编号;
首次分组时,主节点为环上顺时针方向的第一个节点,viewnumber初始值为0。
2.根据权利要求1所述的一种具有高容错可扩展的拜占庭容错方法,其特征在于,所述组内共识采用一轮广播共识,
其中,replica0作为主节点,client作为客服端,in-prepare阶段每m个共识节点构成一个子网络;将每组最后一个节点作为小组的代表节点,客服端给主节点发送消息后,将触发网络共识;通过组内和组间共识后,最终将达成一致的消息写入区块链中。
3.根据权利要求1所述的一种具有高容错可扩展的拜占庭容错方法,其特征在于,
所述节点选择性广播模型,用于当组内共识出现异常时,小组内非代表节点能参与组间共识,确保各节点共识的民主性;
所述代表节点计票模型,用于弱化共识中拜占庭节点的投票对整个共识的影响,如果小组内拜占庭节点数不超过小组的最大容忍数,那么这种拜占庭节点对组内共识和组间共识不构成危害,在票数统计时算有效票。
4.根据权利要求1所述的一种具有高容错可扩展的拜占庭容错方法,其特征在于,所述拜占庭容错的上限大于1/3,当容错个数取最大值时,达成正确一致性共识所需的非拜占庭节点个数最少。
5.根据权利要求1所述的一种具有高容错可扩展的拜占庭容错方法,其特征在于,所述通信复杂度为:
其中,n表示总的共识节点数,m表示各小组的共识节点数,C表示总的通信量,复杂度是O([(n-1)/m]2),O表示复杂度。
6.一种具有高容错可扩展的拜占庭容错装置,其特征在于,所述装置包括:
引入模块,用于将各节点IP信息通过哈希计算后映射在哈希环上,并根据区块信息在哈希环上进行共识主节点、各组代表节点以及各小组节点的选择;
设计模块,用于采用先组内共识再组间共识,设计节点选择性广播模型和代表节点计票模型;
获取模块,用于基于所述节点选择性广播模型和代表节点计票模型获取高容错可扩展的拜占庭容错的上限;
概率分析模块,用于对分组共识可能存在的各组代表节点联合作恶和组间节点联合作恶分别进行了概率分析;
计算模块,用于根据高容错可扩展的拜占庭容错的共识流程,计算出通信复杂度;
所述引入模块包括:
计算子模块,用于每一轮共识时,首先根据hash(masterip+previoushash+viewnumber)计算出哈希值,previoushash表示上一个区块哈希,masterip表示上一轮共识的主节点ip,viewnumber表示视图号;
共识主节点选择子模块,用于确定哈希值在哈希环上的位置后,由顺时针方向离该哈希值最近的节点担任本轮共识主节点,各小组成员则是在主节点选择后,按照哈希环顺时针方向从第viewnumber个节点开始,每隔m个节点为一个小组进行选择;
代表节点选择子模块,用于各组代表节点是根据小组形成的哈希环,再结合hash(masterid+viewnumber+groupnumber)选择出本轮共识中小组的代表节点,groupnumber表示小组编号。
7.一种具有高容错可扩展的拜占庭容错装置,其特征在于,所述装置包括:处理器和存储器,所述存储器中存储有程序指令,所述处理器调用存储器中存储的程序指令以使装置执行权利要求1-5中的任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时使所述处理器执行权利要求1-5中的任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111375279.8A CN114189325B (zh) | 2021-11-19 | 2021-11-19 | 具有高容错可扩展的拜占庭容错方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111375279.8A CN114189325B (zh) | 2021-11-19 | 2021-11-19 | 具有高容错可扩展的拜占庭容错方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114189325A CN114189325A (zh) | 2022-03-15 |
CN114189325B true CN114189325B (zh) | 2023-09-29 |
Family
ID=80541022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111375279.8A Active CN114189325B (zh) | 2021-11-19 | 2021-11-19 | 具有高容错可扩展的拜占庭容错方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114189325B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115208779B (zh) * | 2022-09-14 | 2022-12-02 | 图林科技(深圳)有限公司 | 基于区块链和大数据的数据流监测方法及云计算服务平台 |
CN116112490B (zh) * | 2022-12-29 | 2024-04-16 | 新疆大学 | 一种低复杂度可扩展的拜占庭容错方法及装置、存储介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108512667A (zh) * | 2018-04-16 | 2018-09-07 | 北京天德科技有限公司 | 一种基于区块链的认证证书生成方法 |
CN110022216A (zh) * | 2019-02-18 | 2019-07-16 | 西安西电链融科技有限公司 | 低通信复杂度的高效异步拜占庭共识方法、网络通信平台 |
CN110289966A (zh) * | 2019-06-19 | 2019-09-27 | 西南交通大学 | 基于拜占庭容错的抗自适应攻击联盟链共识方法 |
WO2019222993A1 (zh) * | 2018-05-25 | 2019-11-28 | 北京大学深圳研究生院 | 一种基于信任关系的区块链共识方法 |
WO2019232789A1 (zh) * | 2018-06-08 | 2019-12-12 | 北京大学深圳研究生院 | 一种基于投票的共识方法 |
CN111682942A (zh) * | 2020-05-18 | 2020-09-18 | 哈尔滨工业大学 | 一种应用于许可链的二元加权拜占庭容错共识方法 |
KR20200144466A (ko) * | 2019-06-18 | 2020-12-29 | 한국전자통신연구원 | 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치 및 방법 |
WO2021093244A1 (zh) * | 2019-11-14 | 2021-05-20 | 深圳市网心科技有限公司 | 随机数生成方法、区块链节点、系统及介质 |
CN112953981A (zh) * | 2019-11-26 | 2021-06-11 | 北京沃东天骏信息技术有限公司 | 节点选择方法、区块链共识方法及装置、系统、设备 |
CN112966048A (zh) * | 2021-03-09 | 2021-06-15 | 安徽超清科技股份有限公司 | 一种区块链共识方法 |
CN113269630A (zh) * | 2021-07-06 | 2021-08-17 | 贵州大学 | 一种用于联盟区块链的实用拜占庭容错算法改进方案 |
CN113271204A (zh) * | 2021-05-06 | 2021-08-17 | 西安电子科技大学 | 一种基于量子密钥分发的拜占庭容错共识方法 |
CN113642019A (zh) * | 2021-08-16 | 2021-11-12 | 中国人民解放军国防科技大学 | 一种双层分组拜占庭容错共识方法及系统 |
-
2021
- 2021-11-19 CN CN202111375279.8A patent/CN114189325B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108512667A (zh) * | 2018-04-16 | 2018-09-07 | 北京天德科技有限公司 | 一种基于区块链的认证证书生成方法 |
WO2019222993A1 (zh) * | 2018-05-25 | 2019-11-28 | 北京大学深圳研究生院 | 一种基于信任关系的区块链共识方法 |
WO2019232789A1 (zh) * | 2018-06-08 | 2019-12-12 | 北京大学深圳研究生院 | 一种基于投票的共识方法 |
CN110022216A (zh) * | 2019-02-18 | 2019-07-16 | 西安西电链融科技有限公司 | 低通信复杂度的高效异步拜占庭共识方法、网络通信平台 |
KR20200144466A (ko) * | 2019-06-18 | 2020-12-29 | 한국전자통신연구원 | 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치 및 방법 |
CN110289966A (zh) * | 2019-06-19 | 2019-09-27 | 西南交通大学 | 基于拜占庭容错的抗自适应攻击联盟链共识方法 |
WO2021093244A1 (zh) * | 2019-11-14 | 2021-05-20 | 深圳市网心科技有限公司 | 随机数生成方法、区块链节点、系统及介质 |
CN112953981A (zh) * | 2019-11-26 | 2021-06-11 | 北京沃东天骏信息技术有限公司 | 节点选择方法、区块链共识方法及装置、系统、设备 |
CN111682942A (zh) * | 2020-05-18 | 2020-09-18 | 哈尔滨工业大学 | 一种应用于许可链的二元加权拜占庭容错共识方法 |
CN112966048A (zh) * | 2021-03-09 | 2021-06-15 | 安徽超清科技股份有限公司 | 一种区块链共识方法 |
CN113271204A (zh) * | 2021-05-06 | 2021-08-17 | 西安电子科技大学 | 一种基于量子密钥分发的拜占庭容错共识方法 |
CN113269630A (zh) * | 2021-07-06 | 2021-08-17 | 贵州大学 | 一种用于联盟区块链的实用拜占庭容错算法改进方案 |
CN113642019A (zh) * | 2021-08-16 | 2021-11-12 | 中国人民解放军国防科技大学 | 一种双层分组拜占庭容错共识方法及系统 |
Non-Patent Citations (3)
Title |
---|
Wei Tong ; Xuewen Dong ; Yulong Shen.BC-RAN: Cloud radio access network enabled by blockchain for 5G.《Computer Communications》.2020,第179-186页. * |
区块链共识算法及其应用研究;薛立德;《中国博士学位论文全文数据库 信息科技辑》;全文 * |
王海勇 ; 郭凯璇 ; 潘启青.基于投票机制的拜占庭容错共识算法.《计算机应用》.2019,第1766-1771页. * |
Also Published As
Publication number | Publication date |
---|---|
CN114189325A (zh) | 2022-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114189325B (zh) | 具有高容错可扩展的拜占庭容错方法、装置及存储介质 | |
KR102406020B1 (ko) | 탈 중앙화된 비잔틴 오류 감내 분산 합의 장치 및 방법 | |
Gupta et al. | Proof of work without all the work | |
Hassanzadeh-Nazarabadi et al. | Lightchain: A dht-based blockchain for resource constrained environments | |
Xiao et al. | Accountable MapReduce in cloud computing | |
US11409734B2 (en) | Blockchain system and operation method thereof | |
WO2022217807A1 (zh) | 区块链共识节点选择方法、装置、计算机设备和存储介质 | |
Anceaume et al. | Peercube: A hypercube-based p2p overlay robust against collusion and churn | |
CN112069169B (zh) | 区块数据存储方法、装置、电子设备及可读存储介质 | |
Li et al. | Gosig: Scalable byzantine consensus on adversarial wide area network for blockchains | |
He et al. | An improvement of consensus fault tolerant algorithm applied to alliance chain | |
Abraham et al. | Revisiting asynchronous fault tolerant computation with optimal resilience | |
CN114745140B (zh) | 基于聚合加密的城市规划领域区块链共识验证方法及系统 | |
CN113010872A (zh) | 一种身份认证方法、装置、计算机设备及存储介质 | |
Chai et al. | Byzantine fault tolerant event stream processing for autonomic computing | |
van Renesse | A blockchain based on gossip?–a position paper | |
Zhou et al. | Vg-raft: An improved byzantine fault tolerant algorithm based on raft algorithm | |
Meling et al. | When you don't trust clients: Byzantine proposer fast paxos | |
Ismail et al. | P2P routing table poisoning: A quorum-based sanitizing approach | |
CN114978650A (zh) | 一种基于信誉值和可验证随机函数的改进实用拜占庭容错算法 | |
Duan et al. | Cost sensitive moving target consensus | |
Ma | Blockchain Consensus Mechanism Based on Improved Distributed Consistency and Hash Entropy | |
CN117221332B (zh) | 基于多领导者拜占庭容错共识的高鲁棒性交易打包方法 | |
Tumas et al. | Federated Byzantine Agreement Protocol Robustness to Targeted Network Attacks | |
KR102507198B1 (ko) | 분산 소프트웨어 정의 네트워크에서 비잔틴 장애 극복 방법 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |