区块链工作量证明生成方法技术

技术编号:33133513 阅读:14 留言:0更新日期:2022-04-17 00:54
本公开提供了一种区块链工作量证明生成方法,包括:获取一个密钥对,所述密钥对包括公钥和私钥;用所述私钥对最新区块的附加数据进行签名得到签名值;将所述公钥和所述签名值连接,得到第一数据段;通过哈希算法对所述第一数据段进行哈希计算,得到哈希值;基于所述哈希值小于预设值,将所述哈希值作为工作量证明。该方法,采用非对称密码算法的签名和验签计算来完成工作量证明,能够充分利用非对称密码算法的硬件资源,优化工作量证明算法,促进工作量证明生成方法的多样性,同时通过区块链的激励机制促进非对称密码算法的硬件基础设施建设,避免社会资源浪费。避免社会资源浪费。避免社会资源浪费。

【技术实现步骤摘要】
区块链工作量证明生成方法


[0001]本公开涉及工作量证明
,尤其涉及一种区块链工作量证明生成方法。

技术介绍

[0002]区块链工作量证明简称PoW,英文全称为Proof of Work。区块链工作量证明要求用户进行一些耗时的复杂运算,并且答案能被服务快速验算,以耗用的时间、设备与能源作为担保成本,来确保服务与资源是被真正的需求所使用。
[0003]现有PoW共识算法的核心是哈希算法。在区块链激励机制的刺激之下,区块链参与者设计出了性能强、效率高的哈希算力芯片,由哈希算力芯片组成专用计算设备,重复进行哈希算法以获得区块链奖励。专用哈希计算设备占用了巨大的社会资源,只是为了完成区块链共识而已,除此以外没有解决其他问题,所以在社会上存在PoW浪费资源、浪费能源这些方面的争议。

技术实现思路

