CN113746637B - 适用于联盟链且具有高可扩展性的segbft共识算法 - Google Patents
适用于联盟链且具有高可扩展性的segbft共识算法 Download PDFInfo
- Publication number
- CN113746637B CN113746637B CN202111031835.XA CN202111031835A CN113746637B CN 113746637 B CN113746637 B CN 113746637B CN 202111031835 A CN202111031835 A CN 202111031835A CN 113746637 B CN113746637 B CN 113746637B
- Authority
- CN
- China
- Prior art keywords
- stage
- improved
- consensus
- nodes
- commit
- 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
- 238000000034 method Methods 0.000 claims description 8
- 238000012795 verification Methods 0.000 claims description 5
- 238000004806 packaging method and process Methods 0.000 claims description 4
- 238000012856 packing Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
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/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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了适用于联盟链且具有高可扩展性的SEGBFT共识算法,包括以下步骤:第一步,改进的Propose阶段;第二步,改进的Pre‑Prepare阶段;第三步,改进的Prepare阶段;第四步,改进的Reply‑Prepare阶段;第五步,改进的Pre‑Commit阶段;第六步,改进的Commit阶段;第七步,改进的Reply‑Commit阶段;第八步,改进的Reply阶段。本发明对于一个区块达成共识所需要的的时间相比于PBFT算法,节省了一倍以上,且系统中节点数越多,这个差距越明显。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及适用于联盟链且具有高可扩展性的SEGBFT共识算法。
背景技术
区块链系统改良的PBFT算法的共识过程一共分为4个阶段,分别是Pre-Prepare阶段、Prepare阶段、Commit阶段和Reply阶段。在Pre-Prepare阶段,主节点打包区块分发给其他共识节点。Prepare阶段节点之间进行第一轮广播,收到与Pre-Prepare消息匹配的足够的PREPARE消息后,节点达到局部共识,进入prepared状态。Commit阶段进行第二轮全局广播,收到足够的Commit消息后,节点进入Committed-local状态并提交区块。最后在完成区块上链后,在Reply阶段将执行结果返回给主节点。
PBFT算法是解决分布式系统中的拜占庭将军问题而出的共识算法,它借助两个阶段广播消息来使所有共识节点达成共识,由于两轮广播的时间复杂度高,使得PBFT算法在总节点数多的情况下,性能骤降,导致其可扩展性差,此外,PBFT算法提出时还没有区块链技术,因此还需要对其进行应用于区块链场景的改造,为了解决PBFT算法中存在的上述不足,在保证算法安全性与活性的前提下,故需要改进出一个具有高可扩展性,且更适合联盟链使用的SEGBFT共识算法。
发明内容
本发明提供了适用于联盟链且具有高可扩展性的SEGBFT共识算法,以解决上述背景技术中提出PBFT算法是解决分布式系统中的拜占庭将军问题而出的共识算法,它借助两个阶段广播消息来使所有共识节点达成共识,由于两轮广播的时间复杂度高,使得PBFT算法在总节点数多的情况下,性能骤降,导致其可扩展性差的问题。
为了实现上述目的,本发明采用了如下技术方案:
适用于联盟链且具有高可扩展性的SEGBFT共识算法,包括以下步骤:
第一步,改进的Propose阶段;
第二步,改进的Pre-Prepare阶段;
第三步,改进的Prepare阶段;
第四步,改进的Reply-Prepare阶段;
第五步,改进的Pre-Commit阶段;
第六步,改进的Commit阶段;
第七步,改进的Reply-Commit阶段;
第八步,改进的Reply阶段。
作为本技术方案的进一步改进方案:改进的Propose阶段为在Propose阶段,主节点对区块进行打包,然后分发给组长节点进行验证。
作为本技术方案的进一步改进方案:改进的Pre-Prepare阶段为组长节点打包区块分发给每组其他共识节点。
作为本技术方案的进一步改进方案:改进的Prepare阶段为每组其他共识节点之间进行第一轮广播,收到与Pre-Prepare消息匹配的足够的Prepare消息后,节点达到局部共识,进入prepared状态。
作为本技术方案的进一步改进方案:改进的Reply-Prepare阶段:组长节点在Reply-Prepare阶段达成组内共识。
作为本技术方案的进一步改进方案:改进的Pre-Commit阶段为Pre-Commit阶段利用签名不可伪造的性质,组长收集所有其他组对本轮待验证区块的共识情况。
作为本技术方案的进一步改进方案:改进的Commit阶段为所有共识节点在Commit阶段对Propose消息达成共识后提交区块,且只有节点只有在Commit阶段达到了Committed-local状态才会提交区块。
作为本技术方案的进一步改进方案:改进的Reply-Commit阶段为在完成区块上链后,在Reply-Commit阶段将执行结果返回给组长节点。
作为本技术方案的进一步改进方案:改进的Reply阶段为待主节点在Reply阶段验证完所有组的区块提交情况后,进入下一轮共识打包新的区块。
作为本技术方案的进一步改进方案:对于节点数少于8个的系统,使用针对区块链应用而改进的PBFT算法,区块链系统改良的PBFT算法的共识过程一共分为4个阶段,分别是Pre-Prepare阶段、Prepare阶段、Commit阶段和Reply阶段。在Pre-Prepare阶段,主节点打包区块分发给其他共识节点。Prepare阶段节点之间进行第一轮广播,收到与Pre-Prepare消息匹配的足够的PREPARE消息后,节点达到局部共识,进入prepared状态。Commit阶段进行第二轮全局广播,收到足够的Commit消息后,节点进入Committed-local状态并提交区块。
与现有技术相比,本发明的有益效果是:
可以将该算法应用在联盟链中,SEGBFT算法相比于PBFT算法,略微牺牲了一定拜占庭容错率,但是由于联盟链中出现拜占庭节点的情况少,因此可以很好的适用,联盟链使用本算法时,客户端发出的交易由主节点广播给各个节点,所有节点在收到交易后,会将交易放入交易池中,当主节点的交易池中的交易达到一定数量,或是未打包区块的时间达到预设值,就会打包新的区块,根据系统中的总结点数,使用相应的共识算法来对区块完成验证并上链,节点只有在Commit阶段达到了Committed-local状态才会提交区块,此时,能够证明系统中一定有足够的节点达到了prepared状态,因此能够保证区块提交后的账本数据的一致性,避免区块链出现分叉。由于组间共识是借助于签名算法验证的,因此只要能够达到共识一定是全局共识;SEGBFT算法借助了分组的思想,对于节点数少于8个的系统,使用针对区块链应用而改进的PBFT算法;对于超过8个节点的系统,会进行分组处理,且每一个组都有至少4个节点。假设一个组能够容忍f个拜占庭节点,那么每个组至少要有3f+1个节点。SEGBFT一共包含8个阶段,借助加密算法,通过组内共识活动与组间共识活动相结合的方式,有效降低了算法的时间复杂度,当分组数与每个组的节点个数相近时,SEGBFT算法的时间复杂度接近线性,本发明对于一个区块达成共识所需要的的时间相比于PBFT算法,节省了一倍以上,且系统中节点数越多,这个差距越明显。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。本发明的具体实施方式由以下实施例及其附图详细给出。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明提出的适用于联盟链且具有高可扩展性的SEGBFT共识算法的流程示意图;
图2为本发明背景技术中提出的区块链系统改良的PBFT算法共识过程的流程示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。在下列段落中参照附图以举例方式更具体地描述本发明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
请参阅图1~2,本发明实施例中,适用于联盟链且具有高可扩展性的SEGBFT共识算法,包括以下步骤:
第一步,改进的Propose阶段;
第二步,改进的Pre-Prepare阶段;
第三步,改进的Prepare阶段;
第四步,改进的Reply-Prepare阶段;
第五步,改进的Pre-Commit阶段;
第六步,改进的Commit阶段;
第七步,改进的Reply-Commit阶段;
第八步,改进的Reply阶段。
具体的,改进的Propose阶段为在Propose阶段,主节点对区块进行打包,然后分发给组长节点进行验证。
具体的,改进的Pre-Prepare阶段为组长节点打包区块分发给每组其他共识节点。
具体的,改进的Prepare阶段为每组其他共识节点之间进行第一轮广播,收到与Pre-Prepare消息匹配的足够的Prepare消息后,节点达到局部共识,进入prepared状态。
具体的,改进的Reply-Prepare阶段:组长节点在Reply-Prepare阶段达成组内共识。
具体的,改进的Pre-Commit阶段为Pre-Commit阶段利用签名不可伪造的性质,组长收集所有其他组对本轮待验证区块的共识情况。
具体的,改进的Commit阶段为所有共识节点在Commit阶段对Propose消息达成共识后提交区块,且只有节点只有在Commit阶段达到了Committed-local状态才会提交区块。
具体的,改进的Reply-Commit阶段为在完成区块上链后,在Reply-Commit阶段将执行结果返回给组长节点。
具体的,改进的Reply阶段为待主节点在Reply阶段验证完所有组的区块提交情况后,进入下一轮共识打包新的区块。
具体的,对于节点数少于8个的系统,使用针对区块链应用而改进的PBFT算法,区块链系统改良的PBFT算法的共识过程一共分为4个阶段,分别是Pre-Prepare阶段、Prepare阶段、Commit阶段和Reply阶段。在Pre-Prepare阶段,主节点打包区块分发给其他共识节点。Prepare阶段节点之间进行第一轮广播,收到与Pre-Prepare消息匹配的足够的PREPARE消息后,节点达到局部共识,进入prepared状态。Commit阶段进行第二轮全局广播,收到足够的Commit消息后,节点进入Committed-local状态并提交区块。
本发明的工作原理是:
可以将该算法应用在联盟链中,SEGBFT算法相比于PBFT算法,略微牺牲了一定拜占庭容错率,但是由于联盟链中出现拜占庭节点的情况少,因此可以很好的适用,联盟链使用本算法时,客户端发出的交易由主节点广播给各个节点,所有节点在收到交易后,会将交易放入交易池中,当主节点的交易池中的交易达到一定数量,或是未打包区块的时间达到预设值,就会打包新的区块,根据系统中的总结点数,使用相应的共识算法来对区块完成验证并上链,节点只有在Commit阶段达到了Committed-local状态才会提交区块,此时,能够证明系统中一定有足够的节点达到了prepared状态,因此能够保证区块提交后的账本数据的一致性,避免区块链出现分叉。由于组间共识是借助于签名算法验证的,因此只要能够达到共识一定是全局共识;
SEGBFT算法借助了分组的思想,对于节点数少于8个的系统,使用针对区块链应用而改进的PBFT算法,区块链系统改良的PBFT算法的共识过程一共分为4个阶段,分别是Pre-Prepare阶段、Prepare阶段、Commit阶段和Reply阶段。在Pre-Prepare阶段,主节点打包区块分发给其他共识节点。Prepare阶段节点之间进行第一轮广播,收到与Pre-Prepare消息匹配的足够的PREPARE消息后,节点达到局部共识,进入prepared状态。Commit阶段进行第二轮全局广播,收到足够的Commit消息后,节点进入Committed-local状态并提交区块。最后在完成区块上链后,在Reply阶段将执行结果返回给主节点;对于超过8个节点的系统,会进行分组处理,且每一个组都有至少4个节点。假设一个组能够容忍f个拜占庭节点,那么每个组至少要有3f+1个节点。SEGBFT一共包含8个阶段,借助加密算法,通过组内共识活动与组间共识活动相结合的方式,有效降低了算法的时间复杂度,当分组数与每个组的节点个数相近时,SEGBFT算法的时间复杂度接近线性。对于一个区块达成共识所需要的的时间相比于PBFT算法,节省了一倍以上,且系统中节点数越多,这个差距越明显。
以上,仅为本发明的较佳实施例而已,并非对本发明作任何形式上的限制;凡本行业的普通技术人员均可按说明书附图所示和以上而顺畅地实施本发明;但是,凡熟悉本专业的技术人员在不脱离本发明技术方案范围内,利用以上所揭示的技术内容而做出的些许更动、修饰与演变的等同变化,均为本发明的等效实施例;同时,凡依据本发明的实质技术对以上实施例所作的任何等同变化的更动、修饰与演变等,均仍属于本发明的技术方案的保护范围之内。
Claims (2)
1.适用于联盟链且具有高可扩展性的SEGBFT共识方法,其特征在于,包括以下步骤:
第一步,改进的Propose阶段;
改进的Propose阶段为在Propose阶段,主节点对区块进行打包,然后分发给组长节点进行验证;
第二步,改进的Pre-Prepare阶段;
改进的Pre-Prepare阶段为组长节点打包区块分发给每组其他共识节点;
第三步,改进的Prepare阶段;
改进的Prepare阶段为每组其他共识节点之间进行第一轮广播,收到与Pre-Prepare消息匹配的足够的Prepare消息后,节点达到局部共识,进入prepared状态;
第四步,改进的Reply-Prepare阶段;
改进的Reply-Prepare阶段:组长节点在Reply-Prepare阶段达成组内共识;
第五步,改进的Pre-Commit阶段;
改进的Pre-Commit阶段为Pre-Commit阶段利用签名不可伪造的性质,组长收集所有其他组对本轮待验证区块的共识情况;
第六步,改进的Commit阶段;
改进的Commit阶段为所有共识节点在Commit阶段对Propose消息达成共识后提交区块,且只有节点只有在Commit阶段达到了Committed-local状态才会提交区块;
第七步,改进的Reply-Commit阶段;
改进的Reply-Commit阶段为在完成区块上链后,在Reply-Commit阶段将执行结果返回给组长节点;
第八步,改进的Reply阶段;
改进的Reply阶段为待主节点在Reply阶段验证完所有组的区块提交情况后,进入下一轮共识打包新的区块。
2.根据权利要求1的适用于联盟链且具有高可扩展性的SEGBFT共识方法,其特征在于,对于节点数少于8个的系统,使用针对区块链应用而改进的PBFT算法,区块链系统改良的PBFT算法的共识过程一共分为4个阶段,分别是Pre-Prepare阶段、Prepare阶段、Commit阶段和Reply阶段,在Pre-Prepare阶段,主节点打包区块分发给其他共识节点;Prepare阶段节点之间进行第一轮广播,收到与Pre-Prepare消息匹配的足够的PREPARE消息后,节点达到局部共识,进入prepared状态;Commit阶段进行第二轮全局广播,收到足够的Commit消息后,节点进入Committed-local状态并提交区块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111031835.XA CN113746637B (zh) | 2021-09-03 | 2021-09-03 | 适用于联盟链且具有高可扩展性的segbft共识算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111031835.XA CN113746637B (zh) | 2021-09-03 | 2021-09-03 | 适用于联盟链且具有高可扩展性的segbft共识算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113746637A CN113746637A (zh) | 2021-12-03 |
CN113746637B true CN113746637B (zh) | 2024-02-27 |
Family
ID=78735265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111031835.XA Active CN113746637B (zh) | 2021-09-03 | 2021-09-03 | 适用于联盟链且具有高可扩展性的segbft共识算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113746637B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115052001B (zh) * | 2022-06-09 | 2024-04-05 | 上海万向区块链股份公司 | 联盟链的可扩展性解决方法、系统及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108492103A (zh) * | 2018-02-07 | 2018-09-04 | 北京大学深圳研究生院 | 一种联盟区块链共识方法 |
CN109756558A (zh) * | 2018-12-04 | 2019-05-14 | 广州通链计算机智能技术有限责任公司 | 一种基于异步分组交换的拜占庭容错共识算法 |
CN109784916A (zh) * | 2018-12-12 | 2019-05-21 | 广东工业大学 | 一种改进pbft的以太坊共识机制应用于联盟链的方法 |
CN110808838A (zh) * | 2019-10-24 | 2020-02-18 | 华东师范大学 | 一种面向联盟链的分片方法 |
CN112929186A (zh) * | 2021-02-22 | 2021-06-08 | 北京航空航天大学 | 一种基于通信模式结构的联盟链共识优化方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111917864B (zh) * | 2017-02-22 | 2023-08-22 | 创新先进技术有限公司 | 一种业务校验的方法及装置 |
CN109379397B (zh) * | 2018-08-31 | 2019-12-06 | 阿里巴巴集团控股有限公司 | 基于区块链的交易共识处理方法及装置、电子设备 |
CN109345386B (zh) * | 2018-08-31 | 2020-04-14 | 阿里巴巴集团控股有限公司 | 基于区块链的交易共识处理方法及装置、电子设备 |
-
2021
- 2021-09-03 CN CN202111031835.XA patent/CN113746637B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108492103A (zh) * | 2018-02-07 | 2018-09-04 | 北京大学深圳研究生院 | 一种联盟区块链共识方法 |
CN109756558A (zh) * | 2018-12-04 | 2019-05-14 | 广州通链计算机智能技术有限责任公司 | 一种基于异步分组交换的拜占庭容错共识算法 |
CN109784916A (zh) * | 2018-12-12 | 2019-05-21 | 广东工业大学 | 一种改进pbft的以太坊共识机制应用于联盟链的方法 |
CN110808838A (zh) * | 2019-10-24 | 2020-02-18 | 华东师范大学 | 一种面向联盟链的分片方法 |
CN112929186A (zh) * | 2021-02-22 | 2021-06-08 | 北京航空航天大学 | 一种基于通信模式结构的联盟链共识优化方法 |
Non-Patent Citations (1)
Title |
---|
一种可应用于联盟链的拜占庭容错混合共识机制;周炜;《中国海洋大学学报》;第51卷(第7期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113746637A (zh) | 2021-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108564470B (zh) | 一种区块链中并行建块的交易分发方法 | |
US10560270B2 (en) | Optimal data storage configuration in a blockchain | |
CN113746637B (zh) | 适用于联盟链且具有高可扩展性的segbft共识算法 | |
CN109327548A (zh) | 一种区块链更新方法及区块链更新系统 | |
CN110298754B (zh) | 一种应用于区块链的共识方法 | |
Pernas et al. | Non-homogeneous two-rack model for distributed storage systems | |
CN101840377A (zh) | 基于rs纠删码的数据存储方法 | |
Choi et al. | Scalable network-coded PBFT consensus algorithm | |
CN109711192B (zh) | 区块链系统节点间交易方法及系统 | |
CN114584312B (zh) | 一种共识方法、区块链系统和共识节点 | |
CN108881177B (zh) | 一种异构平行区块链的实现方法 | |
CN112714177B (zh) | 一种具有线性消息复杂度的pbft改进算法 | |
CN114594911B (zh) | 基于链下纠删码分布式存储的区块链数据存储系统及方法 | |
Wang et al. | MFR: Multi-loss flexible recovery in distributed storage systems | |
CN104301434A (zh) | 一种基于集群的高速通信架构及方法 | |
CN103650462B (zh) | 基于同态的自修复码的编码、解码和数据修复方法及其存储系统 | |
Sun et al. | A New Piggybacking Design With Low-Repair Bandwidth and Complexity | |
Wang et al. | Locally minimum storage regenerating codes in distributed cloud storage systems | |
CN107229635B (zh) | 一种数据处理的方法、存储节点及协调节点 | |
CN116455685A (zh) | 一种在广播网络下的pbft改进共识方法 | |
CN111597268B (zh) | 一种区块链扩展方法、区块链节点及区块链系统 | |
CN114499874B (zh) | 一种应用于工业互联网的拜占庭容错共识优化方法 | |
CN115499453B (zh) | 面向联盟链的分片存储方法 | |
CN115052001B (zh) | 联盟链的可扩展性解决方法、系统及介质 | |
CN117407467B (zh) | 结合布隆过滤器与dht的区块链编码存储系统 |
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 |