一种块链式账本中的数据验证方法、系统、装置及设备制造方法及图纸

技术编号:21913982 阅读:23 留言:0更新日期:2019-08-21 12:26
公开了一种块链式账本中的数据验证方法、系统、装置及设备。通过本说明书实施例所提供的方案,用户在发起验证请求时,在请求中携带相关的验证方式参数和验证范围参数,从而服务端可以基于该验证方式参数确定出在服务端进行验证还是在客户端进行验证,以及基于验证范围参数确定验证范围的大小,进而执行相应的验证方式。本实施例可以灵活的在块链式账本中实现数据验证。

A Data Verification Method, System, Device and Equipment in Block Chain Accounts

【技术实现步骤摘要】
一种块链式账本中的数据验证方法、系统、装置及设备
本说明书实施例涉及信息
,尤其涉及一种块链式账本中的数据验证方法、系统、装置及设备。
技术介绍
在中心化的数据库服务端以块链式账本存储数据时,用户经常会对服务端发起各种验证。而在进行验证时,基于用户的需求,有些验证需要在客户端完成,有些验证需要在服务端完成,而同时,用户在进行验证时的范围也常常不同。基于此,需要一种在块链式账本中可以灵活进行数据验证的方案。
技术实现思路
本申请实施例的目的是提供一种块链式账本中进行数据验证的方案。为解决上述技术问题,本申请实施例是这样实现的:一种块链式账本中的数据验证方法,应用于包括数据库服务端和客户端的系统中,所述数据库服务端以中心化的方式通过块链式账本存储数据,所述方法包括:客户端,发送包含验证方式参数和验证范围参数的指令至数据库服务端,其中,所述验证方式参数用于指示在数据库服务端进行验证,或者在客户端进行验证;所述验证范围参数包括块高或者哈希值,用于确定账本中待验证的数据块的范围或者数据记录;数据库服务端根据所述验证范围参数确定待验证数据,所述待验证数据包括数据记录、数据块、部分账本或者全量账本中的一种;当所述验证方式参数指示在数据库服务端进行验证时,数据库服务端验证所述待验证数据的完整性,并返回验证结果至客户端;当所述验证方式参数指示在客户端进行验证时,数据库服务端返回所述待验证数据至客户端,客户端验证所述待验证数据的完整性,生成验证结果。对应的,本说明书实施例还提供一种块链式账本中的数据验证系统,包括数据库服务端和客户端,所述数据库服务端以中心化的方式通过块链式账本存储数据,在所述系统中,客户端,发送包含验证方式参数和验证范围参数的指令至数据库服务端,其中,所述验证方式参数用于指示在数据库服务端进行验证,或者在客户端进行验证;所述验证范围参数包括块高或者哈希值,用于确定账本中待验证的数据块的范围或者数据记录;数据库服务端,根据所述验证范围参数确定待验证数据,所述待验证数据包括数据记录、数据块、部分账本或者全量账本中的一种;当所述验证方式参数指示在数据库服务端进行验证时,数据库服务端验证所述待验证数据的完整性,并返回验证结果至客户端;当所述验证方式参数指示在客户端进行验证时,数据库服务端返回所述待验证数据至客户端,客户端验证所述待验证数据的完整性,生成验证结果。对应的,本说明书实施例还提供一种链式账本中的数据验证方法,应用于以中心化的方式通过块链式账本存储数据的数据库服务端中,所述方法包括:接收包含验证方式参数和验证范围参数的指令,其中,所述验证方式参数用于指示在数据库服务端进行验证,或者在客户端进行验证;所述验证范围参数包括块高或者哈希值,用于确定账本中待验证的数据块的范围或者数据记录;根据所述验证范围参数确定待验证数据,所述待验证数据包括数据记录、数据块、部分账本或者全量账本中的一种;当所述验证方式参数指示在数据库服务端进行验证时,数据库服务端验证所述待验证数据的完整性,并返回验证结果至客户端;当所述验证方式参数指示在客户端进行验证时,数据库服务端返回所述待验证数据至客户端,以便客户端验证所述待验证数据的完整性。对应的,本说明书实施例还提供一种链式账本中的数据验证装置,应用于以中心化的方式通过块链式账本存储数据的数据库服务端中,所述装置包括:接收模块,接收包含验证方式参数和验证范围参数的指令,其中,所述验证方式参数用于指示在数据库服务端进行验证,或者在客户端进行验证;所述验证范围参数包括块高或者哈希值,用于确定账本中待验证的数据块的范围或者数据记录;确定模块,根据所述验证范围参数确定待验证数据,所述待验证数据包括数据记录、数据块、部分账本或者全量账本中的一种;验证模块,当所述验证方式参数指示在数据库服务端进行验证时,数据库服务端验证所述待验证数据的完整性,并返回验证结果至客户端;发送模块,当所述验证方式参数指示在客户端进行验证时,数据库服务端返回所述待验证数据至客户端,以便客户端验证所述待验证数据的完整性。通过本说明书实施例所提供的方案,用户在发起验证请求时,在请求中携带相关的验证方式参数和验证范围参数,从而服务端可以基于该验证方式参数确定出在服务端进行验证还是在客户端进行验证,以及基于验证范围参数确定验证范围的大小,进而执行相应的验证方式。本实施例可以灵活的在块链式账本中实现数据验证。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。附图说明为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1为本说明书实施例所提供的块链式账本中生成数据块的流程示意图;图2是本说明书实施例提供的一种块链式账本中的数据验证方法;图3为本说明书实施例所提供的数据库服务端方面的数据验证方法的流程示意图;图4是本说明书实施例提供的数据库服务端方面的一种块链式账本中的数据验证装置的结构示意图;图5是用于配置本说明书实施例方法的一种设备的结构示意图。具体实施方式为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。首先对本说明书中所涉及的中心化的块链式的账本进行说明。在本说明书实施例所涉及中心化的数据库服务提供方中,一个账本包括含多个数据块,数据块通过如下方式预先生成,如图1所示,图1为本说明书实施例所提供的块链式账本中生成数据块的流程示意图,包括:S101,接收待存储的数据记录,确定各数据记录的哈希值。此处的待存储的数据记录,可以是客户端个人用户的各种消费记录,也可以是应用服务器基于用户的指令,在执行业务逻辑时产生的业务结果、中间状态以及操作记录等等。具体的业务场景可以包括消费记录、审计日志、供应链条、政府监管记录、医疗记录等等。S103,当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块。所述预设的成块条件包括:待存储的数据记录数量达到数量阈值,例如,每接收到一千条数据记录时,生成一个新数据块,将一千条数据记录写入块中;或者,距离上一次成块时刻的时间间隔达到时间阈值,例如,每隔5分钟,生成一个新数据块,将在这5分钟内接收到的数据记录写入块中。此处的N指的是数据块的序号,换言之,在本说明书实施例中,数据块是以块链的形式,基于成块时间的顺序先后排列,具有很强的时序特征。其中,数据块的块高基于成块时间的先后顺序单调递增。块高可以是序号,此时第N个数据块的块高即为N;块高也可以其它方式生成。当N=1时,即此时的数据块为为初始数据块。初始数据块的哈希值和块高基于预设方式给定。例如,初始数据块中不包含数据记录,哈希值则为任一给定的哈希值,块高bl本文档来自技高网...