[0004]本公开实施例提供了一种区块链工作量证明生成方法,采用非对称密码算法的签名和验签计算来完成工作量证明,能够充分利用非对称密码算法的硬件资源,优化工作量证明算法,促进工作量证明生成方法的多样性,同时通过区块链的激励机制促进非对称密码算法的硬件基础设施建设,避免社会资源浪费。
[0005]本公开实施例提供了一种区块链工作量证明生成方法,包括:
[0006]获取一个密钥对,所述密钥对包括公钥和私钥;
[0007]用所述私钥对最新区块的附加数据进行签名得到签名值;
[0008]将所述公钥和所述签名值连接,得到第一数据段;
[0009]通过哈希算法对所述第一数据段进行哈希计算,得到哈希值;
[0010]基于所述哈希值小于预设值,将所述哈希值作为工作量证明。
[0011]在一些实施例中,所述附加数据包括:最新区块的版本号、前置区块的哈希值、区块交易Merkle树根、区块创建时间戳和工作量证明算法难度。
[0012]在一些实施例中,用所述私钥对所述附加数据进行签名包括:
[0013]将所述附加数据按照设定顺利依次连接,得到第二数据段;
[0014]生成一个随机数;
[0015]用所述私钥和所述随机数对所述附加数据进行签名。
[0016]在一些实施例中,基于所述哈希值小于预设值,将所述哈希值作为工作量证明前还包括根据所述工作量证明算法难度生成所述预设值;
[0017]其中,所述工作量证明算法难度越大,所述预设值越小。
[0018]在一些实施例中,所述设定顺序为:最新区块的版本号、前置区块的哈希值、区块交易Merkle树根、区块创建时间戳、工作量证明算法难度。
[0019]在一些实施例中,所述哈希算法为以下任一种:SM3、SHA256、SHA3。
[0020]在一些实施例中,所述密钥对基于SM2算法生成。
[0021]在一些实施例中,将所述哈希值作为工作量证明之后还包括:
[0022]将所述公钥和与所述工作量证明对应的签名值发送给区块链验证者,以使区块链验证者对区块链工作量进行验证;
[0023]若验证通过,则获取所述最新区块的资产。
[0024]在一些实施例中,区块链验证者对区块链工作量进行验证包括:
[0025]用所述公钥和所述签名值初步验证所述附加数据,若初步验证通过,则将所述公钥和所述签名值连接,得到第二数据段,通过哈希算法对所述第二数据段进行哈希计算,得到验证哈希值,基于所述验证哈希值小于预设值验证通过。
[0026]在一些实施例中,获取所述最新区块的资产包括:
[0027]基于所述最新区块构造一个交易,所述交易采用接收者公钥作为交易的目的地址,以通过与所述接收者公钥对应的接收者私钥使用所述最新区块的资产。
[0028]本公开实施例的上述技术方案至少具有如下有益效果:
[0029]本公开实施例提供的区块链工作量证明生成方法,采用非对称密码算法的签名和验签计算来完成工作量证明,能够充分利用非对称密码算法的硬件资源,优化工作量证明算法,促进工作量证明生成方法的多样性,同时通过区块链的激励机制促进非对称密码算法的硬件基础设施建设,避免社会资源浪费。
附图说明
[0030]图1是根据本公开一实施例提供的一种区块链工作量证明生成方法的流程图。
[0031]图2是根据本公开一实施例提供的区块链工作量验证方法流程图。
具体实施方式
[0032]为使本公开的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本公开进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
[0033]本公开,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0034]在本公开的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0035]此外,下面所描述的本公开不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
[0036]本公开实施例用非对称密码算法的签名算法代替哈希算法,作为PoW共识的核心算法,能够充分利用非对称密码算法的硬件资源,优化工作量证明算法,促进工作量证明生成方法的多样性,同时通过区块链的激励机制促进非对称密码算法的硬件基础设施建设。
[0037]图1是根据本公开一实施例提供的一种区块链工作量证明生成方法的流程图。如图1所示,本公开实施例提供了一种区块链工作量证明生成方法,包括如下步骤:
[0038]S101:获取一个密钥对,密钥对包括公钥和私钥,本实施例中的密钥对为非对称密码算法密钥对,可选基于SM2算法生成。
[0039]S102:用私钥对最新区块的附加数据进行签名得到签名值。在进行签名计算时,先将附加数据按照设定顺利依次连接,得到第二数据段,再基于预先定义的非对称密码算法用私钥对第二数据段进行签名。附加数据可选包括:最新区块的版本号、前置区块的哈希值、区块交易Merkle树根、区块创建时间戳和工作量证明算法难度。使用者可根据实际情况设置附加数据的排列顺序,设定顺序可选为:最新区块的版本号、前置区块的哈希值、区块交易Merkle树根、区块创建时间戳、工作量证明算法难度。在进行签名计算时,非对称密码算法要求选用一个随机数,同一个私钥进行多次签名时选择的不能重复,否则就有泄露私钥的风险。本实施例通过真随机数发生器来产生随机数,以确保随机数的随机性能够达到要求并且随机数不会重复。
[0040]S103:将公钥和签名值连接,得到第一数据段。在一些实施例中,第一数据段还包括最新区块的附加数据,使用者可根据实际情况设置第一数据段中各个数据域的排列顺序,排序可选为:附加数据、公钥、签名值。
[0041]S104:通过哈希算法对第一数据段进行哈希计本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链工作量证明生成方法,其特征在于,包括:获取一个密钥对,所述密钥对包括公钥和私钥;用所述私钥对最新区块的附加数据进行签名得到签名值;将所述公钥和所述签名值连接,得到第一数据段;通过哈希算法对所述第一数据段进行哈希计算,得到哈希值;基于所述哈希值小于预设值,将所述哈希值作为工作量证明。2.根据权利要求1所述的区块链工作量证明生成方法,其特征在于,所述附加数据包括:最新区块的版本号、前置区块的哈希值、区块交易Merkle树根、区块创建时间戳和工作量证明算法难度。3.根据权利要求2所述的区块链工作量证明生成方法,其特征在于,用所述私钥对所述附加数据进行签名包括:将所述附加数据按照设定顺利依次连接,得到第二数据段;生成一个随机数;用所述私钥和所述随机数对所述附加数据进行签名。4.根据权利要求2所述的区块链工作量证明生成方法,其特征在于,基于所述哈希值小于预设值,将所述哈希值作为工作量证明前还包括根据所述工作量证明算法难度生成所述预设值;其中,所述工作量证明算法难度越大,所述预设值越小。5.根据权利要求3所述的区块链工作量证明生成方法,其特征在于,所述设定顺序为:最新区块的版本号、前置区块的哈希值、区块交易Merkle...

【专利技术属性】
技术研发人员:霍晓芳
申请(专利权)人:北京智云芯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1