CN112395113A - 实用拜占庭容错共识方法及装置、可读存储介质 - Google Patents
实用拜占庭容错共识方法及装置、可读存储介质 Download PDFInfo
- Publication number
- CN112395113A CN112395113A CN202011395566.0A CN202011395566A CN112395113A CN 112395113 A CN112395113 A CN 112395113A CN 202011395566 A CN202011395566 A CN 202011395566A CN 112395113 A CN112395113 A CN 112395113A
- Authority
- CN
- China
- Prior art keywords
- node
- active
- tree
- nodes
- message
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
一种实用拜占庭容错共识方法及装置、可读存储介质,所述方法包括:构建树形拓扑网络;所述树形拓扑网络包括根节点、主动子树以及被动子树;根据所述树形拓扑网络,完成所述实用拜占庭容错共识。上述方案能够对传统PBFT算法进行有效扩展。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种实用拜占庭容错共识方法及装置、可读存储介质。
背景技术
近年来,区块链技术得到迅猛发展,其具有去中心化、中立、开放、集体维护、数据可追溯、安全可信等特点,适合于构建高度安全可靠的系统。区块链技术可以满足消息防篡改的要求,在区块链网络中,数据或者数据特征被共享至网络中的所有节点,所有的节点都拥有整个链上的完整数据,所以单个节点数据的修改并不会影响整个网络共识得到的一致结果。整个网络的共识是通过共识算法实现的,共识机制作为区块链中的关键技术,是区块链系统中的所有参与节点达成一致的策略和方法,决定了区块链能在多个节点中达到一种相对平衡的状态。
随着区块链技术发展和不断成熟,应用场景规模的逐渐扩大,传统的实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)算法的可扩展性问题日益凸显。在具有n个共识节点的联盟链系统中,PBFT的通信复杂度为O(n^2)。在招投标的联盟链中,存在大量的节点,如供应商、招标人、项目单位、代理机构、(外部)机构等。随着节点数量的增加,网络中交换和处理的消息数量急剧增加。巨大的网络开销与计算开销将导致事务确认延迟显著增加,吞吐量明显降低。因此,传统的PBFT算法只适用于小规模的局域网,而在大规模的广域网环境下,其可扩展性瓶颈对许可链系统的性能带来了严重的影响。
发明内容
本发明解决的技术问题是大规模的广域网环境下,现有的传统PBFT算法无法适用。
为解决上述技术问题,本发明实施例提供一种实用拜占庭容错共识方法,包括:构建树形拓扑网络;所述树形拓扑网络包括根节点、主动子树以及被动子树;根据所述树形拓扑网络,完成所述实用拜占庭容错共识,包括:所述根节点生成随机密钥以及所述随机密钥对应的加密哈希H,根据所述主动子树中节点的数量n,将所述加密哈希H划分成n+1份,并分别向每个主动节点发送一份加密哈希份额;所述根节点接收客户端发送的事务请求;所述根节点将所述事务请求打包成目标区块,将所述目标区块与所述随机密钥绑定,在子网范围内广播第一准备消息;所述第一准备消息包括所述目标区块的数字摘要以及主节点对应的子网当前视图,所述子网当前视图与所述主节点在所述主动子树中的位置相关;所述根节点接收第一确认消息,对所述第一确认消息中的聚合签名进行验证;所述聚合签名根据所述主动子树的所有节点对应的用户签名聚合而成;所述根节点在验证所述聚合签名有效时,在子网范围内广播第一准备消息;所述第一准备消息包括所述目标区块的数字摘要以及主节点对应的子网当前视图,所述子网当前视图与所述主节点在所述主动子树中的位置相关;所述第二准备消息包括所述目标区块的数字摘要、所述主动子树的当前视图以及所述聚合签名;所述根节点在接收第二确消息,对所述第二确认消息中的聚合密钥进行验证;所述聚合密钥根据所述主动子树的所有节点对应的哈希密钥聚合而成;所述根节点在验证所述聚合密钥与所述加密哈希相同时,确定达成共识结果;向所述客户端与所述被动子树的每一个节点广播回复消息,并将所述共识结果备份。
可选的,所述构建树形拓扑网络,包括:以代理机构作为所述根节点;以参与目标招投标项目的供应商、所述目标招投项目的招标人以及选中的第三方监督机构作为主动节点,根据所述主动节点建立所述根节点的主动子树;以未参与所述目标招投标项目的供应商、非所述目标招投项目的招标人以及未选中的第三方监督机构作为被动节点,根据所述被动节点建立所述根节点的被动子树;根据所述根节点、所述主动子树以及所述被动子树,构建所述树形拓扑网络。
可选的,所述实用拜占庭容错共识方法还包括:在检测到主动子树中的某一个节点发生故障时,执行视图更换操作。
可选的,所述执行视图更换操作,包括:所述发生故障的节点向所述主动子树中的其他节点发送视图更换请求,所述视图更换请求包括所述发生故障的节点的标识以及选定的替换节点的标识,所述选定的替换节点为所述被动子树中正常运行的节点;所述主动子树的其他节点在接收到所述视图更换请求后,向所述替换节点发送视图更换确认消息;所述替换节点向所述主动子树的其他节点广播新视图消息,所述新视图消息包括发送所述视图更换确认消息的节点集合;所述发生故障的节点所在子网内的从节点根据所述新视图消息,更新其对应的视图,并将所述发生故障的节点与所述替换节点的身份绑定。
为解决上述技术问题,本发明实施例还提供了一种实用拜占庭容错共识装置,包括:构建单元,用于构建树形拓扑网络;所述树形拓扑网络包括根节点、主动子树以及被动子树;容错共识单元,用于根据所述树形拓扑网络,完成所述实用拜占庭容错共识,包括:所述根节点生成随机密钥以及所述随机密钥对应的加密哈希H,根据所述主动子树中节点的数量n,将所述加密哈希H划分成n+1份,并分别向每个主动节点发送一份加密哈希份额;所述根节点接收客户端发送的事务请求;所述根节点将所述事务请求打包成目标区块,将所述目标区块与所述随机密钥绑定,在子网范围内广播第一准备消息;所述第一准备消息包括所述目标区块的数字摘要以及主节点对应的子网当前视图,所述子网当前视图与所述主节点在所述主动子树中的位置相关;所述根节点接收第一确认消息,对所述第一确认消息中的聚合签名进行验证;所述聚合签名根据所述主动子树的所有节点对应的用户签名聚合而成;所述根节点在验证所述聚合签名有效时,在子网范围内广播第一准备消息;所述第一准备消息包括所述目标区块的数字摘要以及主节点对应的子网当前视图,所述子网当前视图与所述主节点在所述主动子树中的位置相关;所述第二准备消息包括所述目标区块的数字摘要、所述主动子树的当前视图以及所述聚合签名;所述根节点在接收第二确消息,对所述第二确认消息中的聚合密钥进行验证;所述聚合密钥根据所述主动子树的所有节点对应的哈希密钥聚合而成;所述根节点在验证所述聚合密钥与所述加密哈希相同时,确定达成共识结果;向所述客户端与所述被动子树的每一个节点广播回复消息,并将所述共识结果备份。
可选的,所述构建单元,用于以代理机构作为所述根节点;以参与目标招投标项目的供应商、所述目标招投项目的招标人以及选中的第三方监督机构作为主动节点,根据所述主动节点建立所述根节点的主动子树;以未参与所述目标招投标项目的供应商、非所述目标招投项目的招标人以及未选中的第三方监督机构作为被动节点,根据所述被动节点建立所述根节点的被动子树;根据所述根节点、所述主动子树以及所述被动子树,构建所述树形拓扑网络。
可选的,所述实用拜占庭容错共识装置还包括:视图更换单元,用于在检测到主动子树中的某一个节点发生故障时,执行视图更换操作。
可选的,所述视图更换单元,用于控制所述发生故障的节点向所述主动子树中的其他节点发送视图更换请求,所述视图更换请求包括所述发生故障的节点的标识以及选定的替换节点的标识,所述选定的替换节点为所述被动子树中正常运行的节点;所述主动子树的其他节点在接收到所述视图更换请求后,向所述替换节点发送视图更换确认消息;所述替换节点向所述主动子树的其他节点广播新视图消息,所述新视图消息包括发送所述视图更换确认消息的节点集合;所述发生故障的节点所在子网内的从节点根据所述新视图消息,更新其对应的视图,并将所述发生故障的节点与所述替换节点的身份绑定。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述所述的任一种实用拜占庭容错共识方法的步骤。
本发明实施例还提供了另一种实用拜占庭容错共识装置,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述所述的任一种实用拜占庭容错共识方法的步骤。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
首先,根据主动节点和被动节点分类,在一定程度上降低共识规模,减小信息共识的开销;其次,采用消息聚合技术,将信息的共识等效于聚合签名的确认和聚合密钥承诺,减小共识中的通信量,降低网络开销和计算开销;构建树形拓扑网络,使得PBFT算法易于扩展,容易在网络中加入新的分支或新的节点,通过在树形拓扑网络中排列节点来平衡计算和通信的负载,使得节点间的通信和消息聚合沿着树的边缘进行,降低了通信复杂度。
附图说明
图1是本发明实施例一种实用拜占庭容错共识方法的流程图;
图2是本发明实施例中的一种树形拓扑网络的结构示意图;
图3是本发明实施例一种实用拜占庭容错共识装置的结构示意图。
具体实施方式
如上述背景技术中所述,传统的PBFT算法只适用于小规模的局域网,而在大规模的广域网环境下,其可扩展性瓶颈对许可链系统的性能带来了严重的影响。
在本发明实施例中,首先,根据主动节点和被动节点分类,在一定程度上降低共识规模,减小信息共识的开销;其次,采用消息聚合技术,将信息的共识等效于聚合签名的确认和聚合密钥承诺,减小共识中的通信量,降低网络开销和计算开销;构建树形拓扑网络,使得PBFT算法易于扩展,容易在网络中加入新的分支或新的节点,通过在树形拓扑网络中排列节点来平衡计算和通信的负载,使得节点间的通信和消息聚合沿着树的边缘进行,降低了通信复杂度。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
本发明实施例提供了一种实用拜占庭容错共识方法,参照图1,以下通过具体步骤进行详细说明。
步骤S101,构建树形拓扑网络。
在具体实施中,树形拓扑网络可以包括根节点、主动子树以及被动子树。
在招投标的联盟链中,假设内部没有恶意节点,每一个节点的可靠性相同,可以采用随机的方式选择主节点和从节点。
在本发明实施例中,可以以代理机构作为根节点;以参与目标招投标项目的供应商、目标招投项目的招标人以及选中的第三方监督机构作为主动节点,根据主动节点建立根节点的主动子树;以未参与目标招投标项目的供应商、非目标招投项目的招标人以及未选中的第三方监督机构作为被动节点,根据被动节点建立根节点的被动子树。在得到根节点、主动子树以及被动子树之后,可以构建树形拓扑网络。
在具体应用中可知,在树形拓扑网络中,错误节点所处的层次越高,其对网络造成的影响越大,主节点的故障会导致其对应的子节点无法正常工作。因此,可以选取稳定度较高的节点作为主节点。
参照图2,给出了本发明实施例中的一种树形拓扑网络的结构示意图。图2中,树形拓扑网络包括根节点、主动子树以及被动子树。主动子树以及被动子树中的主节点与从节点可以随机选择生成。
步骤S102,根据所述树形拓扑网络,完成所述实用拜占庭容错共识。
在具体实施中,根节点可以根据其中的安全执行环境(Trusted ExecutionEnvironment,TEE)生成一组随机密钥M以及随机密钥M对应的加密哈希H。根节点根据主动子树中节点的数量n,将加密哈希H分成n+1份,并向每个主动节点发送一个加密哈希份额hi。
客户端可以向根节点Sroot发送消息<REQUEST,tx,t,c>σc以请求执行事务tx,其中的REQUEST表示消息的类型,t是时间戳,σc是客户端c对消息的签名。根节点Sroot在接收到客户端发送的事务请求后,将事务请求打包成目标区块b,将目标区块b与随机密钥M进行绑定,并向主动子树中的所有节点广播第一准备消息。
在具体实施中,第一准备消息可以包括目标区块b的数字摘要以及主动子树的当前视图。在本发明实施例中,第一准备消息可以为如下: 其中,v为主节点对应的子网当前视图,d为目标区块b的数字摘要,PREPARE1为准备消息的签名。子网当前视图与主节点在主动子树中的位置相关,不同的主节点对应的子网当前视图可以不同。本发明实施例中所述的主节点,指的是主动子树中存在从节点的节点。
对于主动子树中的任一节点,若其存在对应的从节点,则在接收到第一准备消息后,继续将第一准备消息广播至其对应的从节点,以此类推,直至最底层节点。最底层节点在接收到第一准备消息后,对其合法性进行验证,验证的主要内容包括:第一准备消息签名的准确性、主节点对应的子网当前视图的准确性、摘要d与目标区块b的哈希值是否一致以及目标区块b中的事务是否重放等。
若最底层节点验证第一准备消息有效,则将其存入本地消息日志,并向其对应的上一层节点(也即最底层节点的主节点)发送确认消息<COMMIT1,v,AS,d>σi;其中,σi表示主动节点i对确认消息的签名。最底层节点的上一层节点在接收到确认消息后,验证确认消息的合法性,验证内容主要包括:主节点对应的子网当前视图的准确性、摘要d之间的一致性等。若确认消息合法有效,则将确认消息中的身份签名AS与自身的身份签名聚合组成新的身份签名。
若最底层节点的上一层节点为其他主节点的从节点,则该主节点执行与最底层节点的上一层节点相同的操作,以此类推,直至根节点,最终生成的确认消息即为第一确认消息。
例如,最底层节点为子节点0,子节点0的上一层节点为子节点1,子节点1为子节点2的从节点,子节点2为子节点3的子节点。子节点0在接收到第一准备消息后,若确认第一准备消息有效后,向子节点1发送确认消息,此时,子节点1为子节点0的主节点。子节点1在接收到确认消息后,验证确认消息的合法性。若验证确认消息合法,则将确认消息中的子节点0的身份签名与自身的身份签名(也即子节点1的身份签名)聚合组成新的身份签名。子节点1向子节点2发送确认消息。子节点2在接收到确认消息后,验证确认消息的合法性。若验证确认消息合法,则将确认消息中新的身份签名与自身的身份签名(也即子节点2的身份签名)聚合组成新的身份签名。子节点2再向子节点3发送确认消息,以此类推。
根节点在接收到确认消息后,其TEE对聚合签名进行验证。当验证聚合签名有效时,向主动子树中的所有节点广播第二准备消息。在第二准备消息中,可以包括目标区块的数字摘要、主节点对应的子网当前视图以及聚合签名。根节点向主动子树广播第二准备消息的过程可以参见上述广播第一准备消息的过程。
最底层节点在接收到第二准备消息后,对第二准备消息的合法性进行验证,验证的主要内容包括:聚合签名的正确性、主节点对应的子网当前视图的准确性、摘要d与目标区块b的哈希值是否一致。
若最底层节点验证第二准备消息有效,则将其存入本地消息日志,并向其对应的上一层节点发送确认消息<COMMIT2,v,AS,Hi,d>σi。最底层节点对应的上一次层节点在确认消息后,验证确认消息的合法性,验证内容主要包括:主节点对应的子网当前视图的准确性、聚合签名AS的有效性以及摘要d之间的一致性等。若确认消息合法有效,则将确认消息中的聚合密钥Hi与自身的哈希密钥聚合组成新的聚合后的哈希密钥Hi。
若最底层节点的上一层节点为其他主节点的从节点,则该主节点执行与最底层节点的上一层节点相同的操作,以此类推,直至根节点,最终生成的确认消息即为第二确认消息。
根节点在接收到第二确认消息后,其TEE对最终得到的聚合哈希密钥Hi进行判断。若最终得到的聚合哈希密钥Hi与初始的加密哈希H相同,则确定共识达成。根节点向客户端与每一个被动节点(被动子树中的节点)广播一条回复消息将共识结果<b,M,AS,H>存入本地消息日志进行备份。
在具体实施中,实用拜占庭容错共识方法还可以在检测到主动子树中的某一个节点发生故障时,触发视图更换协议。在被动子树范围内随机选择一个正常的最底层节点替换发生故障的节点。
在本发明实施例中,主动子树中的一个节点在进行验证的过程中发现存在不一致性或者不合法性,可以向其主节点发送请求并设置计时器。若在计时器超时之前未得到回复,则该节点可以向主动子树中的所有节点广播请求。
如果一个节点在超时之前没有收到或者重新收到PREPARE1(或PREPARE2/COMMIT1/COMMIT2)消息,它将向所有主动节点广播一个视图更换请求<REQ_VIEW_CHANGE,v+1,sn,SA,i,SP,j>σi,sn为其本地最后一次提交的区块的序列号,SA,i为被发生故障的主动节点,SP,j为选中的被动节点。
所有主动子树中的节点在接收到视图更换请求后,对接收到的视图更换请求的合法性进行验证。若验证视图更换请求有效,则向被选中的被动节点发送视图更换确认消息。
主动子树中的主动节点在接收到新视图消息后,验证签名的正确性以及视图更换消息的有效性,然后将视图更换消息添加到消息日志中,且被替换节点所在子网内的从节点将视图消息存入日志并进入视图v+1,同时将SA,i的身份签名与SP,j的身份暂时绑定,SA,i节点TEE内的消息与SP,j节点TEE内的消息进行共享。
参照图3,给出了本发明实施例中的一种实用拜占庭容错共识装置30,包括:构建单元301以及容错共识单元302,其中:
构建单元301,用于构建树形拓扑网络;所述树形拓扑网络包括根节点、主动子树以及被动子树;
容错共识单元302,用于根据所述树形拓扑网络,完成所述实用拜占庭容错共识,包括:所述根节点生成随机密钥以及所述随机密钥对应的加密哈希H,根据所述主动子树中节点的数量n,将所述加密哈希H划分成n+1份,并分别向每个主动节点发送一份加密哈希份额;所述根节点接收客户端发送的事务请求;所述根节点将所述事务请求打包成目标区块,将所述目标区块与所述随机密钥绑定,在子网范围内广播第一准备消息;所述第一准备消息包括所述目标区块的数字摘要以及主节点对应的子网当前视图,所述子网当前视图与所述主节点在所述主动子树中的位置相关;所述根节点接收第一确认消息,对所述第一确认消息中的聚合签名进行验证;所述聚合签名根据所述主动子树的所有节点对应的用户签名聚合而成;所述根节点在验证所述聚合签名有效时,在子网范围内广播第一准备消息;所述第一准备消息包括所述目标区块的数字摘要以及主节点对应的子网当前视图,所述子网当前视图与所述主节点在所述主动子树中的位置相关;所述第二准备消息包括所述目标区块的数字摘要、所述主动子树的当前视图以及所述聚合签名;所述根节点在接收第二确消息,对所述第二确认消息中的聚合密钥进行验证;所述聚合密钥根据所述主动子树的所有节点对应的哈希密钥聚合而成;所述根节点在验证所述聚合密钥与所述加密哈希相同时,确定达成共识结果;向所述客户端与所述被动子树的每一个节点广播回复消息,并将所述共识结果备份。
在具体实施中,所述构建单元301,用于以代理机构作为所述根节点;以参与目标招投标项目的供应商、所述目标招投项目的招标人以及选中的第三方监督机构作为主动节点,根据所述主动节点建立所述根节点的主动子树;以未参与所述目标招投标项目的供应商、非所述目标招投项目的招标人以及未选中的第三方监督机构作为被动节点,根据所述被动节点建立所述根节点的被动子树;根据所述根节点、所述主动子树以及所述被动子树,构建所述树形拓扑网络。
在具体实施中,所述实用拜占庭容错共识装置30还可以包括:视图更换单元303,用于在检测到主动子树中的某一个节点发生故障时,执行视图更换操作。
在具体实施中,所述视图更换单元303,可以用于控制所述发生故障的节点向所述主动子树中的其他节点发送视图更换请求,所述视图更换请求包括所述发生故障的节点的标识以及选定的替换节点的标识,所述选定的替换节点为所述被动子树中正常运行的节点;所述主动子树的其他节点在接收到所述视图更换请求后,向所述替换节点发送视图更换确认消息;所述替换节点向所述主动子树的其他节点广播新视图消息,所述新视图消息包括发送所述视图更换确认消息的节点集合;所述发生故障的节点所在子网内的从节点根据所述新视图消息,更新其对应的视图,并将所述发生故障的节点与所述替换节点的身份绑定。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述任一实施例所述的实用拜占庭容错共识方法的步骤。
本发明实施例还提供了另一种实用拜占庭容错共识装置,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述任一实施例所述的实用拜占庭容错共识方法的步骤。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (10)
1.一种实用拜占庭容错共识方法,其特征在于,包括:
构建树形拓扑网络;所述树形拓扑网络包括根节点、主动子树以及被动子树;
根据所述树形拓扑网络,完成所述实用拜占庭容错共识,包括:
所述根节点生成随机密钥以及所述随机密钥对应的加密哈希H,根据所述主动子树中节点的数量n,将所述加密哈希H划分成n+1份,并分别向每个主动节点发送一份加密哈希份额;
所述根节点接收客户端发送的事务请求;
所述根节点将所述事务请求打包成目标区块,将所述目标区块与所述随机密钥绑定,在子网范围内广播第一准备消息;所述第一准备消息包括所述目标区块的数字摘要以及主节点对应的子网当前视图,所述子网当前视图与所述主节点在所述主动子树中的位置相关;
所述根节点接收第一确认消息,对所述第一确认消息中的聚合签名进行验证;所述聚合签名根据所述主动子树的所有节点对应的用户签名聚合而成;
所述根节点在验证所述聚合签名有效时,在子网范围内广播第一准备消息;所述第一准备消息包括所述目标区块的数字摘要以及主节点对应的子网当前视图,所述子网当前视图与所述主节点在所述主动子树中的位置相关;
所述第二准备消息包括所述目标区块的数字摘要、所述主动子树的当前视图以及所述聚合签名;
所述根节点在接收第二确消息,对所述第二确认消息中的聚合密钥进行验证;所述聚合密钥根据所述主动子树的所有节点对应的哈希密钥聚合而成;
所述根节点在验证所述聚合密钥与所述加密哈希相同时,确定达成共识结果;向所述客户端与所述被动子树的每一个节点广播回复消息,并将所述共识结果备份。
2.根据权利要求1所述的实用拜占庭容错共识方法,其特征在于,所述构建树形拓扑网络,包括:
以代理机构作为所述根节点;
以参与目标招投标项目的供应商、所述目标招投项目的招标人以及选中的第三方监督机构作为主动节点,根据所述主动节点建立所述根节点的主动子树;
以未参与所述目标招投标项目的供应商、非所述目标招投项目的招标人以及未选中的第三方监督机构作为被动节点,根据所述被动节点建立所述根节点的被动子树;
根据所述根节点、所述主动子树以及所述被动子树,构建所述树形拓扑网络。
3.如权利要求1所述的实用拜占庭容错共识方法,其特征在于,还包括:在检测到主动子树中的某一个节点发生故障时,执行视图更换操作。
4.如权利要求3所述的实用拜占庭容错共识方法,其特征在于,所述执行视图更换操作,包括:
控制所述发生故障的节点向所述主动子树中的其他节点发送视图更换请求,所述视图更换请求包括所述发生故障的节点的标识以及选定的替换节点的标识,所述选定的替换节点为所述被动子树中正常运行的节点;
所述主动子树的其他节点在接收到所述视图更换请求后,向所述替换节点发送视图更换确认消息;
所述替换节点向所述主动子树的其他节点广播新视图消息,所述新视图消息包括发送所述视图更换确认消息的节点集合;
所述发生故障的节点所在子网内的从节点根据所述新视图消息,更新其对应的视图,并将所述发生故障的节点与所述替换节点的身份绑定。
5.一种实用拜占庭容错共识装置,其特征在于,包括:
构建单元,用于构建树形拓扑网络;所述树形拓扑网络包括根节点、主动子树以及被动子树;
容错共识单元,用于根据所述树形拓扑网络,完成所述实用拜占庭容错共识,包括:所述根节点生成随机密钥以及所述随机密钥对应的加密哈希H,根据所述主动子树中节点的数量n,将所述加密哈希H划分成n+1份,并分别向每个主动节点发送一份加密哈希份额;所述根节点接收客户端发送的事务请求;所述根节点将所述事务请求打包成目标区块,将所述目标区块与所述随机密钥绑定,在子网范围内广播第一准备消息;所述第一准备消息包括所述目标区块的数字摘要以及主节点对应的子网当前视图,所述子网当前视图与所述主节点在所述主动子树中的位置相关;所述根节点接收第一确认消息,对所述第一确认消息中的聚合签名进行验证;所述聚合签名根据所述主动子树的所有节点对应的用户签名聚合而成;所述根节点在验证所述聚合签名有效时,在子网范围内广播第一准备消息;所述第一准备消息包括所述目标区块的数字摘要以及主节点对应的子网当前视图,所述子网当前视图与所述主节点在所述主动子树中的位置相关;所述第二准备消息包括所述目标区块的数字摘要、所述主动子树的当前视图以及所述聚合签名;所述根节点在接收第二确消息,对所述第二确认消息中的聚合密钥进行验证;所述聚合密钥根据所述主动子树的所有节点对应的哈希密钥聚合而成;所述根节点在验证所述聚合密钥与所述加密哈希相同时,确定达成共识结果;向所述客户端与所述被动子树的每一个节点广播回复消息,并将所述共识结果备份。
6.如权利要求5所述的实用拜占庭容错共识装置,其特征在于,所述构建单元,用于以代理机构作为所述根节点;以参与目标招投标项目的供应商、所述目标招投项目的招标人以及选中的第三方监督机构作为主动节点,根据所述主动节点建立所述根节点的主动子树;以未参与所述目标招投标项目的供应商、非所述目标招投项目的招标人以及未选中的第三方监督机构作为被动节点,根据所述被动节点建立所述根节点的被动子树;根据所述根节点、所述主动子树以及所述被动子树,构建所述树形拓扑网络。
7.如权利要求5所述的实用拜占庭容错共识装置,其特征在于,还包括:视图更换单元,用于在检测到主动子树中的某一个节点发生故障时,执行视图更换操作。
8.如权利要求5所述的实用拜占庭容错共识装置,其特征在于,所述视图更换单元,用于控制所述发生故障的节点向所述主动子树中的其他节点发送视图更换请求,所述视图更换请求包括所述发生故障的节点的标识以及选定的替换节点的标识,所述选定的替换节点为所述被动子树中正常运行的节点;所述主动子树的其他节点在接收到所述视图更换请求后,向所述替换节点发送视图更换确认消息;所述替换节点向所述主动子树的其他节点广播新视图消息,所述新视图消息包括发送所述视图更换确认消息的节点集合;所述发生故障的节点所在子网内的从节点根据所述新视图消息,更新其对应的视图,并将所述发生故障的节点与所述替换节点的身份绑定。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行权利要求1~4任一项所述的实用拜占庭容错共识方法的步骤。
10.一种实用拜占庭容错共识装置,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时执行权利要求1~4任一项所述的实用拜占庭容错共识方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011395566.0A CN112395113B (zh) | 2020-12-02 | 2020-12-02 | 实用拜占庭容错共识方法及装置、可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011395566.0A CN112395113B (zh) | 2020-12-02 | 2020-12-02 | 实用拜占庭容错共识方法及装置、可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112395113A true CN112395113A (zh) | 2021-02-23 |
CN112395113B CN112395113B (zh) | 2023-06-27 |
Family
ID=74605027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011395566.0A Active CN112395113B (zh) | 2020-12-02 | 2020-12-02 | 实用拜占庭容错共识方法及装置、可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112395113B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113923093A (zh) * | 2021-10-29 | 2022-01-11 | 博雅正链(北京)科技有限公司 | 一种基于可信执行环境的新型拜占庭容错共识方法 |
CN114760135A (zh) * | 2022-04-19 | 2022-07-15 | 浙江大学 | 一种区块链容错共识方案的优化方法 |
US11881980B2 (en) | 2022-04-22 | 2024-01-23 | Red Hat, Inc. | Byzantine fault prevention in mesh networks |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109472593A (zh) * | 2018-10-10 | 2019-03-15 | 远光软件股份有限公司 | 一种基于区块链技术的结算方法、装置及区块链网络 |
US20190097790A1 (en) * | 2017-09-22 | 2019-03-28 | NEC Laboratories Europe GmbH | Scalable byzantine fault-tolerant protocol with partial tee support |
CN111682942A (zh) * | 2020-05-18 | 2020-09-18 | 哈尔滨工业大学 | 一种应用于许可链的二元加权拜占庭容错共识方法 |
CN111833051A (zh) * | 2019-12-20 | 2020-10-27 | 北京艾摩瑞策科技有限公司 | 基于pbft共识的实物抵押数据存储方法及装置 |
-
2020
- 2020-12-02 CN CN202011395566.0A patent/CN112395113B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190097790A1 (en) * | 2017-09-22 | 2019-03-28 | NEC Laboratories Europe GmbH | Scalable byzantine fault-tolerant protocol with partial tee support |
CN109472593A (zh) * | 2018-10-10 | 2019-03-15 | 远光软件股份有限公司 | 一种基于区块链技术的结算方法、装置及区块链网络 |
CN111833051A (zh) * | 2019-12-20 | 2020-10-27 | 北京艾摩瑞策科技有限公司 | 基于pbft共识的实物抵押数据存储方法及装置 |
CN111682942A (zh) * | 2020-05-18 | 2020-09-18 | 哈尔滨工业大学 | 一种应用于许可链的二元加权拜占庭容错共识方法 |
Non-Patent Citations (1)
Title |
---|
包振山;王凯旋;张文博;: "基于树形拓扑网络的实用拜占庭容错共识算法", 应用科学学报, no. 01 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113923093A (zh) * | 2021-10-29 | 2022-01-11 | 博雅正链(北京)科技有限公司 | 一种基于可信执行环境的新型拜占庭容错共识方法 |
CN113923093B (zh) * | 2021-10-29 | 2024-02-06 | 博雅正链(北京)科技有限公司 | 一种基于可信执行环境的新型拜占庭容错共识方法 |
CN114760135A (zh) * | 2022-04-19 | 2022-07-15 | 浙江大学 | 一种区块链容错共识方案的优化方法 |
US11881980B2 (en) | 2022-04-22 | 2024-01-23 | Red Hat, Inc. | Byzantine fault prevention in mesh networks |
Also Published As
Publication number | Publication date |
---|---|
CN112395113B (zh) | 2023-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11522698B2 (en) | Method and system for byzantine fault-tolerance replicating of data | |
CN110915166B (zh) | 区块链 | |
CN112395113B (zh) | 实用拜占庭容错共识方法及装置、可读存储介质 | |
CN111131209B (zh) | 一种改进的高效共识方法、系统、计算机设备及存储介质 | |
CN111092896B (zh) | 基于优化paxos的食品溯源分布式数据同步方法 | |
CN111614468B (zh) | 一种区块链共识方法及系统 | |
CN111682942B (zh) | 一种应用于许可链的二元加权拜占庭容错共识方法 | |
WO2022217807A1 (zh) | 区块链共识节点选择方法、装置、计算机设备和存储介质 | |
EP3908932B1 (en) | Topology-driven byzantine fault-tolerant consensus protocol with vote aggregation | |
CN115796261A (zh) | 一种基于区块链的轻量级分组共识的联邦学习方法 | |
CN114745140B (zh) | 基于聚合加密的城市规划领域区块链共识验证方法及系统 | |
Wu et al. | Reinforced practical Byzantine fault tolerance consensus protocol for cyber physical systems | |
CN110166364B (zh) | 一种软件定义机会网络流表更新方法 | |
WO2023179056A1 (zh) | 区块链网络的共识处理方法、装置、设备及存储介质、程序产品 | |
Tennage et al. | Baxos: Backing off for robust and efficient consensus | |
CN114499874A (zh) | 一种应用于工业互联网的拜占庭容错共识优化方法 | |
Du et al. | An Advanced PBFT-based Consensus Algorithm for a Bidding Consortium Blockchain | |
Hao et al. | Doppel: A bft consensus algorithm for cyber-physical systems with low latency | |
CN116192868B (zh) | 一种应用于联盟链的并行拜占庭容错共识方法及终端 | |
Jiang et al. | An efficient Byzantine fault-tolerant consensus mechanism based on threshold signature | |
CN114466034B (zh) | 一种基于匿名主节点的区块链共识方法 | |
Kang et al. | Blockchain-based high-reliability recovery and verification mechanism for power data storage nodes | |
Wang et al. | LgTTBFT: Effective Byzantine Fault Tolerance Algorithm Based on Structured Network and Trusted Execution Environment | |
CN115102899B (zh) | 一种基于负载均衡的区块链节点树形分片方法 | |
An et al. | Research on Byzantine Fault Tolerant algorithm based on Node Weights |
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 |