一种区块链共识机制

文档序号:26729353发布日期:2021-09-22 21:31阅读:177来源:国知局
一种区块链共识机制

1.本发明属于区块链技术领域,具体涉及一种区块链共识机制。


背景技术:

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


技术实现要素:

4.本发明要解决的技术问题是提供一种区块链共识机制,以减少挖矿对算力的依赖性,增加普通用户的挖矿积极性是亟需解决的问题。
5.为解决上述技术问题,本发明的实施例提供一种区块链共识机制,是基于工作量证明的共识机制,包括如下步骤:
6.s1、确定每个旷工的挖矿总时长;
7.s2、确定当前节点获得过的出块奖励;
8.s3、计算挖矿总时长与出块奖励的比值α;
9.s4、根据比值α的大小进行排列,调整每个矿工的出块难度d。
10.具体如下,每个矿工从挖矿开始记录下挖矿的时间,并且获取当前矿工获得过的出块奖励总额,计算出二者的比值,记为α,作为下一个挖矿难度调整的依据,最终使得挖矿时间长且获得出块奖励少的矿工有更高的几率获得下一个记账权。
11.其中,步骤s4中,挖矿难度的调整方法如下:
12.d=t1/(t+α)
ꢀꢀꢀ
式(1),
13.其中,d表示出块难度,t1和t均是一个256位的大数字,优选,t1是一个非常大的常数2
256

32

1;
14.由式(1)可知:t+α越大,出块难度越小。
15.其中,步骤s3中,挖矿总时长与出块奖励的比值α的计算方法如下:
16.α=miningtime/awardcoins
ꢀꢀꢀ
式(2),
17.其中,miningtime表示该节点的挖矿总时长,awardcoins表示该节点过去获得的出块奖励金。
18.本发明的上述技术方案的有益效果如下:
19.1、本发明解决了现有的pow算法过分依赖算力的问题。
20.2、本发明解决了现有的pow算法普通用户因算力较低而出块概率几乎为0的问题,大大的增加了普通用户的参与度,进一步达成去中心化的效果。
21.3、本发明解决了pow面临的算力攻击问题,51%的算力攻击也不能够保证获得记账权,即使前期因算力巨大而获得大量出块奖励,但是由于获得的出块奖励总额大幅增加使得下一轮的出块难度相较于其他用户变大。
附图说明
22.图1为本发明中区块链共识机制的流程图。
具体实施方式
23.为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
24.如图1所示,本发明提供了一种区块链共识机制,是基于工作量证明的共识机制,包括如下步骤:
25.s1、确定每个旷工的挖矿总时长;
26.s2、确定当前节点获得过的出块奖励;
27.s3、计算挖矿总时长与出块奖励的比值α;计算方法如下:
28.α=miningtime/awardcoins
ꢀꢀꢀ
式(2),
29.其中,miningtime表示该节点的挖矿总时长,awardcoins表示该节过去获得的出块奖励金。
30.s4、根据比值α的大小进行排列,调整每个矿工的出块难度d;调整方法如下:
31.d=t1/(t+α)
ꢀꢀꢀ
式(1),
32.其中,d表示出块难度,t1和t均是一个256位的大数字;
33.由式(1)可知:t+α越大,出块难度越小。
34.本发明提供的一种区块链共识机制具体如下:每个矿工从挖矿开始记录下挖矿的时间,并且获取当前矿工获得过的出块奖励总额,计算出二者的比值,记为α,作为下一个挖矿难度调整的依据,最终使得挖矿时间长且获得出块奖励少的矿工有更高的几率获得下一个记账权。
35.下面结合具体实施例进一步阐述本发明的技术方案。
36.实施例1
37.本发明提出的一种区块链共识机制,具体如下:
38.步骤一、给每个挖矿的节点增加一个字段miningtime,表示自挖矿起到目前的时间,初始值为1。
39.步骤二、记录下每个挖矿节点挖矿获得的出矿奖励,例如比特币出矿奖励为12.5,记录为awardcoins,初始值设为1。
40.步骤三、根据每个节点的挖矿时间和获得的出块奖励来调整下一次出块难度。
41.具体的,将miningtime和awardcoins的比值记为α,带入出块难度的计算公式当中。
42.具体的,基于工作量证明的共识机制出块难度计算公式为:
43.d=t1/t,
44.其中,d表示出块难度,t1是常数,根据t的值的变化来改变出块难度,可以看出,t值越大,出块难度越低。
45.具体的,将出块难度的计算公式改为:
46.d=t1/(t+α),
47.其中,α将出块难度变小,且根据每一个节点的挖矿时间和获得的出块奖励来确定每一个节点的出块难度。
48.具体的,当某些矿工算力较弱,出块概率就比较小,因此获得的出块奖励就少,但是挖矿时间比较长,此时α就会更大,在新一轮挖矿中,就能获得更大的出块概率,获得出块奖励,以此鼓励算力较弱的用户。
49.具体的,当某些矿工算力较强,前期凭借大量的算力,拥有了大量的出块奖励,此时,α就会更小,出块难度增强,下一轮的出块概率将会降低,以此均衡块的分布。
50.具体的,在本发明中,使用挖矿时间作为了正向参考,保证了算力大的用户也不会被流失,因为即使出块概率会因为前几轮高额的出块奖励而降低,但是挖矿时间越长仍然会相应增加出块概率。
51.具体的,本发明能最大程度的鼓励挖矿时间很长,但是出块很少的用户,且不会流失算力高的主力军,使更多的用户能参与到挖矿的当中来。
52.本发明的区块链共识机制是基于工作量证明的共识机制,调整每个区块的出块概率,具体是记录下每个矿工的挖矿时间以及获得的出块奖励,根据这两者的比值来调整每个矿工的出块难度,使得挖矿时间长但获得出块奖励较少的矿工能获得更大的出块概率。采用本发明方法解决了工作量证明共识机制存在的对算力过于依赖的问题,激励普通用户也能积极参与挖矿。
53.以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1