一种块链式账本的授时认证方法、装置及设备制造方法及图纸

技术编号:22330103 阅读:24 留言:0更新日期:2019-10-19 12:16
公开了一种块链式账本的授时认证方法、装置及设备。本申请实施例通过在可信执行环境(Trusted Execution Environment,TEE)执行抓取可信时间的代码,获取可信时间,从而实现对目标账本的根哈希和可信时间进行数字签名,保障了账本中时间戳的可信度,并且用户可以随时基于数据块的根哈希对验证。

A time service certification method, device and equipment of block chain account book

【技术实现步骤摘要】
一种块链式账本的授时认证方法、装置及设备
本说明书实施例涉及信息
,尤其涉及一种块链式账本的授时认证方法、装置及设备。
技术介绍
在以链式账本的方式对数据记录进行中心化的存储时,虽然服务方本身已经难以对数据进行直接修改,但此时,仍然存在用户或者企业与服务方联合作假的可能性。例如,为逃避审计,用户和服务方联合起来对于部分数据块进行了伪造,形成了一条难以验证的伪链。基于此,需要一种可以保证账本真实性的授时认证方案。
技术实现思路
本申请实施例的目的是提供一种块链式账本中保障账本真实性的方法。为解决上述技术问题,本申请实施例是这样实现的:一种块链式账本的授时认证方法,应用于通过块链式账本存储数据的中心化的数据库服务端中,包括:确定需要进行授时的目标账本;按照所述目标账本中数据块的块高的顺序,生成对应于所述目标账本的默克尔树,基于各数据块的块哈希确定所述默克尔树的根哈希;在可信执行环境中执行预先设定的时间抓取代码,获取可信时间,生成可信执行环境对所述可信时间和所述根哈希的数字签名,其中,所述时间抓取代码用于从可信授时机构所提供的界面中获取可信时间;生成包含所述可信时间、根哈希和数字签名的授时证书。对应的,本说明书实施例还提供一种块链式账本的授时认证装置,应用于通过块链式账本存储数据的中心化的数据库服务端中,包括:确定模块,确定需要进行授时的目标账本;根哈希生成模块,按照所述目标账本中数据块的块高的顺序,生成对应于所述目标账本的默克尔树,基于各数据块的块哈希确定所述默克尔树的根哈希;可信执行模块,在可信执行环境中执行预先设定的时间抓取代码,获取可信时间,生成可信执行环境对所述可信时间和所述根哈希的数字签名,其中,所述时间抓取代码用于从可信授时机构所提供的界面中获取可信时间;生成模块,生成包含所述可信时间、根哈希和数字签名的授时证书。由以上本申请实施例提供的技术方案可见,本申请实施例通过在可信执行环境(TrustedExecutionEnvironment,TEE)执行抓取可信时间的代码,获取可信时间,从而实现对目标账本的根哈希和可信时间进行数字签名,保障了账本中时间戳的可信度,并且用户可以随时基于数据块的根哈希对验证。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。附图说明为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1为本说明书实施例所提供的一种关于块头的示意图;图2为本说明书实施例所提供的一种伪链的示意图;图3是本说明书实施例提供的一种块链式账本的授时认证方法;图4为格林威治所提供的网页中时间的一个示意图;图5是本说明书实施例提供的一种块链式账本的授时认证装置的结构示意图;图6是用于配置本说明书实施例方法的一种设备的结构示意图。具体实施方式为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。首先对本说明书实施例所提供的块链式账本进行说明,在本说明书实施例所涉及中心化的数据库系统中,数据块可以通过如下方式预先生成:接收待存储的数据记录,确定各数据记录的哈希值。此处的待存储的数据记录,可以是客户端个人用户的各种消费记录,也可以是应用服务器基于用户的指令,在执行业务逻辑时产生的业务结果、中间状态以及操作记录等等。具体的业务场景可以包括消费记录、审计日志、供应链条、政府监管记录、医疗记录等等。当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块。所述预设的成块条件包括:待存储的数据记录数量达到数量阈值,例如,每接收到一千条数据记录时,生成一个新数据块,将一千条数据记录写入块中;或者,距离上一次成块时刻的时间间隔达到时间阈值,例如,每隔5分钟,生成一个新数据块,将在这5分钟内接收到的数据记录写入块中。此处的N指的是数据块的序号,换言之,在本说明书实施例中,数据块是以块链的形式,基于成块时间的顺序先后排列,具有很强的时序特征。其中,数据块的块高基于成块时间的先后顺序单调递增。块高可以是序号,此时第N个数据块的块高即为N;块高也可以其它方式生成。当N=1时,即此时的数据块为为初始数据块。初始数据块的哈希值和块高基于预设方式给定。例如,初始数据块中不包含数据记录,哈希值则为任一给定的哈希值,块高blknum=0;又例如,初始数据块的生成触发条件与其它数据块的触发条件一致,但是初始数据块的哈希值由对初始数据块中的所有内容取哈希确定。当N>1时,由于前一数据块的内容和哈希值已经确定,则此时,可以基于前一数据块(即第N-1个数据块)的哈希值生成当前数据块(第N个数据块)的哈希值,例如,一种可行的方式为,确定每一条将要写入第N个块中的数据记录的哈希值,按照在块中的排列顺序,生成一个默克尔树,将默克尔树的根哈希值和前一数据块的哈希值拼接在一起,再次采用哈希算法,生成当前块的哈希值,以及还可以根据默克尔树的根哈希值和其它一些元数据(例如版本号、数据块的生成时间戳等等)生成当前快的哈希值。又例如,还可以按照块中数据记录的顺序进行拼接并取哈希得到整体数据记录的哈希值,拼接前一数据块的哈希值和整体数据记录的哈希值,并对拼接得到的字串进行哈希运算,生成数据块的哈希值。通过前述的数据块的生成方式,每一个数据块通过哈希值确定,数据块的哈希值由数据块中的数据记录的内容、顺序以及前一数据块的哈希值决定。用户可以随时基于数据块的哈希值或者数据记录的哈希值发起验证,对于数据块中任何内容(包括对于数据块中数据记录内容或者顺序的修改)的修改都会造成在验证时计算得到的数据块的哈希值和数据块生成时的哈希值不一致,而导致验证失败,从而实现了中心化下的不可篡改。在本说明书实施例中,数据块的格式是可以自定义的。在一种实施例中,数据块的格式可以是类似于区块链中的区块格式。在每一个数据块中,其包含用于存储元数据的块头,和,用于存储数据记录的块体。数据块中的块头可以用于存储诸如父哈希、自身的块哈希值、版本号、数据记录的根哈希、时间戳等等。如图1所示,图1为本说明书实施例所提供的一种关于块头的示意图,当然,块头的格式是可以基于业务需要进行自定义的,其还可以包含一些其它的信息,例如,用于描述数据记录状态的状态数组,以及,还可以存储在本说明书书实施例所提供的可信时间、目标账本的根哈希等等。而块体中则用于存储数据记录的明文或者数据记录的哈希值。在上述方式中,仍然有可能用户和服务方联合起来对于部分数据块进行了伪造,重新生成一条相关的伪链,从而形成一个与原账本部分相同的新的账本,以躲避相关的审计和验证。如图2所示,图2为本说明书实施例所提供的一种伪链的示意图。在生成伪链的过程中本文档来自技高网...

