主页 > imtoken钱包官网安全下载 > 一种快速收敛的区块链工作量证明共识难度调整方法及过程

一种快速收敛的区块链工作量证明共识难度调整方法及过程

imtoken钱包官网安全下载 2023-03-25 05:26:10

一种快速收敛的区块链工作量证明共识难度调整方法与流程

本发明涉及区块链工作量证明共识难度,尤其涉及一种快速收敛的区块链工作量证明共识难度调整方法。

背景技术:

自比特币出现以来,区块链技术逐渐发展起来。 区块链的本质是一个公开的数字记账本。 通过一定的存储结构保证确认信息极难被修改或删除。 它通过共识机制保证整个系统的最终一致性,并通过密码学理论进行验证。 信息有效性和完整性,节点之间通过p2p网络进行信息交换。 凭借这些特性,在一定规模的区块链系统中,新节点可以随时加入系统并同步数据,现有节点也可以随时退出系统,而不影响整个系统的运行。 这说明在区块链系统中,单个节点或个体对整个系统的影响很小。

对于区块链来说,稳定性是一个非常重要的指标。 新节点的加入和老节点的退出,都会对区块链系统的总算力产生一定的影响。 稳定性主要是指整个系统的计算能力在一定程度上。 在电力波动的情况下,可以快速调整,使区块发行时间仍在标准时间范围内。

区块链是由多个区块组成的链式结构。 在使用工作量证明作为共识机制的区块链系统中,区块的发行需要通过区块链中的矿工进行工作量证明。 随着区块的发行,区块链的长度不断增长,区块链中的区块从0开始递增编号,这个数字称为区块高度。 当前块是指要发行的块,父块A块是高度比当前块小1的块。

矿工是区块链中的特殊节点,它们执行工作量证明以确保区块链状态的一致性。 工作量证明其实就是矿工不断地使用一个随机数结合区块数据进行哈希运算,得到结果并对结果进行验证。 每个区块中存储一个共识难度值,这个难度值用于检查工作量证明的结果是否符合要求。 其验证公式为:

其中,r为工作量证明结果,max256为常数,其值为2256,d代表共识难度值,若满足不等式

那么工作量证明的结果是有效的。 难度值d对共识结果r的合法性验证影响很大,难度值d越大,

r的值越小,满足条件需要的r的值越小——即r的解空间越小,工作量证明的结果满足要求的概率越小,并且区块发行难度加大,体现在区块发行时间上,区块发行时间会变长; 反之,难度值d越小,

的值越小,r 的解空间越大,工作量证明的结果满足要求的概率越大,出块时间越短。 另外,区块链系统中的矿工可以随时加入或退出系统,系统矿工的数量是不断变化的。 系统中矿工的数量和矿工的算力会影响区块发行的时长。 矿工越多,算力越强,系统的总算力就越大。 此时每秒的计算次数越大比特币工作量证明过程,得到满足要求的工作量证明结果。 时间也比较短。

在工作量证明共识机制下,很难稳定地发行区块,因为无法直接控制区块发行时间间隔,只能通过控制和调整证明的难度来间接控制区块发行。工作共识——在工作量证明共识机制中使用的算法得到的结果服从均匀分布。

目前采用工作量证明共识机制的主流区块链系统主要有比特币和以太坊。 比特币主要根据过去2016个区块的平均发行时间和父区块的难度值来计算新的难度值。 以太坊根据当前区块的发布时间和父区块的难度值计算出新的难度值。 还有难度炸弹,难度值以10万个区块为单位呈指数增长。 比特币的难度调整是一个比较粗放的模型,调整幅度会比较平缓; 以太坊的难度调整与较早的区块无关,存在难度炸弹,存在难度急剧增加的情况。

技术实现要素:

本发明针对目前采用工作量证明共识机制的主流区块链系统调整范围广、调整速度慢、稳定性差的问题,提供了一种快速收敛的区块链工作量证明共识难度调整方法。

比特币工作量证明过程_从事比特币行业叫什么工作_比特币矿工怎么工作

