CN110636042A - 一种服务端已验证块高的更新方法、装置及设备 - Google Patents

一种服务端已验证块高的更新方法、装置及设备 Download PDF

Info

Publication number
CN110636042A
CN110636042A CN201910747326.3A CN201910747326A CN110636042A CN 110636042 A CN110636042 A CN 110636042A CN 201910747326 A CN201910747326 A CN 201910747326A CN 110636042 A CN110636042 A CN 110636042A
Authority
CN
China
Prior art keywords
block
verified
data
client
block height
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910747326.3A
Other languages
English (en)
Other versions
CN110636042B (zh
Inventor
杨新颖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910747326.3A priority Critical patent/CN110636042B/zh
Publication of CN110636042A publication Critical patent/CN110636042A/zh
Application granted granted Critical
Publication of CN110636042B publication Critical patent/CN110636042B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公开了一种服务端已验证块高的更新方法、装置及设备。通过本说明书实施例所提供的方案,分别获取服务端方面生成的服务端已验证块高和客户端方面的客户端已验证块高进行对比,若服务端已验证块高小于客户端已验证块高,则将服务端已验证块高更新为客户端已验证块高。

Description

一种服务端已验证块高的更新方法、装置及设备
技术领域
本说明书实施例涉及信息技术领域,尤其涉及一种服务端已验证块高的更新方法、装置及设备。
背景技术
在包含业务属性的块链式账本中,同一业务属性的数据记录存储往往是不连续的。针对每一业务属性,客户端和服务端都会分别进行相应的完整性验证,并生成服务端和客户端相应的两个锚点,由此带来算力资源的浪费。
基于此,需要一种针对服务端方面的已验证块高的更新方案。
发明内容
本说明书实施例的目的是提供一种块链式账本中服务端已验证块高的更新方案。
为解决上述技术问题,本说明书中的实施例是这样实现的:
一种服务端已验证块高的更新方法,应用以块链式账本存储数据记录的数据库服务端中,包括:
在所述块链式账本中,针对任一业务属性,确定数据库服务端对于所述业务属性的服务端已验证块高,以及,客户端对于所述业务属性的客户端已验证块高,其中,所述服务端已验证块高用于表征在服务端已验证块高之前的数据块已经通过服务端的完整性验证,所述客户端已验证块高用于表征在客户端已验证块高之前的数据块已经通过客户端的完整性验证;
判断所述服务端已验证块高和所述客户端已验证块高的相对大小,若所述服务端已验证块高小于所述客户端已验证块高,将所述服务端已验证块高更新为所述客户端已验证块高。
对应的,本说明书实施例还提供一种服务端已验证块高的更新装置,应用以块链式账本存储数据记录的数据库服务端中,包括:
确定模块,在所述块链式账本中,针对任一业务属性,确定数据库服务端对于所述业务属性的服务端已验证块高,以及,客户端对于所述业务属性的客户端已验证块高,其中,所述服务端已验证块高用于表征在服务端已验证块高之前的数据块已经通过服务端的完整性验证,所述客户端已验证块高用于表征在客户端已验证块高之前的数据块已经通过客户端的完整性验证;
判断模块,判断所述服务端已验证块高和所述客户端已验证块高的相对大小,若所述服务端已验证块高小于所述客户端已验证块高,将所述服务端已验证块高更新为所述客户端已验证块高。
通过本说明书实施例所提供的方案,分别获取服务端方面生成的服务端已验证块高和客户端方面的客户端已验证块高进行对比,若服务端已验证块高小于客户端已验证块高,则将服务端已验证块高更新为客户端已验证块高,从而避免服务端作多余的完整性验证,节省服务端的计算资源。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。
此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本说明书实施例所涉及的系统架构示意图;
图2为本说明书实施例所提供的一种生成块链式账本的流程示意图;
图3为本说明书实施例所提供的一种数据块的块头的示意图;
图4是本说明书实施例提供的一种数据记录的索引创建方法的流程示意图;
图5为本说明书实施例所挺的一种服务端已验证块高的更新方法的流程示意图;
图6为本说明书实施例所提供的一种服务端已验证块高的更新装置的结构示意图;
图7是用于配置本说明书实施例方法的一种设备的结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。
首先对本说明书实施例中所涉及的中心化下的块链式的账本予以说明。在实际应用中,数据库服务端向的常常为各种机构,各机构则可以将它们与第三方用户(包括其它机构或者个人)之间所产生的数据记录在数据库服务端进行存储。如图1所示,图1为本说明书实施例所涉及的系统架构示意图。在该示意图中,一个企业机构可以面向多名用户,而每个用户均可以通过其对应的企业机构向数据库服务提供方进行查询。
例如,数据库服务端对接的机构是某金融产品公司,数据记录可以是个人用户在该金融产品公司的理财记录;或者,对接的机构可以是政府部门,其中的数据记录是政府部门对于该部门所管理的公共项目的开销明细;或者,数据库服务端对接的机构是某个医院,其中的数据记录是病人的病历;或者,数据库服务端对接的机构是第三方支付机构,数据记录可以是个人用户通过该机构的支付记录,等等。
在中心化的数据库服务提供方,块链式的账本通过如下方式生成,如图2所示,图2为本说明书实施例所提供的一种生成块链式账本的流程示意图,包括:
S201,接收待存储的数据记录,确定各数据记录的哈希值,其中,数据记录中包含业务属性。
如前所述,此处的待存储的数据记录,可以是客户端个人用户的各种消费记录,也可以是应用服务器基于用户的指令,在执行业务逻辑时产生的业务结果、中间状态以及操作记录等等。具体的业务场景可以包括消费记录、审计日志、供应链条、政府监管记录、医疗记录等等。
在本说明书实施例中,数据记录中包含有业务属性,在每个与数据库服务方对接的机构中,所述业务属性在所述对接机构中,一般而言是唯一存在的,业务属性基于不同的业务场景,可以包括用户名、用户身份证号、驾照编号、手机号、项目唯一编号等等。
例如,对于第三方支付机构而言,数据记录是用户的消费记录,此时的业务属性即为用户标识(包括手机号、身份证号、用户名等等),或者对该用户标识进行哈希算法所得到的哈希值;或者,对于政府机构而言,数据记录为多个公共项目的开销流水,则此时的业务属性可以为每个项目的唯一编号。
业务属性可以存储于数据记录中的指定字段(例如,数据记录的头部或者尾部),从而可以方便数据库服务端以及用户从中获取该数据记录的业务属性。
需要说明的是,在同一账本中,可以包含有多条数据记录。这些数据记录的业务属性则很可能是不一样的。例如,在一个账本面向多个用户开放时,数据记录可能来源于不同的的用户,若业务属性为用户标识,则容易理解不同的数据记录中常常包含了不同的用户标识。
S203,当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块。
所述预设的成块条件包括:待存储的数据记录数量达到数量阈值,例如,每接收到一千条数据记录时,生成一个新数据块,将一千条数据记录写入块中;或者,距离上一次成块时刻的时间间隔达到时间阈值,例如,每隔5分钟,生成一个新数据块,将在这5分钟内接收到的数据记录写入块中。
此处的N指的是数据块的序号,换言之,在本说明书实施例中,数据块是以块链的形式,基于成块时间的顺序先后排列,具有很强的时序特征。其中,数据块的块高基于成块时间的先后顺序单调递增。块高可以是序号,此时第N个数据块的块高即为N;块高也可以其它方式生成。
当N=1时,即此时的数据块为为初始数据块。初始数据块的哈希值和块高基于预设方式给定。例如,初始数据块中不包含数据记录,哈希值则为任一给定的哈希值,块高blknum=0;又例如,初始数据块的生成触发条件与其它数据块的触发条件一致,但是初始数据块的哈希值由对初始数据块中的所有内容取哈希确定。
当N>1时,由于前一数据块的内容和哈希值已经确定,则此时,可以基于前一数据块(即第N-1个数据块)的哈希值生成当前数据块(第N个数据块)的哈希值,例如,一种可行的方式为,确定每一条将要写入第N个块中的数据记录的哈希值,按照在块中的排列顺序,生成一个默克尔树,将默克尔树的根哈希值和前一数据块的哈希值拼接在一起,再次采用哈希算法,生成当前块的哈希值。又例如,还可以按照块中数据记录的顺序进行拼接并取哈希得到整体数据记录的哈希值,拼接前一数据块的哈希值和整体数据记录的哈希值,并对拼接得到的字串进行哈希运算,生成数据块的哈希值。
用户在上传数据成功后,即可以得到对应的数据记录的哈希值以及所处的数据块的哈希值,并保存,并且可以基于该哈希值发起完整性验证。具体的验证方式包括重新计算数据记录自身的哈希值以及所处的数据块的哈希值,与本地所保存的进行对比。
上述方式生成的数据块,可以包括块头和块体两个部分。块体中可以用于存储拼接数据的明文,或者拼接数据的哈希值等等;块头中可以用于存储有关本数据块的元数据,例如,账本的版本号,前一数据块的哈希值,自身数据块中的拼接数据所组成的默克尔树的根哈希值,自身数据块的哈希值,用于记录拼接数据的被操作状态的状态数组等等。如图3所示,图3为本说明书实施例所提供的一种数据块的块头的示意图。
通过前述的数据块的生成方式,每一个数据块通过哈希值确定,数据块的哈希值由数据块中的数据记录的内容、顺序以及前一数据块的哈希值决定。用户可以随时基于数据块的哈希值发起完整性验证,对于数据块中任何内容(包括对于数据块中数据记录内容或者顺序的修改)的修改都会造成在验证时计算得到的数据块的哈希值和数据块生成时的哈希值不一致,而导致验证失败,从而实现了中心化下的不可篡改。
完整性验证包括对于一个数据块的完整性验证,即,根据数据块中数据记录的哈希值重新组成默克尔树,计算默克尔树的根哈希值,并且根据默克尔树的根哈希值与前一数据块的哈希值重新计算该数据块的哈希值,与事先保存的数据块的哈希值进行一致性对比。
完整性验证还可以包括对于若干连续数据块的完整性验证,即根据数据块的块头中所保存的默克尔树的根哈希值与前一数据块的哈希值重新计算该数据块的哈希值,并与事先保存的数据块的哈希值进行对比。
如前所述,这些数据记录在写入账本时虽然已经有了较强的时序特征,但是对于用户而言,其数据记录通常是分散式的存储在多个数据块中的。例如,医院对于所有病人的病历记录按照时间产生的顺序,依次上传。而对于医院的某个用户而言,其病史可能有多条,时间间隔又比较大,则在数据块中往往也是有着较大的跳跃。而对于用户而言,其往往只关心与自身直接相关的数据,例如,业务属性为自身ID的数据。
因此,在这种情形下,数据库服务端首先可以提供一种数据记录的索引创建方法,应用于通过块链式账本存储数据的中心化的数据库服务提供方中,可以实现在不必了解对接机构的业务详情时,创建出以业务属性为主键的倒排索引,方便对接机构的业务处理,提高用户体验。
如图4所示,图4是本说明书实施例提供的一种数据记录的索引创建方法的流程示意图,该流程具体包括如下步骤:
S401,获取数据记录中的业务属性。
如前所述,业务属性的具体位置以及获取方式可以是数据库服务方和对接机构事先协商。例如,对接机构所提供的数据记录为标准结构化的数据记录时,业务属性可以从数据记录中指定偏移量获取,或者由特定字符标识起始位置和结束位置;又或者,对接机构所提供的数据记录为非结构化的数据时,在对接机构上传时可以直接在每条数据记录的开头拼接上包含业务属性的头部,数据库服务方可以直接从头部获取每条数据记录的业务属性。
S403,确定所述数据记录在账本中的位置信息,所述位置信息包括数据记录所处的数据块的块高,以及,在所处的数据块中的偏移量。
如前所述,一个块链式的账本由多个数据块组成,同时,一个数据块中通常包含多个数据记录。因此,在本说明书实施例中,所述的位置信息具体指的是一条数据记录被保存时,处于账本中的哪个数据块上,以及,在该数据块中的什么位置。
在本说明书实施例所提供的数据块中,可以有多种方式用来标识不同的数据块,包括数据块的哈希值或者块高。
数据块的哈希值为根据前一区块哈希值和自身数据记录进行哈希计算而得到的哈希值,可以用于唯一、明确地标识一个数据块。在块链式的账本中,通常第一个数据块其块高为0,以后每增加一个数据块,块高加1;或者,还可以将数据块的成块时间转换为一个大的单调递增整型数据(一般为12至15位)序列,作为数据块的块高。因此,一个数据块通常有一个明确的块高。
又例如,在一个已经确定的要写入数据库的数据块,其中数据记录的排序也已经固定,因此一个数据记录在该数据块中的序号也是明确的,在数据记录的长度为固定单位时,序号同样可以用于明确该数据记录在其所处的数据块中的位置信息。即,序号同样也可以用于指示偏移量。
同时,在一个数据块中,由于通常包含了多个数据记录,因此,还可以用各数据记录在该数据块中的地址偏移量来分别标识数据块中的数据记录。显而易见,在同一个数据块中,各数据记录的地址偏移量并不相同。
当然,由于在本说明书实施例所提供的方式中,数据块的具体格式是可以自定义的(例如,数据块的块头中所包含的元数据信息和备注信息,数据块的块高所采取的形式等等),在不同的格式下,位置信息的内容也会有所不同,这并不构成对本方案的限定。
S405,建立所述业务属性和位置信息的对应关系,写入以所述业务属性为主键的索引。
即,该索引是一个倒排索引。在该索引中,主键是数据记录中所包含的业务属性。具体的写入方式为,当索引中的主键不包含所述业务属性时,在索引表中创建以所述业务属性为主键的索引记录。
当所述索引中的主键包含所述业务属性时,将所述位置信息写入所述业务属性所处的索引记录。需要说明的是,此处的写入不是覆盖性的写入,而是将位置信息添加到该索引记录的值中,与其它位置信息并列存在与该索引记录中。
如表1所示,表1为本说明书实施例所提供的一种示例性索引表。其中Key即为业务属性的具体值,Value部分的每个数组即为一条位置信息,每个数组中的前部分块高,后部分为数据记录在该数据块中的序号,通过块高和序号即可以唯一的确定一条数据记录。容易理解,在索引表中,一个key可以对应于多个位置信息。
表1
Key Value
0X123456 (2,08),(2,10),(300,89),(300,999)
344X0001 (5,01),(8,22)
…… ……
在这种方式下,对于写入账本的数据记录,数据库服务端确定出数据记录的业务属性,以及在账本中的存储位置,建立起二者的对应关系,创建以业务属性为主键的倒排索引,从索引中即可以基于业务属性对于数据记录进行相应统计,以及后续的查询和验证。
进一步地,在前述的索引创建之后,任一机构或者机构的用户均可以向服务端发起基于业务属性的完整性验证。完整性验证的方式在前文已经进行了说明。
具体而言,对于客户端而言,可以发送包含有业务属性和数据块标识的验证指令至服务端,数据块标识可以包括块高或者哈希值,例如,验证指令VERIFY(Clue,‘khash’),或者,VERIFY(Clue,blknum),其中,Clue即为业务属性,‘khash’即为数据块的哈希值,blknum即为数据块的块高。
验证指令还可以由其形式,例如,指令中包含两个块高值,VERIFY(Clue,blknum1,blknum 2),blknum 1和blknum 2用于确定待验证的数据块区间。
数据库服务端在接收到指令之后,即可以针对用户输入的Clue,从前述的倒排索引中进行查询(或者遍历账本进行检索),根据块高得到相应的待验证数据块。
在验证指令中只包含一个块高值时,即将该块高之前的数据块均列为待存储数据块,例如,若接收到用户输入的验证指令VERIFY(0X123456,1000),则从倒排索引中可以查询到对应的四条数据记录:(2,08),(2,10),(300,89),(300,999)因此,将数据块2和300列为待验证数据块。
若验证指令中包含有两个块高值,即从索引表中将块高处于该区间的数据块列为待存储数据块。例如,若接收到用户输入的验证指令VERIFY(0X123456,100,500),则从倒排索引中可以查询到对应的两条数据记录,(300,89),(300,999),因此,将将数据块300列为待验证数据块。
在这种实施方式下,数据库确定了待验证数据块之后,本身不做完整性验证,而是将数据块发送至客户端,以便客户端进行完整性验证。同时,在某些情形时,还可能发送进行验证时所需要的其它辅助验证数据。
例如,当用户VERIFY(Client,blknum),表明需要在客户端,对由块高blkh所指定的数据块进行验证。数据库服务端可以根据块高blknum匹配得到对应的数据块作为待验证数据。同时,在对于数据块的验证过程中,需要使用到该数据块的前一数据块的哈希值,因此,数据库服务端还可以获取“前一数据块的哈希值”作为辅助验证数据,直接发送至客户端。
客户端在接收到发送来的数据块之后,即进行前述的完整性验证。在验证通过之后,即,将待验证数据块中的最大块高确定为客户端已验证块高,例如,若待验证数据块的块高分别为2和300,客户端已验证块高即为300。
客户端进而需要对该块高进行数字签名,数字签名的方式可以是私钥/公钥对的模式,即客户端使用私钥加密,数据库服务端接收到加密数据,使用对应的公钥解密,以保证该已验证块高是用户所确认的。
数据库服务端接收到该客户端已验证块高,即可以与该业务属性建立相应的对应关系,并存储。例如,一种方式即为,在前述表1中加入一列,用于表征客户端已验证块高。如表2所示,表2为为本说明书实施例所提供的另一种示例性索引表。其中的“VerifyfromClient”即表征客户端已验证块高。
表2
Figure BDA0002166001660000101
同时,当达到预设的完整性验证条件,服务端还可以针对账本进行验证。
前述的完整性验证条件可以包括:每当账本中新生成的数据块达到一定数量,例如,每新生成1000个数据块,即启动完整性验证;或者,服务端定期启动完整性验证,例如,在每天的23点,启动完整性验证;或者,服务端判断当前系统资源空闲超过一定比例时,例如,系统判定当前计算资源空闲超过70%,即发起完整性验证。
具体而言,在服务端可以包括如下几种验证方式:
第一种,当达到预设的完整性验证条件,针对该账本中的每一种业务属性,分别进行完整性验证,从而每一种业务属性均会存在对应的服务端已验证块高。
第二种,服务端可以针对整个账本进行最细粒度的完整性验证,即,验证每条数据记录的完整性以及验证每个数据块的完整性。在这种方式下,验证效率较低,已验证块高推进较慢。
在验证停止时,将最后一个验证成功的数据块的块高作为服务端已验证块高。从而,得到一个针对全部业务属性的服务端已验证块高,并且将该服务端已验证块高作为所有业务属性的服务端已验证块高。
若验证成功,针对任一业务属性,将待验证数据块中的最大块高确定为该业务属性的服务端已验证块高,并写入索引表。在这种实施方式下,多个不同业务属性的服务端已验证块高可能相同。
如表3所示,表3为为本说明书实施例所提供的再一种示例性索引表。其中的“VerifyfromClient”即表征客户端已验证块高,“VerifyfromServer”即为服务端已验证块高。
表3
Figure BDA0002166001660000111
需要说明的是,对于服务端而言,针对任一业务属性,下一次的完整性验证将会从前一次所保存的服务端已已验证块高继续推进。同样的,针对任一业务属性,对于客户端而言,下次一的完整性验证将会从前一次所保存的客户端端已验证块高继续推进。
例如,假设当前的完整性验证推进情形已经如表3中所示。则对于服务端而言,下一次启动的完整性验证将会从块高100继续;对于客户端而言,针对业务属性“0X123456”,即使客户端发送的验证指令确定的待验证数据块包含有数据块2和300,但是由于在300之前的数据块已经进行完整性验证,并且得到了客户端的用户签名保证,因此,此时数据库服务端将会直接返回验证成功的结果至客户端。
基于前述说明,可以看到,在服务端中保存有客户端已验证块高和服务端已验证块高,同时,还可以看到,二者常常是不一致的。如前所述,数据库服务端在达到一定条件时往往需要自动启动完整性验证,以推进服务端已验证块高。
需要说明的是,在本说明书实施例中,数据库服务端作为服务提供方保存有用户的数据。因此,相对于数据库服务端,用户更信任在用户客户端所进行的针对自身数据的完整性验证。换言之,假设用户已经在自身进行了前300个数据块的验证,那么,对于服务端而言,即使才验证到第100个数据块,那么对于用户而言,第101至第300个数据块的完整性也已经得到了确认。
基于此,本说明书实施例还提供一种服务端已验证块高的更新方法,应用以块链式账本存储数据记录的数据库服务端中,如图5所示,图5为本说明书实施例所挺的一种服务端已验证块高的更新方法的流程示意图,包括:
S501,在所述块链式账本中,针对任一业务属性,确定数据库服务端对于所述业务属性的服务端已验证块高,以及,客户端对于所述业务属性的客户端已验证块高。
具体而言,数据库服务端在满足完整性验证条件,并启动完整性验证时,可以针对任一业务属性,从前述的索引表中获取该业务属性所对应的服务端已验证块高和客户端已验证块高。
S503,判断所述服务端已验证块高和所述客户端已验证块高的相对大小,若所述服务端已验证块高小于所述客户端已验证块高,将所述服务端已验证块高更新为所述客户端已验证块高。
如表3中所示,针对业务属性“0X123456”而言,服务端已验证块高为100,客户端已验证块高为300,则当服务端需要针对业务属性“0X123456”进行完整性验证时,将服务端已验证块高更新为300.
而对于业务属性“344X0001”而言,服务端已验证块高为100,客户端已验证块高为5,则当服务端需要针对业务属性“344X0001”进行完整性验证时,无需改变其服务端已验证块高。
通过本说明书实施例所提供的方案,分别获取服务端方面生成的服务端已验证块高和客户端方面的客户端已验证块高进行对比,若服务端已验证块高小于客户端已验证块高,则将服务端已验证块高更新为客户端已验证块高,从而避免服务端作多余的完整性验证,节省服务端的计算资源,并且不会降低账本中与用户相关数据的完整性验证的可靠性。
对应的,本说明书实施例还提供一种服务端已验证块高的更新装置,应用以块链式账本存储数据记录的数据库服务端中,如图6所示,图6为本说明书实施例所提供的一种服务端已验证块高的更新装置的结构示意图,包括:
确定模块601,在所述块链式账本中,针对任一业务属性,确定数据库服务端对于所述业务属性的服务端已验证块高,以及,客户端对于所述业务属性的客户端已验证块高,其中,所述服务端已验证块高用于表征在服务端已验证块高之前的数据块已经通过服务端的完整性验证,所述客户端已验证块高用于表征在客户端已验证块高之前的数据块已经通过客户端的完整性验证;
判断模块603,判断所述服务端已验证块高和所述客户端已验证块高的相对大小,若所述服务端已验证块高小于所述客户端已验证块高,将所述服务端已验证块高更新为所述客户端已验证块高。
进一步地,所述装置还包括数据块生成模块605,接收待存储的数据记录,确定各数据记录的哈希值,其中,数据记录中包含业务属性;当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块,具体包括:
当N=1时,初始数据块的哈希值和块高基于预设方式给定;
当N>1时,根据待写入数据块中的各数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各数据记录的第N个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。
进一步地,所述预设的成块条件包括:待存储的数据记录数量达到数量阈值;或者,距离上一次成块时刻的时间间隔达到时间阈值。
进一步地,所述装置还包括服务端已验证块高生成模块607,当达到预设的完整性验证条件时,确定待验证数据块;验证所述待验证数据块的完整性,若验证成功,将所述待验证数据块中的最大块高确定为服务端已验证块高,并存储。
进一步地,所述装置还包括客户端已验证块高生成模块609,接收客户端所发送的包含块高或者哈希值的验证指令;根据所述块高或者哈希值确定账本中待验证数据块;将所述待验证数据块发送至客户端,以便客户端对所述待验证数据块进行完整性验证,并在验证成功后,将待验证数据块中的最大块高确定为客户端已验证块高,并进行用户数字签名;接收客户端所返回的包含用户数字签名的客户端已验证块高,并存储。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现图5所示的服务端已验证块高的更新方法。
图7示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现图5所示的服务端已验证块高的更新方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、方法、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的方法实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。

Claims (11)

1.一种服务端已验证块高的更新方法,应用以块链式账本存储数据记录的数据库服务端中,包括:
在所述块链式账本中,针对任一业务属性,确定数据库服务端对于所述业务属性的服务端已验证块高,以及,客户端对于所述业务属性的客户端已验证块高,其中,所述服务端已验证块高用于表征在服务端已验证块高之前的数据块已经通过服务端的完整性验证,所述客户端已验证块高用于表征在客户端已验证块高之前的数据块已经通过客户端的完整性验证;
判断所述服务端已验证块高和所述客户端已验证块高的相对大小,若所述服务端已验证块高小于所述客户端已验证块高,将所述服务端已验证块高更新为所述客户端已验证块高。
2.如权利要求1所述的方法,所述块链式账本中的数据块,通过如下方式生成:
接收待存储的数据记录,确定各数据记录的哈希值,其中,数据记录中包含业务属性;
当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块,具体包括:
当N=1时,初始数据块的哈希值和块高基于预设方式给定;
当N>1时,根据待写入数据块中的各数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各数据记录的第N个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。
3.如权利要求2所述的方法,所述预设的成块条件包括:
待存储的数据记录数量达到数量阈值;或者,
距离上一次成块时刻的时间间隔达到时间阈值。
4.如权利要求1所述的方法,所述服务端已验证块高通过如下方式预先确定:
针对任一业务属性,当达到预设的完整性验证条件时,确定待验证数据块;
验证所述待验证数据块的完整性,若验证成功,将所述待验证数据块中的最大块高确定为该业务属性的服务端已验证块高,并存储。
5.如权利要求1所述的方法,所述客户端已验证块高通过如下方式预先确定:
接收客户端所发送的包含业务属性和数据块标识的验证指令,其中,所述数据块标识包括块高或者哈希值;
针对所述业务属性,根据所述数据块标识确定账本中的待验证数据块;
将所述待验证数据块发送至客户端,以便客户端对所述待验证数据块进行完整性验证,并在验证成功后,将待验证数据块中的最大块高确定为客户端已验证块高,并进行用户数字签名;
接收客户端所返回的包含用户数字签名的客户端已验证块高,并存储。
6.一种服务端已验证块高的更新装置,应用以块链式账本存储数据记录的数据库服务端中,包括:
确定模块,在所述块链式账本中,针对任一业务属性,确定数据库服务端对于所述业务属性的服务端已验证块高,以及,客户端对于所述业务属性的客户端已验证块高,其中,所述服务端已验证块高用于表征在服务端已验证块高之前的数据块已经通过服务端的完整性验证,所述客户端已验证块高用于表征在客户端已验证块高之前的数据块已经通过客户端的完整性验证;
判断模块,判断所述服务端已验证块高和所述客户端已验证块高的相对大小,若所述服务端已验证块高小于所述客户端已验证块高,将所述服务端已验证块高更新为所述客户端已验证块高。
7.如权利要求6所述的装置,还包括数据块生成模块,接收待存储的数据记录,确定各数据记录的哈希值,其中,数据记录中包含业务属性;
当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块,具体包括:
当N=1时,初始数据块的哈希值和块高基于预设方式给定;
当N>1时,根据待写入数据块中的各数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各数据记录的第N个数据块,其中,数据块的块高基于成块时间的先后顺序单调递增。
8.如权利要求7所述的装置,所述预设的成块条件包括:待存储的数据记录数量达到数量阈值;或者,距离上一次成块时刻的时间间隔达到时间阈值。
9.如权利要求6所述的装置,还包括服务端已验证块高生成模块,当达到预设的完整性验证条件时,确定待验证数据块;验证所述待验证数据块的完整性,若验证成功,将所述待验证数据块中的最大块高确定为服务端已验证块高,并存储。
10.如权利要求6所述的装置,还包括客户端已验证块高生成模块,接收客户端所发送的包含块高或者哈希值的验证指令;根据所述块高或者哈希值确定账本中待验证数据块;将所述待验证数据块发送至客户端,以便客户端对所述待验证数据块进行完整性验证,并在验证成功后,将待验证数据块中的最大块高确定为客户端已验证块高,并进行用户数字签名;接收客户端所返回的包含用户数字签名的客户端已验证块高,并存储。
11.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至5任一项所述的方法。
CN201910747326.3A 2019-08-14 2019-08-14 一种服务端已验证块高的更新方法、装置及设备 Active CN110636042B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910747326.3A CN110636042B (zh) 2019-08-14 2019-08-14 一种服务端已验证块高的更新方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910747326.3A CN110636042B (zh) 2019-08-14 2019-08-14 一种服务端已验证块高的更新方法、装置及设备

Publications (2)

Publication Number Publication Date
CN110636042A true CN110636042A (zh) 2019-12-31
CN110636042B CN110636042B (zh) 2021-07-16

Family

ID=68970348

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910747326.3A Active CN110636042B (zh) 2019-08-14 2019-08-14 一种服务端已验证块高的更新方法、装置及设备

Country Status (1)

Country Link
CN (1) CN110636042B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111464319A (zh) * 2020-06-15 2020-07-28 支付宝(杭州)信息技术有限公司 一种基于中心化块链式账本的交易存储、签名校验方法

Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170061398A1 (en) * 2014-06-19 2017-03-02 Jim Austin Joseph Cryptographic currency block chain based voting system
CN106815530A (zh) * 2016-12-26 2017-06-09 北京爱接力科技发展有限公司 数据存证方法、数据校验方法及装置
US20170236123A1 (en) * 2016-02-16 2017-08-17 Blockstack Inc. Decentralized processing of global naming systems
CN107368259A (zh) * 2017-05-25 2017-11-21 阿里巴巴集团控股有限公司 一种向区块链系统中写入业务数据的方法和装置
CN107392623A (zh) * 2017-05-22 2017-11-24 阿里巴巴集团控股有限公司 一种业务执行的方法及装置
CN108021506A (zh) * 2017-12-18 2018-05-11 王松山 一种检测区块链系统的方法
CN108416589A (zh) * 2018-03-08 2018-08-17 深圳前海微众银行股份有限公司 区块链节点的连接方法、系统及计算机可读存储介质
CN109391645A (zh) * 2017-08-03 2019-02-26 中国移动通信有限公司研究院 区块链轻量化处理方法、区块链节点及存储介质
CN109656873A (zh) * 2018-11-02 2019-04-19 平安科技(深圳)有限公司 基于区块链的数据归档方法、装置及终端设备
CN109697204A (zh) * 2017-10-23 2019-04-30 阿里巴巴集团控股有限公司 一种数据审计的方法及装置
US20190132138A1 (en) * 2017-11-02 2019-05-02 Keir Finlow-Bates System and method for storing the location on a blockchain of a hash of a digital item within said digital item
CN110009347A (zh) * 2019-03-20 2019-07-12 深圳前海微众银行股份有限公司 一种区块链交易信息审计的方法及装置
CN110009337A (zh) * 2018-12-21 2019-07-12 阿里巴巴集团控股有限公司 一种基于区块链的数据处理方法和装置
CN110008743A (zh) * 2019-03-26 2019-07-12 阿里巴巴集团控股有限公司 一种块链式账本中的数据属性标识方法、装置及设备
CN110019278A (zh) * 2019-01-31 2019-07-16 阿里巴巴集团控股有限公司 一种数据验证方法、装置及设备
CN110059084A (zh) * 2019-01-31 2019-07-26 阿里巴巴集团控股有限公司 一种数据存储方法、装置及设备
CN110061843A (zh) * 2019-01-31 2019-07-26 阿里巴巴集团控股有限公司 一种链式账本中的块高创建方法、装置及设备
CN110071969A (zh) * 2019-04-17 2019-07-30 杭州云象网络技术有限公司 一种基于多链架构的数据安全共享方法
US20190238486A1 (en) * 2018-02-01 2019-08-01 Red Hat, Inc. Enterprise messaging using blockchain system

Patent Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170061398A1 (en) * 2014-06-19 2017-03-02 Jim Austin Joseph Cryptographic currency block chain based voting system
US20170236123A1 (en) * 2016-02-16 2017-08-17 Blockstack Inc. Decentralized processing of global naming systems
CN106815530A (zh) * 2016-12-26 2017-06-09 北京爱接力科技发展有限公司 数据存证方法、数据校验方法及装置
CN107392623A (zh) * 2017-05-22 2017-11-24 阿里巴巴集团控股有限公司 一种业务执行的方法及装置
CN107368259A (zh) * 2017-05-25 2017-11-21 阿里巴巴集团控股有限公司 一种向区块链系统中写入业务数据的方法和装置
CN109391645A (zh) * 2017-08-03 2019-02-26 中国移动通信有限公司研究院 区块链轻量化处理方法、区块链节点及存储介质
CN109697204A (zh) * 2017-10-23 2019-04-30 阿里巴巴集团控股有限公司 一种数据审计的方法及装置
US20190132138A1 (en) * 2017-11-02 2019-05-02 Keir Finlow-Bates System and method for storing the location on a blockchain of a hash of a digital item within said digital item
CN108021506A (zh) * 2017-12-18 2018-05-11 王松山 一种检测区块链系统的方法
US20190238486A1 (en) * 2018-02-01 2019-08-01 Red Hat, Inc. Enterprise messaging using blockchain system
CN108416589A (zh) * 2018-03-08 2018-08-17 深圳前海微众银行股份有限公司 区块链节点的连接方法、系统及计算机可读存储介质
CN109656873A (zh) * 2018-11-02 2019-04-19 平安科技(深圳)有限公司 基于区块链的数据归档方法、装置及终端设备
CN110009337A (zh) * 2018-12-21 2019-07-12 阿里巴巴集团控股有限公司 一种基于区块链的数据处理方法和装置
CN110019278A (zh) * 2019-01-31 2019-07-16 阿里巴巴集团控股有限公司 一种数据验证方法、装置及设备
CN110059084A (zh) * 2019-01-31 2019-07-26 阿里巴巴集团控股有限公司 一种数据存储方法、装置及设备
CN110061843A (zh) * 2019-01-31 2019-07-26 阿里巴巴集团控股有限公司 一种链式账本中的块高创建方法、装置及设备
CN110009347A (zh) * 2019-03-20 2019-07-12 深圳前海微众银行股份有限公司 一种区块链交易信息审计的方法及装置
CN110008743A (zh) * 2019-03-26 2019-07-12 阿里巴巴集团控股有限公司 一种块链式账本中的数据属性标识方法、装置及设备
CN110071969A (zh) * 2019-04-17 2019-07-30 杭州云象网络技术有限公司 一种基于多链架构的数据安全共享方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
葛利洁: "基于区块链技术的交易信息存储与查询系统的设计与实现", 《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111464319A (zh) * 2020-06-15 2020-07-28 支付宝(杭州)信息技术有限公司 一种基于中心化块链式账本的交易存储、签名校验方法
CN111464319B (zh) * 2020-06-15 2021-08-24 支付宝(杭州)信息技术有限公司 一种基于中心化块链式账本的交易存储、签名校验方法

Also Published As

Publication number Publication date
CN110636042B (zh) 2021-07-16

Similar Documents

Publication Publication Date Title
CN110188096B (zh) 一种数据记录的索引创建方法、装置及设备
CN110162662B (zh) 一种块链式账本中数据记录的验证方法、装置及设备
CN110162526B (zh) 一种块链式账本中数据记录的查询方法、装置及设备
CN110825737A (zh) 索引创建和数据查询方法、装置及设备
CN110837502B (zh) 一种块链式账本中的数据存储方法、装置及设备
CN113726751B (zh) 一种块链式账本中的权重管理方法、装置及设备
CN111352935B (zh) 一种块链式账本中的索引创建方法、装置及设备
CN110349019B (zh) 一种块链式账本中的验证方法、装置及设备
CN110347679B (zh) 一种基于收据的数据存储方法、装置及设备
CN110716965B (zh) 一种块链式账本中的查询方法、装置及设备
US10999062B2 (en) Blockchain-type data storage
CN110474775B (zh) 一种块链式账本中的用户创建方法、装置及设备
CN111046069B (zh) 一种块链式账本中的聚合计算方法、装置及设备
CN110362568B (zh) 一种针对块链式账本的压缩方法、装置及设备
CN110347678B (zh) 一种金融数据的存储方法、系统、装置及设备
CN110750533A (zh) 一种基于多条业务属性的数据存储方法、装置及设备
CN110727679A (zh) 法院案卷的协同追踪方法、系统、装置及设备
CN110636042B (zh) 一种服务端已验证块高的更新方法、装置及设备
CN111444194B (zh) 一种块链式账本中索引的清除方法、装置及设备
US11115189B2 (en) Verifying a blockchain-type ledger
CN110362570B (zh) 一种数据存储方法、装置及设备
CN110688664B (zh) 一种块链式账本中的权限管理方法、装置及设备
CN111444197B (zh) 一种块链式账本中数据记录的验证方法、装置及设备
CN111444215A (zh) 一种块链式账本中的成块方法、装置及设备
CN111444195B (zh) 一种块链式账本中索引的清除方法、装置及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40019622

Country of ref document: HK

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200925

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200925

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

GR01 Patent grant
GR01 Patent grant