欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2022100605210
申请人: 贵州数创控股(集团)有限公司
专利类型:发明专利
专利状态:已下证
专利领域: 电通信技术
更新日期:2024-04-26
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

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:若客户端收到不少于主集群半数的确认回复消息,客户端请求消息在集群内达成共识,区块链共识流程结束;

所述S1中,令Φ表示区块链网络节点集合,Φ={I1,I2,…,In},其中,In标识第n个区块链网络节点,1≤n≤N,N为区块链网络节点数,基于K均值算法构建区块链子集群过程如下:S11:初始主节点选择:随机选择K个区块链节点作为初始主节点,得到初始主节点集合子集群成员集合S12:主节点与子集群节点关联:定义网络性能为节点能耗与误码率的加权和,令Ψi,k表示子集群节点Ii∈Φcm与主节点 关联对应的成本,建模Ψ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传输数据的时长,根据公式建模ti,k,其中,Si,k表示子集群节点Ii向主节点Ik传输的数据量,Ri,k表示子集群节点Ii向主节点Ik传输数据时对应的传输数据速率,根据公式Ri,k=Bklog2(1+γi,k)建模Ri,k,其中,Bk表示主节点Ik进行子集群内通信的可用带宽,γi,k表示子集群节点Ii向主节点Ik之间的信噪比,根据公式 建模γi,k,其中,hi,k表示子集群节点Ii与主节点Ik之间链路的信道增益,N0表示噪声功率;建模子集群节点Ii与主节点Ik之间链路的误码率为 其中,α表示调制阶数;子集群节点Ii基于成本函数优化选择主节点,即若有 则子集群节点Ii与主节点 关联进行信息传输,

令Φk表示第k个子集群的主节点及子集群节点集合;

S13:主节点更新:令 表示第k个子集群的节点Ii与子集群内其他节点之间进行信息传输的总成本,建模为 若 则k′为第k个子集群的主节点;

S14:重复S12~S13,直至主节点集合以及主节点与子集群节点之间关联关系不再更新;

所述S5中,针对拜占庭容错场景,增加对消息的校验,丢弃恶意节点发送的消息;选择监督节点为Raft协议主节点,主集群其它节点为副本节点;改进的Raft共识过程包括预准备阶段、准备阶段及回复阶段;

S51:预准备阶段:监督节点向各副本节点广播预准备消息,其中,预准备消息包括消息类型、请求消息、请求消息摘要、请求消息序号、请求消息索引及监督节点对预准备消息的签名,令d表示请求消息M的摘要;

S52:准备阶段:副本节点接收主节点广播的预准备消息,对预准备消息进行验证,具体包括验证预准备消息的签名是否正确,d是否为M的摘要,是否已接收过序号为a且摘要不同的请求消息M;若检查未通过,则视为非法请求而丢弃;若通过,副本节点将预准备消息写入本地消息日志,并回复准备消息至监督节点,其中,准备消息包括消息类型、请求消息摘要、请求消息索引、请求消息序号、预准备消息确认标识及副本节点对准备消息的签名,令q为预准备消息确认标识,若副本节点验证通过预准备消息,则q=true,否则,q=false;

S53:回复阶段:监督节点收到副本节点的准备消息,验证准备消息签名是否正确,准备消息中q是否为true,若验证未通过,则将准备消息视为非法请求进行丢弃;若监督节点收到不少于(K+1)/2个合法有效的准备消息,将此打包作为回复证书;

所述S10中,共识过程包括预准备阶段、准备阶段、提交阶段及回复阶段:

S101:预准备阶段:子集群主节点向各子节点广播预准备消息,其中,预准备消息包括消息类型、请求消息、消息摘要、消息序号、视图编号、消息索引、回复证书及主节点对预准备消息的签名;

S102:准备阶段:子节点收到主节点广播的预准备消息,对预准备消息进行验证,具体包括验证预准备消息的签名是否正确,d是否为M的摘要,是否已接收过序号为a且摘要不同的请求消息M,回复证书是否正确;若验证未通过则视为非法请求进行丢弃;若验证通过,子节点将预准备消息写入本地消息日志,子节点广播准备消息,其中,准备消息包括消息类型,请求消息摘要、请求消息索引、请求消息序号、视图编号、回复证书及子节点对准备消息的签名;

