一种区块链共识机制制造技术

技术编号:30139655 阅读:24 留言:0更新日期:2021-09-23 14:59
本发明专利技术提供一种区块链共识机制,是基于工作量证明的共识机制,在一个新的区块产生前,检测每个矿工的挖矿时间以及出矿奖励,计算此两者的比值,根据比值的大小进行排列,以此调整每个矿工的挖矿难度,使得挖矿难度整体有所降低,且算力较低的用户也可以有更高的概率挖矿。采用本发明专利技术方法解决了基于工作量证明的共识机制存在的对算力过于依赖的问题,激励普通用户也能积极参与挖矿。用户也能积极参与挖矿。用户也能积极参与挖矿。

【技术实现步骤摘要】
一种区块链共识机制


[0001]本专利技术属于区块链
,具体涉及一种区块链共识机制。

技术介绍

[0002]现有的PoW共识机制,也就是大家熟悉的挖矿,设定哈希函数的特定输出值作为难度,矿工根据不断的尝试随机数Nonce进行哈希计算,来获得难度范围内的值,一旦计算出符合要求的数就进行全网广播,获得记账的权利。这样的计算方法非常依赖矿工的算力,算力越高,出块概率越大。在比特币等加密货币发行初期,挖矿对算力的要求不高,所有的用户都可以参与挖矿的活动,但是随着加密货币的发展,比特币等加密货币市值大幅增加,吸引了大量拥有巨大算力的矿工参与挖矿,由原来的CPU挖矿发展到GPU挖矿,再到使用ASIC芯片进行挖矿,由于挖矿设备呈现专业化趋势,使得大量普通用户能挖到矿的概率几乎为0,使得投资入场的拥有巨大算力的用户占据了挖矿市场,严重打击了普通用户的挖矿积极性,使得整个挖矿市场被少数算力强大的用户所垄断,违背了设计者提出的去中心化的设计理念。
[0003]为了使基于工作量证明(PoW)的共识机制,减少对算力的依赖性,增加普通用户的出块概率,鼓励更多的用户也参与到挖矿当中来,且减少算力攻击给区块链带来的安全隐患,共识机制成为区块链的主要研究方向之一。因此,需提出一种基于工作量证明的改进共识机制,以减少PoW对算力的过分依赖,增加普通用户的参与度,保证区块链安全的运行。

技术实现思路

[0004]本专利技术要解决的技术问题是提供一种区块链共识机制,以减少挖矿对算力的依赖性,增加普通用户的挖矿积极性是亟需解决的问题。
[0005]为解决上述技术问题,本专利技术的实施例提供一种区块链共识机制,是基于工作量证明的共识机制,包括如下步骤:
[0006]S1、确定每个旷工的挖矿总时长;
[0007]S2、确定当前节点获得过的出块奖励;
[0008]S3、计算挖矿总时长与出块奖励的比值α;
[0009]S4、根据比值α的大小进行排列,调整每个矿工的出块难度D。
[0010]具体如下,每个矿工从挖矿开始记录下挖矿的时间,并且获取当前矿工获得过的出块奖励总额,计算出二者的比值,记为α,作为下一个挖矿难度调整的依据,最终使得挖矿时间长且获得出块奖励少的矿工有更高的几率获得下一个记账权。
[0011]其中,步骤S4中,挖矿难度的调整方法如下:
[0012]D=T1/(T+α)
ꢀꢀꢀ
式(1),
[0013]其中,D表示出块难度,T1和T均是一个256位的大数字,优选,T1是一个非常大的常数2
256

32

