区块链网络的记账方法及装置与流程

文档序号:21639712发布日期:2020-07-29 02:50阅读:458来源:国知局
区块链网络的记账方法及装置与流程

本发明涉及计算机技术领域,具体地,涉及一种区块链网络的记账方法、一种区块链网络的记账装置



背景技术:

区块链是一种基于分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的去中心化的数据库。区块链网络通过赋予参与记账的节点数字权益来激励更多节点参与到分布式记账中,而参与记账的节点越多,这个区块链账本就越可靠。

以比特币为例,在比特币网络中,平均每10分钟就会产生一个区块,每10分钟有一道数学题被丢到比特币网络中,参与记账的各个节点使用算力进行计算这道题,谁最快且正确计算出这道题的答案,就能获得本次记账权,而只有获得记账权的节点获得本次的比特币奖励。上述争夺记账权的过程也被通俗的形容为“挖矿”。随着比特币市场价值的水涨船高,有越来越多的资源和算力被投入到挖矿中。但是,在比特币网络中,各个节点抢夺记账权所解决的数学题主要为寻找随机数的密码学难题。但是该密码学难题往往不具有实际意义。

目前亟需提高区块链挖矿效率的方法。



技术实现要素:

为解决现有技术存在的上述问题的至少一个方面,本发明提供一种区块链网络的记账方法、一种区块链网络的记账装置。

作为本发明的第一个方面,提供一种区块链网络的记账方法,所述区块链网络包括多个节点,所述记账方法包括:

根据第n个区块的哈希值,确定获取第n+1个区块的记账权所要解决的目标任务,所述目标任务为所述区块链网络中的多个计算任务中满足预定条件的一者,其中,n为大于0的整数;

计算所述目标任务,当计算得到所述目标任务的第一计算结果时,生成第一新增区块,将所述目标任务的第一任务标识和所述第一计算结果写入所述第一新增区块的区块头;

将所述第一新增区块广播到区块链网络中,以使其他节点对所述第一计算结果进行验证;

当验证通过时,当前节点获得第n+1个区块的记账权,将所述第一新增区块作为第n+1个区块写入区块链账本。

可选地,所述预定条件为:

将所述区块链网络中的多个计算任务中哈希值与所述第n个区块的哈希值的差最小的一者确定为所述目标任务。

可选地,所述第一新增区块的区块头包括生成方式标识,所述生成方式标识包括第一生成方式和/或第二生成方式,所述第一生成方式表征通过计算目标任务获取记账权;所述第二生成方式表征通过计算随机数获取记账权。

可选地,在将所述第一新增区块广播到区块链网络中,以使其他节点对所述计算结果进行验证的步骤之前,所述记账方法还包括:

将所述第一新增区块的区块头中所述生成方式标识修改为所述第一生成方式。

可选地,所述记账方法还包括:

当接收到所述区块链网络中其他节点发送的第二新增区块的广播消息时,根据第n个区块的哈希值和所述第二新增区块的区块头中记录的第二任务标识,验证所述第二新增区块的区块头中记录的第二计算结果是否为所述目标任务的计算结果;

若所述第二计算结果为所述目标任务的计算结果,验证所述第二计算结果是否正确;

若所述第二计算结果正确,将所述第二新增区块作为第n+1个区块写入区块链账本。

作为本发明的第二个方面,提供一种区块链网络的记账装置,所述记账装置用作所述区块链网络的节点,所述记账装置包括:

目标任务提取模块,用于根据第n个区块的哈希值,确定获取第n+1个区块的记账权所要解决的目标任务,所述目标任务为所述区块链网络中的多个计算任务中满足预定条件的一者,其中,n为大于0的整数;

计算模块,用于计算所述目标任务,当计算得到所述目标任务的第一计算结果时,生成第一新增区块,将所述目标任务的第一任务标识和所述第一计算结果写入所述第一新增区块的区块头;

广播模块,用于将所述第一新增区块广播到区块链网络中,以使其他节点对所述第一计算结果进行验证;

记账模块,当验证通过时,当前节点获得第n+1个区块的记账权,所述记账模块用于将所述第一新增区块作为第n+1个区块写入区块链账本。

可选地,所述预定条件为:

将所述区块链网络中的多个计算任务中哈希值与所述第n个区块的哈希值的差最小的一者确定为所述目标任务。

可选地,所述第一新增区块的区块头包括生成方式标识,所述生成方式标识包括第一生成方式和/或第二生成方式,所述第一生成方式表征通过计算目标任务获取记账权;所述第二生成方式表征通过计算随机数获取记账权。

可选地,所述记账装置还包括区块配置模块;