S103:提交阶段:子节点收到准备消息,对准备消息进行验证,具体包括验证准备消息的签名是否正确,d是否为M的摘要,回复证书是否正确,请求序号是否正确;若验证未通过,则视为非法请求进行丢弃;若验证通过且子节点至少收到2f个合法的准备消息,则执行消息M的操作,并广播确认消息至子集群子节点,其中,确认消息包括消息类型、请求消息摘要、请求消息索引、请求消息序号、视图编号、子节点标识、执行客户端请求结果、回复证书及子节点对确认消息的签名;

S104:回复阶段:子节点收到确认消息,对确认消息进行验证,具体包括验证d是否为M的摘要,回复证书是否正确,请求序号是否正确;若验证未通过,则视为非法请求进行丢弃;

若验证通过且子节点至少收到2f+1个合法确认消息,并发送回复消息至主节点,其中,回复消息包括消息类型、请求消息时间戳、客户端标识、请求消息索引、请求消息序号、视图编号、子节点标识、执行客户端请求结果、回复证书及子节点对回复消息签名;若主节点收到不少于子集群半数的合法回复消息,将回复消息作为第二轮共识证书。

2.根据权利要求1所述的一种基于Raft‑PBFT的区块链共识方法,其特征在于:所述S3中,客户端发送请求消息至网络节点,若接收客户端请求的节点不为监督节点,则该节点发送监督节点标识至客户端,客户端接收消息后发送请求消息至监督节点;其中,请求消息包括消息类型、客户端标识、客户端执行操作类型、客户端发送请求消息的当前时间戳及客户端对请求消息的签名,令M表示客户端请求消息。

3.根据权利要求2所述的一种基于Raft‑PBFT的区块链共识方法,其特征在于:所述S4中,所主节点接收客户端发送的请求消息M,验证请求消息签名及客户端身份是否合法,若请求消息签名或客户端身份不合法,则丢弃该请求消息;若验证通过,监督节点为请求消息M分配序号a。

4.根据权利要求1所述的一种基于Raft‑PBFT的区块链共识方法,其特征在于:所述S6中,确认回复消息包括消息类型、客户端操作类型、客户端请求消息时间戳、客户端标识、请求消息索引、执行客户端请求结果及回复证书。

5.根据权利要求4所述的一种基于Raft‑PBFT的区块链共识方法,其特征在于:所述S9中,子集群重新选择主节点,令g表示所选择主节点编号,g=v mod b,其中,v为当前子集群视图编号,b当前子集群节点数;视图切换过程包括视图切换消息传输阶段、视图切换回复阶段及新视图阶段:S91:视图切换消息传输阶段:子集群内各子节点触发视图切换,更新视图编号为v=v+

1,重新选择主节点,广播视图切换消息,其中,视图切换消息包括消息类型、视图编号、子节点最新处理的请求消息序号、准备消息集合、预准备消息集合、子节点标识及子节点对视图切换消息的签名;

S92:视图切换回复阶段:子集群节点收到其他节点的视图切换消息,验证节点签名是否正确;若验证未通过则视为非法请求进行丢弃;若通过验证,子节点发送回复消息给所选择的主节点;

S93:新视图阶段:若所选择的主节点接收到2f个子节点视图编号为v+1的视图切换消息,则广播新视图消息至子集群节点,其中,f为子集群可容错的拜占庭错误数目,新视图消息包括消息类型、视图编号、视图切换消息集合、预准备消息集合及新任主节点对视图消息的签名,子集群节点接收到新视图消息后,验证主节点签名是否正确,视图消息所包含的预准备消息集合是否合法,若验证未通过,则视为非法请求进行丢弃;若验证通过,主节点更新成功。

6.根据权利要求1所述的一种基于Raft‑PBFT的区块链共识方法,其特征在于:所述S11中,确认回复消息包括消息类型、客户端操作、请求消息时间戳、客户端标识、子节点标识、执行客户端请求结果、第一轮回复证书、第二轮回复证书及主节点对确认消息的签名。

7.根据权利要求6所述的一种基于Raft‑PBFT的区块链共识方法,其特征在于:所述S12中,令u表示视图切换次数,u′表示视图切换门限值,若u>u′,子集群终止共识过程,否则子集群触发视图切换,更新视图切换次数并执行第二轮共识。