本发明的区块链工作量证明共识的难度调整,通过调整工作量证明的难度值,控制出块时间收敛在标准时间长度区间内;

更新和计算的区块链工作量证明共识难度值取决于当前区块的发布时间和过去10个区块的平均发布时间。 当前区块发行时间设置较大的调整系数,过去10个区块的平均发行时间设置较小的调整系数;

更新和计算的区块链工作量证明共识难度值的难度值是基于父块的难度值,具体计算结果是父块的难度值乘以某个系数的结果;

在计算区块链工作量证明的共识难度值过程中,采用对数函数和负系数相乘,使发行时间与难度值的单调性一致;

区块链工作量证明共识难度调整也考虑了区块竞争。 如果有比赛,难度值会相应增加。

本发明的目的是通过以下技术方案实现的:

一种快速收敛的工作量证明区块链共识难度调整方法,包括以下步骤:

s1:设置当前区块发行时间戳为hn,父区块发行时间戳为hn-1,过去10个区块的平均发行时间为a10,父区块难度值为d(n-1); n是当前块的高度; n-1个父块的高度; 获取区块竞争系数y:

s2:当前区块的发行时间为hn-hn-1,值f1是对当前区块的发行时间进行标准化得到的,区块发行的标准时间间隔设置为[10,20]; 当前块的发行时间计算归一化的公式为:

t为当前区块发布时间按照标准时间间隔处理得到的中间变量;

s3:计算第一部分的难度调整值d(n)1:

第一部分难度调整值d(n)1的计算是对f1值进行对数处理得到ln(f1),将ln(f1)的最大值设为10,得到min(ln( f1),10 ), 乘以父块的难度值

并乘以-1;

s4:将过去10个区块发出的平均时长a10标准化得到f2;

比特币工作量证明过程_比特币矿工怎么工作_从事比特币行业叫什么工作

s5:根据计算出的f2和y,范围控制系数m,父块的难度值d(n-1)计算第二部分难度调整值d(n)2;

s6:根据第一部分难度调整值d(n)1、第二部分难度调整值d(n)2和父块难度值d(n-1),计算难度值当前区块的d(n):d(n)=d(n-1)+d(n)1+d(n)2。

为进一步实现本发明的目的,优选地,步骤s5中的档位控制系数m为-99。

优选地,归一化过程的公式为

规范当前区块发行时间的目的是使难度值调整后的区块发行时间能够在标准时间区间内;

平均时长作为调整中的一个参数,可以起到平滑过渡的作用,避免难度值调整时突然升高或降低的情况。

本发明的主要目的是消除系统总算力变化对区块发行时间的影响。 当系统总算力增加时,区块发行时间会缩短。 此时会增加共识难度值,减少证明成功的工作量。 区块发行概率放缓; 反之,当系统总算力下降时,出块时间变长。 此时共识难度值降低,从而增加工作量证明成功的概率,使出块时间变快。

与现有的工作量证明共识难度调整方法相比,本发明具有以下显着优点:

(1)本发明利用对数函数ln来平衡标准持续时间间隔左右两侧偏差的测量。 因为标准时长区间为[10,20)且时长为非负,所以标准时长区间左侧只有很小的取值范围[0,10),而有很大的取值范围[20, +∞) 在右侧 )。 对数函数ln的函数值与自变量的关系有点类似于左边小右边大的偏差。 当对数函数ln的自变量在区间(0, 1)时,函数值为负; 而对数函数 ln 当函数 ln 参数在 [1, +∞) 时,函数值为正数。 因此,采用对数函数ln来平衡标准时长左右两侧偏差的刻度测量。 然而,现有的工作量证明共识难度调整方法只是根据偏差值进行调整。 标准时间间隔左侧的偏差最多只能为10,而右侧可能达到正无穷大。 偏差平衡问题。

(2)本发明还计算了过去10个区块的平均发行时长作为补充调整部分,使得难度值变化曲线更加平滑,相对更加稳定。

(3)本发明有效微调了当前出块竞争关系,减少了出块竞争,避免了区块链分叉。

