区块链共识机制、设备及计算机可读存储介质的制作方法

文档序号:17211763发布日期:2019-03-27 10:51阅读:137来源:国知局
区块链共识机制、设备及计算机可读存储介质的制作方法

本发明实施例涉及通信技术领域,尤其涉及一种区块链共识机制、设备及计算机可读存储介质。



背景技术:

区块链的核心是共识机制,共识机制决定了区块链的实现形式,决定了信任的方式和规则,从而决定了区块链的不同应用场景。区块链每个携带信息区块的增加,都要基于一定的机制和算法。

目前常见的实现区块链的方式有工作量证明(proofofwork,pow)、权益证明(proofofstake,pos)、股份授权证明(delegatedproofofstake,dpos)等共识机制,但是,对于pow共识机制,生成一个新区块需要耗费大量的计算量,导致能源浪费。而pos、dpos等共识机制的公平性较差。



技术实现要素:

本发明实施例提供一种区块链共识机制、设备及计算机可读存储介质,以节省能源、提高公平性。

第一方面,本发明实施例提供一种区块链共识机制,包括:

区块链节点获取区块链中第n-1个区块的第一哈希值;

所述区块链节点计算所述区块链节点生成的第n个区块的第二哈希值,所述区块链节点和其他区块链节点抢夺第n个区块的记账权,所述区块链节点生成的第n个区块包括所述区块链节点预期得到的奖励金额,所述其他区块链节点生成的第n个区块包括所述其他区块链节点预期得到的奖励金额;

若在预设时间内,所述区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值比所述其他区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值小,或者所述区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值小于预设阈值,则所述区块链节点获得所述第n个区块的记账权,其中,所述预设时间是区块链网络中生成一个新区块所需的最长时间。

第二方面,本发明实施例提供一种区块链节点,包括:

存储器;

处理器;

通讯接口;以及

计算机程序;

其中,所述计算机程序存储在所述存储器中,并被配置为由所述处理器执行以下操作:

获取区块链中第n-1个区块的第一哈希值;

计算所述区块链节点生成的第n个区块的第二哈希值,所述区块链节点和其他区块链节点抢夺第n个区块的记账权,所述区块链节点生成的第n个区块包括所述区块链节点预期得到的奖励金额,所述其他区块链节点生成的第n个区块包括所述其他区块链节点预期得到的奖励金额;

若在预设时间内,所述区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值比所述其他区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值小,或者所述区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值小于预设阈值,则所述区块链节点获得所述第n个区块的记账权,其中,所述预设时间是区块链网络中生成一个新区块所需的最长时间。

第三方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现第一方面所述的方法。

本发明实施例提供的区块链共识机制、设备及计算机可读存储介质,通过区块链节点获取区块链中第n-1个区块的第一哈希值,计算所述区块链节点生成的第n个区块的第二哈希值,若在预设时间内,所述区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值比所述其他区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值小,或者所述区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值小于预设阈值,则所述区块链节点获得所述第n个区块的记账权,相比于pow共识机制,生成一个新区块不需要耗费大量的计算量,节省了能源,另外,相比于pos、dpos等共识机制,公平性较高。

附图说明

图1为本发明实施例提供的区块链共识机制流程图;

图2为本发明实施例提供的区块链节点的示意图;

图3为本发明另一实施例提供的区块链共识机制流程图;

图4为本发明实施例提供的区块链节点的结构示意图。

通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

本发明提供的区块链共识机制,旨在解决现有技术的如上技术问题。

下面以具体地实施例对本发明的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。

图1为本发明实施例提供的区块链共识机制流程图。本发明实施例针对现有技术的如上技术问题,提供了区块链共识机制,该方法具体步骤如下:

步骤101、区块链节点获取区块链中第n-1个区块的第一哈希值。

如图2所示,区块链网络中包括区块链节点1、区块链节点2、区块链节点3,此处只是示意性说明,并不限定该区块链网络的具体结构,也不限定该区块链网络中区块链节点的个数。

假设在该区块链网络中,第n-1个区块已经生成,当前时刻区块链节点1、区块链节点2、区块链节点3抢夺第n个区块的记账权。区块链节点1、区块链节点2、区块链节点3可分别从第n-1个区块中按照某种算法得到一个随机目标数,该随机目标数具体可以是第n-1个区块的哈希值,此处将第n-1个区块的哈希值记为第一哈希值例如hash1。在其他实施例中,该随机目标数不限于是该第n-1个区块的哈希值,还可以是与该第n-1个区块相关的其他随机数。

