区块链网络中调整出块难度的方法、计算机介质和区块链网络与流程

文档序号:22324262发布日期:2020-09-25 17:51阅读:269来源:国知局
区块链网络中调整出块难度的方法、计算机介质和区块链网络与流程

本发明涉及区块链领域,更具体地说,涉及一种区块链网络中调整出块难度的方法、计算机介质和区块链网络。



背景技术:

区块链是一种由多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储、难以篡改、防止抵赖的分布式账本技术。在区块链网络当中,经常需要对多份数据进行投票以保证数据的一致性,女巫攻击的发起者可以伪造多个身份,通过获得多数票而获得对最终数据的写入权。为了防止女巫攻击,很多情况下需要去中心化系统当中不同身份的节点在提交数据的同时提交工作量证明。许多著名的公链,例如:比特币,以太坊都采用了工作量证明的方式来防止女巫攻击,保证系统的安全性。

比特币的工作量证明算法,是每当系统产生2016个块之后,对过去产生的2016个区块的出块间隔和预期时间间隔进行调整,调整当前的出块的难度。但是,现有的比特币的难度计算方式在算力稳定的时候可以很好的保证出块速度,但是区块链网络的全网难度陡然增大或者陡然下降时,将会导致全网区块链的出块速度极度不稳定。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种可以稳定区块链网络性能,提高区块链网络性能的健壮性和适应性的区块链网络中调整出块难度的方法、计算机介质和区块链网络。

本发明解决其技术问题所采用的技术方案是:构造一种区块链网络中调整出块难度的方法,包括以下步骤:

s1、基于全网最新区块高度和采样窗口判定是否需要调整下一出块难度,如果是执行步骤s2,否则维持当前出块难度不变;

s2、计算采样窗口中的区块的平均出块时间间隔以及平均调和难度;

s3、基于所述平均出块时间间隔、所述平均调和难度、预期出块时间间隔和调和因子计算下一区块的出块难度。

在本发明所述的区块链网络中调整出块难度的方法中,在所述步骤s1中,当所述全网最新区块高度h小于所述采样窗口n时,维持当前出块难度不变,否则执行步骤s2。

在本发明所述的区块链网络中调整出块难度的方法中,所述步骤s2进一步包括:

s21、采样所述采样窗口n中的n个区块的区块难度集合[d1,d2,…,dn],并采样所述采样窗口n中的n+1个的区块时间戳集合[t0,t1,…,tn];

s22、基于所述区块难度集合[d1,d2,…,dn]计算难度倒数集合并基于所述难度倒数集合计算累积难度倒数其中i为0-n之间的正整数;

s23、基于所述区块时间戳集合[t0,t1,…,tn]计算平均出块时间差集合[t1-t0,t2-t1,…,tn-tn-1];

s24、基于所述平均出块时间差集合[t1-t0,t2-t1,…,tn-tn-1]计算所述平均出块时间间隔;

s25、基于所述累积难度倒数计算所述平均调和难度。

在本发明所述的区块链网络中调整出块难度的方法中,在所述步骤s23中,将平均出块时间差集合[t1-t0,t2-t1,…,tn-tn-1]记做[st1,st1,…,stn],其中

其中t为预期出块时间。

在本发明所述的区块链网络中调整出块难度的方法中,在所述步骤s24中,所述平均出块时间间隔计算为:

在本发明所述的区块链网络中调整出块难度的方法中,在所述步骤s25中,所述平均调和难度计算为:

在本发明所述的区块链网络中调整出块难度的方法中,在所述步骤s3中,所述下一区块的出块难度计算为:其中a为调和因子dh表示高度为全网最新区块高度h的区块的难度,dh-1表示高度为全网最新区块高度h-1的区块的难度。

本发明解决其技术问题采用的另一技术方案是,构造一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现所述的区块链网络中调整出块难度的方法。

本发明解决其技术问题采用的再一技术方案是,构造一种区块链网络,包括多个区块链节点,所述区块链节点上存储有计算机程序,所述程序被处理器执行时实现根据所述的区块链网络中调整出块难度的方法。

实施本发明的区块链网络中调整出块难度的方法、计算机可读存储介质和区块链网络,通过采样采样窗口中最近一段时间的区块的平均时间间隔并加以调和因子来调整全网区块的难度,可以有效的避免区块链网络的全网难度陡然增大或者陡然下降导致全网区块链的出块速度极度不稳定,进而稳定区块链网络性能,提高区块链网络性能的健壮性和适应性。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1是本发明的区块链网络中调整出块难度的方法的第一优选实施例的流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明涉及一种区块链网络中调整出块难度的方法。首先基于全网最新区块高度和采样窗口判定是否需要调整下一出块难度,如果是执行后续步骤以调整下一区块的出块难度,否则维持当前出块难度不变。通过计算采样窗口中的区块的平均出块时间间隔以及平均调和难度;基于所述平均出块时间间隔、所述平均调和难度、预期出块时间间隔和调和因子计算下一区块的出块难度。实施本发明的区块链网络中调整出块难度的方法,通过采样采样窗口中最近一段时间的区块的平均时间间隔并加以调和因子来调整全网区块的难度,可以有效的避免区块链网络的全网难度陡然增大或者陡然下降导致全网区块链的出块速度极度不稳定,进而稳定区块链网络性能,提高区块链网络性能的健壮性和适应性。