【技术保护点】
1.一种块链式账本中的数据验证方法,应用于包括数据库服务端和客户端的系统中,所述数据库服务端以中心化的方式通过块链式账本存储数据,所述方法包括:客户端,发送包含验证方式参数和验证范围参数的指令至数据库服务端,其中,所述验证方式参数用于指示在数据库服务端进行验证,或者在客户端进行验证;所述验证范围参数包括块高或者哈希值,用于确定账本中待验证的数据块的范围或者数据记录;数据库服务端根据所述验证范围参数确定待验证数据,所述待验证数据包括数据记录、数据块、部分账本或者全量账本中的一种;当所述验证方式参数指示在数据库服务端进行验证时,数据库服务端验证所述待验证数据的完整性,并返回验证结果至客户端;当所述验证方式参数指示在客户端进行验证时,数据库服务端返回所述待验证数据至客户端,客户端验证所述待验证数据的完整性,生成验证结果。

【技术特征摘要】
1.一种块链式账本中的数据验证方法,应用于包括数据库服务端和客户端的系统中,所述数据库服务端以中心化的方式通过块链式账本存储数据,所述方法包括:客户端,发送包含验证方式参数和验证范围参数的指令至数据库服务端,其中,所述验证方式参数用于指示在数据库服务端进行验证,或者在客户端进行验证;所述验证范围参数包括块高或者哈希值,用于确定账本中待验证的数据块的范围或者数据记录;数据库服务端根据所述验证范围参数确定待验证数据,所述待验证数据包括数据记录、数据块、部分账本或者全量账本中的一种;当所述验证方式参数指示在数据库服务端进行验证时,数据库服务端验证所述待验证数据的完整性,并返回验证结果至客户端;当所述验证方式参数指示在客户端进行验证时,数据库服务端返回所述待验证数据至客户端,客户端验证所述待验证数据的完整性,生成验证结果。2.如权利要求1所述的方法,当所述验证范围参数为哈希值时,数据库服务端根据所述验证范围参数确定待验证数据,包括:数据库服务端查询获取哈希值所对应的数据记录,将所述数据记录和/或所述数据记录所处的数据块确定为待验证数据;或者,数据库服务端查询获取哈希值所对应的数据块,将所述数据块确定为待验证数据。3.如权利要求1所述的方法,当所述验证范围参数为块高时,数据库服务端根据所述验证范围参数确定待验证数据,包括:数据库服务端确定块高值所对应的数据块,将所述数据块确定为待验证数据;或者,数据库服务端确定两个块高构成的区间所对应的部分/全量账本,将所述部分/全量账本确定为待验证数据。4.如权利要求1所述的方法,当所述验证方式参数指示在客户端进行验证时,数据库服务端返回所述待验证数据至客户端,还包括:数据库服务端确定客户端对待验证数据进行验证时所需要的其它辅助验证数据,发送所述待验证数据和其它辅助验证数据至客户端。5.如权利要求1所述的方法,在所述在中心化的数据库服务端,数据块通过如下方式预先生成:接收待存储的数据记录,确定各数据记录的哈希值,其中,数据记录中包含指定标识字段;当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块,具体包括:当N=1时,初始数据块的哈希值和块高基于预设方式给定;当N>1时,根据待写入数据块中的各数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各数据记录的第N个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。6.如权利要求5所述的方法,所述预设的成块条件包括:待存储的数据记录数量达到数量阈值;或者,距离上一次成块时刻的时间间隔达到时间阈值。7.一种块链式账本中的数据验证系统,包括数据库服务端和客户端,所述数据库服务端以中心化的方式通过块链式账本存储数据,在所述系统中,客户端,发送包含验证方式参数和验证范围参数的指令至数据库服务端,其中,所述验证方式参数用于指示在数据库服务端进行验证,或者在客户端进行验证;所述验证范围参数包括块高或者哈希值,用于确定账本中待验证的数据块的范围或者数据记录;数据库服务端,根据所述验证范围参数确定待验证数据,所述待验证数据包括数据记录、数据块、部分账本或者全量账本中的一种;当所述验证方式参数指示在数据库服务端进行验证时,数据库服务端验证所述待验证数据的完整性,并返回验证结果至客户端;当所述验证方式参数指示在客户端进行验证时,数据库服务端返回所述待验证数据至客户端,客户端验证所述待验证数据的完整性,生成验证结果。8.如权...

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

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

1