预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共13页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN114185995A(43)申请公布日2022.03.15(21)申请号202111658907.3(22)申请日2021.12.31(66)本国优先权数据202110697880.22021.06.23CN(71)申请人湖北大学地址430062湖北省武汉市武昌区友谊大道368号申请人赛尔网络有限公司(72)发明人朱国胜潘登孙文和杨倩(74)专利代理机构武汉聚信汇智知识产权代理有限公司42258代理人刘丹(51)Int.Cl.G06F16/27(2019.01)H04L67/104(2022.01)权利要求书2页说明书7页附图3页(54)发明名称一种基于贡献值和信誉度的区块链共识机制(57)摘要本发明涉及一种基于贡献值和信誉度的区块链共识机制。本发明通过动态调整哈希计算的目标难度值,减少计算随机数的时间和电力;其次,引入贡献值、信誉度和奖惩机制,为每个节点赋予贡献值和信誉度,在规定时间内,计算出随机数的节点,均获得贡献值奖励,根据节点行为增加或者扣除信誉度;最后加入节点计算随机数时间,由贡献值、信誉度和计算时间三者计算权重得到最终值fValue,fValue最大的节点获得打包记账权。实验结果表明,PoCaC可以提升区块出块速度、减少算力浪费、平衡节点记账权竞争。CN114185995ACN114185995A权利要求书1/2页1.一种基于贡献值和信誉度的区块链共识机制,其特征在于,包括如下步骤:(1)首先调整哈希计算的难度,选择目标难度值为6,即找到的nonce拼接前一个区块的hash值再进行哈希计算得到的hash值的前6位为0,这样节点只需花费数十秒就能找到nonce;(2)使出块时间调整为1min左右,将节点计算出随机数的时间记为cTime,将出块速度保持在1min左右,以获得更快的交易确认;(3)设计一个等待时间记为wTime,设置为15s,第一个找到nonce的节点立即向全网广播,此时触发wTime,此后15s内计算出的节点,均有机会获得本轮记账权,15s之后还没有找到的节点则失去获得本次记账权的机会,停止哈希计算;(4)将难度调整机制改为每创建360个区块调整一次,即每6h左右调整一次难度,难度计算公式为:newTarget=oldTarget*(21600/time(act))其中:newTarget为新区块的目标难度值;oldTarget为当前区块的难度值;time(act)为产生前360个区块所花费的总时长;(5)引入贡献值contribution,为每个节点赋予一个贡献值,并将其作为记账权的一个重要因素,该共识机制规定贡献值最大的节点获得新区块的记账权的概率高,每次成功获得记账权的节点,其贡献值消耗一部分,每个节点初始贡献值为0,最大值为1000;(6)引入信誉度credit概念和奖惩制度,根据信誉度值反映节点是否存在恶意行为;(6.1)信誉度设置为150分制,最高为150,每个节点初始信誉度为100,信誉度增加的方法是监视其它节点是否有恶意行为或者自身做出积极行为;如果节点公开其它节点恶意行为并提供了有效的证据,那么它将获得信誉度奖励,而恶意节点将受到扣除信誉度的惩罚;(6.2)在奖惩机制中提供两种混合激励机制,激励机制是维持区块链系统稳定性的主要动力,第一个是诚实行为激励机制,每个诚实计算随机数的节点均获得信誉度0.1奖励,原因是所有诚实行为都对系统的维护做出了贡献,即使诚实节点没有获得新区块记账权;第二个是监督激励机制,它借助于各个节点之间相互监督,若节点A指控节点B存在非法行为,并提供有效证据,则节点A获得5信誉度奖励,而节点B信誉度扣除10,若节点信誉度低于70时,剔除该节点,取消其资格;通过两种激励机制增强区块链系统的安全性;(7)各个节点竞争记账权,具体包括以下步骤:(7.1)各个节点根据当前难度值进行哈希计算寻找随机数,每当第一个节点通过哈希计算找到了随机数nonce后,则就向全网广播,本节点的贡献值加10;(7.2)设置一个等待时间wTime=15S,如果有其他节点在等待时间的范围内也计算出了随机数,同样贡献值也加10,等待时间过后,没有找到随机数的节点停止计算,等待获得记账权的节点广播后,在进行下一轮计算;(7.3)在等待时间中算出随机数的节点进行权重计算比较,根据节点的贡献值contribution、信誉度credit和计算时间cTime计算出fValue值,权重计算公式为:fValue=contribution/100+(credit‑cTime)/10(7.4)当fValue值最高的节点获得本次记账权后,则其贡献值减少一半,本节点将自己打包好的区块广播至全网,宣布自己获得打包权,其他节点收到信息后进行验证,