一种数据验证方法、装置及设备制造方法及图纸

技术编号:21628147 阅读:20 留言:0更新日期:2019-07-17 10:50
公开了一种数据验证方法、装置及设备。在服务方以数据块链的方式对数据记录进行中心化的存储的场景下,每一数据块中包含由前一数据块的哈希值和自身所包含的数据记录确定的自身数据块的哈希值,数据服务的提供方也不能轻易的对存储的数据做出改变。用户可以随时通过输入哈希值来验证哈希值所对应的数据记录是否存在,以及指定具体的数据块进行整体或者部分的数据完整性验证,保证了用户数据的完整性,提高用户体验。

A Data Verification Method, Device and Equipment

【技术实现步骤摘要】
一种数据验证方法、装置及设备
本说明书实施例涉及信息
,尤其涉及一种数据验证方法、装置及设备。
技术介绍
当前的数据库产品一般都是中心化的,数据由用户产生,但是对于数据的增删改查等操作都是基于用户的指令在服务端进行。在这种情形下,用户有意愿知道自己的数据是否出现了损坏、丢失或者被人篡改,并且希望有一种方式可以实现这种验证。而由于在实际应用中,用户产生的数据量是很大的,例如,在一些面向企业级的数据库业务中,如审计日志、供应链条、政府监管,消费记录等应用场景中,企业用户想要对自己的全部数据进行验证查询是否出现了差错并不容易。基于此,需要一种便利的数据验证方案。
技术实现思路
针对现有数据存储中用户难以了解自己存储的数据是否出现差错,以及无法验证的问题,为实现在中心化的数据存储中,提高用户体验,本说明书实施例提供一种数据验证方法、装置及设备,所述方法应用于通过多个数据块存储数据的中心化的数据库服务提供方中,具体包括:接收用户的验证指令,所述验证指令中包含数据记录的哈希值或者数据块高;验证所述验证指令中的数据记录的哈希值所对应的数据记录是否存在所述数据库中;或者,验证由所述数据块高所确定的指定数量的数据块是否正确无误;返回验证结果至用户。对应的,本说明书实施例还提供一种数据验证装置,应用于通过多个数据块存储数据的中心化的数据库服务提供方中,所述装置包括:接收模块,接收用户的验证指令,所述验证指令中包含数据记录的哈希值或者数据块高;验证模块,验证所述验证指令中的数据记录的哈希值所对应的数据记录是否存在所述数据库中;或者,验证由所述数据块高所确定的指定数量的数据块是否正确无误;返回模块,返回验证结果至用户。在服务方以数据块链的方式对数据记录进行中心化的存储的场景下,每一数据块中包含由前一数据块的哈希值和自身所包含的数据记录确定的自身数据块的哈希值,数据服务的提供方也不能轻易的对存储的数据做出改变。用户可以随时通过输入哈希值来验证哈希值所对应的数据记录是否存在,以及指定具体的数据块进行整体或者部分的数据完整性验证,保证了用户数据的完整性,提高用户体验。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。附图说明为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1当前技术中所涉及的系统架构的示意图;图2是本说明书实施例提供的一种数据验证方法的流程示意图;图3为本说明书实施例所提供的一种示例性的部分清除的流程示意图;图4是本说明书实施例提供的一种构造隐匿化数据记录的过程示意图;图5为本说明书实施例中所涉及的另一系统架构的示意图;图6是本说明书实施例提供的一种数据验证装置的结构示意图;图7示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图;图8为本说明书实施例给出的一种具体的生成授时证书的示意图。具体实施方式为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。首先需要说明的是,在当前的服务器架构中,数据库服务器可以是直接对接的客户端个人用户,也可以是由一些应用服务器对接客户端个人用户,而数据库服务器则对接所述应用服务器。如图1所示,图1当前技术中所涉及的系统架构的示意图。因此,在本说明书实施例中,当用户是应用服务器时,数据库服务提供方可以是图1中所示的数据库服务器;而在用户是客户端个人用户时,数据库服务提供方也可以是由应用服务器和数据库服务器构成的服务端整体。但无论在那种情形下,对于数据的存储都是在数据库服务提供方完成,而对于数据的操作(包括增删改查等等)也是基于用户的指令在数据库服务提供方进行,用户数据以及对数据的操作结果均存储在数据库服务提供方,用户本地以及其它设备上不能存储有该数据。换言之,本说明书中的数据库服务提供方是以中心化的形式提供数据服务。以下结合附图,详细说明本说明书各实施例提供的技术方案。如图2所示,图2是本说明书实施例提供的一种数据验证方法的流程示意图,该流程具体包括如下步骤:S201,接收用户的验证指令,所述验证指令中包含数据记录的哈希值或者数据块高。具体而言,可以由用户发起验证指令,验证指令中通过参数指定需要对哪些数据块发起验证,例如,可以通过哈希值或者块高指定一个数据块,对该数据块之前或者之后的多个数据块发起是否正确的验证;或者,通过哈希值指定一个数据记录,验证一个数据记录是否存在数据库中。以下示例性的给出了本说明书实施例所提供的几种验证方式:第一种,输入哈希值,由哈希值确定数据块,对该数据块执行验证,得到验证结果,具体的,可以由验证指令VERIFY(‘khash’,&v)实现。第二种,输入哈希值,由哈希值确定对应的数据块或者确定哈希值对应的数据记录所处的数据块,从确定的数据块开始往前验证直至初始数据块,具体的,可以通过验证指令VERIFY(‘khash’,&v,-1)实现,一般而言,初始块高为“0”或者“1”,因此,其中的-1也可以是其它小于初始块高的值,从而服务方可以知道,这个参数不是一个特别小的块高值,意味着需要一直验证至初始数据块。第三种,输入哈希值,由哈希值确定对应的数据块,从确定的数据块开始往前验证指定个数的数据块,具体的,可以通过验证指令VERIFY(‘khash’,&v,blknum)实现。第四种,输入块高和需要验证的数量,由块高对应的数据块开始往前验证指定数量的连续多个数据块,具体的,可以通过验证指令VERIFY(blkh,&v,blknum)实现。S203,验证所述验证指令中的数据记录的哈希值所对应的数据记录是否存在所述数据库中;或者,验证由所述数据块高所确定的指定数量的数据块是否正确无误。服务方在接收到验证指令后,即可以解析指令并得到相应的验证参数,包括块高和哈希值,然后根据块高或者哈希值执行预定的验证逻辑。例如,对于数据块的验证方式可以是,从验证指令所指定的数据块开始,计算每一数据块的当前哈希值,并和数据块中已经包含的数据块的哈希值进行匹配,如果不完全相同,则验证失败。在解析得到哈希值时,服务方可以进行遍历查询以验证该哈希是否对应某个数据记录;或者,从索引表中查询获取该哈希值所对应的块高和偏移量,然后根据读取得到的块高和偏移量获取数据数据明文,并根据数据明文进行进一步的验证。S205,返回验证结果至用户。验证得到的结果是一个“有”或者“无”,以及“正确”或者“不正确”这样的元数据。在服务方以数据块链的方式对数据记录进行中心化的存储的场景下,每一数据块中包含由前一数据块的哈希值和自身所包含的数据记录确定的自身数据块的哈希值,数据服务的提供方也不能轻易的对存储的数据做出改变。用户可以随本文档来自技高网...

