CN113596115A - 一种应用基于pbft优化实现多节点高性能协议的网络 - Google Patents
一种应用基于pbft优化实现多节点高性能协议的网络 Download PDFInfo
- Publication number
- CN113596115A CN113596115A CN202110785351.8A CN202110785351A CN113596115A CN 113596115 A CN113596115 A CN 113596115A CN 202110785351 A CN202110785351 A CN 202110785351A CN 113596115 A CN113596115 A CN 113596115A
- Authority
- CN
- China
- Prior art keywords
- information
- node
- signature
- sub
- network
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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
-
- 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/72—Signcrypting, i.e. digital signing and encrypting simultaneously
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开一种应用基于PBFT优化实现多节点高性能协议的网络,网络包括主节点和多个副节点,网络的节点总数N不小于3f+1,其中,f为拜占庭节点的数量,f和N均为正整数,本发明中,主节点根据提前准备信息生成N‑1份子信息,将各子信息发送至各副节点,由于主节点仅向各副节点发送了一份子信息,而不是整个提前准备信息,因此减少了主节点与副节点之间的网络带宽消耗,主节点通过发送聚合签名至各副节点而不是发送多个签名的方式,进一步减少主节点与副节点之间的网络带宽消耗,并且除了进行子信息获取以外,各副节点之间无需进行信息传递,大大减少了各个副节点之间的网络带宽消耗,综上能够保证网络共识成功,提高交易确认成功率。
Description
技术领域
本发明涉及区块链技术领域,具体而言,涉及一种应用基于PBFT优化实现多节点高性能协议的网络。
背景技术
目前,PBFT(Practical Byzantine Fault Tolerance,拜占庭容错算法)广泛应用于区块链中。
然而在实际区块链进行交易确认时,PBFT的多步骤、多传输以及重复传输的特性,严重限制了系统整体性能例如交易吞吐量和交易延迟,而且对网络性能的限制随着网络中的节点数量的提高而剧烈提高。当网络中的节点数量过多,远远超过PBFT初始协议设计的四个节点时,例如网络中的节点数量超过一百个节点时,由于网络中的主节点需要与一百个副节点进行交互,各副节点之间也进行交互,这导致整体网络带宽无法保证各节点之间的状态同步,导致网络共识失败,进一步导致无法进行交易确认。
发明内容
本发明提供了一种应用基于PBFT优化实现多节点高性能协议的网络,能够保证网络共识成功,提高交易确认成功率。具体的技术方案如下。
第一方面,本发明提供了一种应用基于PBFT优化实现多节点高性能协议的网络,所述网络包括主节点和多个副节点,所述网络的节点总数N不小于3f+1,其中,f为拜占庭节点的数量,f和N均为正整数;
所述主节点接收客户端发送的包含交易信息的交易请求,确定所述网络的当前视图轮换计数器信息,对所述交易信息和所述当前视图轮换计数器信息进行签名得到第一签名,将所述交易信息、所述当前视图轮换计数器信息和所述第一签名作为提前准备信息,根据所述提前准备信息生成N-1份子信息,将各子信息发送至各副节点,其中,所述当前视图轮换计数器信息表征所述网络的主节点的轮换情况;
针对各副节点中的每个副节点,该副节点接收所述子信息,分别发送子信息获取请求至除自身以外的其余副节点,接收其余副节点发送的子信息获取请求,发送自身接收到的子信息至其余副节点,将接收到的所有子信息合并为所述提前准备信息,当验证所述第一签名成功时,根据BLS算法对所述提前准备信息进行签名生成第二签名,将所述提前准备信息和所述第二签名作为准备信息并发送至所述主节点;
所述主节点接收各副节点发送的准备信息,根据所述BLS算法验证各准备信息中的第二签名,当验证成功的第二签名的数量达到2f+1时,对所有验证成功的第二签名进行聚合得到第一聚合签名,将所述第一聚合签名作为准备确认信息并发送至各副节点;
针对各副节点中的每个副节点,该副节点接收所述准备确认信息,根据所述BLS算法对所述第一聚合签名进行验证,如果验证成功,根据所述BLS算法对所述准备信息和所述准备确认信息进行签名得到第三签名,将所述准备信息、所述准备确认信息和所述第三签名作为提交信息并发送至所述主节点;
所述主节点接收各副节点发送的提交信息,根据所述BLS算法验证各提交信息中的第三签名,当验证成功的第三签名的数量达到2f+1时,对所有验证成功的第三签名进行聚合得到第二聚合签名,将所述第二聚合签名作为提交确认信息并发送至各副节点;
针对各副节点中的每个副节点,该副节点接收所述提交确认信息,根据所述BLS算法对所述第二聚合签名进行验证,如果验证成功,发送交易确认信息至所述客户端。
可选的,所述主节点对所述提前准备信息进行二进制变换生成二进制文件,将所述二进制文件划分为N-1份子文件,将所述N-1份子文件作为所述N-1份子信息。
可选的,所述主节点将所述交易信息划分为N-1份子交易信息,根据所述N-1份子交易信息、所述当前视图轮换计数器信息和所述第一签名生成N-1份子信息,其中,每份子信息包含一份子交易信息、所述当前视图轮换计数器信息和所述第一签名,且每份子信息包含的子交易信息各不相同。
可选的,针对各副节点中的每个副节点,该副节点采用自身在所述BLS算法中对应的私钥和预设哈希函数对所述提前准备信息进行签名生成第二签名;
所述主节点根据各副节点在所述BLS算法中对应的公钥对各准备信息中的第二签名进行解密,如果解密成功,确认验证成功。
可选的,所述主节点将所有验证成功的第二签名相加得到第一聚合签名。
可选的,针对各副节点中的每个副节点,该副节点根据所述BLS算法中的验签方式对所述第一聚合签名进行验签。
可选的,针对各副节点中的每个副节点,该副节点采用自身在所述BLS算法中对应的私钥和预设哈希函数对所述准备信息和所述准备确认信息进行签名得到第三签名;
所述主节点根据各副节点在所述BLS算法中对应的公钥对各提交信息中的第三签名进行解密,如果解密成功,确认验证成功。
可选的,所述主节点将所有验证成功的第三签名相加得到第二聚合签名。
可选的,针对各副节点中的每个副节点,该副节点根据所述BLS算法中的验签方式对所述第二聚合签名进行验签。
可选的,所述基于PBFT优化实现多节点高性能协议应用于开源联盟链框架Fabric。
由上述内容可知,本发明实施例提供的数据同步方法及处理器、车载终端,本实施例的网络包括主节点和多个副节点,网络的节点总数N不小于3f+1,其中,f为拜占庭节点的数量,f和N均为正整数,主节点接收客户端发送的包含交易信息的交易请求,确定网络的当前视图轮换计数器信息,对交易信息和当前视图轮换计数器信息进行签名得到第一签名,将交易信息、当前视图轮换计数器信息和第一签名作为提前准备信息,根据提前准备信息生成N-1份子信息,将各子信息发送至各副节点,其中,当前视图轮换计数器信息表征网络的主节点的轮换情况,针对各副节点中的每个副节点,该副节点接收子信息,分别发送子信息获取请求至除自身以外的其余副节点,接收其余副节点发送的子信息获取请求,发送自身接收到的子信息至其余副节点,将接收到的所有子信息合并为提前准备信息,当验证第一签名成功时,根据BLS算法对提前准备信息进行签名生成第二签名,将提前准备信息和第二签名作为准备信息并发送至主节点,主节点接收各副节点发送的准备信息,根据BLS算法验证各准备信息中的第二签名,当验证成功的第二签名的数量达到2f+1时,对所有验证成功的第二签名进行聚合得到第一聚合签名,将第一聚合签名作为准备确认信息并发送至各副节点,针对各副节点中的每个副节点,该副节点接收准备确认信息,根据BLS算法对第一聚合签名进行验证,如果验证成功,根据BLS算法对准备信息和准备确认信息进行签名得到第三签名,将准备信息、准备确认信息和第三签名作为提交信息并发送至主节点,主节点接收各副节点发送的提交信息,根据BLS算法验证各提交信息中的第三签名,当验证成功的第三签名的数量达到2f+1时,对所有验证成功的第三签名进行聚合得到第二聚合签名,将第二聚合签名作为提交确认信息并发送至各副节点,针对各副节点中的每个副节点,该副节点接收提交确认信息,根据BLS算法对第二聚合签名进行验证,如果验证成功,发送交易确认信息至客户端。本申请中,主节点根据提前准备信息生成N-1份子信息,将各子信息发送至各副节点,由于主节点仅仅向各副节点发送了一份子信息,而不是整个提前准备信息,因此,减少了主节点与副节点之间的网络带宽消耗,主节点通过发送聚合签名至各副节点而不是发送多个签名的方式,进一步减少主节点与副节点之间的网络带宽消耗,使得整个网络的性能不会完全受限于主节点,去除了主节点的网络带宽瓶颈,并且在本申请中除了进行子信息获取以外,各副节点之间无需进行信息传递,大大减少了各个副节点之间的网络带宽消耗,综上能够保证网络共识成功,提高交易确认成功率。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
本发明实施例的创新点包括:
1、主节点根据提前准备信息生成N-1份子信息,将各子信息发送至各副节点,由于主节点仅仅向各副节点发送了一份子信息,而不是整个提前准备信息,因此,减少了主节点与副节点之间的网络带宽消耗,主节点通过发送聚合签名至各副节点而不是发送多个签名的方式,进一步减少主节点与副节点之间的网络带宽消耗,使得整个网络的性能不会完全受限于主节点,去除了主节点的网络带宽瓶颈,并且在本申请中除了进行子信息获取以外,各副节点之间无需进行信息传递,大大减少了各个副节点之间的网络带宽消耗,综上能够保证网络共识成功,提高交易确认成功率。
2、将基于PBFT优化实现多节点高性能协议应用于开源联盟链框架Fabric,使得节点数量大的联盟链网络也能够实现高性能、高扩展性的共识和状态同步,即随着节点数量的上升,联盟链网络的吞吐量减少较慢。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的应用基于PBFT优化实现多节点高性能协议的网络的一种结构示意图;
图2为基于PBFT优化实现多节点高性能协议的各阶段示意图;
图3(a)为切分的示意图;
图3(b)为复制的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明实施例及附图中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含的一系列步骤或单元的过程、方法、网络、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
本发明实施例公开了一种应用基于PBFT优化实现多节点高性能协议的网络,能够保证网络共识成功,提高交易确认成功率。下面对本发明实施例进行详细说明。
图1为本发明实施例提供的应用基于PBFT优化实现多节点高性能协议的网络的一种结构示意图。参见图1,网络包括主节点P和多个副节点,网络的节点总数N不小于3f+1,其中,f为拜占庭节点的数量,f和N均为正整数,也就是说网络中有f个拜占庭节点,网络可以容忍f个节点不传输或者传输错误信息,网络有大于等于3f+1个节点即可保证共识的正常运行。图1中的副节点数量为3个,分别为A副节点、B副节点和C副节点,n代表交易的数量。
本申请根据PBFT(Practical Byzantine Fault Tolerance,拜占庭容错算法)初始协议的特点,提出了一种利用切片复制和聚合签名的PBFT优化协议也就是基于PBFT优化实现多节点高性能协议。
图2为基于PBFT优化实现多节点高性能协议的各阶段示意图,参见图2,该基于PBFT优化实现多节点高性能协议包括五个源于PBFT初始协议的阶段以及本申请提出的两个附加阶段。五个源于PBFT初始协议的阶段分别为request请求阶段、pre-prepare提前准备阶段、prepare准备阶段、commit提交阶段、reply回应阶段,两个附加阶段分别为prepare-ack准备确认阶段和commit-ack提交确认阶段。网络的共识发生在pre-prepare提前准备阶段、prepare准备阶段和commit提交阶段,网络中的节点确认共识发生在prepare-ack准备确认阶段和commit-ack提交确认阶段,网络与客户端交互发生在request请求阶段和reply回应阶段。图2中的箭头代表信息传递的方向,0代表主节点,1-3代表副节点,C代表客户端。
其中,利用切片复制减少PBFT中pre-prepare提前准备阶段的主节点复制备份到副节点的网络带宽消耗,去除主节点网络带宽瓶颈。利用聚合签名简化PBFT中的prepare准备阶段和commit提交阶段,由主节点收集签名,减少副节点带宽消耗,并将二者结合分别对pre-prepare提前准备阶段、prepare准备阶段、commit提交阶段节点传输进行优化。
下面对本发明实施例提供的应用基于PBFT优化实现多节点高性能协议的网络与客户端进行交易确认的过程进行详细介绍:
在request请求阶段,客户端向网络中的主节点发送包含交易信息的交易请求,在pre-prepare提前准备阶段,主节点接收客户端发送的包含交易信息的交易请求,确定网络的当前视图轮换计数器信息,对交易信息和当前视图轮换计数器信息进行签名得到第一签名,其中,当前视图轮换计数器信息表征网络的主节点的轮换情况,根据当前视图轮换计数器信息来确定网络中哪一个节点为主节点。
主节点对交易信息和当前视图轮换计数器信息进行签名得到第一签名的方式,可以为现有技术中任一签名方式,本发明实施例对此并不做任何限定。
主节点将交易信息、当前视图轮换计数器信息和第一签名作为提前准备信息,根据提前准备信息生成N-1份子信息也就是进行切片,然后将各子信息发送至各副节点,也就是每个子信息发送给不同的副节点。
示例性的,提前准备信息m为<txs,view,Signprimary>,txs为交易信息,view为当前视图轮换计数器信息,Signprimary为第一签名。
其中,主节点根据提前准备信息生成N-1份子信息的方式有多种,包括但不限于以下两种方式:
第一种方式:
主节点对提前准备信息进行二进制变换生成二进制文件,将二进制文件划分为N-1份子文件,将N-1份子文件作为N-1份子信息。
在此方式中,主节点对提前准备信息进行划分,主节点先将提前准备信息二进制化生成一份二进制文件,然后再将二进制文件划分为N-1份子文件,将N-1份子文件作为N-1份子信息。其中,将二进制文件划分为N-1份子文件的方式可以为现有技术中的任意一种划分方式,本发明实施例对比并不做任何限定。
第二种方式:
主节点将交易信息划分为N-1份子交易信息,根据N-1份子交易信息、当前视图轮换计数器信息和第一签名生成N-1份子信息,其中,每份子信息包含一份子交易信息、当前视图轮换计数器信息和第一签名,且每份子信息包含的子交易信息各不相同。
在此方式中,主节点对交易信息进行划分,主节点将交易信息划分为N-1份子交易信息,然后根据N-1份子交易信息、当前视图轮换计数器信息和第一签名生成N-1份子信息。
例如:图3(a)为切分的示意图,参见图3(a),假设节点总数N为4,N-1为3,则N-1份子信息为<txs1,view,Signprimary>、<txs2,view,Signprimary>和<txs3,view,Signprimary>,其中,txs1、txs2和txs3分别为txs不同的1/3,且三者之和为txs。
假设交易信息为n条交易,则把n条交易分割成N-1份,则N-1份子信息中的每份包含n/N-1条交易。
针对各副节点中的每个副节点,该副节点接收子信息,此时该副节点得到的仅仅是子信息并不是完整的提前准备信息,因此,需要进行复制,即分别发送子信息获取请求至除自身以外的其余副节点,接收其余副节点发送的子信息获取请求,发送自身接收到的子信息至其余副节点,将接收到的所有子信息合并为提前准备信息,也就是每个副节点在接收到子信息后,需要再从其余副节点收取缺失的子信息,然后再将收到的所有子信息合并为提前准备信息,这样每个副节点都得到了完整的提前准备信息。
例如:图3(b)为复制的示意图,参见图3(b),各副节点从其余副节点收集缺失的子信息。
由于主节点仅仅向各副节点发送了一份子信息,而不是整个提前准备信息,因此,减少了主节点与副节点之间的网络带宽消耗,使得整个网络的性能不会完全受限于主节点,去除了主节点的网络带宽瓶颈,能够保证网络共识成功,提高交易确认成功率。
各副节点都得到了完整的提前准备信息后,需要对第一签名进行验证,对第一签名进行验证可以为采用生成第一签名的签名方式对应的验签方式进行验证。
在prepare准备阶段,当验证第一签名成功时,针对各副节点中的每个副节点,该副节点根据BLS算法对提前准备信息进行签名生成第二签名,将提前准备信息和第二签名作为准备信息并发送至主节点。
示例性的,准备信息为<m,Signid>,其中,m为提前准备信息,Signid为第二签名。
上述针对各副节点中的每个副节点,该副节点根据BLS算法对提前准备信息进行签名生成第二签名可以为:
针对各副节点中的每个副节点,该副节点采用自身在BLS算法中对应的私钥和预设哈希函数对提前准备信息进行签名生成第二签名。
在本发明实施例中,使用BLS算法的目的是当主节点收集到足够的第二签名后可以对第二签名进行聚合,减少信息带宽传输量。在BLS算法中节点可以自行选择自己的私钥,假设i节点选择的私钥为si也就是i节点在BLS算法中对应的私钥,i节点在BLS算法中对应的公钥pi=si*G,G为椭圆曲线的起始点坐标。
其中,各副节点根据以下公式生成第二签名:
Si=si*hash(m)
其中,hash为预设哈希函数,si为i节点在BLS算法中对应的私钥,Si为第二签名,m为提前准备信息。
主节点接收各副节点发送的准备信息,根据BLS算法验证各准备信息中的第二签名,当验证成功的第二签名的数量达到2f+1时,对所有验证成功的第二签名进行聚合得到第一聚合签名,将第一聚合签名作为准备确认信息并发送至各副节点。
上述主节点根据BLS算法验证各准备信息中的第二签名可以为:
主节点根据各副节点在BLS算法中对应的公钥对各准备信息中的第二签名进行解密,如果解密成功,确认验证成功。
网络中的主节点保存有各个副节点在BLS算法中对应的公钥,因此,主节点可以根据各副节点在BLS算法中对应的公钥对各准备信息中的第二签名进行解密,也就是使用pi对各准备信息中的Si进行解密。
当验证成功的第二签名的数量达到2f+1时,说明有足够多的副节点认可主节点提供的交易请求,此时,主节点对所有验证成功的第二签名进行聚合得到第一聚合签名。
上述主节点对所有验证成功的第二签名进行聚合得到第一聚合签名可以为:主节点将所有验证成功的第二签名相加得到第一聚合签名。
在prepare-ack准备确认阶段,主节点将第一聚合签名作为准备确认信息并发送至各副节点,示例性的,准备确认信息为<Signall>,其中,Signall为第一聚合签名。
针对各副节点中的每个副节点,该副节点接收准备确认信息,根据BLS算法对第一聚合签名进行验证,验证第一聚合签名的目的是为了确认网络中是否确实存在2f+1个副节点确认准备信息。
在commit提交阶段,如果验证成功,该副节点根据BLS算法对准备信息和准备确认信息进行签名得到第三签名,将准备信息、准备确认信息和第三签名作为提交信息并发送至主节点。
上述针对各副节点中的每个副节点,该副节点接收准备确认信息,根据BLS算法对第一聚合签名进行验证可以为:
针对各副节点中的每个副节点,该副节点根据BLS算法中的验签方式对第一聚合签名进行验签。
其中,BLS算法中的验签方式可以为:
验证e(G,S)=e(pk1,hash(m))*e(pk2,hash(m))...e(pkn,hash(m))是否成立,如果成立,确定验签成功。
其中,G为椭圆曲线的起始点坐标,S为第一聚合签名,pk1……pkn为各副节点的节点标识,m为提前准备信息,e为双线性映射函数。
主节点接收各副节点发送的提交信息,根据BLS算法验证各提交信息中的第三签名,当验证成功的第三签名的数量达到2f+1时,对所有验证成功的第三签名进行聚合得到第二聚合签名,将第二聚合签名作为提交确认信息并发送至各副节点。
上述针对各副节点中的每个副节点,该副节点根据BLS算法对准备信息和准备确认信息进行签名得到第三签名可以为:
针对各副节点中的每个副节点,该副节点采用自身在BLS算法中对应的私钥和预设哈希函数对准备信息和准备确认信息进行签名得到第三签名;
相应的,上述主节点接收各副节点发送的提交信息,根据BLS算法验证各提交信息中的第三签名可以为:
主节点根据各副节点在BLS算法中对应的公钥对各提交信息中的第三签名进行解密,如果解密成功,确认验证成功。
进行第三签名和验证第三签名的方式与进行第二签名和验证第二签名的方式相同,具体可参见上述进行第二签名和验证第二签名的描述,在此不再赘述。
当验证成功的第三签名的数量达到2f+1时,说明有足够多的副节点认可主节点提供的交易请求,此时,主节点对所有验证成功的第三签名进行聚合得到第二聚合签名。
上述主节点对所有验证成功的第三签名进行聚合得到第二聚合签名可以为:主节点将所有验证成功的第三签名相加得到第二聚合签名。
主节点得到第二聚合签名后,将第二聚合签名作为提交确认信息并发送至各副节点,使得各个副节点将以主节点的回复进行最后的确认。
在commit-ack提交确认阶段,针对各副节点中的每个副节点,该副节点接收提交确认信息,根据BLS算法对第二聚合签名进行验证,如果验证成功,发送交易确认信息至客户端。
上述针对各副节点中的每个副节点,该副节点根据BLS算法对第二聚合签名进行验证可以为:
针对各副节点中的每个副节点,该副节点根据BLS算法中的验签方式对第二聚合签名进行验签。
BLS算法中的验签方式参照上述对第一聚合签名进行验签时的描述,在此不再赘述。
该副节点对第二聚合签名进行验证成功,说明该副节点达成和大部分网络中的副节点一致的共识,此时,进入reply回应阶段,该副节点发送交易确认信息至客户端。客户端接收交易确认信息,获知交易确认成功。由此,完成了网络成功进行交易确认的流程。
示例性的,基于PBFT优化实现多节点高性能协议可以应用于开源联盟链框架Fabric。
将基于PBFT优化实现多节点高性能协议开发在现有的开源联盟链框架Fabric上,主要利用Fabric可插拔的共识协议以及其方便的节点系统编排。具体的实现上,覆盖Fabric v1.4版本的orderer代码,集成Orderer函数,实现排序节点,并且每个排序节点部署了基于PBFT优化实现多节点高性能协议,由此实现了request请求阶段、pre-prepare提前准备阶段、prepare准备阶段、prepare-ack准备确认阶段、commit提交阶段、commit-ack提交确认阶段、reply回应阶段。
其中,request请求阶段可实现chain的Order接口功能,使得Fabric client提交的交易请求能够最终转发至主节点然后开始进行pre-prepare提前准备阶段,reply回应阶段实现应用support接口功能将交易写入区块中,然后deliver给Fabric peer使其确认区块。其余阶段均通过符合上述协议的分布式网络实现,各节点之间使用http协议通信。
由上述内容可知,本实施例的网络包括主节点和多个副节点,网络的节点总数N不小于3f+1,其中,f为拜占庭节点的数量,f和N均为正整数,主节点接收客户端发送的包含交易信息的交易请求,确定网络的当前视图轮换计数器信息,对交易信息和当前视图轮换计数器信息进行签名得到第一签名,将交易信息、当前视图轮换计数器信息和第一签名作为提前准备信息,根据提前准备信息生成N-1份子信息,将各子信息发送至各副节点,其中,当前视图轮换计数器信息表征网络的主节点的轮换情况,针对各副节点中的每个副节点,该副节点接收子信息,分别发送子信息获取请求至除自身以外的其余副节点,接收其余副节点发送的子信息获取请求,发送自身接收到的子信息至其余副节点,将接收到的所有子信息合并为提前准备信息,当验证第一签名成功时,根据BLS算法对提前准备信息进行签名生成第二签名,将提前准备信息和第二签名作为准备信息并发送至主节点,主节点接收各副节点发送的准备信息,根据BLS算法验证各准备信息中的第二签名,当验证成功的第二签名的数量达到2f+1时,对所有验证成功的第二签名进行聚合得到第一聚合签名,将第一聚合签名作为准备确认信息并发送至各副节点,针对各副节点中的每个副节点,该副节点接收准备确认信息,根据BLS算法对第一聚合签名进行验证,如果验证成功,根据BLS算法对准备信息和准备确认信息进行签名得到第三签名,将准备信息、准备确认信息和第三签名作为提交信息并发送至主节点,主节点接收各副节点发送的提交信息,根据BLS算法验证各提交信息中的第三签名,当验证成功的第三签名的数量达到2f+1时,对所有验证成功的第三签名进行聚合得到第二聚合签名,将第二聚合签名作为提交确认信息并发送至各副节点,针对各副节点中的每个副节点,该副节点接收提交确认信息,根据BLS算法对第二聚合签名进行验证,如果验证成功,发送交易确认信息至客户端。本申请中,主节点根据提前准备信息生成N-1份子信息,将各子信息发送至各副节点,由于主节点仅仅向各副节点发送了一份子信息,而不是整个提前准备信息,因此,减少了主节点与副节点之间的网络带宽消耗,主节点通过发送聚合签名至各副节点而不是发送多个签名的方式,进一步减少主节点与副节点之间的网络带宽消耗,使得整个网络的性能不会完全受限于主节点,去除了主节点的网络带宽瓶颈,并且在本申请中除了进行子信息获取以外,各副节点之间无需进行信息传递,大大减少了各个副节点之间的网络带宽消耗,综上能够保证网络共识成功,提高交易确认成功率。
以及,将基于PBFT优化实现多节点高性能协议应用于开源联盟链框架Fabric,使得节点数量大的联盟链网络也能够实现高性能、高扩展性的共识和状态同步,即随着节点数量的上升,联盟链网络的吞吐量减少较慢。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域普通技术人员可以理解:实施例中的装置中的模块可以按照实施例描述分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。
Claims (10)
1.一种应用基于PBFT优化实现多节点高性能协议的网络,其特征在于,所述网络包括主节点和多个副节点,所述网络的节点总数N不小于3f+1,其中,f为拜占庭节点的数量,f和N均为正整数;
所述主节点接收客户端发送的包含交易信息的交易请求,确定所述网络的当前视图轮换计数器信息,对所述交易信息和所述当前视图轮换计数器信息进行签名得到第一签名,将所述交易信息、所述当前视图轮换计数器信息和所述第一签名作为提前准备信息,根据所述提前准备信息生成N-1份子信息,将各子信息发送至各副节点,其中,所述当前视图轮换计数器信息表征所述网络的主节点的轮换情况;
针对各副节点中的每个副节点,该副节点接收所述子信息,分别发送子信息获取请求至除自身以外的其余副节点,接收其余副节点发送的子信息获取请求,发送自身接收到的子信息至其余副节点,将接收到的所有子信息合并为所述提前准备信息,当验证所述第一签名成功时,根据BLS算法对所述提前准备信息进行签名生成第二签名,将所述提前准备信息和所述第二签名作为准备信息并发送至所述主节点;
所述主节点接收各副节点发送的准备信息,根据所述BLS算法验证各准备信息中的第二签名,当验证成功的第二签名的数量达到2f+1时,对所有验证成功的第二签名进行聚合得到第一聚合签名,将所述第一聚合签名作为准备确认信息并发送至各副节点;
针对各副节点中的每个副节点,该副节点接收所述准备确认信息,根据所述BLS算法对所述第一聚合签名进行验证,如果验证成功,根据所述BLS算法对所述准备信息和所述准备确认信息进行签名得到第三签名,将所述准备信息、所述准备确认信息和所述第三签名作为提交信息并发送至所述主节点;
所述主节点接收各副节点发送的提交信息,根据所述BLS算法验证各提交信息中的第三签名,当验证成功的第三签名的数量达到2f+1时,对所有验证成功的第三签名进行聚合得到第二聚合签名,将所述第二聚合签名作为提交确认信息并发送至各副节点;
针对各副节点中的每个副节点,该副节点接收所述提交确认信息,根据所述BLS算法对所述第二聚合签名进行验证,如果验证成功,发送交易确认信息至所述客户端。
2.如权利要求1所述的网络,其特征在于,所述主节点对所述提前准备信息进行二进制变换生成二进制文件,将所述二进制文件划分为N-1份子文件,将所述N-1份子文件作为所述N-1份子信息。
3.如权利要求1所述的网络,其特征在于,所述主节点将所述交易信息划分为N-1份子交易信息,根据所述N-1份子交易信息、所述当前视图轮换计数器信息和所述第一签名生成N-1份子信息,其中,每份子信息包含一份子交易信息、所述当前视图轮换计数器信息和所述第一签名,且每份子信息包含的子交易信息各不相同。
4.如权利要求1所述的网络,其特征在于,针对各副节点中的每个副节点,该副节点采用自身在所述BLS算法中对应的私钥和预设哈希函数对所述提前准备信息进行签名生成第二签名;
所述主节点根据各副节点在所述BLS算法中对应的公钥对各准备信息中的第二签名进行解密,如果解密成功,确认验证成功。
5.如权利要求1所述的网络,其特征在于,所述主节点将所有验证成功的第二签名相加得到第一聚合签名。
6.如权利要求1所述的网络,其特征在于,针对各副节点中的每个副节点,该副节点根据所述BLS算法中的验签方式对所述第一聚合签名进行验签。
7.如权利要求1所述的网络,其特征在于,针对各副节点中的每个副节点,该副节点采用自身在所述BLS算法中对应的私钥和预设哈希函数对所述准备信息和所述准备确认信息进行签名得到第三签名;
所述主节点根据各副节点在所述BLS算法中对应的公钥对各提交信息中的第三签名进行解密,如果解密成功,确认验证成功。
8.如权利要求1所述的网络,其特征在于,所述主节点将所有验证成功的第三签名相加得到第二聚合签名。
9.如权利要求1所述的网络,其特征在于,针对各副节点中的每个副节点,该副节点根据所述BLS算法中的验签方式对所述第二聚合签名进行验签。
10.如权利要求1所述的网络,其特征在于,所述基于PBFT优化实现多节点高性能协议应用于开源联盟链框架Fabric。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110785351.8A CN113596115B (zh) | 2021-07-12 | 2021-07-12 | 一种应用基于pbft优化实现多节点高性能协议的网络系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110785351.8A CN113596115B (zh) | 2021-07-12 | 2021-07-12 | 一种应用基于pbft优化实现多节点高性能协议的网络系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113596115A true CN113596115A (zh) | 2021-11-02 |
CN113596115B CN113596115B (zh) | 2023-05-26 |
Family
ID=78246965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110785351.8A Active CN113596115B (zh) | 2021-07-12 | 2021-07-12 | 一种应用基于pbft优化实现多节点高性能协议的网络系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113596115B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114760135A (zh) * | 2022-04-19 | 2022-07-15 | 浙江大学 | 一种区块链容错共识方案的优化方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110941859A (zh) * | 2018-09-21 | 2020-03-31 | 上海派链信息科技有限公司 | 用于区块链形成共识的方法、设备、计算机可读存储介质和计算机程序产品 |
CN111010265A (zh) * | 2019-12-21 | 2020-04-14 | 上海中和软件有限公司 | 基于分层密钥和bls数字签名的区块链组织密钥管理方法 |
US20200228349A1 (en) * | 2019-01-15 | 2020-07-16 | 0Chain, LLC | Systems and methods of aggregate signing of digital signatures on multiple messages simultaneously using key splitting |
US20200396081A1 (en) * | 2019-06-11 | 2020-12-17 | Celo Labs Inc. | Tree structure for byzantine fault tolerance |
CN112532396A (zh) * | 2020-12-04 | 2021-03-19 | 广东工业大学 | 一种基于聚合签名的优化拜占庭容错方法及存储介质 |
-
2021
- 2021-07-12 CN CN202110785351.8A patent/CN113596115B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110941859A (zh) * | 2018-09-21 | 2020-03-31 | 上海派链信息科技有限公司 | 用于区块链形成共识的方法、设备、计算机可读存储介质和计算机程序产品 |
US20200228349A1 (en) * | 2019-01-15 | 2020-07-16 | 0Chain, LLC | Systems and methods of aggregate signing of digital signatures on multiple messages simultaneously using key splitting |
US20200396081A1 (en) * | 2019-06-11 | 2020-12-17 | Celo Labs Inc. | Tree structure for byzantine fault tolerance |
CN111010265A (zh) * | 2019-12-21 | 2020-04-14 | 上海中和软件有限公司 | 基于分层密钥和bls数字签名的区块链组织密钥管理方法 |
CN112532396A (zh) * | 2020-12-04 | 2021-03-19 | 广东工业大学 | 一种基于聚合签名的优化拜占庭容错方法及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114760135A (zh) * | 2022-04-19 | 2022-07-15 | 浙江大学 | 一种区块链容错共识方案的优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113596115B (zh) | 2023-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11496577B2 (en) | Broker-based bus protocol and multi-client architecture | |
CN101253488B (zh) | 网络中文件的分布式高速缓存 | |
EP3499787B1 (en) | Scalable crash fault-tolerance consensus protocol with efficient message aggregation | |
US20220276855A1 (en) | Method and apparatus for processing upgrade package of vehicle | |
CN110941859A (zh) | 用于区块链形成共识的方法、设备、计算机可读存储介质和计算机程序产品 | |
US11917018B2 (en) | Broker-based bus protocol and multi-client architecture | |
CN110071807B (zh) | 区块链点对点节点认证方法、系统及计算机可读存储介质 | |
CN114050904B (zh) | 一种基于两层级领导节点分片结构的共识系统及方法 | |
CN112714177B (zh) | 一种具有线性消息复杂度的pbft改进算法 | |
CN114338040B (zh) | 一种区块链节点的分组多链三次共识方法 | |
CN111064813B (zh) | 在区块链共识处理时进行处理消息同步的方法及装置 | |
CN112507019A (zh) | 一种基于智能合约的pbft共识系统及方法 | |
CN113596115A (zh) | 一种应用基于pbft优化实现多节点高性能协议的网络 | |
CN116582543A (zh) | 一种基于切片的共识方法 | |
CN115134086A (zh) | 异步网络的动态委员会秘密分享更新方法及装置 | |
CN105635222A (zh) | 云终端升级方法、系统、网管服务器及代理服务器 | |
CN112235290A (zh) | 基于区块链的物联网设备管理方法及第一物联网设备 | |
CN114499874B (zh) | 一种应用于工业互联网的拜占庭容错共识优化方法 | |
CN112231415B (zh) | 区块链网络的数据同步方法、系统、电子设备及可读介质 | |
US11228609B1 (en) | Methods for managing HTTP requests using extended SYN cookie and devices thereof | |
CN115277110B (zh) | 一种在云原生环境下解决区块链节点跨网通信问题的方法 | |
CN114268953B (zh) | 一种基站认证方法、查询节点、系统及设备 | |
US11171943B1 (en) | Methods for adding OCSP stapling in conjunction with generated certificates and devices thereof | |
CN115002111B (zh) | 一种基于群组树架构的区块链共识方法 | |
CN116743377B (zh) | 基于区块链密钥的数据处理方法、装置、设备及存储介质 |
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 |