图1是本发明的区块链网络中调整出块难度的方法的第一优选实施例的流程图。如图1所示,在步骤s1中,基于全网最新区块高度和采样窗口判定是否需要调整下一出块难度,如果是执行步骤s2,否则维持当前出块难度不变。

在本发明的优选实施例中,全网最新区块高度为h,采样窗口为n,当前出块难度为dg,预期出块时间间隔为t,平均计算函数为avg();调和因子为a,a取值如下:

其中dh表示高度为全网最新区块高度h的区块的难度,dh-1表示高度为全网最新区块高度h-1的区块的难度。

当所述全网最新区块高度h小于所述采样窗口n时,维持当前出块难度不变,即取当前出块难度dg为下一出块难度。

当所述全网最新区块高度h大于或等于所述采样窗口n时,需要调整下一出块难度,执行后续步骤s2和s3。

在步骤s2中,计算采样窗口中的区块的平均出块时间间隔以及平均调和难度。

在本发明的优选实施例中,采样所述采样窗口n中的n个区块的区块难度集合[d1,d2,…,dn],并采样所述采样窗口n中的n+1个的区块时间戳集合[t0,t1,…,tn]。基于所述区块难度集合[d1,d2,…,dn]计算难度倒数集合基于所述难度倒数集合计算累积难度倒数其中i为0-n之间的正整数。

基于所述区块时间戳集合[t0,t1,…,tn]计算平均出块时间差集合[t1-t0,t2-t1,…,tn-tn-1]。s24、基于所述平均出块时间差集合[t1-t0,t2-tn,…,tn-tn-1]计算所述平均出块时间间隔。在本优选实施例中,预期出块时间间隔t取常数120。且如果出块时间间隔大于7*120,则按照7*120计算;如果出块时间间隔小于-6*120,则按照-6*120计算。由此将平均出块时间差集合[t1-t0,t2-t1,…,tn-tn-1]记做[st1,st2,…,stn],其中

由此,计算所述平均出块时间间隔计算为:

最后,基于所述累积难度倒数计算所述平均调和难度

在步骤s3中,基于所述平均出块时间间隔、所述平均调和难度、预期出块时间间隔和调和因子计算下一区块的出块难度。所述下一区块的出块难度计算为:

本发明通过采样采样窗口中最近一段时间的区块的平均时间间隔并加以调和因子来调整全网区块的难度,可以有效的避免区块链网络的全网难度陡然增大或者陡然下降导致全网区块链的出块速度极度不稳定,进而稳定区块链网络性能,提高区块链网络性能的健壮性和适应性。

本发明解决其技术问题采用的另一技术方案是,构造一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现所述的区块链网络中调整出块难度的方法。

本发明解决其技术问题采用的再一技术方案是,构造一种区块链网络,包括多个区块链节点,所述区块链节点上存储有计算机程序,所述程序被处理器执行时实现根据所述的区块链网络中调整出块难度的方法。

因此,本发明可以通过硬件、软件或者软、硬件结合来实现。本发明可以在至少一个计算机系统中以集中方式实现,或者由分布在几个互连的计算机系统中的不同部分以分散方式实现。任何可以实现本发明方法的计算机系统或其它设备都是可适用的。常用软硬件的结合可以是安装有计算机程序的通用计算机系统,通过安装和执行程序控制计算机系统,使其按本发明方法运行。

本发明还可以通过计算机程序产品进行实施,程序包含能够实现本发明方法的全部特征,当其安装到计算机系统中时,可以实现本发明的方法。本文件中的计算机程序所指的是:可以采用任何程序语言、代码或符号编写的一组指令的任何表达式,该指令组使系统具有信息处理能力,以直接实现特定功能,或在进行下述一个或两个步骤之后实现特定功能:a)转换成其它语言、编码或符号;b)以不同的格式再现。

虽然本发明是通过具体实施例进行说明的,本领域技术人员应当明白,在不脱离本发明范围的情况下,还可以对本发明进行各种变换及等同替代。另外,针对特定情形或材料,可以对本发明做各种修改,而不脱离本发明的范围。因此,本发明不局限于所公开的具体实施例,而应当包括落入本发明权利要求范围内的全部实施方式。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1