【技术保护点】
1.一种块链式账本的授时认证方法,应用于通过块链式账本存储数据的中心化的数据库服务端中,包括:确定需要进行授时的目标账本;按照所述目标账本中数据块的块高的顺序,生成对应于所述目标账本的默克尔树,基于各数据块的块哈希确定所述默克尔树的根哈希;在可信执行环境中执行预先设定的时间抓取代码,获取可信时间,生成可信执行环境对所述可信时间和所述根哈希的数字签名,其中,所述时间抓取代码用于从可信授时机构所提供的界面中获取可信时间;生成包含所述可信时间、根哈希和数字签名的授时证书。

【技术特征摘要】
1.一种块链式账本的授时认证方法,应用于通过块链式账本存储数据的中心化的数据库服务端中,包括:确定需要进行授时的目标账本;按照所述目标账本中数据块的块高的顺序,生成对应于所述目标账本的默克尔树,基于各数据块的块哈希确定所述默克尔树的根哈希;在可信执行环境中执行预先设定的时间抓取代码,获取可信时间,生成可信执行环境对所述可信时间和所述根哈希的数字签名,其中,所述时间抓取代码用于从可信授时机构所提供的界面中获取可信时间;生成包含所述可信时间、根哈希和数字签名的授时证书。2.如权利要求1所述的方法,在中心化的数据库服务端,块链式账本中的数据块通过如下方式预先生成:接收待存储的数据记录,确定各数据记录的哈希值;当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块,具体包括:当N=1时,初始数据块的哈希值和块高基于预设方式给定;当N>1时,根据待写入数据块中的各数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值、各数据记录和数据块的成块时间的第N个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。3.如权利要求2所述的方法,所述预设的成块条件包括:待存储的数据记录数量达到数量阈值;或者,距离上一次成块时刻的时间间隔达到时间阈值。4.如权利要求1所述的方法,确定需要进行授时认证的目标账本,包括:将每一个新出的数据块确定为目标账本;或者,基于用户的指令所包含的起始块高和块数量,确定需要进行授时认证的目标账本。5.如权利要求1所述的方法,确定需要进行授时认证的目标账本,包括:将符合授时预设条件内的新生成的账本作为目标账本,所述授时预设条件包括:新生成的数据块达到数量阈值时;或者,距离上一次授时认证的时间间隔已经到达时间阈值。6.如权利要求1所述的方法,所述可信执行环境包括IntelSGX或AMDSEV或ARMTrustzone。7.如权利要求1所述的方法,在生成包含所述可信时间、根哈希和数字签名的授时证书之前,所述方法还包括:将所述根哈希、可信时间和数字签名写入所述目标账本中指定数据块中。8.一种块链式账本的授时认证装置,应...

【专利技术属性】
技术研发人员:杨新颖张渊俞本权李亿泽
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1