[发明专利]基于可信性评估的区块链共识方法有效
| 申请号: | 201910166471.2 | 申请日: | 2019-03-06 |
| 公开(公告)号: | CN109949034B | 公开(公告)日: | 2022-09-20 |
| 发明(设计)人: | 王冠;张文月;陈建中;周珺 | 申请(专利权)人: | 北京工业大学 |
| 主分类号: | G06Q20/38 | 分类号: | G06Q20/38;G06Q20/06;H04L9/06;H04L9/32 |
| 代理公司: | 北京思海天达知识产权代理有限公司 11203 | 代理人: | 刘萍 |
| 地址: | 100124 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 可信性 评估 区块 共识 方法 | ||
1.一种基于可信性评估的区块链共识方法,其特征在于:
密钥块:密钥块用于确定领导人;在一个密 钥块中,Prev keyblock hash是前一个密钥块的散列值,Nonce是随机数,PK是矿工的公钥,R是信任值,K sig是Prev keyblockhash、Nonce、PK、R的散列值,Sig keyblock agreement是此密钥块的被共识验证的签名;共识组组员通过检查K sig验证密钥块;
微块:微块是一个简单的块,每隔几秒就会验证一次;微块包括验证的历史交易;为了防止双重支出,每个微块在被接受之前都要被提议给共识组,如果微块被验证成功,则会成为区块链的一部分;微块结构如下:其中H(K sig)是当前有其对应的固定密钥块的散列值,Prev microblock hash是前一个固定在区块链中的微块的哈希值,TXs是一组Merkle树的交易,M sig是keyblock hash、Prev microblock hash、TXs的哈希值,Sig microblockaggrement是来自共识的签名;为了验证微块的有效性,共识组成员检查M sig的有效性,验证密钥块和前面的微块的散列值,并验证交易TXs;
大块:由密钥块和与其对应的微块组成;区块链由多个大块构成;
且包括以下步骤:
第一部分信任评估值的计算;
步骤1:计算内部信任值;
步骤1.1:计算由一个矿工在区块链中的所有时期创建的密钥块的平均值meank;如公式(1)所示,其中ki表示在第i个区块中矿工创造的密钥块数量,L表示当前区块链的长度;
步骤1.2:计算由一个领导者在区块链中的所有时期创建的微块的平均值meanm,微块为区块的组成部分,包含验证的历史交易;如公式(2)所示,其中mj表示在第j轮矿工所生产的微块被验证成功的数量;m表示一个领导者被预定的生成的微块数;N表示矿工被选为领导者的次数;
步骤1.3:计算sk即meank的标准差;如公式(3)所示,其中c表示区块的大小;t表示是长度为L的区块链中包含的区块数量;
步骤1.4:计算sm即meanm的标准差;如公式(4)所示,其中N表示矿工被选为领导者的次数,mj表示在第j轮矿工所生产的微块被验证成功的数量;m表示一个领导者被预定的生成的微块数;
步骤1.5:计算矿工定期为系统贡献算力的能力y1;如公式(5)所示,分子meank代表矿工为整个系统的贡献;分母中的sk是meank的标准差,代表矿工对每个块的贡献的规律性;它们共同保证了矿工的信任值是根据矿工的综合能力计算出来的;
步骤1.6:计算领导者在选择微块时提交定义数量的微块的“规律性”y2;N为被选为领导者的次数,如果N=1,即此矿工当过领导者,使用公式(6);如果N1,那么y2为1,如公式(7)所示;
y2=1 N1 (7)
步骤1.7:计算矿工的综合能力x;如公式(8)所示,其中L为区块链总长度;
x=y1y2L (8)
步骤1.8:计算根据时间要求控制信任增长的趋势f(x);f(x)是一个sigmoid函数;如公式(9)所示,其中,α,λ为系统参数,x为矿工的综合能力;α=10000,λ=50000;
步骤2:计算外部信任值,外部信任值表示为目标矿工在进行历史交易中的信任情况,取值为[0,1],信任值为1表示对目标矿工完全信任,信任值为0表示目标矿工为恶意矿工,信任值为0.5则表示对目标矿工的信任度没有把握;
步骤2.1:本方法使用三元组T={b,d,u}来描述矿工的信任评价;b、d、u分别代表对目标矿工的信任程度,不信任程度和不确定程度;三者满足的关系如公式(11)所示:
b+d+u=1,{b,d,u}∈[0,1] (11)
步骤2.2:计算调控因子调控网络中的不确定因素wc;如公式(12)所示,在一轮交易时间内,目标矿工的交易数量为E,如果交易对方对交易有异议则会发送警告消息给目标矿工,称为否定事件,否定事件的数量记为s,肯定事件的数量记为r,s和r都必须小于E;
步骤2.3:计算b、d、u;如公式(13)(14)(15)所示,其中p表示对矿工否定事件的惩罚因子,取值为[1,4],r为肯定事件数量,s为否定事件数量,wc是于步骤2.2计算出的调控因子调控网络中的不确定因素的值;
步骤2.4:计算外部信任值Ext;如公式(16)所示,其中p表示对矿工否定事件的惩罚因子,取值为[1,4],r为肯定事件数量,s为否定事件数量,u为不确定程度;
步骤3:计算整体信任值R;如公式(17)所示,其中f(x)表示内部信任值,Ext表示外部信任值,β控制内部信任值和外部信任值的比重;β取值范围(0,0.1];
R=min(1,f(x)+β(Ext-0.5)) (17)
第二部分选取领导者;
步骤4:根据信任值排序,随机选择分数大于中位数的矿工进入共识组;如公式(18)所示,其中SK为该矿工的私钥,INFO为当时的数学难题的Nonce随机数,result为哈希值,按哈希值最小的顺序选入共识组;
result=VRF_hash(SK,INFO) (18)
步骤5:通过工作量证明挖掘密钥块的矿工根据以下方法选取领导者;如公式(19)所示,其中X为共识组成员个数,reuslt为挖到密钥块的矿工根据VRF随机函数得到的哈希值,在共识组中第g个成员成为领导者;
g=result mod|X| (19)
第三部分,基于RAFT的共识认证;
步骤6:领导者发送微块给共识组;
步骤7:共识组依次对微块进行验证,如果成功则签署自己的签名;
步骤8:共识组发送微块给领导者;
步骤9:领导者根据收到的微块计算此微块是否达到共识条件,即参与签名的共识成员超过一半,且其信任值大于等于共识成员信任值总和的2/3;
步骤10:如果通过共识认证,领导者广播成功的微块和成功消息给共识组,否则广播微块和失败消息;一轮认证结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910166471.2/1.html,转载请声明来源钻瓜专利网。





