一种块链式账本中的数据属性标识方法、装置及设备制造方法及图纸

技术编号:21606404 阅读:20 留言:0更新日期:2019-07-13 18:31
公开了一种块链式账本中的数据属性标识方法、装置及设备。在块链式存储的账本中,每当用户对于数据记录做出某种类型的操作时,即相应的给出一个操作记录所对应的属性标记字符,建立该属性标记字符与数据记录的对应关系,并写入位于数据块的块头中的状态数组。

A Method, Device and Equipment for Data Attribute Identification in Block Chain Accounts

【技术实现步骤摘要】
一种块链式账本中的数据属性标识方法、装置及设备
本说明书实施例涉及信息
,尤其涉及一种块链式账本中的数据属性标识方法、装置及设备。
技术介绍
在使用块链式的账本存储数据时,虽然数据是难以篡改的,但是用户仍然可以对已经存储的数据记录进行某些操作。在这个过程中,数据记录的状态会发生变化。出于业务的需要,用户可能需要查看对于一个或者几个数据块中的各数据记录分别做了什么操作,或者想要了解一个数据块中各数据记录的当前状态。目前的解决方案中没有一种便利的实现对数据块中的数据记录进行状态标记的方法。
技术实现思路
针对现有块链式的账本中数据记录的状态标记不便的问题,为实现更为便利的识别数据记录的状态,本说明书实施例提供一种块链式账本中的数据属性标识方法、装置及设备,应用于块链式账本中,块链式账本中的数据块中包含用于存储数据记录元数据的块头,所述方法具体包括:接收操作指令,确定操作指令的类型和由操作指令所确定的需要执行操作的数据记录;根据所述操作指令的类型,确定所述操作指令所对应的属性标记字符,所述属性标记字符用于标识数据记录的最近一次变更状态;建立所述属性标记字符和所述数据记录的对应关系,将所述对应关系写入所述数据记录所处的数据块的块头中的状态数组;其中,除初始数据块以外,每一数据块中包含至少一条数据记录,每一数据块中包含由前一数据块的哈希值和自身所包含的数据记录确定的自身数据块的哈希值,数据块的块高基于成块时间的先后顺序单调递增。对应的,本说明书实施例还提供一种块链式账本中的数据属性标识装置,应用于块链式账本中,块链式账本中的数据块中包含用于存储数据记录元数据的块头,包括:指令接收模块,接收操作指令,确定操作指令的类型和由操作指令所确定的需要执行操作的数据记录;字符确定模块,根据所述操作指令的类型,确定所述操作指令所对应的属性标记字符,所述属性标记字符用于标识数据记录的最近一次变更状态;关系建立模块,建立所述属性标记字符和所述数据记录的对应关系;写入模块,将所述对应关系写入所述数据记录所处的数据块的块头中的状态数组;其中,除初始数据块以外,每一数据块中包含至少一条数据记录,每一数据块中包含由前一数据块的哈希值和自身所包含的数据记录确定的自身数据块的哈希值,数据块的块高基于成块时间的先后顺序单调递增。在块链式存储的账本中,每当用户对于数据记录做出某种类型的操作时,即相应的给出一个操作记录所对应的属性标记字符,建立该属性标记字符与数据记录的对应关系,并写入位于数据块的块头中的状态数组。通过上述方式,可以灵活的对数据记录的状态进行标记,以及方便的对数据块中数据记录的状态进行统计。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。附图说明为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1是本说明书实施例所涉及的一种块链式账本的结构示意图;图2是本说明书实施例提供的一种块链式账本中的数据属性标识方法的流程示意图;图3为本说明书实施例所提供的一种包含状态数组的块头的示意图;图4是本说明书实施例提供的一种块链式账本中的数据属性标识装置的结构示意图;图5是用于配置本说明书实施例方法的一种设备的结构示意图。具体实施方式为了使本领域技术人员更好地理解本说明书实施例中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于保护的范围。通常意义上,块链式账本包含两种:区块链和类区块链账本。区块链一般被划分为三种类型:公有链(PublicBlockchain),私有链(PrivateBlockchain)和联盟链(ConsortiumBlockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。无论哪种区块链,都可以认为是去中心化的,数据写入区块链中需要进行各节点的共识,达成数据在各节点的一致性,实现难以篡改。而类区块链的账本则是一种在中心化的场景下进行数据存储的方式,但其同样具有不可篡改的特性。无论是区块链还是类区块链的账本,其形式上都可以如图1所示。图1是本说明书实施例所涉及的一种块链式账本的结构示意图。一个块链式账本,由多个数据块组成,数据块之间按照成块时间顺序排列。从初始数据块开始,每一个数据块有一个子数据块,每一数据块的哈希值由前一数据块的哈希值和自身所包含的数据记录而确定。在每一个数据块,包含有块头和块体,块头用于存储一些数据块的元数据(例如块高、父数据块哈希、块体中的数据记录构成的默克尔树的根哈希等等),块体则用于存储具体的数据记录。需要说明的是,在块链式的账本中,数据记录难以被篡改。但是,这并不意味着用户不能对数据记录进行某些特定的操作。例如,在节点有限的联盟链或者私有链式的区块链账本中,节点可以发起一个用于隐匿包含敏感数据的指定位置的数据记录的交易,在区块链中共识通过以后,以包含原数据记录的哈希值的隐匿化数据替换掉原数据记录,并且不影响区块链的简易支付验证(SimplifiedPaymentVerification,SPV)或者其它验证。又例如,在中心化的类区块链账本中,用户则可以通过预先定义的不同指令对于数据块中的数据进行诸如添加、清除、隐匿等等操作。具体的操作方式将在下文进行详细描述。随着用户对块链式账本中的数据记录进行了操作,数据记录的状态就相应的发生了改变。用户此时出于业务需要,可能需要了解有哪些数据记录发生了什么改变,以及进行相应的统计。基于此,本说明书实施例提供一种对于数据记录的属性进行记录的方案。为使本说明书实施例的方案更加浅显易懂,首先对本说明书实施例中所涉及的中心化的类区块链账本的生成方法和形式给予说明。在一个具体的实施例中,类区块链的账本可以由如下方式生成:首先,中心化的数据库服务提供方接收待存储的数据记录,确定各数据记录的哈希值。此处的待存储的数据记录,可以是客户端个人用户的各种消费记录,也可以是应用服务器基于用户的指令,在执行业务逻辑时产生的业务结果、中间状态以及操作记录等等。具体的业务场景可以包括消费记录、审计日志、供应链条、政府监管记录、医疗记录等等。然后,当达到预设的成块条件时,数据库服务提供方确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块。所述预设的成块条件包括:待存储的数据记录数量达到数量阈值,例如,每接收到一千条数据记录时,生成一个新数据块,将一千条数据记录写入块中;或者,距离上一次成块时刻的时间间隔达到时间阈值,例如,每隔5分钟,生成一个新数据块,将在这5分钟内接收到的数据记录写入块中。此处的N指的是数据块的序号,换言之,在本说明书实施例中,数据块是以块链的形式,基于成块时间的顺序先后排列,具有很强的时序特征。其中,数据块的块本文档来自技高网...

【技术保护点】
1.一种块链式账本中的数据属性标识方法,应用于块链式账本中,块链式账本中的数据块中包含用于存储数据记录元数据的块头,所述方法包括:接收操作指令,确定操作指令的类型和由操作指令所确定的需要执行操作的数据记录;根据所述操作指令的类型,确定所述操作指令所对应的属性标记字符,所述属性标记字符用于标识数据记录的最近一次变更状态;建立所述属性标记字符和所述数据记录的对应关系,将所述对应关系写入所述数据记录所处的数据块的块头中的状态数组;其中,除初始数据块以外,每一数据块中包含至少一条数据记录,每一数据块中包含由前一数据块的哈希值和自身所包含的数据记录确定的自身数据块的哈希值,数据块的块高基于成块时间的先后顺序单调递增。

【技术特征摘要】
1.一种块链式账本中的数据属性标识方法,应用于块链式账本中,块链式账本中的数据块中包含用于存储数据记录元数据的块头,所述方法包括:接收操作指令,确定操作指令的类型和由操作指令所确定的需要执行操作的数据记录;根据所述操作指令的类型,确定所述操作指令所对应的属性标记字符,所述属性标记字符用于标识数据记录的最近一次变更状态;建立所述属性标记字符和所述数据记录的对应关系,将所述对应关系写入所述数据记录所处的数据块的块头中的状态数组;其中,除初始数据块以外,每一数据块中包含至少一条数据记录,每一数据块中包含由前一数据块的哈希值和自身所包含的数据记录确定的自身数据块的哈希值,数据块的块高基于成块时间的先后顺序单调递增。2.如权利要求1所述的方法,所述数据块由中心化的场景下的数据库服务提供方基于如下方式预先生成:接收待存储的数据记录,确定各数据记录的哈希值;当达到预设的成块条件时,确定待写入数据块中的各数据记录,生成包含数据块的哈希值和数据记录的第N个数据块,具体包括:当N=1时,初始数据块的哈希值和块高基于预设方式给定;当N>1时,根据待写入数据块中的各数据记录和第N-1个数据块的哈希值确定第N个数据块的哈希值,生成包含第N个数据块的哈希值和各数据记录的第N个数据块。3.如权利要求1所述的方法,建立所述属性标记字符和所述数据记录的对应关系,将所述对应关系写入所述数据记录所处的数据块中,包括:确定所述数据记录在所述数据块中的位置信息,其中所述位置信息包括所述数据记录在数据块中的偏移量或者存储序号;将所述位置信息和属性标记字符的对应关系写入所述状态数组。4.如权利要求3所述的方法,在所述状态数组中,数组中的每一个元素为数据记录所对应的属性标记字符,按照数据记录在数据块中的顺序排列。5.如权利要求3所述的方法,在所述状态数组中,元素的形式为键值对,数组中的元素,以属性标记字符为键,以位置信息为值;或者,数组中的元素,以位置信息为键,以属性标记字符为值。6.如权利要求1所述的方法,还包括:确定所述数据记录所处的数据块的块高和在所述数据块中的偏移量;建立包含所述块高、偏移量和属性标记字符的对应关系的索引表,并存储。7.一种块链式账本中的数据属性标识装置,应用于块链式账...

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

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

1