步骤102、所述区块链节点计算所述区块链节点生成的第n个区块的第二哈希值,所述区块链节点和其他区块链节点抢夺第n个区块的记账权,所述区块链节点生成的第n个区块包括所述区块链节点预期得到的奖励金额,所述其他区块链节点生成的第n个区块包括所述其他区块链节点预期得到的奖励金额。

在本实施例中,区块链节点1、区块链节点2、区块链节点3在对第n个区块的记账权进行抢夺时,区块链节点1、区块链节点2、区块链节点3分别选择了各自预期得到的奖励金额,例如,区块链节点1预期得到的奖励金额为money-a,区块链节点2预期得到的奖励金额为money-b,区块链节点3预期得到的奖励金额为money-c。区块链节点1计算出包括money-a在内的第n个区块的哈希值记为hash-a,区块链节点2计算出包括money-b在内的第n个区块的哈希值记为hash-b,区块链节点3计算出包括money-c在内的第n个区块的哈希值记为hash-c,此处将第n个区块的哈希值记为第二哈希值。可选的,不同区块链节点生成的第n个区块可能不同,且不同区块链节点计算出的第n个区块的哈希值可能也不同。

步骤103、若在预设时间内,所述区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值比所述其他区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值小,或者所述区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值小于预设阈值,则所述区块链节点获得所述第n个区块的记账权,其中,所述预设时间是区块链网络中生成一个新区块所需的最长时间。

在本实施例中,区块链节点1、区块链节点2、区块链节点3中哪个区块链节点最先达到如下两个条件之一,该区块链节点就获得了该第n个区块的记账权:

条件1):在预设时间内,该区块链节点计算的第n个区块的哈希值与第n-1个区块的哈希值的差值的绝对值比其他区块链节点计算的第n个区块的哈希值与第n-1个区块的哈希值的差值的绝对值小。所述预设时间是区块链网络中生成一个新区块所需的最长时间,该最长时间记为time-max。

条件2):该区块链节点计算的第n个区块的哈希值与第n-1个区块的哈希值的差值的绝对值小于预设阈值,该预设阈值是第n个区块的哈希值与第n-1个区块的哈希值的差值的绝对值的最小值记为hash-min。

例如,区块链节点1、区块链节点2、区块链节点3中,区块链节点1在预设时间time-max内,计算的第n个区块的哈希值与第n-1个区块的哈希值的差值的绝对值最小,则区块链节点1就获得了该第n个区块的记账权;或者,如果区块链节点1最先计算出的第n个区块的哈希值与第n-1个区块的哈希值的差值的绝对值小于预设阈值hash-min,则区块链节点1就获得了该第n个区块的记账权。

例如,在预设时间time-max内,区块链节点1选择了自己预期的奖励金额money-a,并将money-a包括在第n个区块中,计算出该第n个区块的哈希值hash-a,区块链节点1将包括money-a的第n个区块和哈希值hash-a广播到区块链网络中,区块链节点2和区块链节点3接收到包括money-a的第n个区块和哈希值hash-a时,确定hash-a与第n-1个区块的哈希值的差值的绝对值小于预设阈值hash-min,则区块链节点2和区块链节点3停止抢夺第n个区块的记账权,等到该第n个区块被验证通过后,该第n个区块就得到了全区块链网络的认可,区块链节点1、区块链节点2和区块链节点3可以继续抢夺第n+1个区块的记账权。

当所述区块链节点获得所述第n个区块的记账权后,所述区块链节点将其生成的所述第n个区块广播到区块链网络中。

例如,区块链节点1获得该第n个区块的记账权,则区块链节点1将其生成的第n个区块广播到区块链网络中,可选的,区块链节点1采用自己的私钥对该第n个区块签名后,将该第n个区块广播到区块链网络中,则第n个区块成功生成,区块链节点1、区块链节点2、区块链节点3可继续抢夺第n+1个区块的记账权。

另外,若在预设时间内,所述区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值大于所述预设阈值,且所述其他区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值大于所述预设阈值,超出所述预设时间后,所述区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值比所述其他区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值小,则所述区块链节点获得所述第n个区块的记账权。