在所述广播模块将所述第一新增区块广播到区块链网络中,以使其他节点对所述计算结果进行验证之前,所述区块配置模块用于将所述第一新增区块的区块头中所述生成方式标识修改为所述第一生成方式。

可选地,所述记账装置还包括:

第一验证模块,用于当接收到所述区块链网络中其他节点发送的第二新增区块的广播消息时,根据第n个区块的哈希值和所述第二新增区块的区块头中记录的第二任务标识,验证所述第二新增区块的区块头中记录的第二计算结果是否为所述目标任务的计算结果;

第二验证模块,若所述第二计算结果为所述目标任务的计算结果,所述第二验证模块用于验证所述第二计算结果是否正确;

若所述第二计算结果正确,所述记账模块用于将所述第二新增区块作为第n+1个区块写入区块链账本。

本发明提供的记账方法,由区块链网络中的各个节点发布附加解题奖励的计算任务,激励各个节点通过解决计算任务来抢夺记账权,替代传统的通过寻找随机数来抢夺记账权的方式,使得原本被用于寻找随机数的无意义的计算中的算力和资源可以被运用到解决具有实际意义的计算任务中来,从而提高了资源和算力的利用效率,提升了区块链网络挖矿过程的价值;同时,通过设定与第n个区块的哈希值有关的预定条件,来确定获取第n+1个区块的记账权所要解决的目标任务,使得发布到所述区块链网络中的各个计算任务具有平等的机会被选为获取第n+1个区块的记账权所要解决的目标任务,从而避免各个节点优先选择解决难度低但能够获得更多数字权益的计算任务,从而使在所述区块链网络中发布计算任务的成本保持在较低水平,同时进一步提高了资源和算力的利用效率。

附图说明

附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:

图1是本发明提供的所述记账方法的一种实施方式的流程图;

图2是本发明提供的所述记账方法的另一种实施方式的流程图;

图3是本发明提供的所述记账方法的又一种实施方式的流程图;

图4是本发明提供的所述记账装置的一种实施方式的模块图。

具体实施方式

以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。

作为本实施方式的第一个方面,提供一种区块链网络的记账方法,所述区块链网络包括多个节点,如图1所示,所述记账方法包括:

在步骤s110中,根据第n个区块的哈希值,确定获取第n+1个区块的记账权所要解决的目标任务,所述目标任务为所述区块链网络中的多个计算任务中满足预定条件的一者,其中,n为大于0的整数;

在步骤s120中,计算所述目标任务,当计算得到所述目标任务的第一计算结果时,生成第一新增区块,将所述目标任务的第一任务标识和所述第一计算结果写入所述第一新增区块的区块头;

在步骤s130中,将所述第一新增区块广播到区块链网络中,以使其他节点对所述第一计算结果进行验证;

在步骤s140中,当验证通过时,当前节点获得第n+1个区块的记账权,将所述第一新增区块作为第n+1个区块写入区块链账本。

需要说明的是,在本实施方式中,在所述区块链网络中,包括节点,每个节点都有各自的区块链标识,作为在所述区块链网络中唯一的身份标识;每个节点都具有各自的公私钥对,其中公钥在所述区块链网络中公开,私钥由各个用户终端节点或微基站各自保存。与一般区块链网络相同,在本实施方式中,当某一个节点向区块链网络发送广播消息时,都需要使用该节点的私钥对广播消息进行签名;当某一个节点接收到区块链网络中的广播消息时,都需要使用发送该广播消息的节点的公钥对该广播消息的数字签名进行验证,当验证通过才执行后续步骤。

在本实施方式的步骤s110中,所述区块链网络中的多个计算任务是由所述区块链网络的各个节点发布的;所述区块链网络的任何一个节点都可以通过广播消息向所述区块链网络发布计算任务,如前文所述,节点通过广播消息发布计算任务前,使用该节点的私钥对所述广播消息进行签名,以使得所述区块链网络中的其他节点可以使用该节点的公钥对该广播消息进行验证。

为解决现有区块链中,通过计算随机数强度记账权造成资源和算力大量浪费的问题,在本实施方式中,发布到所述区块链网络中的计算任务可以是一个完整的有实际意义的计算题目,也可以是实际的大型计算工作中的一部分。在本实施方式提供的记账方法中,通过解决上述具有实际意义的计算任务来抢夺记账权。此外,在本实施方式中,各个节点在发布计算任务中,会为每个计算任务分配一点数量的数字权益。计算出一个计算任务的结果,就可以获得对应的数字权益,从而激励更多节点通过解决计算任务来抢夺记账权。越多的节点通过解决计算任务抢夺记账权,意味着有越多的原本被用于寻找随机数的无意义的计算中的算力和资源可以被运用到解决具有实际意义的计算任务中来,从而提高了资源和算力的利用效率,提升了区块链网络挖矿过程的价值。