(4)本发明主要根据当前区块发布时间进行调整,可以保证及时适应系统总算力的变化,加快收敛速度​​。

(5)本发明改进了传统区块链工作量证明共识难度调整算法存在的调整范围大、收敛慢、不稳定等问题,保证了区块的稳定发行。

图纸说明

图1为本发明快速收敛的区块链工作量证明共识难度调整方法的流程图;

图2是根据本发明的区块链工作量证明共识的难度调整示意图。

比特币工作量证明过程_比特币矿工怎么工作_从事比特币行业叫什么工作

详细说明

为了更好地理解本发明,下面结合附图和实施例对本发明作进一步说明。 需要说明的是,本发明实施例并不限于此。

区块高度是区块链链式结构中每个区块的编号,从0开始递增; 过去10个区块的平均发行时间为a10,取当前区块前10个区块的平均发行时间,如果当前区块的高度为n,则对具有的区块的发行时间取平均值高度 n-10, n-9,...n-1; 如果区块链中当前没有10个区块,则取该区块 区块链中所有已发行区块的平均发行时间。 例如,目前只有三个高度为 1、2、3 的区块,则取高度为 1、2、3 的区块的平均发行时间。 区块链系统中每个区块的难度值都存储在区块中,因此可以从系统中读取easy高度的区块的难度值。 如果当前区块高度为n,那么其父区块的难度值只需要读取高度为n-1的区块存储的难度值即可。 同样,区块发行时间戳也存储在区块中,可以读取任意高度区块的发行时间戳。 竞争系数y也可以通过读取块数据得到。 竞争的具体表现是一个区块后面连接多个区块,比如一个高度为n的区块后面跟着两个高度为n+1的区块,两个区块的发行都有一个工作量证明的过程。 竞争系数y可以通过检查块中是否存在相似的并行块来确定。

本发明的难度调整值分为两部分。 难度调整值的第一部分根据当前区块的发布时间进行调整,因为当前区块更能反映系统总算力的变化,第一部分的调整系数较大。 这确保它更快地达到其调理目标。 第二部分根据过去10次区块发行的平均情况进行调整。 这里的调整系数很小,起到辅助调整的作用,可以让难度值的调整更加顺畅,不会出现突变。

示例 1

本实施例的具体参数如下:

当前块的高度为n,父块的高度为n-1,且n>10。

图2为区块链工作量证明共识难度调整示意图。 当前区块的难度值主要基于父区块的难度值。 同时需要结合当前区块发行时间和过去10个区块的平均发行时间。 当前区块的难度值与区块发行竞争系数综合计算得到。

场景一:区块发行没有竞争

如图1所示,一种快速收敛的区块链工作量证明共识难度调整方法包括以下步骤:

步骤101:获取参数:父块难度值d(n-1)=131072,当前块发行时间戳为hn=hn-1+25,过去10个块的平均发行时间为a10= 5.

步骤102:计算当前区块发行时长为25,对当前区块发行时长进行标准化得到值f1,具体

这产生 f1 = 2.5。

步骤103:结合父块的难度值和当前块发行时间的归一化值,得到第一部分难度调整值d(n)1;

步骤104:将过去10个区块的平均时长a10标准化得到f2,

比特币矿工怎么工作_比特币工作量证明过程_从事比特币行业叫什么工作

步骤105:由于没有区块竞争,得到区块竞争系数y=1。

步骤106:根据计算出的f2和y,设置范围控制系数m=-99,以及父块的难度值,即可计算出第二部分难度调整值d(n)2;

范围控制系数设置为-99来控制第二部分难度调整值的影响范围,因为第一部分是主要调整部分比特币工作量证明过程,也是当前系统算力的体现,而第二部分是难度调整值由-99控制。 难度值的最大范围,即第二部分的最大可调范围为

第一部分难度调整值理论最大可调范围为

步骤107:根据第一部分难度调整值d(n)1、第二部分难度调整值d(n)2和父块的难度值,最终得到当前块的难度值: d(n)=d(n-1)+d(n)1+d(n)2=130197。