1;
[0014]由式(1)可知:T+α越大,出块难度越小。
[0015]其中,步骤S3中,挖矿总时长与出块奖励的比值α的计算方法如下:
[0016]α=miningTime/awardCoins
ꢀꢀꢀ
式(2),
[0017]其中,miningTime表示该节点的挖矿总时长,awardCoins表示该节点过去获得的出块奖励金。
[0018]本专利技术的上述技术方案的有益效果如下:
[0019]1、本专利技术解决了现有的PoW算法过分依赖算力的问题。
[0020]2、本专利技术解决了现有的PoW算法普通用户因算力较低而出块概率几乎为0的问题,大大的增加了普通用户的参与度,进一步达成去中心化的效果。
[0021]3、本专利技术解决了PoW面临的算力攻击问题,51%的算力攻击也不能够保证获得记账权,即使前期因算力巨大而获得大量出块奖励,但是由于获得的出块奖励总额大幅增加使得下一轮的出块难度相较于其他用户变大。
附图说明
[0022]图1为本专利技术中区块链共识机制的流程图。
具体实施方式
[0023]为使本专利技术要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
[0024]如图1所示,本专利技术提供了一种区块链共识机制,是基于工作量证明的共识机制,包括如下步骤:
[0025]S1、确定每个旷工的挖矿总时长;
[0026]S2、确定当前节点获得过的出块奖励;
[0027]S3、计算挖矿总时长与出块奖励的比值α;计算方法如下:
[0028]α=miningTime/awardCoins
ꢀꢀꢀ
式(2),
[0029]其中,miningTime表示该节点的挖矿总时长,awardCoins表示该节过去获得的出块奖励金。
[0030]S4、根据比值α的大小进行排列,调整每个矿工的出块难度D;调整方法如下:
[0031]D=T1/(T+α)
ꢀꢀꢀ
式(1),
[0032]其中,D表示出块难度,T1和T均是一个256位的大数字;
[0033]由式(1)可知:T+α越大,出块难度越小。
[0034]本专利技术提供的一种区块链共识机制具体如下:每个矿工从挖矿开始记录下挖矿的时间,并且获取当前矿工获得过的出块奖励总额,计算出二者的比值,记为α,作为下一个挖矿难度调整的依据,最终使得挖矿时间长且获得出块奖励少的矿工有更高的几率获得下一个记账权。
[0035]下面结合具体实施例进一步阐述本专利技术的技术方案。
[0036]实施例1
[0037]本专利技术提出的一种区块链共识机制,具体如下:
[0038]步骤一、给每个挖矿的节点增加一个字段miningTime,表示自挖矿起到目前的时间,初始值为1。
[0039]步骤二、记录下每个挖矿节点挖矿获得的出矿奖励,例如比特币出矿奖励为12.5,记录为awardCoins,初始值设为1。
[0040]步骤三、根据每个节点的挖矿时间和获得的出块奖励来调整下一次出块难度。
[0041]具体的,将miningTime和awardCoins的比值记为α,带入出块难度的计算公式当中。
[0042]具体的,基于工作量证明的共识机制出块难度计算公式为:
[0043]D=T1/T,
[0044]其中,D表示出块难度,T1是常数,根据T的值的变化来改变出块难度,可以看出,T值越大,出块难度越低。
[0045]具体的,将出块难度的计算公式改为:
[0046]D=T1/(T+α),
[0047]其中,α将出块难度变小,且根据每一个节点的挖矿时间和获得的出块奖励来确定每一个节点的出块难度。
[0048]具体的,当某些矿工算力较弱,出块概率就比较小,因此获得的出块奖励就少,但是挖矿时间比较长,此时α就会更大,在新一轮挖矿中,就能获得更大的出块概率,获得出块奖励,以此鼓励算力较弱的用户。
[0049]具体的,当某些矿工算力较强,前期凭借大量的算力,拥有了大量的出块奖励,此时,α就会更小,出块难度增强,下一轮的出块概率将会降低,以此均衡块的分布。
[0050]具体的,在本专利技术中,使用挖矿时间作为本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链共识机制,其特征在于,是基于工作量证明的共识机制,包括如下步骤:S1、确定每个旷工的挖矿总时长;S2、确定当前节点获得过的出块奖励;S3、计算挖矿总时长与出块奖励的比值α;S4、根据比值α的大小进行排列,调整每个矿工的挖矿难度D。2.根据权利要求1所述的区块链共识机制,其特征在于,步骤S4中,挖矿难度的调整方法如下:D=T1/(T+α)
ꢀꢀꢀꢀ
式(1),其中,D表示出块难度,T1和T均是一个256位的大数字;由式(1)可知:T+α越...

【专利技术属性】
技术研发人员:路松峰吴作斌周军龙王同洋
申请(专利权)人:华中科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1