经本发明的发明人研究发现,当所述区块链网络中存在大量计算任务、而为每个计算任务分配的数字权益不同时,所述区块链网络中的节点将更倾向于通过解决难度低但能够获得的数字权益更多的计算任务来抢夺记账权。这会导致在所述区块链网络中发布计算任务的成本升高,降低了资源和算力的利用效率。

为解决上述问题,在本申请的步骤s110中,通过设定与第n个区块的哈希值有关的预定条件,来确定获取第n+1个区块的记账权所要解决的目标任务,其中,第n个区块是上一记账周期中在所述区块链网络中最新生成的区块,第n+1个区块是当前记账周期中将要生成的区块。因为哈希值具有唯一性,当第n个区块被写入区块链账本时,所述第n个区块的哈希值就确定了,相应地,满足与第n个区块的哈希值有关的预定条件的目标任务也就确定了;而由于哈希值的不可预测性,即使输入哈希函数的信息仅有微小区别,那么根据哈希算法得出来的哈希值也相差甚远,因此,在所述预定条件不变的情况下,确定获取第n+1个区块的记账权所要解决的目标任务的过程近似于随机过程。因此,发布到所述区块链网络中的各个计算任务具有平等的机会被选为获取第n+1个区块的记账权所要解决的目标任务,从而使得在所述区块链网络中发布计算任务的成本保持在较低水平,同时提高了资源和算力的利用效率。

确定了获取第n+1个区块的记账权所要解决的目标任务后,在步骤s120中,计算所述目标任务;当得到计算结果时,生成新增区块,将所述目标任务的任务标识和计算结果写入第一新增区块的区块头;并在步骤s130中,将所述第一新增区块广播到区块链网络中,以使其他节点对所述计算结果进行验证;在步骤s140中,当验证通过时,当前节点就获得了第n+1个区块的记账权,将所述第一新增区块作为第n+1个区块写入区块链账本。

可以理解的是,当当前节点获得了第n+1个区块的记账权时,也同时获得了所述目标任务对应的数字权益。

本实施方式提供的记账方法,由区块链网络中的各个节点发布附加解题奖励的计算任务,激励各个节点通过解决计算任务来抢夺记账权,替代传统的通过寻找随机数来抢夺记账权的方式,使得原本被用于寻找随机数的无意义的计算中的算力和资源可以被运用到解决具有实际意义的计算任务中来,从而提高了资源和算力的利用效率,提升了区块链网络挖矿过程的价值;同时,通过设定与第n个区块的哈希值有关的预定条件,来确定获取第n+1个区块的记账权所要解决的目标任务,使得发布到所述区块链网络中的各个计算任务具有平等的机会被选为获取第n+1个区块的记账权所要解决的目标任务,从而避免各个节点优先选择解决难度低但能够获得更多数字权益的计算任务,从而使在所述区块链网络中发布计算任务的成本保持在较低水平,同时进一步提高了资源和算力的利用效率。

在本实施方式中,对根据第n个区块的哈希值,确定获取第n+1个区块的记账权所要解决的目标任务的所述预定条件不做特殊限定。作为一种可选的实施方式,因为所述区块链网络中的各个计算任务也具有哈希值,可以将各个计算任务的哈希值与第n个区块的哈希值进行比较来确定获取第n+1个区块的记账权所要解决的目标任务。相应地,所述预定条件为:

将所述区块链网络中的多个计算任务中哈希值与所述第n个区块的哈希值的差最小的一者确定为所述目标任务。

因为哈希值的不可预测性,将各个计算任务的哈希值与第n个区块的哈希值进行比较能够进一步增加确定获取第n+1个区块的记账权所要解决的目标任务的过程的随机性。

进一步地,作为一种可选的实施方式,步骤s120中所述目标任务的任务标识包括记录所述目标任务的区块的序号、所述目标任务的哈希值。

当所述目标任务是通过将各个计算任务的哈希值与第n个区块的哈希值进行比较确定的时,区块链中的其他节点就可以根据所述目标任务的区块的序号、所述目标任务的哈希值来确定当前节点所确认的目标任务是否符合预设条件,并进一步验证所述计算结果是否正确。