场景二:区块发行存在竞争

如图1所示,一种快速收敛的区块链工作量证明共识难度调整方法包括以下步骤:

步骤101:获取参数,父块的难度值d(n-1)=131072,当前块发行时间戳为hn=hn-1+15,过去10个块的平均发行时间为a10= 38.

步骤102:计算当前区块发行时间为15,对当前区块发行时间进行标准化,因为

于是得到f1=1。

步骤103:结合父块的难度值和当前块的发行时间归一化值,得到第一部分的结果为

步骤104:将过去10个区块的平均发行时间标准化得到

从事比特币行业叫什么工作_比特币矿工怎么工作_比特币工作量证明过程

步骤105:由于块竞争,得到块竞争系数y=2。

步骤106:根据计算出的f2和y,设置范围控制系数m=-99,以及父块的难度值,可以计算出第二部分的结果:

步骤107:根据第一部分和第二部分的结果以及父块的难度值,最终得到一个新的难度值:d(n)=d(n-1)+d(n)1+d (n) 2 = 131008。

本发明将共识难度值的调整过程分为两部分分别进行调整。 第一部分共识难度调整值主要是根据当前区块发行时间来计算的。 例如场景一,当前出块时间为25秒,那么归一化后的对数计算结果为0.916。 场景二,由于15秒的时长在标准时间区间内,归一化处理最后对数运算的结果为0; 另外,如果当前区块发行时间为5秒,归一化处理后的对数运算结果为-0.619,与当前区块发行时间25秒的调整范围不同,因为对数函数平衡偏差量在两侧。 但如果采用其他工作量证明共识难度调整方式,则当前区块发布时间25秒的计算结果与当前区块发布时间5秒的计算结果将是相反的数字,调整幅度两者是一样的,这对于标准的duration interval左边范围小,右边范围大的情况是不适用的。

第二部分共识难度调整值是使用过去10个区块的平均发行时间来计算的,这将使难度调整更加稳定,不会突然变化。 例如场景一,第一部分难度调整值降低了难度,但是第二部分难度调整值是基于过去10个区块发行的平均时长小于标准时间间隔,难度值增加64,与第一部分难度调整值相同。 -939比较小,主要是防止难度值突然变化。

本发明分主次关系两部分进行调整,在具体结果上比其他难度调整算法更稳定,但可以通过调整难度值快速收敛出块时间到标准时长区间。

本发明还计算了过去10个区块的平均发行时长作为补充调整部分,使得难度值变化曲线更加平滑,相对更加稳定。

本发明有效微调了当前区块发行竞争关系,减少了区块发行竞争,避免了区块链分叉。

本发明主要根据当前区块发布时间进行调整,能够保证及时适应系统总算力的变化,加快收敛速度​​。

本发明改进了传统区块链工作量证明共识难度调整算法存在的调整范围大、收敛慢、不稳定等问题,保证了区块的稳定发行。

本发明的实施不限于上述实施例,任何其他不脱离本发明精神和原则的变化和简化,均应为等效替换方法,均包含在本发明的保护范围内内的发明。

技术特点:

技术概要

本发明公开了一种调整区块链工作量证明共识难度的快速收敛方法。 该方法主要分为两部分更新工作量证明共识的难度值。 两部分的计算都取决于父块的难度值。 除了当前块的发布时间之外,还需要计算第一部分。 区块发行时间经过对数函数处理,通过一定的系数处理得到结果。 第二部分还取决于过去十次区块发行的平均持续时间和区块竞争系数。 区块发行的平均时长需要结合标准时间间隔进行预处理,区块竞争系数表示区块发行是否存在竞争。 将两部分的结果合并相加,得到新的工作量证明共识难度值。 本发明改进了传统区块链工作量证明共识难度调整算法存在的调整范围大、收敛慢、不稳定等问题,保证了区块的稳定发行。

技术研发人员:李永军; 郑旭; 谢荣

技术保护用户:华南理工大学

技术研发日:2019.04.15

技术公告日期:2019.08.06