买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于Raft-PBFT的区块链共识方法_贵州数创控股(集团)有限公司_202210060521.0 

申请/专利权人:贵州数创控股(集团)有限公司

申请日:2022-01-19

公开(公告)日:2024-02-27

公开(公告)号:CN114422513B

主分类号:H04L67/10

分类号:H04L67/10;H04L9/40;H04L9/32

优先权:

专利状态码:有效-授权

法律状态:2024.02.27#授权;2024.02.02#专利申请权的转移;2023.12.22#专利申请权的转移;2022.05.20#实质审查的生效;2022.04.29#公开

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

主权项: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=Bklog21+γ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+12个合法有效的准备消息,将此打包作为回复证书;所述S10中,共识过程包括预准备阶段、准备阶段、提交阶段及回复阶段:S101:预准备阶段:子集群主节点向各子节点广播预准备消息,其中,预准备消息包括消息类型、请求消息、消息摘要、消息序号、视图编号、消息索引、回复证书及主节点对预准备消息的签名;S102:准备阶段:子节点收到主节点广播的预准备消息,对预准备消息进行验证,具体包括验证预准备消息的签名是否正确,d是否为M的摘要,是否已接收过序号为a且摘要不同的请求消息M,回复证书是否正确;若验证未通过则视为非法请求进行丢弃;若验证通过,子节点将预准备消息写入本地消息日志,子节点广播准备消息,其中,准备消息包括消息类型,请求消息摘要、请求消息索引、请求消息序号、视图编号、回复证书及子节点对准备消息的签名;S103:提交阶段:子节点收到准备消息,对准备消息进行验证,具体包括验证准备消息的签名是否正确,d是否为M的摘要,回复证书是否正确,请求序号是否正确;若验证未通过,则视为非法请求进行丢弃;若验证通过且子节点至少收到2f个合法的准备消息,则执行消息M的操作,并广播确认消息至子集群子节点,其中,确认消息包括消息类型、请求消息摘要、请求消息索引、请求消息序号、视图编号、子节点标识、执行客户端请求结果、回复证书及子节点对确认消息的签名;S104:回复阶段:子节点收到确认消息,对确认消息进行验证,具体包括验证d是否为M的摘要,回复证书是否正确,请求序号是否正确;若验证未通过,则视为非法请求进行丢弃;若验证通过且子节点至少收到2f+1个合法确认消息,并发送回复消息至主节点,其中,回复消息包括消息类型、请求消息时间戳、客户端标识、请求消息索引、请求消息序号、视图编号、子节点标识、执行客户端请求结果、回复证书及子节点对回复消息签名;若主节点收到不少于子集群半数的合法回复消息,将回复消息作为第二轮共识证书。

全文数据:

权利要求:

百度查询: 贵州数创控股(集团)有限公司 一种基于Raft-PBFT的区块链共识方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。