【技术保护点】
1.一种数据验证方法,应用于通过多个数据块存储数据的中心化的数据库服务提供方中,所述方法包括:接收用户的验证指令,所述验证指令中包含数据记录的哈希值或者数据块高;验证所述验证指令中的数据记录的哈希值所对应的数据记录是否存在所述数据库中;或者,验证由所述数据块高所确定的指定数量的数据块是否正确无误;返回验证结果至用户。

【技术特征摘要】
1.一种数据验证方法,应用于通过多个数据块存储数据的中心化的数据库服务提供方中,所述方法包括:接收用户的验证指令,所述验证指令中包含数据记录的哈希值或者数据块高;验证所述验证指令中的数据记录的哈希值所对应的数据记录是否存在所述数据库中;或者,验证由所述数据块高所确定的指定数量的数据块是否正确无误;返回验证结果至用户。2.如权利要求1所述的方法,在中心化的数据库服务提供方,数据块通过如下方式预先生成:接收待存储的数据记录,确定各数据记录的哈希值;当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块,具体包括:当N=1时,初始数据块的哈希值和块高基于预设方式给定;当N>1时,根据待写入数据块中的各数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各数据记录的第N个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。3.如权利要求2所述的方法,所述预设的成块条件包括:待存储的数据记录数量达到数量阈值;或者,距离上一次成块时刻的时间间隔达到时间阈值。4.如权利要求1所述的方法,验证由所述数据块高所确定的指定数量的数据块是否正确无误,包括:针对任一被确定的数据块,获取所述数据块的数据记录和前一数据块的哈希值;根据所述数据块的数据记录和前一数据块的哈希值计算得到所述数据块的当前哈希值;验证所述数据块的当前哈希值和所述数据块的哈希值是否相同,若相同则验证通过,否则,验证失败。5.如权利要求1所述的方法,返回验证结果至用户,包括:返回包含数据库服务提供方签名的验证结果至用户。6.一种数据验证装置,应用于通过多个数据块存储数据的中心化...

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

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

1