在本实施方式中,各个节点可以通过解决目标任务的方式来抢夺第n+1个区块的记账权,也可以通过传统的寻找随机数的方式抢夺记账权。用不同的方式抢夺记账权,对计算结果的验证方式也不同。为了区分第一新增区块是通过哪一种方式生成的,作为一种可选的实施方式,所述第一新增区块的区块头包括生成方式标识,所述生成方式标识包括第一生成方式和/或第二生成方式,所述第一生成方式表征通过计算目标任务获取记账权;所述第二生成方式表征通过计算随机数获取记账权。

进一步地,作为一种可选的实施方式,所述记账方法除了包括上述步骤s110到步骤s140以外,如图2所示,在步骤s130之前,还包括:

在步骤s150中,将所述第一新增区块的区块头中所述生成方式标识修改为所述第一生成方式。

在当前节点计算所述目标任务的同时,还有其他节点参与第n+1个区块的记账权的抢夺。当某一个节点先得到计算结果时,就会生成第二新增区块,并将所述第二新增区块广播到区块链网络中。

如上文所述,各个节点可以通过解决目标任务的方式来抢夺第n+1个区块的记账权,也可以通过传统的寻找随机数的方式抢夺记账权。因此,当前节点接收到其他节点发送的第二新增区块的广播消息时,通过所述第二新增区块的区块头中的生成方式标识判断生成所述第二新增区块的节点抢夺记账权的方式。

当所述第二新增区块的区块头中的生成方式标识为第一生成方式时,作为一种可选的实施方式,如图3所示,所述记账方法还包括:

在步骤s160中,当接收到所述区块链网络中其他节点发送的第二新增区块的广播消息时,根据第n个区块的哈希值和所述第二新增区块的区块头中记录的第二任务标识,验证所述第二新增区块的区块头中记录的第二计算结果是否为所述目标任务的计算结果;

在步骤s170中,若所述第二计算结果为所述目标任务的计算结果,验证所述第二计算结果是否正确;

在步骤s180中,若所述第二计算结果正确,将所述第二新增区块作为第n+1个区块写入区块链账本。

需要说明的是,若步骤s160或步骤s170验证不通过,当前节点舍弃所述第二新增区块,并继续按照当前的抢夺记账权的方式参与记账权抢夺。

需要进一步说明的是,在实际应用中,可以对本实施方式中提供的各不同步骤进行组合,以得到新的技术方案,该新的技术方案也应属于本公开的保护范围。

作为本实施方式的第二个方面,提供一种区块链网络的记账装置100,所述记账装置100用作所述区块链网络的节点,如图4所示,所述记账装置包括:

目标任务提取模块110,用于根据第n个区块的哈希值,确定获取第n+1个区块的记账权所要解决的目标任务,所述目标任务为所述区块链网络中的多个计算任务中满足预定条件的一者,其中,n为大于0的整数;

计算模块120,用于计算所述目标任务,当计算得到所述目标任务的第一计算结果时,生成第一新增区块,将所述目标任务的第一任务标识和所述第一计算结果写入所述第一新增区块的区块头;

广播模块130,用于将所述第一新增区块广播到区块链网络中,以使其他节点对所述第一计算结果进行验证;

记账模块140,当验证通过时,当前节点获得第n+1个区块的记账权,所述记账模块用于将所述第一新增区块作为第n+1个区块写入区块链账本。

可选地,所述预定条件为:

将所述区块链网络中的多个计算任务中哈希值与所述第n个区块的哈希值的差最小的一者确定为所述目标任务。

可选地,所述第一新增区块的区块头包括生成方式标识,所述生成方式标识包括第一生成方式和/或第二生成方式,所述第一生成方式表征通过计算目标任务获取记账权;所述第二生成方式表征通过计算随机数获取记账权。

可选地,所述记账装置100还包括区块配置模块150;

在所述广播模块130将所述第一新增区块广播到区块链网络中,以使其他节点对所述计算结果进行验证之前,所述区块配置模块150用于将所述第一新增区块的区块头中所述生成方式标识修改为所述第一生成方式。

可选地,所述记账装置100还包括:

第一验证模块160,用于当接收到所述区块链网络中其他节点发送的第二新增区块的广播消息时,根据第n个区块的哈希值和所述第二新增区块的区块头中记录的第二任务标识,验证所述第二新增区块的区块头中记录的第二计算结果是否为所述目标任务的计算结果;

第二验证模块170,若所述第二计算结果为所述目标任务的计算结果,所述第二验证模块用于验证所述第二计算结果是否正确;

若所述第二计算结果正确,所述记账模块140用于将所述第二新增区块作为第n+1个区块写入区块链账本。

本实施方式提供的记账装置用于执行本实施方式第一个方面提供的记账方法,上文已经对所述记账方法的原理和有益效果进行了详细地描述,此处不再赘述。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

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