例如,在预设时间time-max内,区块链节点1、区块链节点2、区块链节点3分别计算出了第n个区块的哈希值,例如,区块链节点1、区块链节点2、区块链节点3分别计算出的第n个区块的哈希值为hash-a、hash-b、hash-c,并且hash-a、hash-b、hash-c分别与第n-1个区块的哈希值的差值的绝对值都大于预设阈值hash-min,则区块链节点1、区块链节点2、区块链节点3分别将各自生成的第n个区块和该第n个区块的哈希值广播到区块链网络中。具体的,区块链节点1、区块链节点2、区块链节点3分别采用各自的私钥对各自生成的第n个区块和该第n个区块的哈希值签名后广播到区块链网络中。若超出了预设时间time-max,则区块链节点1、区块链节点2、区块链节点3停止计算,此时,比较hash-a、hash-b、hash-c分别与第n-1个区块的哈希值的差值的绝对值,若hash-a与第n-1个区块的哈希值的差值的绝对值最小,则确定区块链节点1获得所述第n个区块的记账权。

本发明实施例通过区块链节点获取区块链中第n-1个区块的第一哈希值,计算所述区块链节点生成的第n个区块的第二哈希值,若在预设时间内,所述区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值比所述其他区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值小,或者所述区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值小于预设阈值,则所述区块链节点获得所述第n个区块的记账权,相比于pow共识机制,生成一个新区块不需要耗费大量的计算量,节省了能源,另外,相比于pos、dpos等共识机制,公平性较高。

图3为本发明另一实施例提供的区块链共识机制流程图。在上述实施例的基础上,本实施例提供的区块链共识机制具体包括如下步骤:

步骤301、区块链节点获取区块链中第n-1个区块的第一哈希值。

步骤301与步骤101的实现方式和具体原理一致,此处不再赘述。

步骤302、所述区块链节点接收所述其他区块链节点在区块链网络中广播的由所述其他区块链节点生成的第n个区块、以及所述其他区块链节点计算得到的由所述其他区块链节点生成的第n个区块的第二哈希值。

例如,在预设时间time-max内,区块链节点1最先计算出了第n个区块的哈希值hash-a,则区块链节点1先将hash-a和该第n个区块广播到区块链网络中,区块链节点2、区块链节点3可分别接收到hash-a和该第n个区块。其中,区块链节点1发出的该第n个区块包括区块链节点1预期得到的奖励金额money-a。

步骤303、所述区块链节点计算所述区块链节点生成的第n个区块的第二哈希值。

以区块链节点2为例,区块链节点2计算区块链节点2生成的第n个区块的哈希值为hash-b。

步骤304、所述区块链节点比较所述区块链节点计算得到的第二哈希值和所述第一哈希值的差值的绝对值,以及所述其他区块链节点计算得到的第二哈希值和所述第一哈希值的差值的绝对值。

区块链节点2比较区块链节点2计算得到的hash-b和第n-1个区块的哈希值的差值的绝对值,以及区块链节点1计算得到的hash-a和第n-1个区块的哈希值的差值的绝对值。

步骤305、如果所述区块链节点计算得到的第二哈希值和所述第一哈希值的差值的绝对值大于所述其他区块链节点计算得到的第二哈希值和所述第一哈希值的差值的绝对值,则所述区块链节点减小所述区块链节点生成的第n个区块中的奖励金额,其中,所述奖励金额的减小幅度大于预设幅度。

如果区块链节点2计算得到的hash-b和第n-1个区块的哈希值的差值的绝对值大于区块链节点1计算得到的hash-a和第n-1个区块的哈希值的差值的绝对值,则区块链节点2减小区块链节点2生成的第n个区块中的奖励金额,该奖励金额的减小幅度大于预设幅度,该预设幅度记为money-min。

步骤306、所述区块链节点重新计算第n个区块的第二哈希值。

区块链节点2减小区块链节点2生成的第n个区块中的奖励金额后,重新计算第n个区块的哈希值例如得到哈希值hash-b2。

区块链节点2继续比较hash-b2和第n-1个区块的哈希值的差值的绝对值,以及区块链节点1计算得到的hash-a和第n-1个区块的哈希值的差值的绝对值,假设区块链节点2计算出hash-b2后,该区块链网络中还是只有区块链节点1公布了hash-a和第n个区块的哈希值。若区块链节点2重新计算得到的hash-b2和第n-1个区块的哈希值的差值的绝对值大于区块链节点1计算得到的hash-a和第n-1个区块的哈希值的差值的绝对值,则区块链节点2继续减小区块链节点奖励金额2生成的第n个区块中的奖励金额,直到区块链节点2将奖励金额减小到某一个值时,区块链节点2重新计算得到的第n个区块的哈希值和第n-1个区块的哈希值的差值的绝对值小于区块链节点1计算得到的hash-a和第n-1个区块的哈希值的差值的绝对值。

