
1.本申请属于数据处理技术领域,尤其涉及一种溯源信息处理方法及装置。
背景技术:2.数据溯源是通过对数据历史演变过程的搜集,获取原始数据的演变过程,在生成溯源信息后存储溯源信息,保证原始数据的来源可靠;通过对溯源信息的查询,对原始数据的来源进行验证。
3.目前溯源信息由云平台作为存储中心进行采集和存储,但是云平台的开放性和不可信任性使得云平台存在易遭受内部和外部攻击等问题,降低溯源信息的安全性和可靠性。
技术实现要素:4.有鉴于此,本申请的目的在于提供一种溯源信息处理方法及装置,用于提高溯源信息的安全性和可靠性。
5.一方面,本申请提供一种溯源信息处理方法,所述方法包括:
6.确定原始数据的流特征参数信息,所述流特征参数信息用于指示所述原始数据的数据来源;
7.至少基于所述流特征参数信息,确定所述原始数据的数据标注;
8.获得含有所述数据标注的溯源信息,将含有所述数据标注的溯源信息和含有所述数据标注的上一条溯源信息所在区块的存储标识存储到区块链的一个区块中;
9.基于含有所述数据标注的溯源信息的存储情况,得到所述数据标注和存储含有所述数据标注的上一条溯源信息的区块的存储标识之间的对应关系,以在基于所述数据标注得到查询条件时利用所述对应关系从区块中查询溯源信息。
10.可选的,所述在基于所述数据标注得到查询条件时利用所述对应关系从区块中查询溯源信息包括:
11.获取用于生成查询条件的数据标注,基于所获取的数据标注得到查询条件;
12.基于所述查询条件,获得与所述查询条件匹配的多个所述对应关系,利用所述对应关系,从区块链开始查询所述对应关系对应的溯源信息;
13.如果从所述区块链的一个区块中查询到所述对应关系对应的溯源信息,将所述对应关系对应的溯源信息作为当前溯源信息;
14.从存储所述当前溯源信息的区块中获取与所述当前溯源信息相关的上一条溯源信息的存储标识;
15.基于所述上一条溯源信息的存储标识,从所述存储标识指向的区块中获取所述上一条溯源信息,并将所述上一条溯源信息作为当前溯源信息,返回继续执行从存储所述当前溯源信息的区块中获取与所述当前溯源信息相关的上一条溯源信息的存储标识直至得到的存储标识的取值为空;
16.输出查询到的所有溯源信息。
17.可选的,将含有所述数据标注的溯源信息和含有所述数据标注的上一条溯源信息所在区块的存储标识存储到区块链的一个区块中包括:
18.在当前得到含有数据标注的一条溯源信息,查询所述区块链的区块中是否存储有所述数据标注;
19.如果所述区块链的区块中没有存储所述数据标注,则将当前得到的含有所述数据标注的溯源信息存储在所述区块链的一个区块中,且所述区块中的存储标识为空;
20.如果所述区块链的区块中存储有所述数据标注,则获取存储有含有所述数据标注的上一条溯源信息所在区块的存储标识,将所获取的存储标识和当前得到的含有所述数据标注的溯源信息存储在所述区块链的一个区块中。
21.可选的,所述获取存储有含有所述数据标注的上一条溯源信息所在区块的存储标识包括:
22.获取存储所述数据标注和含有所述数据标注的上一条溯源信息所在区块的区块编号,将所述区块编号作为所述上一条含有所述数据标注的溯源信息所在区块的存储标识。
23.可选的,所述至少基于所述流特征参数信息,确定所述原始数据的数据标注包括:
24.获取原始数据的属性信息、所述原始数据的流特征参数信息、所述原始数据的上一级数据标识信息和所述原始数据的校验信息,所述流特征参数信息用于指示所述原始数据的传输和创建过程,所述上一级数据标识信息用于指示生成所述原始数据的上一级数据,所述原始数据的校验信息用于验证所述原始数据;
25.基于所述属性信息、所述流特征参数信息、所述上一级数据标识信息和所述校验信息,生成所述原始数据的数据标注。
26.可选的,所述方法还包括:将原始数据的数据标注写入到所述原始数据的文件属性中。
27.可选的,所述基于所述属性信息、所述流特征参数信息、所述上一级数据标识信息和所述校验信息,生成所述原始数据的数据标注包括:
28.基于如下方式生成所述原始数据的数据标注:
29.annotation{ip,port,creator,hash,time,attrib,patent};
30.ip、port、creator、time为流特征参数信息,ip表示所述原始数据对应的源ip地址,port表示所述原始数据对应的源端口号,creator表示所述原始数据的创建者,time表示所述原始数据的创建时间,attrib为所述属性信息,patent为所述上一级数据标识信息,hash为所述校验信息。
31.另一方面,本申请提供一种溯源信息处理装置,所述装置包括:
32.确定单元,用于确定原始数据的流特征参数信息,所述流特征参数信息用于指示所述原始数据的数据来源,以及用于至少基于所述流特征参数信息,确定所述原始数据的数据标注;
33.获得单元,用于获得含有所述数据标注的溯源信息;
34.存储单元,用于将含有所述数据标注的溯源信息和含有所述数据标注的上一条溯源信息所在区块的存储标识存储到区块链的一个区块中;
35.关系获得单元,用于基于含有所述数据标注的溯源信息的存储情况,得到所述数据标注和存储含有所述数据标注的上一条溯源信息的区块的存储标识之间的对应关系,以在基于所述数据标注得到查询条件时利用所述对应关系从区块中查询溯源信息。
36.可选的,所述装置还包括:查询单元,用于在基于所述数据标注得到查询条件时利用所述对应关系从区块中查询溯源信息;所述查询单元,包括:
37.条件获得子单元,用于获取用于生成查询条件的数据标注,基于所获取的数据标注得到查询条件;
38.第一查询子单元,用于基于所述查询条件,获得与所述查询条件匹配的多个所述对应关系,利用所述对应关系,从区块链开始查询所述对应关系对应的溯源信息;
39.第二查询子单元,用于如果从所述区块链的一个区块中查询到所述对应关系对应的溯源信息,将所述对应关系对应的溯源信息作为当前溯源信息;从存储所述当前溯源信息的区块中获取与所述当前溯源信息相关的上一条溯源信息的存储标识;基于所述上一条溯源信息的存储标识,从所述存储标识指向的区块中获取所述上一条溯源信息,并将所述上一条溯源信息作为当前溯源信息,返回继续执行从存储所述当前溯源信息的区块中获取与所述当前溯源信息相关的上一条溯源信息的存储标识直至得到的存储标识的取值为空;
40.输出子单元,用于输出查询到的所有溯源信息。
41.再一方面,本申请提供一种服务器,包括:
42.处理器;
43.用于存储所述处理器可执行指令的存储器;
44.其中,所述处理器被配置为执行所述指令,以实现上述溯源信息处理方法。
45.再一方面,本申请提供一种存储介质,存储介质中存储有计算机程序代码,计算机程序代码被执行时实现上述溯源信息处理方法。
46.藉由上述技术方案,确定原始数据的流特征参数信息,至少基于流特征参数信息,流特征参数信息用于指示原始数据的数据来源,确定原始数据的数据标注;获得数据标注的溯源信息,将数据标注的溯源信息和数据标注的上一条溯源信息所在区块的存储标识存储到区块链的一个区块中;基于数据标注的溯源信息的存储情况,得到数据标注和存储含有数据标注的上一条溯源信息的区块的存储标识之间的对应关系,以得到针对同一数据标注的多条溯源信息之间的对应关系,在基于数据标注得到查询条件时利用对应关系从区块中查询溯源信息。上链的所有区块都存储溯源信息,上链的所有区块构成区块链,某个区块中的溯源信息被篡改能够通过其他区块中的验证信息进行验证,通过这种去中心化的区块链技术提高溯源信息的安全性和可靠性,并且在进行查询过程中能够利用数据标注的相似性能够获取到同一数据流分片后的多个原始数据,通过这些原始数据的数据标注的对应关系可以快速获取到某个数据流的所有溯源信息,这样在基于数据标注得到的查询条件进行查询过程中,能够获取到与某个数据标注相关的所有溯源信息,实现溯源信息的关联查询。
附图说明
47.为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据
这些附图获得其他的附图。
48.图1是本申请实施例提供的一种溯源信息处理方法的流程图;
49.图2是本申请实施例提供的数据标注生成的流程图;
50.图3是本申请实施例提供的数据标注和溯源信息存储的流程图;
51.图4是本申请实施例提供的数据标注和溯源信息存储的示意图;
52.图5是本申请实施例提供的溯源信息查询的流程图;
53.图6是本申请实施例提供的一种溯源信息处理方法的应用场景示意图;
54.图7是本申请实施例提供的一种溯源信息处理装置的结构示意图;
55.图8是本申请实施例提供的另一种溯源信息处理装置的结构示意图。
具体实施方式
56.为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
57.请参见图1,其示出了本申请实施例提供的一种溯源信息处理方法的流程图,可以包括以下步骤:
58.101:确定原始数据的流特征参数信息,流特征参数信息用于指示原始数据的数据来源。如流特征参数信息用于指示原始数据是从哪个设备传输过来以及原始数据的创建信息,流特征参数信息包括ip、port、creator和time,ip表示原始数据对应的源ip地址,port表示原始数据对应的源端口号,以通过ip和port确定原始数据从哪个设备传输过来,creator表示原始数据的创建者,time表示原始数据的创建时间。
59.102:至少基于流特征参数信息,确定原始数据的数据标注。一种确定方式是:由流特征参数信息中的各个参数组成原始数据的数据标注,如annotation{ip,port,creator,time}。
60.在本实施例中,数据标注作为原始数据的标识符,用于唯一指向原始数据,还可以具备验证原始数据和原始数据的上一级数据的能力,据此对于任意一条原始数据,其对应的数据标注的生成过程如下:
61.获取原始数据的属性信息、原始数据的流特征参数信息、原始数据的上一级数据标识信息和原始数据的校验信息,流特征参数信息用于指示原始数据的传输和创建过程,上一级数据标识信息用于指示生成原始数据的上一级数据,原始数据的校验信息用于验证原始数据;基于属性信息、流特征参数信息、上一级数据标识信息和校验信息,生成原始数据的数据标注。
62.其中数据来源通常是原始数据从哪个设备中获取到(或者是由哪个设备传输过来)、创建信息和通过哪些数据生成,流特征参数信息和上一级数据标识信息则能够表示出这些内容,如流特征参数信息用于指示原始数据是从哪个设备传输过来以及原始数据的创建信息,上一级数据标识信息则用于指示生成原始数据的上一级数据,如原始数据是分片得到的数据流,则上一级数据标识信息指向数据流集合,如果原始数据是通过对分片后的数据流进行截取操作得到,则上一级数据标识信息指向截取操作针对的数据流,通过原始
数据的获得方式可确定本实施例可应用于流失数据(数据流)的溯源过程。
63.在本实施例中,生成数据标注的一种可行方式是,基于如下方式生成原始数据的数据标注:
64.annotation{ip,port,creator,hash,time,attrib,patent}。
65.attrib为属性信息,patent为上一级数据标识信息,可进行扩展,hash为校验信息。ip和creator进行绑定,用于检查数据来源是否正确和是否存在假冒数据;在原始数据发生错误时,通过creator对创建原始数据的设备进行定位和检查;hash对原始数据进行完整性保护,防止原始数据被篡改;attrib作为原始数据的属性信息,不同原始数据的属性信息可能相同,这样通过具有相同的属性信息可查找同一数据流(多条原始数据对同一数据流操作得到)或同一数据流集合(多条原始数据对同一数据流集合操作得到)的溯源信息。对于某一物联网设备上传的数据流,creator的取值可以是物联网设备号,patent的取值为空;对于用户上传的数据流,creator的取值可以是用户名,patent的取值可以为空,也可以是生成此数据的上一级数据,如物联网设备生成的数据流集合,或数据分析产生的分析数据,用上一级数据对应的数据标注中的hash、time和attrib表示,如patent=(hash,time,attrib),注意patent=(hash,time,attrib)中的hash、time和attrib都是上一级数据的。
66.原始数据的属性信息是在原始数据进行分组时而定,在获取到原始数据后,采用但不限于聚类算法将原始数据自动划分至对应数据组中,并赋予原始数据的属性信息。处于同一个数据组中的原始数据具有相似或相近的属性信息,而处于不同数据组内的原始数据之间具有很少相似的属性信息。例如数据流作为原始数据,接收到数据流后对数据流进行聚类分析,采用聚类算法将数据流自动划分在不同的数据组中,赋予数据流对应的属性信息。在本实施例中,原始数据的属性信息按照来源或用途分成但不限于如下几类属性信息:监控数据、处理数据和分析数据等属性。
67.因为原始数据之间的属性信息可能相似或相近,通过属性信息存在不能唯一标识原始数据的问题,所以本实施例为了保证原始数据具有的唯一性,数据标注中除了属性信息之外,还加入流特征参数信息等,具体请参见上述说明。
68.在生成原始数据的数据标注后,通过对数据标注进行加密保护来保证数据标注的不可伪造性和保密性。例如采用但不限于对称密码算法,如aes(高级加密标准,advanced encryption standard)对数据标注进行加密。区块链对应的所有区块共享aes密钥,这是为保证原始数据在传播过程中其他区块可以通过解密读取数据标注。
69.在生成原始数据的数据标注后,将数据标注嵌入到原始数据中,使数据标注不可见且与原始数据紧密结合,成为原始数据不可分割的一部分,减少反复生成数据标注的开支,便于溯源信息记录原始数据的交互过程。但考虑到数据标注隐藏嵌入的方式虽然加强对数据标注的保护,不影响原始数据的观看,但会改变原始数据,可能引起完整性的问题。为了数据标注在嵌入后不影响原始数据的使用以及对原始数据进行操作不影响数据标注的完整性,本实施例依托原始数据所在的文件格式,在文件属性的详细信息的备注中写入标注,既方便数据标注的读取,也可避免对原始数据的破坏。
70.以原始数据通过对数据流进行分片得到为例,从分片数据流至将数据标注写入到原始数据的过程如图2所示,可以包括以下步骤:
71.201:在监听到获取到数据流的情况下,对数据流进行分片,得到多个预设格式的
原始数据。例如使用但不限于使用.net提供的filesystemwatcher类对数据流上传进行监听,当监听到有数据流上传(即视为获取到数据流)时,采用ffmpeg对数据流进行分片,形成多个mp4格式的原始数据。对数据流进行分片可以是对一个由多个数据流组成的数据流集合进行分片,得到作为原始数据的数据流;或者是对一个数据流进行分片,得到数据流的多个片段,每个片段均视为是数据流。
72.202:获取上传数据流的ip和port,如采用但不限于采用.net获取文件数据流的ip和port。
73.203:获取数据流的创建时间time和创建者creator,如采用但不限于采用microsoft.windowsapicodepack.shell获取数据流的创建时间time和创建者creator。
74.204:采用聚类分析算法对原始数据进行分组,并基于原始数据所在数据组赋予原始数据对应的属性信息,如采用聚类分析算法基于但不限于ip、port和creator对原始数据进行分组。
75.205:确定原始数据的hash,如采用但不限于.security.cryptography中的md5算法对原始数据进行哈希,得到hash。
76.206:确定原始数据的patent。
77.207:将ip、port、creator、hash、time、attrib和patent连在一起,形成一个string格式的数据annotation,即annotation{ip,port,creator,hash,time,attrib,patent}。
78.208:对annotation进行加密处理,如采用但不限于aes对生成的annotation进行加密处理。
79.209:采用microsoft.windowsapicodepack.shell修改文件属性的详细信息中的备注,将加密后的数据标注写入备注中。
80.从图2所示数据标注的生成过程可知,本实施例中的数据标注具备:(1)唯一性,(2)不可伪造性,(3)保密性,(4)嵌入后不影响原始数据的使用,(5)对原始数据进行操作不影响标注的完整性。
81.103:获得含有数据标注的溯源信息。溯源信息是对原始数据某个处理过程的记录,在每次针对原始数据进行一次处理都能够生成原始数据的溯源信息,例如溯源信息包括原始数据的数据标注,活动和执行实体,以通过溯源信息表明用户在一个时间通过一种设备传递了原始数据。在本实施例中可利用provoc数据溯源描述模型来生成溯源信息,具体过程本实施例不再阐述。
82.104:将含有数据标注的溯源信息和含有数据标注的上一条溯源信息所在区块的存储标识存储到区块链的一个区块中。注意此处的两条溯源信息是针对同一个数据标注的溯源信息,对于上链的所有区块都能够存储数据标注和含有数据标注的溯源信息,这样在某个区块中的溯源信息被篡改,能够通过其他区块中的验证信息(区块的区块头中携带有验证信息,数据标注和溯源信息可存储在区块的区块体中)进行验证,通过这种去中心化的区块链技术提高溯源信息的安全性和可靠性,并且需要一定数量的区块同时修改溯源信息才确定溯源信息的修改有效,例如一定数量的区块为但不限于是51%的区块同时修改溯源信息才确定溯源信息的修改有效,但控制一定数量的区块同时修改的难度较大,通过存储到区块链中可以有效防止溯源信息被篡改,保证溯源信息的可靠性。
83.在本实施例中,将含有数据标注的溯源信息和含有数据标注的上一条溯源信息存
储到区块链的一个区块中的一种可行方式如图3所示,可以包括以下步骤:
84.301:在当前得到含有数据标注的一条溯源信息,查询区块链的区块中是否存储有数据标注。可以理解的是:溯源信息是对原始数据某个处理过程的记录,因此在每次对一条原始数据进行一次处理都会生成一条溯源信息。而查询区块链的区块中是否存储有数据标注是为了在存储溯源信息过程中获取存储有同一原始数据的同一数据标注的区块的存储标识,以便在查询过程中可以基于一个数据标注查询到所有相关的溯源信息。
85.302:如果区块链的区块中没有存储数据标注,则将当前得到的含有数据标注的溯源信息存储在区块链的一个区块中,且区块中的存储标识为空。
86.如果区块链的区块中没有存储数据标注,说明区块链中没有存储过数据标注,当前是第一次存储含有该数据标注的溯源信息,并且区块链的区块中没有存储数据标注,意味着也不能获取到存储标识,则存储标识为空。
87.303:如果区块链的区块中存储有数据标注,则获取存储有含有数据标注的上一条溯源信息所在区块的存储标识,将所获取的存储标识和当前得到的含有数据标注的溯源信息存储在区块链的一个区块中。
88.如果区块链的区块中存储有的数据标注,说明区块链中已经存储过数据标注,也意味着区块链中存储有含有该数据标注的溯源信息,则可以获取存储含有该数据标注的上一条溯源信息所在区块的存储标识,将所获取的存储标识和当前得到的含有数据标注的溯源信息存储在区块链的一个区块中,以在查询过程中能够基于一个数据标注查询到所有相关的溯源信息。
89.其中上一条含有原始数据对应的数据标注的溯源信息是相对当前得到的溯源信息而言,是上一次存储到区块中的与当前得到的溯源信息对应同一原始数据对应的数据标注的溯源信息,如当前得到含有数据标注a的溯源信息,通过对区块链的区块查找,确定上一次存储数据标注a的溯源信息是在区块链的区块中第j次存储,则获取第j次存储的数据标注a的溯源信息的区块的存储标识。
90.在本实施例中,可以以但不限于以索引数据库存储每个数据标注和溯源信息对应的存储标识,溯源信息所在区块的区块编号作为存储标识的一种表现形式,相对应的在查询区块链的区块中是否存储有原始数据对应的数据标注可以从索引数据库中查找,如果索引数据库中存储有原始数据对应的数据标注,则从索引数据库中获取存储原始数据对应的数据标注和上一条含有原始数据对应的数据标注的溯源信息所在区块的区块编号,将区块编号作为最新一条含有原始数据对应的数据标注的溯源信息的区块的存储标识,将所获取的区块编号存储标识和当前得到的含有原始数据对应的数据标注的溯源信息存储在区块链的一个区块中。
91.在区块链的区块中存储所获取的区块编号存储标识和含有原始数据对应的数据标注的溯源信息的过程中,更新索引数据库,将当前存储的数据标注在索引数据库中的索引值更新为本次/当前存储溯源信息的区块的区块编号,以在查询过程中能够基于一个数据标注查询到所有相关的溯源信息。
92.在进行存储过程中,可调用智能合约将含有数据标注的溯源信息和存储标识一同存储在区块链的区块体中,并调用智能合约中的返回函数,返回当前存储溯源信息和存储标识区块的区块编号,对该数据标注在索引数据库中对应索引值进行更新,修改为此时返
回函数返回的区块的区块的区块编号,由此每一个原始数据的每一个操作生成的一个溯源信息存储在一个区块中,最后形成一条溯源链,如图4所示。
93.105:基于含有数据标注的溯源信息的存储情况,得到数据标注和存储含有数据标注的上一条溯源信息的区块的存储标识之间的对应关系,以在基于数据标注得到查询条件时利用对应关系从区块中查询溯源信息。
94.数据标注的存储情况用于指示数据标注和含有数据标注的各条溯源信息存储在哪个区块中,如以存储标识作为存储数据标注的区块的标志,由此通过存储情况可得到数据标注和存储数据标注的各条溯源信息的区块的存储标识之间的对应关系。
95.在本实施例中,区块链中不单单记录一种原始数据,由此对应关系中记录有多种原始数据的数据标注和存储其数据标注的区块的存储标识之间的关系,且对应关系在区块链每存储一条溯源信息之后更新一次,这样在更新对应关系过程中不需要重新对区块链进行遍历。
96.藉由上述技术方案,确定原始数据的流特征参数信息,至少基于流特征参数信息,确定原始数据的数据标注,流特征参数信息用于指示原始数据的数据来源;获得含有数据标注的溯源信息,将含有数据标注的溯源信息和含有数据标注的上一条溯源信息所在区块的存储标识存储到区块链的一个区块中;基于含有数据标注的溯源信息的存储情况,得到数据标注和存储含有数据标注的上一条溯源信息的区块的存储标识之间的对应关系,以得到针对同一数据标注的多条溯源信息之间的对应关系,在基于数据标注得到查询条件时利用对应关系从区块中查询溯源信息。上链的所有区块都存储溯源信息,上链的所有区块构成区块链,某个区块中的溯源信息被篡改,能够通过其他区块中的验证信息进行验证,通过这种去中心化的区块链技术提高溯源信息的安全性和可靠性,并且在进行查询过程中能够利用数据标注的相似性能够获取到同一数据流分片后的多个原始数据,通过这些原始数据的数据标注的对应关系可以快速获取到某个数据流的所有溯源信息,这样在基于数据标注得到的查询条件进行查询过程中,能够获取到与某个数据标注相关的所有溯源信息,实现溯源信息的关联查询。
97.在本实施例中,利用对应关系对溯源信息进行查询的一种方式是:基于数据标注得到的查询条件,利用数据标注的相似性确定与查询条件匹配的数据标注,如包含查询条件的数据标注或与查询条件的相似度大于预设阈值的数据标注,预设阈值用于指示查询条件与数据标注相似,对于预设阈值的取值本实施例不进行限定。从对应关系中获取与查询条件匹配的数据标注对应的存储标识,从存储标识中获取溯源信息,实现获取与查询条件匹配的数据标注所在区块中溯源信息。但是这种方式需要遍历对应关系中的所有记录,一定程度上降低查询效率,基于此本实施例提供图5所示查询方式,可以包括以下步骤:
98.401:获取用于生成查询条件的数据标注,基于所获取的数据标注得到查询条件。基于数据标注得到查询条件的方式包括但不限于如下方式:
99.一种方式,将数据标注确定为查询条件;另一种方式,基于数据标注中的参数值,得到查询条件,如从数据标注中选取至少一个参数值作为查询条件,如从数据标注中选取time、attrib等中的至少一个参数作为查询条件。
100.402:基于查询条件,获得与查询条件匹配的多个对应关系,利用对应关系,从区块链开始查询查询条件对应的溯源信息。在本实施例中,区块链的每个区块中存储含有数据
标注的溯源信息和含有同一数据标注的上一条溯源信息所在区块的存储标识,因此查询条件对应的溯源信息是包含查询条件的数据标注所在区块中的溯源信息。
101.例如区块链包括m个区块,利用对应关系得到含有所述数据标注的最新一条溯源信息的存储标识是n,在从区块链开始查询查询条件对应的溯源信息的过程中,可以从区块链的第n个区块(即含有存储所述数据标注的溯源信息的最后一个区块)开始查询与查询条件对应的溯源信息,得到溯源信息和含有同一数据标注的上一条溯源信息所在区块的存储标识j;接着从第j个区块查询对应的溯源信息和上一条溯源信息所在区块的存储标识;直到查询到的存储标识的取值为空。
102.403:如果从区块链的一个区块中查询到对应关系对应的溯源信息,将对应关系对应的溯源信息作为当前溯源信息。
103.404:从存储当前溯源信息的区块中获取与当前溯源信息相关的上一条溯源信息的存储标识。
104.在本实施例中,区块链中的任一区块在存储过程中,不但存储有含有数据标注的溯源信息,还存储有含有同一数据标注的上一条溯源信息的存储标识,在基于查询条件查询到溯源信息后,可以从存储所查询到的溯源信息的区块中获取到与其相关的上一条溯源信息的存储标识,以从存储标识指向的区块中获取到上一条溯源信息,从而能够直接基于存储标识获取到溯源信息,省去对区块链中的所有区块进行遍历的环节,提高查询效率。
105.405:基于上一条溯源信息的存储标识,从存储标识指向的区块中获取上一条溯源信息,并将上一条溯源信息作为当前溯源信息,返回继续执行从存储当前溯源信息的区块中获取与当前溯源信息相关的上一条溯源信息的存储标识直至返回的存储标识的取值为空。
106.406:输出查询到的所有溯源信息。如输出查询到的所有溯源信息的一种方式是:按照所有溯源信息的查询顺序,对所有溯源信息进行整合,输出整合后的所有溯源信息,所有溯源信息的查询顺序以溯源信息对应的存储标识确定。如上述存储标识能够指示溯源信息的查询顺序,由此基于每个溯源信息对应的存储标识,得到查询顺序,从而确定出溯源信息之间的排列顺序,基于溯源信息之间的排列信息对所有溯源信息进行整合。
107.为了提高溯源信息的保密性和查询效率,本实施例构建一个索引数据库,索引数据库用于存储每个数据标注和溯源信息对应的存储标识,如所在区块的编号,将所在区块的编号作为索引值存储在索引数据库中。
108.如果以数据标注作为查询条件,基于索引数据库对应的查询过程如图6所示:从索引数据库中获取作为查询条件的数据标注对应的索引值,从区块链中确定所获取的索引值对应的区块,并从区块中获取溯源信息和上一条溯源信息所在区块的区块编号;根据上一条溯源信息所在区块的区块编号,从对应区块中获取溯源信息和另一个区块的区块编号,以此类推,直到获取到的区块的区块编号为空,说明获取到本次查询的所有溯源信息,停止查询。基于索引值的查询可以避免遍历查询区块链时对无用数据的查询,提高溯源信息查询的速度。
109.此外除了能够将数据标注作为查询条件,还能够基于数据标注得到查询条件,如从数据标注中选取至少一个参数值作为查询条件,如数据标注中相同的字段视为是存储关联,如同一个时间或同一个创建者等等,由此基于数据标注得到查询条件实现了从多个方
面对溯源信息的查询,如针对同一个数据流(如可以通过patent)的溯源,针对同一任务(如通过创建者和ip等)中数据的溯源,针对同一段时间数据的溯源等,从多个方面对数据进行溯源,并联溯源信息,完成溯源信息的充分利用,如对查询后的溯源信息进行分析来明确数据的流转路径,以对数据的可靠性进行评估。
110.并且数据标注中含有原始数据的哈希值,当原始数据被篡改时无法获取到溯源信息;当原始数据未被篡改时可以从区块链中获取到完整真实的溯源信息,这样在溯源信息的查询过程中也包含了对原始数据真实性的验证。数据标注中还包含上一级数据标识信息,对于一些分析数据而言,通过上一级数据标识信息可以知晓其由何种数据分析得来,从而还可以推断出对这些数据的分析是否正确以便进行问题的纠正和出错责任的认定。
111.存储在区块链中的溯源信息可进行加密,以保证溯源信息的安全,防止非法人员从区块链中读取到溯源信息,同时拥有对溯源信息进行加密的密钥的用户可以进入溯源信息的查询界面对溯源信息进行查询,而其他没有拥有密钥的用户不能对溯源信息进行查询,实现对溯源信息的权限访问,提高溯源信息的保密性。查询界面能够支持简单查询语言的查询,如通过数据标注查询,允许用户以直观的方式查询溯源信息而无须懂得太多的数据存储细节。
112.图6以物联网设备上传数据为例,对本实施例提供的溯源信息处理方法进行说明。物联网设备将数据上传到云平台的数据源数据库,用户可以对该数据库进行数据的访问、下载、删除和传递,同时用户也可以将自己生成的一些数据上传到数据源数据库中进行存储。当云平台中存在对数据源数据库中数据的上传、访问、下载、删除和传递操作时,生成溯源信息,同时将生成的溯源信息和对应的数据标注发送到区块链中进行存储。此外可以提供web3可视化界面,以便于溯源信息进行查询。
113.对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
114.请参见图7,其示出了本申请实施例提供一种溯源信息处理装置的可选结构,可以包括:确定单元10、获得单元20、存储单元30和关系获得单元40。
115.确定单元10,用于确定原始数据的流特征参数信息,流特征参数信息用于指示原始数据的数据来源,以及用于至少基于流特征参数信息,确定原始数据的数据标注。
116.其中确定单元10至少基于流特征参数信息,确定原始数据的数据标注的可行方式如下:
117.获取原始数据的属性信息、原始数据的流特征参数信息、原始数据的上一级数据标识信息和原始数据的校验信息,流特征参数信息用于指示原始数据的传输和创建过程,上一级数据标识信息用于指示生成原始数据的上一级数据,原始数据的校验信息用于验证原始数据;基于属性信息、流特征参数信息、上一级数据标识信息和校验信息,生成原始数据的数据标注。数据标注的一种写入方式是:将原始数据的数据标注写入到原始数据的文件属性中。
118.相对应的基于属性信息、流特征参数信息、上一级数据标识信息和校验信息,可以基于如下方式生成原始数据的数据标注:
119.annotation{ip,port,creator,hash,time,attrib,patent};
120.ip、port、creator、time为流特征参数信息,ip表示原始数据对应的源ip地址,port表示原始数据对应的源端口号,creator表示原始数据的创建者,time表示原始数据的创建时间,attrib为属性信息,patent为上一级数据标识信息,hash为校验信息。
121.获得单元20,用于获得含有数据标注的溯源信息。
122.存储单元30,用于将含有数据标注的溯源信息和含有数据标注的上一条溯源信息所在区块的存储标识存储到区块链的一个区块中。
123.如果在当前得到含有数据标注的一条溯源信息,存储单元30查询区块链的区块中是否存储有数据标注;如果区块链的区块中没有存储数据标注,则将当前得到的含有数据标注的溯源信息存储在区块链的一个区块中,且区块中的存储标识为空;如果区块链的区块中存储有数据标注,则获取存储有含有数据标注的上一条溯源信息所在区块的存储标识,将所获取的存储标识和当前得到的含有数据标注的溯源信息存储在区块链的一个区块中。
124.其中,获取存储有含有数据标注的上一条溯源信息所在区块的存储标识包括:获取存储数据标注和含有数据标注的上一条溯源信息所在区块的区块编号,将区块编号作为上一条含有数据标注的溯源信息所在区块的存储标识。
125.关系获得单元40,用于基于含有数据标注的溯源信息的存储情况,得到数据标注和存储含有数据标注的上一条溯源信息的区块的存储标识之间的对应关系,以在基于数据标注得到查询条件时利用对应关系从区块中查询溯源信息。
126.上述溯源信息处理装置,确定原始数据的流特征参数信息,至少基于流特征参数信息,流特征参数信息用于指示原始数据的数据来源,确定原始数据的数据标注;获得数据标注的溯源信息,将数据标注的溯源信息和数据标注的上一条溯源信息所在区块的存储标识存储到区块链的一个区块中;基于数据标注的溯源信息的存储情况,得到数据标注和存储含有数据标注的上一条溯源信息的区块的存储标识之间的对应关系,以得到针对同一数据标注的多条溯源信息之间的对应关系,在基于数据标注得到查询条件时利用对应关系从区块中查询溯源信息。上链的所有区块都存储溯源信息,上链的所有区块构成区块链,某个区块中的溯源信息被篡改能够通过其他区块中的验证信息进行验证,通过这种去中心化的区块链技术提高溯源信息的安全性和可靠性,并且在进行查询过程中能够利用数据标注的相似性能够获取到同一数据流分片后的多个原始数据,通过这些原始数据的数据标注的对应关系可以快速获取到某个数据流的所有溯源信息,这样在基于数据标注得到的查询条件进行查询过程中,能够获取到与某个数据标注相关的所有溯源信息,实现溯源信息的关联查询。
127.请参见图8,其示出了本申请实施例提供的另一种溯源信息处理装置的可选结构,还可以包括:查询单元50,用于在基于数据标注得到查询条件时利用对应关系从区块中查询溯源信息。其中查询单元的一种可选结构是:查询单元包括:条件获得子单元、第一查询子单元、第二查询子单元和输出子单元。
128.条件获得子单元,用于获取用于生成查询条件的数据标注,基于所获取的数据标注得到查询条件。
129.第一查询子单元,用于基于查询条件,获得与查询条件匹配的多个对应关系,利用
对应关系,从区块链开始查询对应关系对应的溯源信息。
130.第二查询子单元,用于如果从区块链的一个区块中查询到对应关系对应的溯源信息,将对应关系对应的溯源信息作为当前溯源信息。从存储当前溯源信息的区块中获取与当前溯源信息相关的上一条溯源信息的存储标识。基于上一条溯源信息的存储标识,从存储标识指向的区块中获取上一条溯源信息,并将上一条溯源信息作为当前溯源信息,返回继续执行从存储当前溯源信息的区块中获取与当前溯源信息相关的上一条溯源信息的存储标识直至得到的存储标识的取值为空。
131.输出子单元,用于输出查询到的所有溯源信息。
132.上述溯源信息处理装置中各单元和各子单元的执行过程,请参见上述方法实施例,此处不再阐述。
133.此外,本申请实施例还提供一种服务器,包括:处理器和用于存储处理器可执行指令的存储器。其中,处理器被配置为执行指令,以实现上述溯源信息处理方法。
134.本申请实施例还提供一种存储介质,存储介质中存储有计算机程序代码,计算机程序代码被执行时实现上述溯源信息处理方法。
135.需要说明的是,本说明书中的各个实施例可以采用递进的方式描述、本说明书中各实施例中记载的特征可以相互替换或者组合,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
136.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
137.对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
138.以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。