本发明属于区块链领域,尤其涉及基于区块链的时间戳标记方法、装置、设备及存储介质。
背景技术:
区块链是一个分布式的共享账本和数据库,具有去中心化、不可篡改、全程留痕、可以追溯、集体维护、公开透明等特点。
区块链是区块以链的方式组合在一起形成的去中心化的数据库。具体地,把一段时间内生成的信息打包生成一个区块,为该区块添加一个可信时间戳,再与上一个区块衔接在一起,如此首尾相连,形成了区块链。其中,每一个区块的区块头中,除了初始区块外,都包括了上一个区块的哈希值,每一个区块的区块体中包括至少一个交易,交易中包括所生成的信息如包括存证数据等,记录了一定时间内各个区块节点全部的交流信息。由于区块链在生成区块时添加了可信时间戳,使得保存在区块链中的信息生成的时间是可信的,如此为区块链赋予可信时间。
在通常的区块链服务中,会在排序服务环节,对交易id、交易哈希、签名等信息打上可信时间戳,为链上交易提供可信的时间支持。
常规方案中,每一笔交易都会调用一次时间戳的服务,当进行批量交易时,若仍然采用常规的方案,多次交易就会多次从第三方时间戳厂商处调用时间戳。如此,第一会消耗系统业务执行的时间,第二时间戳服务的来源为第三方的时间戳厂商,调用第三方的服务有概率出现问题。
技术实现要素:
本发明的目的在于,为克服现有技术缺陷,提供了一种基于区块链的时间戳标记方法、装置、设备及存储介质,通过将时间戳打在批量交易通过二叉树算法获得的默克尔根哈希上,对批量交易进行时间戳认证,减少对时间戳的调用次数,降低额外服务接入所带来的系统故障风险,同时增加系统交易的处理效率。
本发明目的通过下述技术方案来实现:
本发明提出的基于区块链的时间戳标记方法,包括以下步骤:
s11:接收到批量交易提议后,各peer节点为交易进行背书;
s12:将交易信息进行打包;
s13:将打包好的区块进行出块,出块包含区块高度、本区块链的区块哈希和上一区块链的区块哈希;
s14:对批量交易第一个生成的区块标记可信时间为最先可信时间,对批量交易最后一个生成的区块标记可信时间为最后可信时间;最先可信时间和最后可信时间用于后续对每一笔交易进行验证,只有当所验证的交易的上链时间在最先可信时间和最后可信时间之间,才能证实该笔交易的真实性;
s15:对批量交易所生成的所有区块的区块哈希进行默克尔根运算,得到根哈希;
s16:对根哈希标记可信时间为根哈希时间;
s17:将根哈希时间和区块高度写入新的交易,此处将根哈希时间也上链,如此能够保证根哈希时间的真实性。
进一步的,交易信息包括交易id、交易哈希和签名信息。
进一步的,基于区块链的时间戳标记方法还包括步骤s18:将写入新的交易的根哈希时间和区块高度进行新的打包操作,得到新区块哈希和新区块高度。
进一步的,新区块哈希和新区块高度与上一区块链的区块哈希进行打包出块,形成新区块,新区块和下一批执行步骤s11-s13生成的区块一同执行步骤s14-s18。通过将根哈希时间和下一批的区块一同执行步骤s14-s18能够防止根哈希时间被篡改。
进一步的,基于区块链的时间戳标记方法还包括核验步骤:
s21:用户输入批量交易中任一笔交易的验证信息进行核验;
s22:判断核验的交易的上链时间是否在最先可信时间和最后可信时间之间。
进一步的,验证信息包括交易id、区块高度和发起交易时用户上传的数据指纹。通过本核验步骤提供的方法,用户可以对本次批量交易中的任一笔交易进行核验,保证其真实性。
另一方面,本申请提供了一种基于区块链的时间戳标记装置,包括交易共识单元、交易打包单元、交易出块单元、时间标记单元和根哈希计算单元;
交易共识单元,用于为交易进行背书;
交易打包单元,用于将交易信息进行打包;
交易出块单元,将打包好的区块进行出块,出块包含区块高度、本区块链的区块哈希和上一区块链的区块哈希;
时间标记单元,用于对区块标记可信时间;
根哈希计算单元,用于对批量交易所生成的所有区块的区块哈希进行默克尔根运算,得到根哈希。
进一步的,还包括交易核验单元,用于核验任一笔的交易的上链时间是否在最先可信时间和最后可信时间之间。
另一方面,本申请提供了一种计算机设备,计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现上述的任意一种基于区块链的时间戳标记方法。
另一方面,本申请提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现上述的任意一种基于区块链的时间戳标记方法。
本发明的有益效果在于:通过将时间戳打在批量交易通过二叉树算法获得的默克尔根哈希上,对批量交易进行时间戳认证,仅需要再对每次批量交易生成的第一个区块和最后一个区块打上时间戳,就可以通过上述三个时间戳保证本次批量交易的任一笔交易的真实性。同时,还可以根据任一笔的交易的上链时间是否在最先可信时间和最后可信时间之间来验证该笔交易的真实性。本发明减少了在批量交易中对时间戳的调用次数,降低额外服务接入所带来的系统故障风险,同时增加系统交易的处理效率。
附图说明
图1是本发明实施例1提供的基于区块链的时间戳标记方法流程框图;
图2是本发明实施例1提供的根哈希计算与时间戳标记示意图;
图3是本发明实施例2提供的基于区块链的时间戳标记方法流程框图;
图4是本发明实施例3提供的基于区块链的时间戳标记装置示意图;
图5是本发明实施例4提供的基于区块链的时间戳标记装置示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,为使本发明实施例的目的、技术方案和优点更加清楚,下面对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
因此,以下对本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如附图1所示,是本优选实施例提供的基于区块链的时间戳标记方法,该基于区块链的时间戳标记方法的具体流程可以如下:
101,接收到批量交易提议后,各peer节点为交易进行背书。
102,将交易id、交易哈希、签名等信息进行打包。
103,将打包好的区块进行出块,出块包含区块高度number、本区块链的区块哈希datahash和上一区块链的区块哈希prehash。
104,本次批量交易共生成n个块,对批量交易第一个生成的区块标记可信时间为最先可信时间first_time,对批量交易生成的第n个区块标记可信时间为最后可信时间last_time。
105,对批量交易所生成的所有区块的区块哈希datahash进行默克尔根运算,得到根哈希datahash_root。
如附图2所示,是本实施例提供的根哈希计算与时间戳标记示意图,该示意图仅例举了生成的四个区块的区块哈希datahash,应当理解的是,本实施例所产生的区块应当为n个。
106,对根哈希datahash_root标记可信时间为根哈希时间datahash_with_time;因为datahash中包含交易详情、签名等关键信息,因此输入无论输入哪一笔交易的要素,都能在账本中核验交易要素前后的一致性。
此处需要说明的是,t1为区块链出块最小的默认时间,t2为调取时间戳服务的延迟时间,n为出块的最大响应时间,如果t1 t2≥nms,且排除时间戳服务的异常,则可说明该交易异常。
107,将根哈希时间和区块高度写入新的交易。
108,将写入新的交易的根哈希时间和区块高度进行新的打包操作,得到新区块哈希和新区块高度。
新区块哈希和新区块高度与上一区块链的区块哈希进行打包出块,形成新区块,新区块和下一批执行步骤101-103生成的区块一同执行步骤104-108。
将根哈希时间也上链,保证这个时间戳的真实性,同时根哈希时间和区块高度写入新的交易,执行步骤101-103,形成新的区块,再和下一批n个区块一同执行步骤104-108,环环相扣,防止被篡改。
本实施例通过将时间戳打在批量交易通过二叉树算法获得的默克尔根哈希上,对批量交易进行时间戳认证,减少对时间戳的调用次数,降低额外服务接入所带来的系统故障风险,同时增加系统交易的处理效率。
实施例2
如附图3所示,是本优选实施例提供的另一种基于区块链的时间戳标记方法,该基于区块链的时间戳标记方法的具体流程与实施例1相同的步骤不再赘述,本实施例在上述流程的基础上,还包括一个核验步骤,核验步骤的具体流程如下:
201:用户输入批量交易中任一笔交易的验证信息{datafinger,交易id,区块高度number}进行核验,其中,datafinger为发起交易时用户上传的数据指纹。
202:判断核验的交易的上链时间是否在最先可信时间first_time和最后可信时间last_time之间,其中,上链时间是区块链自动生成的时间,并非调用时间戳服务所标记的时间。若该笔交易的上链时间是在最先可信时间first_time和最后可信时间last_time之间,则证明了该笔交易的真实性。若该笔交易的上链时间不在最先可信时间first_time和最后可信时间last_time之间,则证明了该笔交易出现了问题,可能遭到了篡改。
本实施例在实施例1的有益效果基础上,还能够对任一笔交易进行核验,保证了交易的真实性。
实施例3
如附图4所示,是本优选实施例提供的一种基于区块链的时间戳标记装置,该基于区块链的时间戳标记装置,包括交易共识单元、交易打包单元、交易出块单元、时间标记单元和根哈希计算单元;其中,
交易共识单元,用于为交易进行背书。
交易打包单元,用于将交易信息进行打包,交易信息包括交易id、交易哈希、签名信息等。
交易出块单元,将打包好的区块进行出块,出块包含区块高度number、本区块链的区块哈希datahash和上一区块链的区块哈希prehash。
根哈希计算单元,用于对批量交易所生成的所有区块的区块哈希进行默克尔根运算,得到根哈希datahash_root。
时间标记单元,用于对批量交易产生的n个区块中的第一个区块标记最先可信时间first_time,对批量交易产生的n个区块中的第n个区块标记最后可信时间last_time,以及为根哈希datahash_root标记根哈希时间datahash_with_time。
以上装置和各单元的具体实现过程,以及所达到的有益效果,可以参考前述基于区块链的时间戳标记方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
实施例4
如附图5所示,是本优选实施例提供的另一种基于区块链的时间戳标记装置,该基于区块链的时间戳标记装置与实施例3重复部分不再进行赘述,本实施例在上述装置的基础上,还包括一个交易核验单元,其中,交易核验单元用于核验任一笔的交易的上链时间是否在最先可信时间first_time和最后可信时间last_time之间。
以上装置和各单元的具体实现过程,以及所达到的有益效果,可以参考前述基于区块链的时间戳标记方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
实施例5
本优选实施例提供了一种计算机设备,该计算机设备可以实现本申请实施例所提供的基于区块链的时间戳标记方法任一实施例中的步骤,因此,可以实现本申请实施例所提供的基于区块链的时间戳标记方法的有益效果,详见前面的实施例,在此不再赘述。
实施例6
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的基于区块链的时间戳标记方法中任一实施例的步骤。
其中,该存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一基于区块链的时间戳标记方法实施例中的步骤,因此,可以实现本发明实施例所提供的任一基于区块链的时间戳标记方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
前述本发明基本例及其各进一步选择例可以自由组合以形成多个实施例,均为本发明可采用并要求保护的实施例。本发明方案中,各选择例,与其他任何基本例和选择例都可以进行任意组合。本领域技术人员可知有众多组合。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
1.基于区块链的时间戳标记方法,其特征在于:包括以下步骤:
s11:接收到批量交易提议后,各peer节点为交易进行背书;
s12:将交易信息进行打包;
s13:将打包好的区块进行出块,出块包含区块高度、本区块链的区块哈希和上一区块链的区块哈希;
s14:对批量交易第一个生成的区块标记可信时间为最先可信时间,对批量交易最后一个生成的区块标记可信时间为最后可信时间;
s15:对批量交易所生成的所有区块的区块哈希进行默克尔根运算,得到根哈希;
s16:对根哈希标记可信时间为根哈希时间;
s17:将根哈希时间和区块高度写入新的交易。
2.如权利要求1所述的基于区块链的时间戳标记方法,其特征在于:所述交易信息包括交易id、交易哈希和签名信息。
3.如权利要求1所述的基于区块链的时间戳标记方法,其特征在于:所述方法还包括步骤s18:将写入新的交易的根哈希时间和区块高度进行新的打包操作,得到新区块哈希和新区块高度。
4.如权利要求3所述的基于区块链的时间戳标记方法,其特征在于:所述新区块哈希和所述新区块高度与上一区块链的区块哈希进行打包出块,形成新区块,新区块和下一批执行步骤s11-s13生成的区块一同执行步骤s14-s18。
5.如权利要求1-4任一所述的基于区块链的时间戳标记方法,其特征在于:所述方法还包括核验步骤:
s21:用户输入批量交易中任一笔交易的验证信息进行核验;
s22:判断核验的交易的上链时间是否在最先可信时间和最后可信时间之间。
6.如权利要求5所述的基于区块链的时间戳标记方法,其特征在于:所述验证信息包括交易id、区块高度和发起交易时用户上传的数据指纹。
7.基于区块链的时间戳标记装置,其特征在于:包括交易共识单元、交易打包单元、交易出块单元、时间标记单元和根哈希计算单元;
交易共识单元,用于为交易进行背书;
交易打包单元,用于将交易信息进行打包;
交易出块单元,将打包好的区块进行出块,出块包含区块高度、本区块链的区块哈希和上一区块链的区块哈希;
时间标记单元,用于对区块标记可信时间;
根哈希计算单元,用于对批量交易所生成的所有区块的区块哈希进行默克尔根运算,得到根哈希。
8.如权利要求7所述的基于区块链的时间戳标记装置,其特征在于:还包括交易核验单元,用于核验任一笔的交易的上链时间是否在最先可信时间和最后可信时间之间。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至6任一项所述的基于区块链的时间戳标记方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求1至6任一项所述的基于区块链的时间戳标记方法。
技术总结