CN116155683B - 基于三层树型通信结构的HotStuff共识机制构建方法 - Google Patents
基于三层树型通信结构的HotStuff共识机制构建方法 Download PDFInfo
- Publication number
- CN116155683B CN116155683B CN202310430775.1A CN202310430775A CN116155683B CN 116155683 B CN116155683 B CN 116155683B CN 202310430775 A CN202310430775 A CN 202310430775A CN 116155683 B CN116155683 B CN 116155683B
- Authority
- CN
- China
- Prior art keywords
- node
- consensus
- layer
- nodes
- candidate
- 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
- 238000004891 communication Methods 0.000 title claims abstract description 74
- 230000007246 mechanism Effects 0.000 title claims abstract description 32
- 238000010276 construction Methods 0.000 title description 2
- 238000000034 method Methods 0.000 claims abstract description 65
- 238000004458 analytical method Methods 0.000 claims description 35
- 230000004931 aggregating effect Effects 0.000 claims description 12
- 241000188250 Idas Species 0.000 claims description 4
- 101150057104 MCIDAS gene Proteins 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 abstract description 5
- 239000010410 layer Substances 0.000 description 317
- 238000012795 verification Methods 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000002360 preparation method Methods 0.000 description 7
- 238000004220 aggregation Methods 0.000 description 6
- 230000002776 aggregation Effects 0.000 description 4
- 238000003860 storage Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 241000592335 Agathis australis Species 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000006116 polymerization reaction Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000002355 dual-layer Substances 0.000 description 1
- 238000004146 energy storage Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000011524 similarity measure Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
Images
Classifications
-
- 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/04—Network management architectures or arrangements
- H04L41/044—Network management architectures or arrangements comprising hierarchical management structures
-
- 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/30—Decision processes by autonomous network management units using voting and bidding
-
- 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
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种基于三层树型通信结构的HotStuff共识机制构建方法。该方法包括:获取每个投票节点对候选节点集中的候选节点进行投票的投票结果,从候选节点集中确定顶层共识节点、中间层代表节点、底层代表节点,分析代表节点与候选节点集中的其他候选节点的相似度,从候选节点集中的其他候选节点中确定出中间层共识节点集合和底层共识节点集合,顶层共识节点与中间层共识节点集合中的每个中间层共识节点建立通信,以及确定与每个分组的底层共识节点通信的两个中间层共识节点并建立通信。由此,能够保证每一个底层共识节点分组都能收到两个中间层共识节点的数据,有效提高数据传输的安全性。
Description
技术领域
本申请涉及区块链技术领域,特别是涉及一种基于三层树型通信结构的HotStuff共识机制构建方法。
背景技术
区块链是一个历史上可追溯的、不可被篡改的可以应用于解决多方互信问题的分布式系统。分布式系统必然面临着一致性问题,而解决一致性问题的过程称之为共识。共识机制在很大程度上决定了区块链的性能,如交易吞吐量、延迟、节点可扩展性、安全级别等。根据不同的应用场景和需求,可以考虑不同的共识机制。在公有链中,节点可以在没有权限和认证的情况下加入或离开网络,因此基于证明的算法如工作量证明(PoW)、权益证明(PoS)、委托权益证明(DPoS)通常用于许多公有链的项目中,通过节点之间相互竞争来解决节点可扩展性问题。和公有链不同,联盟链和私有链是许可区块链,节点需要一定的权限许可才能加入。联盟链需要成员共同维护并且联盟链适用于行业协会、高级别机构组织、大型连锁企业对下属单位和分管机构的交易和监管。而私有链的应用场景是单一的企业内部总公司对分公司的管理方面,如数据库管理和审计等。联盟链和私有链一般使用轻量级的共识机制如PBFT算法、Paxos和Raft来减少计算能力和提高吞吐量。
相关技术中,共识机制可以采用PBFT算法、改进PBFT算法、T-PBFT算法、最优的双层PBFT算法以及HotStuff等等。在HotStuff中,只有领导者直接向所有其他节点发送/收集消息,即通信基于以领导者为中心的星型拓扑。该方法会导致线性消息复杂性,但领导者仍需要接收和验证至少2f+1(f为恶意节点个数)个用户的投票过程。然而由于集中控制,HotStuff本质上是不可扩展的,系统性能受到主节点计算能力和带宽容量的限制。HotStuff共识将PBFT的网状型通信拓扑结构改为星型通信拓扑结构,副本节点只需要发送提案的签名给主节点,由主节点聚合签名完成共识。然而主节点的计算能力有限,在足够多的副本节点加入共识后,很难再进行扩展。为了解决HotStuff的扩展性低的问题,Neiheiser等人提出了Kauri共识,将HotStuff的星型通信拓扑结构改为树型通信拓扑结构,利用一种新的流水线技术在树上执行可扩展的传播和聚合,通过树型结构将聚合签名的任务交给下层节点,最后通过主节点聚合孩子节点的签名,该通信拓扑结构如图1所示,树型通信拓扑结构中由节点1发送数据给节点2和节点3,然后节点2和节点3发送数据给节点4、节点5、节点6和节点7。树型结构的特点是高并发、高性能。然而,随着树深度的增加,树型结构中节点和链路失效的概率也会增加。此外,节点之间的高度依赖性使系统容易受到任何单个节点或链路故障的影响。如果过多的共识节点建立树型结构通信,每一轮共识产生的通信成本就会过高。Kauri可以随着系统规模的增长保持高吞吐量,有效解决了系统参与节点越多,吞吐量越低的问题,但是树型结构中的父节点一旦出现故障,就会导致叶子节点无法提交数据给根节点,导致叶子节点的数据丢失,使得数据传输的安全性较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高数据传输的安全性的基于三层树型通信结构的HotStuff共识机制构建方法。
一种基于三层树型通信结构的HotStuff共识机制构建方法,所述方法包括:
获取每个投票节点对候选节点集中的候选节点进行投票的投票结果;
根据所述投票结果,从所述候选节点集中确定顶层共识节点、中间层代表节点和底层代表节点;
根据所述中间层代表节点的属性,采用皮尔逊相关系数分析公式,分析所述中间层代表节点与所述候选节点集中的其他候选节点的相似度,按照相似度进行降序排序获得第一相似度表,所述其他候选节点是所述候选节点集中除顶层共识节点、中间层代表节点和底层代表节点以外的候选节点;
根据所述底层代表节点的属性,采用皮尔逊相关系数分析公式,分析所述底层代表节点与所述候选节点集中的其他候选节点的相似度,按照相似度进行降序排序获得第二相似度表;
根据预设的中间层共识节点个数z,从所述第一相似度表中确定出中间层共识节点集合;
将已经作为中间层共识节点的候选节点从所述第二相似度表中删除,获得更新后的第二相似度表;
根据预设的底层共识节点个数s,从所述更新后的第二相似度表中确定出底层共识节点集合;
所述顶层共识节点与所述中间层共识节点集合中的每个中间层共识节点建立通信;
将所述底层共识节点集合中的底层共识节点划分为z个分组,每个分组的底层共识节点数为s/z个;
根据每一个中间层共识节点的编号与每个分组的编号,确定与每个分组的底层共识节点通信的两个中间层共识节点并建立通信;
其中,所述底层共识节点负责签名,所述中间层共识节点负责聚合底层共识节点的签名及转发消息,所述顶层共识节点负责聚合中间层共识节点聚合的签名完成共识,所述底层共识节点、所述中间层共识节点和所述顶层共识节点构成了三层树型通信结构的HotStuff共识机制。
在其中一个实施例中,所述根据所述投票结果,从所述候选节点集中确定顶层共识节点、中间层代表节点和底层代表节点,包括:
根据所述投票结果,采用变异系数法分析所述候选节点集中各候选节点的得分;
根据各候选节点的得分进行排名,将排名第一的候选节点作为顶层共识节点,排名第二的候选节点作为中间层代表节点,排名第P的候选节点作为底层代表节点;
在其中一个实施例中,所述根据所述投票结果,采用变异系数法分析所述候选节点集中各候选节点的得分,包括:
根据所述投票结果,采用变异系数分析公式分析所述候选节点集中各候选节点被提名为顶层共识节点、中间层代表节点和底层代表节点的标准差系数;
根据各候选节点被提名为顶层共识节点、中间层代表节点和底层代表节点的标准差系数,采用权重分析公式分析各候选节点被提名为顶层共识节点、中间层代表节点和底层代表节点的权重;
根据各候选节点被提名为顶层共识节点、中间层代表节点和底层代表节点的权重,采用得分分析公式分析各候选节点的得分。
在其中一个实施例中,所述变异系数分析公式为:
其中,为提名为d的变异系数,/>为提名次数的平均数,/>为第ID个候选节点被提名为d的次数,ID为候选节点的编号,t为候选节点的个数,d为第ID个候选节点被提名的节点类型编号,/>,1代表顶层共识节点,2代表中间层代表节点,3代表底层代表节点。
在其中一个实施例中,所述权重分析公式为:
在其中一个实施例中,所述得分分析公式为:
在其中一个实施例中,所述皮尔逊相关系数分析公式为:
其中,为代表节点Q与节点F的相似度,Q为代表节点的编号,该代表节点为中间层代表节点或底层代表节点,/>为代表节点的第i个属性,/>为代表节点的属性的平均值,F为所述候选节点集中的其他候选节点的编号,/>为所述候选节点集中的其他候选节点的第i个属性,/>为所述候选节点集中的其他候选节点的属性的平均值,n为属性的个数。
在其中一个实施例中,所述根据每一个中间层共识节点的编号与每个分组的编号,确定与每个分组的底层共识节点通信的两个中间层共识节点并建立通信,包括:
第1个中间层共识节点与第1个分组的底层共识节点、第2分组的底层共识节点建立通信,第2个中间层共识节点与第2个分组的底层共识节点、第3分组的底层共识节点建立通信,第3个中间层共识节点与第3个分组的底层共识节点、第4分组的底层共识节点建立通信,以此类推,第z个中间层共识节点与第z个分组的底层共识节点、第1分组的底层共识节点建立通信。
上述基于三层树型通信结构的HotStuff共识机制构建方法,通过获取每个投票节点对候选节点集中的候选节点进行投票的投票结果,进而根据投票结果,从候选节点集中确定顶层共识节点、中间层代表节点和底层代表节点,再根据中间层代表节点的属性,采用皮尔逊相关系数分析公式,分析中间层代表节点与所述候选节点集中的其他候选节点的相似度,按照相似度进行降序排序获得第一相似度表,以及根据底层代表节点的属性,采用皮尔逊相关系数分析公式,分析底层代表节点与所述候选节点集中的其他候选节点的相似度,按照相似度进行降序排序获得第二相似度表,从而根据预设的中间层共识节点个数z,从第一相似度表中确定出中间层共识节点集合,并将已经作为中间层共识节点的候选节点从第二相似度表中删除,获得更新后的第二相似度表,再根据预设的底层共识节点个数s,从更新后的第二相似度表中确定出底层共识节点集合,从而所述顶层共识节点与所述中间层共识节点集合中的每个中间层共识节点建立通信,再将所述底层共识节点集合中的底层共识节点划分为z个分组,每个分组的底层共识节点数为s/z个,根据每一个中间层共识节点的编号与每个分组的编号,确定与每个分组的底层共识节点通信的两个中间层共识节点并建立通信。由此,不仅可以通过计算相似度有效的选出投票节点想要的共识节点来建立树型通信结构,能够提高选举的公平性和共识机制的安全性,还可以保持树型结构高吞吐量的同时将底层共识节点分组,每个中间层共识节点发送给两个分组,每两个中间层共识节点发送给一个分组的底层共识节点,这样能够保证每一个底层共识节点分组都能收到两个中间层共识节点的数据,有效提高数据传输的安全性。
附图说明
图1为现有技术的通信拓扑结构示意图;
图2为一个实施例中基于三层树型通信结构的HotStuff共识机制构建方法的流程示意图;
图3为一个实施例中基于三层树型通信结构的HotStuff共识机制构建方法的结构示意图;
图4为一个实施例中三层树型通信结构的示意图;
图5为一个实施例中共识通信阶段示意图;
图6为共识中可能出现的情形1和情形2的描述图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图2和图3所示,提供了一种基于三层树型通信结构的HotStuff共识机制构建方法,以该方法应用于终端为例进行说明,包括以下步骤:
步骤S220,获取每个投票节点对候选节点集中的候选节点进行投票的投票结果。
其中,共识机制中包括投票节点和候选节点,投票节点需要从候选节点中投出顶层共识节点、中间层代表节点和底层代表节点,进而根据中间层代表节点和底层代表节点,确定共识机制中的中间层共识节点和底层共识节点。
其中,候选节点可以表示为:
其中,ID表示候选节点的编号,A表示候选节点的地址,在共识机制中ID用来区分每个候选节点,A对应每个ID的节点物理mac地址。o代表每个候选节点的存储能力,y代表每个候选节点的验证速率,r代表每个候选节点的传播速率,每个候选节点的存储能力、验证速率和传播速率为候选节点的属性,候选节点的属性可以用来表示作为共识节点的能力,Ctype表示作为共识节点的类型。
其中,每个投票节点投票的方式采用改进的波达计数法从候选节点集中选出3个的共识节点代表,即顶层共识节点、中间层代表节点和底层代表节点,然后通过这些共识节点代表的属性选出与之相似度高的共识节点,这样得出投票节点想要的整体的共识节点。
其中,改进的波达计数法是波达计数法改进后的方法,波达计数法是一种排序式的投票制度,波达计数法是让投票人在投票的同时,还需表达出对各候选人的偏好次序,然后对候选人从高到低的进行评分并累加,得分高者入选。
改进的波达计数法是有t个候选节点,投票节点从候选节点中选出z+s+1个共识节点。每次进行投票时,投票节点需要对t个候选节点进行偏好排序,投票节点至少需要对比t次节点的属性,投入的精力及时间随着t的增大而增大。
在本申请的一个实施例中,改进的波达计数法是从候选节点集中选出顶层共识节点、中间层代表节点和底层代表节点,然后通过中间层代表节点和底层代表节点的属性计算相似度高的节点,作为投票节点想要的其他共识节点,能够减少投票节点投入的精力及时间。改进的波达计数法不同于波达计数法,改进的波达计数法的权重计分和相似度计算均进行了改进。
其中,改进的波达计数法的权重计分只需对3个指标计算权重,采用加权求和的方法进行计分,计分筛选由链上合约部署。候选节点的数量大于共识节点(即顶层共识节点、中间层共识节点和底层共识节点之和)的数量,并小于投票节点的数量。
本申请构建的是三层树型通信结构的HotStuff共识机制,投票节点可以针对每层投票出每层的代表节点,将选出的每层的代表节点作为样本还原出投票节点所需要的全部共识节点。通过加权求和能更准确的得出每个候选节点的偏好计分,并且安全性较高。
步骤S240,根据投票结果,从候选节点集中确定顶层共识节点、中间层代表节点和底层代表节点。
在一个实施例中,根据投票结果,从候选节点集中确定顶层共识节点、中间层代表节点和底层代表节点,包括:
根据投票结果,采用变异系数法分析候选节点集中各候选节点的得分;根据各候选节点的得分进行排名,将排名第一的候选节点作为顶层共识节点,排名第二的候选节点作为中间层代表节点,排名第P的候选节点作为底层代表节点;
其中,该变异系数法是根据统计学方法分析得出系统各指标变化程度的方法,是一种客观赋权法。根据该异系数法变化差异较大的指标权重较大,变化差异较小的指标权重较小,从而根据指标的统计学规律确定其重要程度。变异系数法是一种较为客观的方法,能够客观的反应指标数据的变化信息,该方法能够比较客观的求出各指标的权重。
应理解,使用变异系数法对权重进行计算的原因为本实施例的指标为3个,提名为顶层共识节点、中间层代表节点和底层代表节点,对其求标准差和平均数相对会更容易。
在一个实施例中,根据投票结果,采用变异系数法分析候选节点集中各候选节点的得分,包括:
根据投票结果,采用变异系数分析公式分析候选节点集中各候选节点被提名为顶层共识节点、中间层代表节点和底层代表节点的标准差系数;根据各候选节点被提名为顶层共识节点、中间层代表节点和底层代表节点的标准差系数,采用权重分析公式分析各候选节点被提名为顶层共识节点、中间层代表节点和底层代表节点的权重;根据各候选节点被提名为顶层共识节点、中间层代表节点和底层代表节点的权重,采用得分分析公式分析各候选节点的得分。
其中,变异系数分析公式可以是采用变异系数法分析标准差系数的公式。
在一个实施例中,所述变异系数分析公式为:
其中,为提名为d的变异系数,/>为提名次数的平均数,/>为第ID个候选节点被提名为d的次数,ID为候选节点的编号,t为候选节点的个数,d为第ID个候选节点被提名的节点类型编号,/>,1代表顶层共识节点,2代表中间层代表节点,3代表底层代表节点。
在一个实施例中,所述权重分析公式为:
在一个实施例中,所述得分分析公式为:
在一个实施例中,可以调用选择代表节点算法,确定顶层共识节点、中间层代表节点和底层代表节点,其中,顶层共识节点、中间层代表节点和底层代表节点均为代表节点,代表节点集合X的结构定义为:
代表节点R d 的结构定义为:
R d =<ID, g,Ctype>;
其中,ID为节点的编号,g为代表节点的属性集,属性集包括存储能力、验证速率和传播速率,Ctype为代表节点的类型。3层的代表节点通过选择代表节点算法选出,每个代表节点都有属性集和节点编号。投票节点投票选出3层代表节点,选出后对选出的代表节点进行统计以及计分,最后确定最终的3层代表节点,然后根据代表节点的属性选出所有的共识节点。
其中,选择代表节点算法,可以是将投票节点的投票进行统计和计算,将候选节点提名为3层代表的次数用变异系数法得出权重,然后根据权重和次数计算得分,最后将得分排序得出3层的代表节点的算法。
步骤S260,根据中间层代表节点的属性,采用皮尔逊相关系数分析公式,分析中间层代表节点与候选节点集中的其他候选节点的相似度,按照相似度进行降序排序获得第一相似度表,其他候选节点是候选节点集中除顶层共识节点、中间层代表节点和底层代表节点以外的候选节点。
其中,计算中间层代表节点与候选节点集中的其他候选节点的皮尔逊相关系数,将中间层代表节点和候选节点集中的其他候选节点作为对象,中间层代表节点和候选节点集中的其他候选节点的属性作为对象的特征,根据皮尔逊相关系数分析公式,得出中间层代表节点与候选节点集中的其他候选节点的相似度。
其中,第一相似度表中包含候选节点集中每个其他候选节点的编号以及对应的相似度信息。
其中,第一相似度表和第二相似度表的结构相同,两个相似度表的结构Table为:Table=<ID,g,h >,其中,ID为候选节点的编号,g为候选节点的属性集,候选节点的属性集包括候选节点的存储能力o、候选节点的验证速率y和候选节点的传播速率r,h为相似度。相似度表的排序按照相似度降序排序,相似度高的候选节点排在前面,在出现相似度相同的情况下,传播速率的优先级大于验证速率的优先级,验证速率的优先级大于存储能力的优先级,高属性的候选节点优先排序,本申请主要目的是达成共识,如果传播速率和验证速率不够高,则该候选节点也无法成为共识节点。
其中,相似度也称相似性度量,可以是综合评定两个对象之间相近程度的一种度量。本申请的实施例中的相似度指两个节点的多个数值属性之间的相似度。
其中,皮尔逊相关系数广泛用于度量两个变量之间的相关程度,其值介于-1与1之间。本申请的实施例中使用皮尔逊相关系数计算相似度。
在一个实施例中,皮尔逊相关系数分析公式为:
其中,为代表节点Q与节点F的相似度,Q为代表节点的编号,该代表节点为中间层代表节点或底层代表节点, />为代表节点的第i个属性,/>为代表节点的属性的平均值,F为候选节点集中的其他候选节点的编号,/>为候选节点集中的其他候选节点的第i个属性,/>为候选节点集中的其他候选节点的属性的平均值,n为属性的个数。
步骤S280,根据底层代表节点的属性,采用皮尔逊相关系数分析公式,分析底层代表节点与候选节点集中的其他候选节点的相似度,按照相似度进行降序排序获得第二相似度表。
其中,计算底层代表节点与候选节点集中的其他候选节点的皮尔逊相关系数,将底层代表节点和候选节点集中的其他候选节点作为对象,底层代表节点和候选节点集中的其他候选节点的属性作为对象的特征,根据皮尔逊相关系数分析公式,得出底层代表节点与候选节点集中的其他候选节点的相似度。
步骤S300,根据预设的中间层共识节点个数z,从第一相似度表中确定出中间层共识节点集合。
其中,中间层共识节点集合是所有的中间层共识节点形成的集合。
步骤S320,将已经作为中间层共识节点的候选节点从第二相似度表中删除,获得更新后的第二相似度表。
步骤S340,根据预设的底层共识节点个数s,从更新后的第二相似度表中确定出底层共识节点集合。
其中,底层共识节点集合是所有的底层共识节点形成的集合。
其中,确定所有的共识节点后,剩余未入选的候选节点可以作为共识节点出现故障时优先的备选节点。
步骤S360,顶层共识节点与中间层共识节点集合中的每个中间层共识节点建立通信。
其中,顶层共识节点负责接受交易请求,向中间层共识节点广播交易信息,最后聚合中间层共识节点发送的投票结果完成共识。
其中,顶层共识节点收到至少k个底层共识节点对一个提案的投票消息(投票的本质是对提案进行签名)后,利用签名将其合成一个证书(Quorum certificate, QC),QC代表签名生成的完整签名,表示对该次提案达成一次共识。
其中,中间层共识节点可以用M b 表示,b为中间层共识节点的编号,中间层共识节点的个数为z,中间层共识节点负责接收顶层共识节点的交易信息,验证无误向下层的底层共识节点进行广播信息,最后把签名进行收集聚合,返回给顶层共识节点。
步骤S380,将底层共识节点集合中的底层共识节点划分为z个分组,每个分组的底层共识节点数为w个,w=s/z。
其中,分组用G a 表示:
其中,B j 为编号为j的底层共识节点,a代表分组的编号,l a 代表分组中第一个节点的编号,l a 表示如下:
l a =(a-1)×w+1。
步骤S400,根据每一个中间层共识节点的编号与每个分组的编号,确定与每个分组的底层共识节点通信的两个中间层共识节点并建立通信。
其中,底层共识节点负责签名,中间层共识节点负责聚合底层共识节点的签名及转发消息,顶层共识节点负责聚合中间层共识节点聚合的签名完成共识,底层共识节点、中间层共识节点和顶层共识节点构成了三层树型通信结构的HotStuff共识机制。
其中,如图5所示的共识通信阶段示意图,节点0为顶层共识节点,节点1、节点2和节点3为中间层共识节点,分组1、分组2和分组3为底层共识节点的分组。图5中,节点1发送数据给分组1的底层共识节点和分组2的底层共识节点,节点2发送数据给分组2的底层共识节点和分组3的底层共识节点,节点3发送数据给分组3的底层共识节点和分组1的底层共识节点。每个底层共识节点都收到了两次数据,如果其中一个中间层共识节点出现故障,另一个中间层共识节点也能及时发送消息给底层共识节点。
节点共识通信分为prepare、pre-commit、commit和decide总共4个阶段。
其中,prepare阶段:在视图编号增加时,底层共识节点发送NewView消息给中间层共识节点。当前视图的一个中间层共识节点将被更新为顶层共识节点。NewView消息用来进入新视图,开启新一轮共识。顶层共识节点根据收到的NewView消息选择高度最高的prepareQC,记为highQC,该消息中包含了发送方的prepareQC。根据这个highQC所指向的分支,创建新的区块,其父区块为highQC指向的区块。将生成的提案附带在prepare消息中发送给中间层共识节点,且当前提案包含highQC。中间层共识节点收到该prepare消息之后,对prepare中的信息进行验证,包括签名的合法性以及是否为当前视图的提案。prepare消息中的区块是否扩展自lockedQC的分支或者prepare消息中的highQC的视图号是否大于lockedQC。验证完发送prepare消息给同组及邻组的底层共识节点。底层共识节点收到该prepare消息之后,对prepare中的信息进行验证,包括签名的合法性以及是否为当前视图的提案。prepare消息中的区块是否扩展自lockedQC的分支或者prepare消息中的highQC的视图号是否大于lockedQC。验证无误后生成签名根据收到的提案情况判断发送给同组还是邻组的中间层共识节点。中间层共识节点将收到的签名聚合后发送给顶层共识节点。
其中,pre-commit阶段:顶层共识节点聚合中间层共识节点提交的签名得到prepareQC,然后顶层共识节点广播给中间层共识节点pre-commit消息附带聚合得到的prepareQC。中间层共识节点收到pre-commit消息,验证之后,转发给同组及邻组的底层共识节点。底层共识节点收到pre-commit消息,验证之后,根据收到的提案情况判断发送给同组还是邻组的中间层共识节点。中间层共识节点聚合后发送给顶层共识节点。
其中,commit阶段:顶层共识节点收到中间层共识节点发送的签名之后,聚合出这一阶段的pre-commitQC,附带在commit消息中发送给中间层共识节点,最后设置本地lockedQC为pre-commitQC。中间层共识节点收到commit消息时,消息验证通过同样更新本地的lockedQC为commit消息中的pre-commitQC,转发消息给同组及邻组的底层共识节点。底层共识节点收到commit消息验证之后,更新本地的lockedQC为commit消息中的pre- commitQC,对commit消息签名并生成签名后根据收到的提案情况判断发送给同组还是邻组的中间层共识节点。中间层共识节点聚合后发送给顶层共识节点。
其中,decide阶段:顶层共识节点收集到中间层共识节点发送的签名后,聚合得到commitQC,并且附带在decide消息中发送给中间层共识节点。当底层共识节点收到decide消息时,其中commitQC指向的提案中的交易就会被执行。之后增加视图号,开启下一轮共识,根据prepareQC构造NewView消息。中间层共识节点收到decide消息后,将decide消息转发给同组及邻组的底层共识节点,增加视图号。底层共识节点验证消息后执行decide消息中commitQC指向的交易然后增加视图号,开启下一轮共识。在视图编号增加时,底层共识节点发送NewView消息给中间层共识节点。
其中,prepareQC,可以是对于某个prepare消息收集k个底层共识节点签名所生成的证据(聚合签名或者是消息集合),可以视为第一轮投票达成的证据。
其中,highQC,可以是高度(区块与创世区块之间的距离)最高的prepareQC,每一个prepareQC都包含一个指向的区块,highQC指向区块的高度最高。
其中,lockedQC:当前视图的pre-commitQC,准备执行pre-commitQC中的提案,用来确保共识的安全性。
其中,pre-commitQC:对于某个pre-commit消息,收集k个底层共识节点签名后所生成的证据。
其中,commitQC:对于某个commit消息,收集k个底层共识节点签名后所生成的证据。
在上述阶段,底层共识节点接收到提案的处理如下:如果底层共识节点接收到两个中间层共识节点发送的提案,则底层共识节点验证这两个提案的有效性。底层共识节点对有效的提案进行签名,并将其发送到正确的中间层共识节点。如果两个提案相同,则底层共识节点仅发送给一个中间层共识节点即可。如果底层共识节点接收到一个中间层共识节点发送的提案,则底层共识节点对验证有效提案的提案进行签名,然后将其提交给发送有效提案的中间层共识节点。如果底层共识节点没有收到提案,则意味着两个中间层共识节点同时出现故障,需要更换中间层共识节点。
在一个实施例中,根据每一个中间层共识节点的编号与每个分组的编号,确定与每个分组的底层共识节点通信的两个中间层共识节点并建立通信,包括:
第1个中间层共识节点与第1个分组的底层共识节点、第2分组的底层共识节点建立通信,第2个中间层共识节点与第2个分组的底层共识节点、第3分组的底层共识节点建立通信,第3个中间层共识节点与第3个分组的底层共识节点、第4分组的底层共识节点建立通信,以此类推,第z个中间层共识节点与第z个分组的底层共识节点、第1分组的底层共识节点建立通信。
其中,三层树型通信结构的示意图如图4所示,三层树型通信结构分为3层,顶层共识节点发生消息给所有的中间层共识节点,中间层共识节点对其分组下的底层共识节点及邻组的底层共识节点发送消息。
其中,底层共识节点(共识机制中三层树型通信结构的底层共识节点)的个数为s,底层共识节点负责对中间层共识节点广播的消息进行投票,投票的实质是一个签名,底层共识节点用私钥对消息进行签名,签名后将该消息转发给中间层共识节点。
其中,该签名可以是门限签名(Threshold signatures),一个(k,s)门限签名方案是指由s个底层共识节点组成的签名群体,该签名群体的所有成员共同拥有一个公共密钥,每个成员拥有各自的私钥,其中,k代表门限签名的门限值,只有达到k个签名后才能聚合为门限签名,s代表总成员数,即底层共识节点的个数。收集到k个成员的签名后,生成一个完整的签名,该签名可以通过公钥进行验证。
上述基于三层树型通信结构的HotStuff共识机制构建方法,通过获取每个投票节点对候选节点集中的候选节点进行投票的投票结果,进而根据投票结果,从候选节点集中确定顶层共识节点、中间层代表节点和底层代表节点,再根据中间层代表节点的属性,采用皮尔逊相关系数分析公式,分析中间层代表节点与候选节点集中的其他候选节点的相似度,按照相似度进行降序排序获得第一相似度表,以及根据底层代表节点的属性,采用皮尔逊相关系数分析公式,分析底层代表节点与候选节点集中的其他候选节点的相似度,按照相似度进行降序排序获得第二相似度表,从而根据预设的中间层共识节点个数z,从第一相似度表中确定出中间层共识节点集合,并将已经作为中间层共识节点的候选节点从第二相似度表中删除,获得更新后的第二相似度表,再根据预设的底层共识节点个数s,从更新后的第二相似度表中确定出底层共识节点集合,从而顶层共识节点与中间层共识节点集合中的每个中间层共识节点建立通信,再将底层共识节点集合中的底层共识节点划分为z个分组,每个分组的底层共识节点数为s/z个,根据每一个中间层共识节点的编号与每个分组的编号,确定与每个分组的底层共识节点通信的两个中间层共识节点并建立通信。由此,不仅可以通过计算相似度有效的选出投票节点想要的共识节点来建立树型通信结构,能够提高选举的公平性和共识机制的安全性,还可以保持树型结构高吞吐量的同时将底层共识节点分组,每个中间层共识节点发送给两个分组,每两个中间层共识节点发送给一个分组的底层共识节点,这样能够保证每一个底层共识节点分组都能收到两个中间层共识节点的数据,有效提高数据传输的安全性。
本申请的基于三层树型通信结构的HotStuff共识机制构建方法,选择3层作为树型通信结构的层数可以满足大部分的应用场景,证明如下:
假设每个共识节点的运算能力和带宽容量支持通信的最大共识节点数为H,层数为2时,主共识节点的运算能力和带宽容量支持H个共识节点,共识节点数多于H时,需要进行扩展,所以此时层数要求大于等于3。
扩展分为横向扩展每层共识节点数和纵向扩展层数,横向扩展共识节点数时,第三层共识节点数增加,第三层能容纳的共识节点数量为H 2,横向扩展时聚合签名的时间开销T a 为:
其中,代表聚合2个共识节点签名的时间开销,H 2-H为聚合签名的次数,代表聚合1次H个共识节点的签名的时间开销。可以看出,横向扩展的聚合次数较少,每次聚合需要聚合的共识节点数较多,纵向扩展聚合次数较多,聚合的共识节点数较少。聚合签名需要共识节点的运算能力,横向扩展最大化使用了共识节点的运算能力,纵向扩展浪费了每个共识节点的运算能力,并且聚合签名次数过多,实际应用中额外传播的时间也比较多,显然T a <T b 。
所以选择横向扩展,高度为3时树型结构的总共识节点数为H 2+H+1,足够满足大部分的应用场景。当横向扩展达到最大化,开始纵向扩展到4层时,共识节点与共识节点之间的通信量呈指数增加,此时扩展系统规模并不划算。所以选择高度为3即三层树型通信拓扑结构,可以降低主共识节点的通信量,提升可扩展性,共识节点之间可以互相协作,并且有效提升了共识的速度。
在一个实施例中,本申请的基于三层树型通信结构的HotStuff共识机制构建方法的安全性有较大的提升,在出现故障节点时,依然能够正确完成共识。对安全性分析如下:
本申请中对提案签名的共识节点为底层共识节点,底层共识节点对中间层共识节点发送的提案验证后进行签名,然后提交。在顶层共识节点收集到k个底层共识节点的签名时,将其聚合完成共识,k为聚合签名所需要的签名数。在这过程中,假设存在f个底层共识节点和p个中间层共识节点为故障节点,底层共识节点总数为s,中间层共识节点总数为z,故障节点对收到的提案不签名或不转发,剩余的诚实节点数为s-f个底层共识节点和z-p个中间层共识节点和分组。假设一个(x,k,q)型拜占庭容错系统,该系统代表一个门限签名系统,三者的关系为:
k=q-x
其中,x代表网络容错,k代表门限签名的门限值,q是共识节点数,即顶层共识节点、中间层共识节点和底层共识节点之和,x<q/3。这里讨论共识中可能出现的情形:
共识中可能出现如图6所示的情形1和情形2这两种情况,情形1中中间层共识节点2和中间层共识节点3是故障的,他们无法发送数据给对应的底层共识节点的分组,导致分组2的底层共识节点的数据无法提交,但是中间层共识节点1和中间层共识节点4是诚实的,他们可以发送数据给分组1和分组3,这种情形可以看出编号连续的两个中间层共识节点出现故障会导致一个底层共识节点的分组出现故障。情形2中的中间层共识节点1和中间层共识节点3出现故障,但是中间层共识节点2和中间层共识节点4是诚实节点,这种情形下所有的底层共识节点的分组都可以提交数据,这种故障是可以接受的。对情形1作分析,两个中间层共识节点发送给相同分组时才会导致分组内节点数据丢失,p个中间层共识节点出现故障时,受到影响的底层共识节点数I为:
其中,p为所有中间层共识节点中的故障节点的个数,s为底层共识节点的个数,z为中间层共识节点的个数。
假设最坏情形1,受到影响的底层共识节点中没有故障的底层共识节点,此时网络最小容错x min 为:
其中,p为所有中间层共识节点中的故障节点的个数,z为中间层共识节点的个数,I为中间层共识节点故障受到影响的底层共识节点数。
情形2为最佳情形,中间层共识节点出现故障时,底层共识节点依然可以发送和接受数据,此时网络最大容错x max 为:
其中,p为所有中间层共识节点中的故障节点的个数,z为中间层共识节点的个数,此时的安全性最佳。
情形1下,至少需要两个故障的中间层共识节点是编号连续的,才能使底层共识节点受影响,能够保证一定的安全性。在情形2时,只要满足一半的中间层共识节点不是故障的,底层共识节点发送的数据就是安全的,此时能容纳故障的节点比例超过PBFT的三分之一。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种基于三层树型通信结构的HotStuff共识机制构建方法,其特征在于,所述方法包括:
获取每个投票节点对候选节点集中的候选节点进行投票的投票结果;
根据所述投票结果,从所述候选节点集中确定顶层共识节点、中间层代表节点和底层代表节点;
根据所述中间层代表节点的属性,采用皮尔逊相关系数分析公式,分析所述中间层代表节点与所述候选节点集中的其他候选节点的相似度,按照相似度进行降序排序获得第一相似度表,所述其他候选节点是所述候选节点集中除顶层共识节点、中间层代表节点和底层代表节点以外的候选节点;
根据所述底层代表节点的属性,采用皮尔逊相关系数分析公式,分析所述底层代表节点与所述候选节点集中的其他候选节点的相似度,按照相似度进行降序排序获得第二相似度表;
根据预设的中间层共识节点个数z,从所述第一相似度表中确定出中间层共识节点集合;
将已经作为中间层共识节点的候选节点从所述第二相似度表中删除,获得更新后的第二相似度表;
根据预设的底层共识节点个数s,从所述更新后的第二相似度表中确定出底层共识节点集合;
所述顶层共识节点与所述中间层共识节点集合中的每个中间层共识节点建立通信;
将所述底层共识节点集合中的底层共识节点划分为z个分组,每个分组的底层共识节点数为s/z个;
根据每一个中间层共识节点的编号与每个分组的编号,确定与每个分组的底层共识节点通信的两个中间层共识节点并建立通信;
其中,所述底层共识节点负责签名,所述中间层共识节点负责聚合底层共识节点的签名及转发消息,所述顶层共识节点负责聚合中间层共识节点聚合的签名完成共识,所述底层共识节点、所述中间层共识节点和所述顶层共识节点构成了三层树型通信结构的HotStuff共识机制。
3.根据权利要求2所述的基于三层树型通信结构的HotStuff共识机制构建方法,其特征在于,所述根据所述投票结果,采用变异系数法分析所述候选节点集中各候选节点的得分,包括:
根据所述投票结果,采用变异系数分析公式分析所述候选节点集中各候选节点被提名为顶层共识节点、中间层代表节点和底层代表节点的标准差系数;
根据各候选节点被提名为顶层共识节点、中间层代表节点和底层代表节点的标准差系数,采用权重分析公式分析各候选节点被提名为顶层共识节点、中间层代表节点和底层代表节点的权重;
根据各候选节点被提名为顶层共识节点、中间层代表节点和底层代表节点的权重,采用得分分析公式分析各候选节点的得分。
8.根据权利要求7所述的基于三层树型通信结构的HotStuff共识机制构建方法,其特征在于,所述根据每一个中间层共识节点的编号与每个分组的编号,确定与每个分组的底层共识节点通信的两个中间层共识节点并建立通信,包括:
第1个中间层共识节点与第1个分组的底层共识节点、第2分组的底层共识节点建立通信,第2个中间层共识节点与第2个分组的底层共识节点、第3分组的底层共识节点建立通信,第3个中间层共识节点与第3个分组的底层共识节点、第4分组的底层共识节点建立通信,以此类推,第z个中间层共识节点与第z个分组的底层共识节点、第1分组的底层共识节点建立通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310430775.1A CN116155683B (zh) | 2023-04-21 | 2023-04-21 | 基于三层树型通信结构的HotStuff共识机制构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310430775.1A CN116155683B (zh) | 2023-04-21 | 2023-04-21 | 基于三层树型通信结构的HotStuff共识机制构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116155683A CN116155683A (zh) | 2023-05-23 |
CN116155683B true CN116155683B (zh) | 2023-07-04 |
Family
ID=86354648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310430775.1A Active CN116155683B (zh) | 2023-04-21 | 2023-04-21 | 基于三层树型通信结构的HotStuff共识机制构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116155683B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111510285A (zh) * | 2020-03-09 | 2020-08-07 | 上海能链众合科技有限公司 | 一种智能基于随机数的区块链共识方法 |
CN114499890A (zh) * | 2022-03-15 | 2022-05-13 | 南京信息工程大学 | 联盟链中基于节点分组的Raft PBFT两阶段共识机制 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108124502B (zh) * | 2017-03-31 | 2021-01-05 | 北京大学深圳研究生院 | 一种基于联盟链的顶级域名管理方法及系统 |
-
2023
- 2023-04-21 CN CN202310430775.1A patent/CN116155683B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111510285A (zh) * | 2020-03-09 | 2020-08-07 | 上海能链众合科技有限公司 | 一种智能基于随机数的区块链共识方法 |
CN114499890A (zh) * | 2022-03-15 | 2022-05-13 | 南京信息工程大学 | 联盟链中基于节点分组的Raft PBFT两阶段共识机制 |
Non-Patent Citations (1)
Title |
---|
李启南.改进Fast HotStuff 区块链共识算法.计算机工程.2021,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN116155683A (zh) | 2023-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112039964B (zh) | 一种基于区块链的节点信誉共识方法 | |
Cui et al. | A decentralized and trusted edge computing platform for Internet of Things | |
US11711218B2 (en) | Trust-based shard distribution apparatus and method for fault tolerant blockchain networks | |
Popov et al. | The coordicide | |
Theodorakopoulos et al. | Trust evaluation in ad-hoc networks | |
Yun et al. | Trust-based shard distribution scheme for fault-tolerant shard blockchain networks | |
Despotovic et al. | Maximum likelihood estimation of peers' performance in P2P networks | |
Zheng et al. | Lightweight blockchain consensus protocols for vehicular social networks | |
Singh et al. | Electing" good" leaders | |
Bo et al. | Trust traversal: a trust link detection scheme in social network | |
CN115022326B (zh) | 基于协同过滤推荐的区块链拜占庭容错共识方法 | |
Orda et al. | Enforcing fairness in blockchain transaction ordering | |
CN112990921B (zh) | 基于区块链的数据处理方法、装置、计算机及存储介质 | |
Kaneko et al. | DHT clustering for load balancing considering blockchain data size | |
Wang et al. | Bayesian cognitive trust model based self-clustering algorithm for MANETs | |
Asheralieva et al. | Throughput-efficient lagrange coded private blockchain for secured IoT systems | |
CN113365229B (zh) | 一种多联盟链共识算法的网络时延优化方法 | |
CN101242365B (zh) | 基于多维分布式哈希表的对等网络安全路由方法 | |
CN115796261A (zh) | 一种基于区块链的轻量级分组共识的联邦学习方法 | |
Al Ridhawi et al. | An intelligent blockchain-assisted cooperative framework for industry 4.0 service management | |
CN116155683B (zh) | 基于三层树型通信结构的HotStuff共识机制构建方法 | |
CN105956490B (zh) | 一种在网络环境中生成、维护可信数据的方法 | |
CN116567637A (zh) | 一种基于改进pbft算法的雾节点信任评估方法 | |
CN116963077A (zh) | 一种面向频谱交易的区块链分片方法 | |
CN101741749A (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 |