步骤307、若所述区块链节点重新计算的第n个区块的第二哈希值与所述第一哈希值的差值的绝对值比当前时刻所述其他区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值小,且所述当前时刻在所述预设时间内,则所述区块链节点将其生成的第n个区块和所述第n个区块的第二哈希值广播到区块链网络中。

例如,区块链节点2将money-b减小到money-b5时,区块链节点2重新计算得到的第n个区块的哈希值和第n-1个区块的哈希值的差值的绝对值比当前时刻其他区块链节点计算的第n个区块的哈希值和第n-1个区块的哈希值的差值的绝对值小,也就是说,区块链节点2将money-b减小到money-b5时区块链节点2重新计算得到的第n个区块的哈希值和第n-1个区块的哈希值的差值的绝对值是最小的,且当前时刻还在预设时间time-max内,则区块链节点2将包括money-b5在内的第n个区块和该第n个区块的哈希值例如hash-b5广播到区块链网络中。具体的,区块链节点2可以采用自己的私钥对包括money-b5在内的第n个区块和该第n个区块的哈希值例如hash-b5签名后广播到区块链网络中。

另外,如果区块链节点2确定money-b5小于区块链节点2的付出,则区块链节点2可以停止记账。

本发明实施例通过各个区块链节点计算第n个区块的哈希值,并比较第n-1个区块的哈希值和第n个区块的哈希值,当某一个区块链节点计算出的第n个区块的哈希值与第n个区块的哈希值的差值的绝对值最小,或者,当某一个区块链节点计算出的第n个区块的哈希值与第n个区块的哈希值的差值的绝对值小于预设阈值,则该区块链节点就获得了所述第n个区块的记账权,降低了区块链节点的门槛,可以吸引更多的区块链节点参与到记账权的抢夺中,促进了区块链的发展。

图4为本发明实施例提供的区块链节点的结构示意图。本发明实施例提供的区块链节点可以执行区块链共识机制实施例提供的处理流程,如图4所示,区块链节点40包括:存储器41、处理器42、计算机程序和通讯接口43;其中,计算机程序存储在存储器41中,并被配置为由处理器42执行以下操作:获取区块链中第n-1个区块的第一哈希值;计算所述区块链节点生成的第n个区块的第二哈希值,所述区块链节点和其他区块链节点抢夺第n个区块的记账权,所述区块链节点生成的第n个区块包括所述区块链节点预期得到的奖励金额,所述其他区块链节点生成的第n个区块包括所述其他区块链节点预期得到的奖励金额;若在预设时间内,所述区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值比所述其他区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值小,或者所述区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值小于预设阈值,则所述区块链节点获得所述第n个区块的记账权,其中,所述预设时间是区块链网络中生成一个新区块所需的最长时间。

可选的,处理器42还用于:当所述区块链节点获得所述第n个区块的记账权后,通过所述通讯接口将生成的所述第n个区块广播到区块链网络中。

可选的,处理器42计算所述区块链节点生成的第n个区块的第二哈希值之前,还用于:通过所述通讯接口接收所述其他区块链节点在区块链网络中广播的由所述其他区块链节点生成的第n个区块、以及所述其他区块链节点计算得到的由所述其他区块链节点生成的第n个区块的第二哈希值;处理器42计算所述区块链节点生成的第n个区块的第二哈希值之后,还用于:比较所述区块链节点计算得到的第二哈希值和所述第一哈希值的差值的绝对值,以及所述其他区块链节点计算得到的第二哈希值和所述第一哈希值的差值的绝对值;如果所述区块链节点计算得到的第二哈希值和所述第一哈希值的差值的绝对值大于所述其他区块链节点计算得到的第二哈希值和所述第一哈希值的差值的绝对值,则减小所述区块链节点生成的第n个区块中的奖励金额,其中,所述奖励金额的减小幅度大于预设幅度。

可选的,处理器42减小所述区块链节点生成的第n个区块中的奖励金额之后,还用于:重新计算第n个区块的第二哈希值;若重新计算的第n个区块的第二哈希值与所述第一哈希值的差值的绝对值比当前时刻所述其他区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值小,且所述当前时刻在所述预设时间内,则通过所述通讯接口将生成的第n个区块和所述第n个区块的第二哈希值广播到区块链网络中。

可选的,若在预设时间内,所述区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值大于所述预设阈值,且所述其他区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值大于所述预设阈值,超出所述预设时间后,所述区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值比所述其他区块链节点计算的第二哈希值与所述第一哈希值的差值的绝对值小,则所述区块链节点获得所述第n个区块的记账权。

图4所示实施例的区块链节点可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

另外,本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现上述实施例所述的区块链共识机制。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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