CN114422513A - 一种基于Raft-PBFT的区块链共识方法 - Google Patents

一种基于Raft-PBFT的区块链共识方法 Download PDF

Info

Publication number
CN114422513A
CN114422513A CN202210060521.0A CN202210060521A CN114422513A CN 114422513 A CN114422513 A CN 114422513A CN 202210060521 A CN202210060521 A CN 202210060521A CN 114422513 A CN114422513 A CN 114422513A
Authority
CN
China
Prior art keywords
message
node
cluster
sub
client
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
Application number
CN202210060521.0A
Other languages
English (en)
Other versions
CN114422513B (zh
Inventor
柴蓉
杨锡政
蒋汶航
陈前斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guizhou Shuchuang Holdings Group Co ltd
Original Assignee
Chongqing University of Post and Telecommunications
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chongqing University of Post and Telecommunications filed Critical Chongqing University of Post and Telecommunications
Priority to CN202210060521.0A priority Critical patent/CN114422513B/zh
Publication of CN114422513A publication Critical patent/CN114422513A/zh
Application granted granted Critical
Publication of CN114422513B publication Critical patent/CN114422513B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Hardware Redundancy (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种基于Raft‑PBFT的区块链共识方法,属于区块链技术领域。该方法包括以下步骤:基于K均值算法将区块链网络节点划分为多个子集群;所有子集群主节点与监督节点构成主集群;客户端发送请求消息至主集群节点,重定向至监督节点;监督节点接收客户端请求消息;主集群内基于改进的Raft协议执行第一轮共识协议;若主集群节点达成共识,监督节点发送确认回复消息至客户端,并将回复证书发送至主集群节点;各子集群内基于实用拜占庭容错算法执行第二轮共识;若子集群达成共识,子集群主节点发送确认回复消息至客户端;若客户端收到不少于主集群半数的确认回复消息,客户端请求消息在集群内达成共识,区块链共识流程结束。

Description

一种基于Raft-PBFT的区块链共识方法
技术领域
本发明属于区块链技术领域,涉及一种基于Raft-PBFT的区块链共识方法。
背景技术
区块链是一种分布式数据库技术,该技术在金融服务、能源贸易、供应链管理、物联网等各个领域都显示出巨大的应用潜力。区块链的核心技术包括共识机制、分布式存储技术、密码学和智能合约,其中,共识机制着重解决分布式系统的一致性问题,旨在保证所有节点维护的数据副本的一致性,避免数据不统一和信息不对称问题的发生。
为提高共识效率,区块链中常使用轻量的共识算法,如实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)和Raft等一致性共识算法。PBFT算法可在一定程度上实现区块链系统的拜占庭容错,该算法流程包括主节点广播预准备消息给副本节点,副本节点收到预准备消息后,广播准备消息,若副本节点收到不少于2f条来自不同节点的准备消息,则该节点广播提交消息。根据PBFT算法流程,若存在不超过1/3的恶意节点数目,该算法仍可实现节点共识。尽管PBFT算法在延迟、资源需求和节点复杂性方面表现出良好的性能,但其流程较为复杂,可扩展性差,难以适用于大规模网络场景。Raft是一种强领导者算法,其可分解为两个模块:领导者选举和日志复制。在基于Raft的区块链系统中,数据仅能从领导者到其他服务器单向流动,具有线性复杂度,共识效率高,Raft可以容忍不超过50%的停机故障,但其不具备拜占庭容错能力。针对PBFT及Raft算法的缺陷,亟需设计高效、复杂度较低且支持拜占庭容错的区块链共识机制。
发明内容
有鉴于此,本发明的目的在于提供一种基于Raft-PBFT的区块链共识方法。通过实现Raft与PBFT机制的高效融合,降低节点通信开销,支持拜占庭容错,提高共识效率和可扩展性。
为达到上述目的,本发明提供如下技术方案:
一种基于Raft-PBFT的区块链共识方法,该方法包括以下步骤:
S1:基于K均值算法将区块链网络节点划分为多个子集群;
S2:所有子集群主节点与监督节点构成主集群;
S3:客户端发送请求消息至主集群节点,重定向至监督节点;
S4:监督节点接收客户端请求消息,验证客户端请求消息签名及客户端身份是否合法;若消息签名或客户端身份验证未通过,则丢弃该请求消息;若验证通过,转至S5;
S5:主集群内基于改进的Raft协议执行第一轮共识协议;
S6:若主集群节点未达成共识,请求消息验证失败;
S7:若主集群节点达成共识,监督节点发送确认回复消息至客户端,并将回复证书发送至主集群节点;
S8:若主集群节点收到回复证书,转至S10;
S9:若主集群节点未收到回复证书,则在其子集群内触发视图切换,转至S10;
S10:各子集群内基于实用拜占庭容错PBFT算法执行第二轮共识;
S11:子集群判断是否达成共识,若是,对应子集群主节点发送确认回复消息至客户端,转至S14;
S12:若子集群未达成共识,判断视图切换次数是否大于门限值,若是,该子集群终止共识过程;否则,子集群触发视图切换,更新视图切换次数并执行第二轮共识,转至S11;
S13:若子集群达成共识,子集群主节点发送确认回复消息至客户端;
S14:若客户端收到不少于主集群半数的确认回复消息,客户端请求消息在集群内达成共识,区块链共识流程结束。
可选的,所述S1中,令Φ表示区块链网络节点集合,Φ={I1,I2,…,In},其中,In标识第n个区块链网络节点,1≤n≤N,N为区块链网络节点数,基于K均值算法构建区块链子集群过程如下:
S11:初始主节点选择:随机选择K个区块链节点作为初始主节点,得到初始主节点集合
Figure BDA0003478075980000021
子集群成员集合
Figure BDA0003478075980000022
S12:主节点与子集群节点关联:定义网络性能为节点能耗与误码率的加权和,令Ψi,k表示子集群节点Ii∈Φcm与主节点
Figure BDA0003478075980000023
关联对应的成本,建模Ψi,k为Ψi,k=Ei,k+ωδi,k,其中,Ei,k与δi,k分别表示子集群节点Ii发送消息至主节点Ik对应的能耗及误码率,ω表示误码率对应的权重;根据公式Ei,k=Pi,kti,k建模Ei,k,其中,Pi,k表示子集群节点Ii向主节点Ik传输数据的发射功率,ti,k表示子集群节点Ii向主节点Ik传输数据的时长,根据公式
Figure BDA0003478075980000024
建模ti,k,其中,Si,k表示子集群节点Ii向主节点Ik传输的数据量,Ri,k表示子集群节点Ii向主节点Ik传输数据时对应的传输数据速率,根据公式Ri,k=Bklog2(1+γi,k)建模Ri,k,其中,Bk表示主节点Ik进行子集群内通信的可用带宽,γi,k表示子集群节点Ii向主节点Ik之间的信噪比,根据公式
Figure BDA0003478075980000031
建模γi,k,其中,hi,k表示子集群节点Ii与主节点Ik之间链路的信道增益,N0表示噪声功率;建模子集群节点Ii与主节点Ik之间链路的误码率为
Figure BDA0003478075980000037
其中,α表示调制阶数;子集群节点Ii基于成本函数优化选择主节点,即若有k*=argminΨik
Figure BDA0003478075980000033
则子集群节点Ii与主节点
Figure BDA0003478075980000038
关联进行信息传输,令Φk表示第k个子集群的主节点及子集群节点集合;
S13:主节点更新:令
Figure BDA0003478075980000034
表示第k个子集群的节点Ii与子集群内其他节点之间进行信息传输的总成本,建模为
Figure BDA0003478075980000035
Figure BDA0003478075980000036
则k′为第k个子集群的主节点;
S14:重复S12~S13,直至主节点集合以及主节点与子集群节点之间关联关系不再更新。
可选的,所述S3中,客户端发送请求消息至网络节点,若接收客户端请求的节点不为监督节点,则该节点发送监督节点标识至客户端,客户端接收消息后发送请求消息至监督节点;其中,请求消息包括消息类型、客户端标识、客户端执行操作类型、客户端发送请求消息的当前时间戳及客户端对请求消息的签名,令M表示客户端请求消息。
可选的,所述S4中,所主节点接收客户端发送的请求消息M,验证请求消息签名及客户端身份是否合法,若请求消息签名或客户端身份不合法,则丢弃该请求消息;若验证通过,监督节点为请求消息M分配序号a。
可选的,所述S5中,针对拜占庭容错场景,增加对消息的校验,丢弃恶意节点发送的消息;选择监督节点为Raft协议主节点,主集群其它节点为副本节点;改进的Raft共识过程包括预准备阶段、准备阶段及回复阶段;
S51:预准备阶段:监督节点向各副本节点广播预准备消息,其中,预准备消息包括消息类型、请求消息、请求消息摘要、请求消息序号、请求消息索引及监督节点对预准备消息的签名,令d表示请求消息M的摘要;
S52:准备阶段:副本节点接收主节点广播的预准备消息,对预准备消息进行验证,具体包括验证预准备消息的签名是否正确,d是否为M的摘要,是否已接收过序号为a且摘要不同的请求消息M;若检查未通过,则视为非法请求而丢弃;若通过,副本节点将预准备消息写入本地消息日志,并回复准备消息至监督节点,其中,准备消息包括消息类型、请求消息摘要、请求消息索引、请求消息序号、预准备消息确认标识及副本节点对准备消息的签名,令q为预准备消息确认标识,若副本节点验证通过预准备消息,则q=true,否则,q=false;
S53:回复阶段:监督节点收到副本节点的准备消息,验证准备消息签名是否正确,准备消息中q是否为true,若验证未通过,则将准备消息视为非法请求进行丢弃;若监督节点收到不少于(K+1)/2个合法有效的准备消息,将此打包作为回复证书。
可选的,所述S6中,确认回复消息包括消息类型、客户端操作类型、客户端请求消息时间戳、客户端标识、请求消息索引、执行客户端请求结果及回复证书。
可选的,所述S9中,子集群重新选择主节点,令g表示所选择主节点编号,g=υ modb,其中,υ为当前子集群视图编号,b当前子集群节点数;视图切换过程包括视图切换消息传输阶段、视图切换回复阶段及新视图阶段:
S91:视图切换消息传输阶段:子集群内各子节点触发视图切换,更新视图编号为v=v+1,重新选择主节点,广播视图切换消息,其中,视图切换消息包括消息类型、视图编号、子节点最新处理的请求消息序号、准备消息集合、预准备消息集合、子节点标识及子节点对视图切换消息的签名;
S92:视图切换回复阶段:子集群节点收到其他节点的视图切换消息,验证节点签名是否正确;若验证未通过则视为非法请求进行丢弃;若通过验证,子节点发送回复消息给所选择的主节点;
S93:新视图阶段:若所选择的主节点接收到2f个子节点视图编号为v+1的视图切换消息,则广播新视图消息至子集群节点,其中,f为子集群可容错的拜占庭错误数目,新视图消息包括消息类型、视图编号、视图切换消息集合、预准备消息集合及新任主节点对视图消息的签名,子集群节点接收到新视图消息后,验证主节点签名是否正确,视图消息所包含的预准备消息集合是否合法,若验证未通过,则视为非法请求进行丢弃;若验证通过,主节点更新成功。
可选的,所述S10中,共识过程包括预准备阶段、准备阶段、提交阶段及回复阶段:
S101:预准备阶段:子集群主节点向各子节点广播预准备消息,其中,预准备消息包括消息类型、请求消息、消息摘要、消息序号、视图编号、消息索引、回复证书及主节点对预准备消息的签名;
S102:准备阶段:子节点收到主节点广播的预准备消息,对预准备消息进行验证,具体包括验证预准备消息的签名是否正确,d是否为M的摘要,是否已接收过序号为a且摘要不同的请求消息M,回复证书是否正确;若验证未通过则视为非法请求进行丢弃;若验证通过,子节点将预准备消息写入本地消息日志,子节点广播准备消息,其中,准备消息包括消息类型,请求消息摘要、请求消息索引、请求消息序号、视图编号、回复证书及子节点对准备消息的签名;
S103:提交阶段:子节点收到准备消息,对准备消息进行验证,具体包括验证准备消息的签名是否正确,d是否为M的摘要,回复证书是否正确,请求序号是否正确;若验证未通过,则视为非法请求进行丢弃;若验证通过且子节点至少收到2f个合法的准备消息,则执行消息M的操作,并广播确认消息至子集群子节点,其中,确认消息包括消息类型、请求消息摘要、请求消息索引、请求消息序号、视图编号、子节点标识、执行客户端请求结果、回复证书及子节点对确认消息的签名;
S104:回复阶段:子节点收到确认消息,对确认消息进行验证,具体包括验证d是否为M的摘要,回复证书是否正确,请求序号是否正确;若验证未通过,则视为非法请求进行丢弃;若验证通过且子节点至少收到2f+1个合法确认消息,并发送回复消息至主节点,其中,回复消息包括消息类型、请求消息时间戳、客户端标识、请求消息索引、请求消息序号、视图编号、子节点标识、执行客户端请求结果、回复证书及子节点对回复消息签名;若主节点收到不少于子集群半数的合法回复消息,将回复消息作为第二轮共识证书。
可选的,所述S11中,确认回复消息包括消息类型、客户端操作、请求消息时间戳、客户端标识、子节点标识、执行客户端请求结果、第一轮回复证书、第二轮回复证书及主节点对确认消息的签名。
可选的,所述S12中,令u表示视图切换次数,u′表示视图切换门限值,若u>u′,子集群终止共识过程,否则子集群触发视图切换,更新视图切换次数并执行第二轮共识。
本发明的有益效果在于:本发明基于K均值算法将区块链网络划分为不同子集群,各子集群主节点与监督节点构成主集群,通过Raft与PBFT机制的高效融合,可实现通信开销小、时延低、吞吐量高、可扩展性高且支持拜占庭容错的节点共识。
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:
图1为区块链网络节点架构图;
图2为基于Raft-PBFT的区块链共识机制流程图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
请参阅图1~图2,本实施例是基于图1的区块链网络节点架构图,此架构中包括网络节点和监督节点,其中,包含K个子集群,每个子集群主节点与监督节点构成主集群,监督节点为主集群的主节点。
图2为本发明所述基于Raft-PBFT的区块链共识机制流程图,如图所示,本发明所述方法具体包括以下步骤:
S1:基于K均值算法将区块链网络节点划分为多个子集群,子集群内其他节点为子节点;
S2:所有子集群主节点与监督节点构成主集群;
S3:客户端发送请求消息至主集群节点,重定向至监督节点;
S4:监督节点接收客户端请求消息,验证客户端请求消息签名及客户端身份是否合法;若消息签名或客户端身份验证未通过,则丢弃该请求消息;若验证通过,转至S5;
S5:主集群内基于改进的Raft协议执行第一轮共识协议;
S6:若主集群节点未达成共识,请求消息验证失败;
S7:若主集群节点达成共识,监督节点发送确认回复消息至客户端,并将回复证书发送至主集群节点;
S8:若主集群节点收到回复证书,转至S10;
S9:若主集群节点未收到回复证书,则在其子集群内触发视图切换,转至S10;
S10:各子集群内基于PBFT算法执行第二轮共识协议;
S11:子集群判断是否达成共识,若是,对应子集群主节点发送确认回复消息至客户端,转至S14;
S12:若子集群未达成共识,判断视图切换次数是否大于门限值,若是,该子集群终止共识过程;否则,子集群触发视图切换,更新视图切换次数并执行第二轮共识,转至S11;
S13:若子集群达成共识,子集群主节点发送确认回复消息至客户端;
S14:若客户端收到不少于主集群半数的确认回复消息,客户端请求消息在集群内达成共识,区块链共识流程结束。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (10)

1.一种基于Raft-PBFT的区块链共识方法,其特征在于:该方法包括以下步骤:
S1:基于K均值算法将区块链网络节点划分为多个子集群;
S2:所有子集群主节点与监督节点构成主集群;
S3:客户端发送请求消息至主集群节点,重定向至监督节点;
S4:监督节点接收客户端请求消息,验证客户端请求消息签名及客户端身份是否合法;若消息签名或客户端身份验证未通过,则丢弃该请求消息;若验证通过,转至S5;
S5:主集群内基于改进的Raft协议执行第一轮共识协议;
S6:若主集群节点未达成共识,请求消息验证失败;
S7:若主集群节点达成共识,监督节点发送确认回复消息至客户端,并将回复证书发送至主集群节点;
S8:若主集群节点收到回复证书,转至S10;
S9:若主集群节点未收到回复证书,则在其子集群内触发视图切换,转至S10;
S10:各子集群内基于实用拜占庭容错PBFT算法执行第二轮共识;
S11:子集群判断是否达成共识,若是,对应子集群主节点发送确认回复消息至客户端,转至S14;
S12:若子集群未达成共识,判断视图切换次数是否大于门限值,若是,该子集群终止共识过程;否则,子集群触发视图切换,更新视图切换次数并执行第二轮共识,转至S11;
S13:若子集群达成共识,子集群主节点发送确认回复消息至客户端;
S14:若客户端收到不少于主集群半数的确认回复消息,客户端请求消息在集群内达成共识,区块链共识流程结束。
2.根据权利要求1所述的一种基于Raft-PBFT的区块链共识方法,其特征在于:所述S1中,令Φ表示区块链网络节点集合,Φ={I1,I2,…,In},其中,In标识第n个区块链网络节点,1≤n≤N,N为区块链网络节点数,基于K均值算法构建区块链子集群过程如下:
S11:初始主节点选择:随机选择K个区块链节点作为初始主节点,得到初始主节点集合
Figure FDA0003478075970000011
子集群成员集合
Figure FDA0003478075970000012
S12:主节点与子集群节点关联:定义网络性能为节点能耗与误码率的加权和,令Ψi,k表示子集群节点Ii∈Φcm与主节点
Figure FDA0003478075970000013
关联对应的成本,建模Ψi,k为Ψi,k=Ei,k+ωδi,k,其中,Ei,k与δi,k分别表示子集群节点Ii发送消息至主节点Ik对应的能耗及误码率,ω表示误码率对应的权重;根据公式Ei,k=Pi,kti,k建模Ei,k,其中,Pi,k表示子集群节点Ii向主节点Ik传输数据的发射功率,ti,k表示子集群节点Ii向主节点Ik传输数据的时长,根据公式
Figure FDA0003478075970000021
建模ti,k,其中,Si,k表示子集群节点Ii向主节点Ik传输的数据量,Ri,k表示子集群节点Ii向主节点Ik传输数据时对应的传输数据速率,根据公式Ri,k=Bklog2(1+γi,k)建模Ri,k,其中,Bk表示主节点Ik进行子集群内通信的可用带宽,γi,k表示子集群节点Ii向主节点Ik之间的信噪比,根据公式
Figure FDA0003478075970000022
建模γi,k,其中,hi,k表示子集群节点Ii与主节点Ik之间链路的信道增益,N0表示噪声功率;建模子集群节点Ii与主节点Ik之间链路的误码率为
Figure FDA0003478075970000023
其中,α表示调制阶数;子集群节点Ii基于成本函数优化选择主节点,即若有k*=argminΨik
Figure FDA0003478075970000024
则子集群节点Ii与主节点
Figure FDA0003478075970000028
关联进行信息传输,令Φk表示第k个子集群的主节点及子集群节点集合;
S13:主节点更新:令
Figure FDA0003478075970000025
表示第k个子集群的节点Ii与子集群内其他节点之间进行信息传输的总成本,建模为
Figure FDA0003478075970000026
Figure FDA0003478075970000027
则k′为第k个子集群的主节点;
S14:重复S12~S13,直至主节点集合以及主节点与子集群节点之间关联关系不再更新。
3.根据权利要求2所述的一种基于Raft-PBFT的区块链共识方法,其特征在于:所述S3中,客户端发送请求消息至网络节点,若接收客户端请求的节点不为监督节点,则该节点发送监督节点标识至客户端,客户端接收消息后发送请求消息至监督节点;其中,请求消息包括消息类型、客户端标识、客户端执行操作类型、客户端发送请求消息的当前时间戳及客户端对请求消息的签名,令M表示客户端请求消息。
4.根据权利要求3所述的一种基于Raft-PBFT的区块链共识方法,其特征在于:所述S4中,所主节点接收客户端发送的请求消息M,验证请求消息签名及客户端身份是否合法,若请求消息签名或客户端身份不合法,则丢弃该请求消息;若验证通过,监督节点为请求消息M分配序号a。
5.根据权利要求4所述的一种基于Raft-PBFT的区块链共识方法,其特征在于:所述S5中,针对拜占庭容错场景,增加对消息的校验,丢弃恶意节点发送的消息;选择监督节点为Raft协议主节点,主集群其它节点为副本节点;改进的Raft共识过程包括预准备阶段、准备阶段及回复阶段;
S51:预准备阶段:监督节点向各副本节点广播预准备消息,其中,预准备消息包括消息类型、请求消息、请求消息摘要、请求消息序号、请求消息索引及监督节点对预准备消息的签名,令d表示请求消息M的摘要;
S52:准备阶段:副本节点接收主节点广播的预准备消息,对预准备消息进行验证,具体包括验证预准备消息的签名是否正确,d是否为M的摘要,是否已接收过序号为a且摘要不同的请求消息M;若检查未通过,则视为非法请求而丢弃;若通过,副本节点将预准备消息写入本地消息日志,并回复准备消息至监督节点,其中,准备消息包括消息类型、请求消息摘要、请求消息索引、请求消息序号、预准备消息确认标识及副本节点对准备消息的签名,令q为预准备消息确认标识,若副本节点验证通过预准备消息,则q=true,否则,q=false;
S53:回复阶段:监督节点收到副本节点的准备消息,验证准备消息签名是否正确,准备消息中q是否为true,若验证未通过,则将准备消息视为非法请求进行丢弃;若监督节点收到不少于(K+1)/2个合法有效的准备消息,将此打包作为回复证书。
6.根据权利要求5所述的一种基于Raft-PBFT的区块链共识方法,其特征在于:所述S6中,确认回复消息包括消息类型、客户端操作类型、客户端请求消息时间戳、客户端标识、请求消息索引、执行客户端请求结果及回复证书。
7.根据权利要求6所述的一种基于Raft-PBFT的区块链共识方法,其特征在于:所述S9中,子集群重新选择主节点,令g表示所选择主节点编号,g=v mod b,其中,v为当前子集群视图编号,b当前子集群节点数;视图切换过程包括视图切换消息传输阶段、视图切换回复阶段及新视图阶段:
S91:视图切换消息传输阶段:子集群内各子节点触发视图切换,更新视图编号为v=v+1,重新选择主节点,广播视图切换消息,其中,视图切换消息包括消息类型、视图编号、子节点最新处理的请求消息序号、准备消息集合、预准备消息集合、子节点标识及子节点对视图切换消息的签名;
S92:视图切换回复阶段:子集群节点收到其他节点的视图切换消息,验证节点签名是否正确;若验证未通过则视为非法请求进行丢弃;若通过验证,子节点发送回复消息给所选择的主节点;
S93:新视图阶段:若所选择的主节点接收到2f个子节点视图编号为v+1的视图切换消息,则广播新视图消息至子集群节点,其中,f为子集群可容错的拜占庭错误数目,新视图消息包括消息类型、视图编号、视图切换消息集合、预准备消息集合及新任主节点对视图消息的签名,子集群节点接收到新视图消息后,验证主节点签名是否正确,视图消息所包含的预准备消息集合是否合法,若验证未通过,则视为非法请求进行丢弃;若验证通过,主节点更新成功。
8.根据权利要求7所述的一种基于Raft-PBFT的区块链共识方法,其特征在于:所述S10中,共识过程包括预准备阶段、准备阶段、提交阶段及回复阶段:
S101:预准备阶段:子集群主节点向各子节点广播预准备消息,其中,预准备消息包括消息类型、请求消息、消息摘要、消息序号、视图编号、消息索引、回复证书及主节点对预准备消息的签名;
S102:准备阶段:子节点收到主节点广播的预准备消息,对预准备消息进行验证,具体包括验证预准备消息的签名是否正确,d是否为M的摘要,是否已接收过序号为a且摘要不同的请求消息M,回复证书是否正确;若验证未通过则视为非法请求进行丢弃;若验证通过,子节点将预准备消息写入本地消息日志,子节点广播准备消息,其中,准备消息包括消息类型,请求消息摘要、请求消息索引、请求消息序号、视图编号、回复证书及子节点对准备消息的签名;
S103:提交阶段:子节点收到准备消息,对准备消息进行验证,具体包括验证准备消息的签名是否正确,d是否为M的摘要,回复证书是否正确,请求序号是否正确;若验证未通过,则视为非法请求进行丢弃;若验证通过且子节点至少收到2f个合法的准备消息,则执行消息M的操作,并广播确认消息至子集群子节点,其中,确认消息包括消息类型、请求消息摘要、请求消息索引、请求消息序号、视图编号、子节点标识、执行客户端请求结果、回复证书及子节点对确认消息的签名;
S104:回复阶段:子节点收到确认消息,对确认消息进行验证,具体包括验证d是否为M的摘要,回复证书是否正确,请求序号是否正确;若验证未通过,则视为非法请求进行丢弃;若验证通过且子节点至少收到2f+1个合法确认消息,并发送回复消息至主节点,其中,回复消息包括消息类型、请求消息时间戳、客户端标识、请求消息索引、请求消息序号、视图编号、子节点标识、执行客户端请求结果、回复证书及子节点对回复消息签名;若主节点收到不少于子集群半数的合法回复消息,将回复消息作为第二轮共识证书。
9.根据权利要求8所述的一种基于Raft-PBFT的区块链共识方法,其特征在于:所述S11中,确认回复消息包括消息类型、客户端操作、请求消息时间戳、客户端标识、子节点标识、执行客户端请求结果、第一轮回复证书、第二轮回复证书及主节点对确认消息的签名。
10.根据权利要求9所述的一种基于Raft-PBFT的区块链共识方法,其特征在于:所述S12中,令u表示视图切换次数,u′表示视图切换门限值,若u>u′,子集群终止共识过程,否则子集群触发视图切换,更新视图切换次数并执行第二轮共识。
CN202210060521.0A 2022-01-19 2022-01-19 一种基于Raft-PBFT的区块链共识方法 Active CN114422513B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210060521.0A CN114422513B (zh) 2022-01-19 2022-01-19 一种基于Raft-PBFT的区块链共识方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210060521.0A CN114422513B (zh) 2022-01-19 2022-01-19 一种基于Raft-PBFT的区块链共识方法

Publications (2)

Publication Number Publication Date
CN114422513A true CN114422513A (zh) 2022-04-29
CN114422513B CN114422513B (zh) 2024-02-27

Family

ID=81275708

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210060521.0A Active CN114422513B (zh) 2022-01-19 2022-01-19 一种基于Raft-PBFT的区块链共识方法

Country Status (1)

Country Link
CN (1) CN114422513B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115002120A (zh) * 2022-08-02 2022-09-02 蒲惠智造科技股份有限公司 一种基于数据同步的集群网络中主节点的确定方法
CN115134161A (zh) * 2022-07-11 2022-09-30 西安理工大学 一种基于Raft共识算法抗任期伪造的防御方法
CN116915796A (zh) * 2023-09-14 2023-10-20 杭州趣链科技有限公司 集群视图分叉后的自主恢复方法、装置以及电子设备
CN116915505A (zh) * 2023-09-12 2023-10-20 南京理工大学 基于改进pbft算法的区块链共识方法及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180240114A1 (en) * 2017-02-22 2018-08-23 Alibaba Group Holding Limited Transaction verification in a consensus network
CN111464349A (zh) * 2020-03-30 2020-07-28 南京中诚区块链研究院有限公司 区块链Raft+PBFT的混合共识网络算法及系统
CN111865918A (zh) * 2020-06-16 2020-10-30 广东工业大学 一种优化改进的区块链pbft共识方法
US20210109825A1 (en) * 2018-08-31 2021-04-15 Advanced New Technologies Co., Ltd. Transaction consensus processing method and apparatus for blockchain and electronic device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180240114A1 (en) * 2017-02-22 2018-08-23 Alibaba Group Holding Limited Transaction verification in a consensus network
US20210109825A1 (en) * 2018-08-31 2021-04-15 Advanced New Technologies Co., Ltd. Transaction consensus processing method and apparatus for blockchain and electronic device
CN111464349A (zh) * 2020-03-30 2020-07-28 南京中诚区块链研究院有限公司 区块链Raft+PBFT的混合共识网络算法及系统
CN111865918A (zh) * 2020-06-16 2020-10-30 广东工业大学 一种优化改进的区块链pbft共识方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
LI-E WANG: "Beh-Raft-Chain: A Behavior-Based Fast Blockchain Protocol for Complex Networks", 《IEEEXPLORE》 *
韩镇阳;宫宁生;任珈民;: "一种区块链实用拜占庭容错算法的改进", 计算机应用与软件, no. 02 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115134161A (zh) * 2022-07-11 2022-09-30 西安理工大学 一种基于Raft共识算法抗任期伪造的防御方法
CN115134161B (zh) * 2022-07-11 2024-02-09 西安理工大学 一种基于Raft共识算法抗任期伪造的防御方法
CN115002120A (zh) * 2022-08-02 2022-09-02 蒲惠智造科技股份有限公司 一种基于数据同步的集群网络中主节点的确定方法
CN116915505A (zh) * 2023-09-12 2023-10-20 南京理工大学 基于改进pbft算法的区块链共识方法及设备
CN116915505B (zh) * 2023-09-12 2023-11-21 南京理工大学 基于改进pbft算法的区块链共识方法及设备
CN116915796A (zh) * 2023-09-14 2023-10-20 杭州趣链科技有限公司 集群视图分叉后的自主恢复方法、装置以及电子设备
CN116915796B (zh) * 2023-09-14 2023-12-12 杭州趣链科技有限公司 集群视图分叉后的自主恢复方法、装置以及电子设备

Also Published As

Publication number Publication date
CN114422513B (zh) 2024-02-27

Similar Documents

Publication Publication Date Title
CN114422513A (zh) 一种基于Raft-PBFT的区块链共识方法
Abraham et al. Hot-stuff the linear, optimal-resilience, one-message BFT devil
Stewart et al. Grandpa: a byzantine finality gadget
CN111371877B (zh) 一种异构联盟链的共识方法
CN111355810A (zh) 一种基于信誉与投票机制的改进pbft共识方法
CN114218612B (zh) 一种适用于联盟链高频交易场景的共识方法
CN111179087B (zh) 一种基于网格仲裁的联盟链共识方法
CN114050904B (zh) 一种基于两层级领导节点分片结构的共识系统及方法
CN114338040B (zh) 一种区块链节点的分组多链三次共识方法
CN113781218A (zh) 基于特征信任的分组pbft共识算法
CN116633942A (zh) 一种高速响应客户端的拜占庭容错共识方法
CN114499874B (zh) 一种应用于工业互联网的拜占庭容错共识优化方法
CN116846888A (zh) 区块链网络的共识处理方法、装置、设备及存储介质
CN113992398A (zh) 一种改进的pbft共识算法
CN111478773B (zh) 一种物联网分布式资产的登记方法
Yu et al. Centralized and distributed consensus in wireless network: An analytical comparison
CN112953733B (zh) 一种数据治理的区块链通信资源整合共识方法
CN114640500B (zh) 一种基于服务的联盟链高效共识方法
CN113949518B (zh) 一种提高区块链吞吐量的共识方法及系统
CN116633699B (zh) 基于区块链的产品防伪溯源信息可信处理方法及系统
CN116192868B (zh) 一种应用于联盟链的并行拜占庭容错共识方法及终端
CN113660346B (zh) 一种联盟链上区块广播的方法
Kang et al. Blockchain-based High-reliability Recovery and Verification Mechanism for Power Data Storage Nodes
CN117749440A (zh) 一种基于区块链的服务节点切换的溯源方法及系统
CN114205092B (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
TA01 Transfer of patent application right

Effective date of registration: 20231205

Address after: 1003, Building A, Zhiyun Industrial Park, No. 13 Huaxing Road, Henglang Community, Dalang Street, Longhua District, Shenzhen City, Guangdong Province, 518000

Applicant after: Shenzhen Wanzhida Technology Transfer Center Co.,Ltd.

Address before: 400065 Chongqing Nan'an District huangjuezhen pass Chongwen Road No. 2

Applicant before: CHONGQING University OF POSTS AND TELECOMMUNICATIONS

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20240118

Address after: No.039, Building 5, Zone A, Digital Intelligence Center, Guiyang Big Data Science and Technology Innovation City, Huchao Township, Gui'an New Area, Huaxi District, Guiyang City, Guizhou Province, 550025

Applicant after: Guizhou Shuchuang Holdings (Group) Co.,Ltd.

Address before: 1003, Building A, Zhiyun Industrial Park, No. 13 Huaxing Road, Henglang Community, Dalang Street, Longhua District, Shenzhen City, Guangdong Province, 518000

Applicant before: Shenzhen Wanzhida Technology Transfer Center Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant