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.生成与解密后的电子数据关联的多个电子数据分片。
30.在一种可选的方式中,所述将添加数字水印的目标数据发送给所述数据需求方包括:
31.利用数据需求方的公钥对所述添加水印的目标数据进行加密;
32.将经过加密的所述添加水印的目标数据发送给数据需求方。
33.根据本发明实施例的另一方面,提供了一种数据溯源装置,所述装置包括:
34.保存模块,用于获取数据提供方的数据目录,将所述数据目录保存至区块链;
35.确定模块,用于获取数据需求方对与目标数据目录关联的目标数据的数据请求,根据所述数据请求以及所述目标数据目录确定目标数据提供方;
36.获取模块,用于根据所述目标数据目录关联的智能合约确定所述目标数据的多个存储位置,并在所述多个存储位置分别获取目标数据分片;
37.添加模块,用于根据所述目标数据分片生成所述目标数据,对生成的目标数据添加数字水印,所述数字水印至少包括所述数据需求方的标识以及所述数据提供方的标识;
38.发送模块,用于将添加数字水印的目标数据发送给所述数据需求方;
39.溯源模块,用于在获取对目标数据的溯源请求后,提取待溯源目标数据中的数字水印,根据提取出的数字水印对所述目标数据进行溯源。
40.根据本发明实施例的另一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间
的通信;
41.所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述的数据溯源方法的操作。
42.根据本发明实施例的又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令在电子设备上运行时,使得电子设备执行上述的数据溯源方法的操作。
43.本发明实施例在向数据需求方发送目标数据前,通过目标数据目录关联的智能合约确定目标数据的多个存储位置,并在多个存储位置分别获取目标数据分片,根据目标数据分片生成目标数据,对生成的目标数据添加数字水印,添加的数字水印至少包括数据需求方的标识以及数据提供方的标识;在将添加数字水印的目标数据发送给数据需求方后,在获取对待溯源目标数据的溯源请求后,提取待溯源目标数据中的数字水印,根据提取出的数字水印对待溯源目标数据进行溯源。由于数字水印可以较为准确的记录目标数据的提供方及需求方,因此本发明实施例可以较为准确的进行数据溯源。
44.上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
45.附图仅用于示出实施方式,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
46.图1示出了本发明实施例提供的数据溯源方法的流程示意图;
47.图2示出了本发明实施例提供的授权及鉴权过程的示意图;
48.图3示出了本发明实施例提供的数据查询和数据使用过程的示意图;
49.图4示出了本发明实施例提供的数据交易过程的示意图;
50.图5示出了本发明实施例提供的数据溯源装置的结构示意图;
51.图6示出了本发明实施例提供的电子设备的结构示意图。
具体实施方式
52.下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。
53.图1示出了本发明实施例数据溯源方法的流程图,该方法由电子设备执行,该电子设备可以是计算机设备,如个人计算机、终端、服务器、云服务平台、区块链等。电子设备的存储器中存放至少一可执行指令,该可执行指令使电子设备的处理器执行上述的数据溯源方法的操作。
54.如图1所示,该方法包括以下步骤:
55.步骤110:获取数据提供方的数据目录,将所述数据目录保存至区块链。
56.其中,数据目录由数据提供方生成,用于描述数据提供方可以提供的数据的数据类型、数据大小、数据价格等。数据提供方可以为数据交易中的卖家,可以提供具有使用需
求的电子数据。在获取数据提供方的数据目录后,可以将数据目录保存至区块链。需要说明的是,数据提供方的数量一般为多个,每个数据提供方对应不同的数据目录。将数据目录保存至区块链后,数据需求方通过区块链的任一节点均可以查看到数据目录。
57.在一种可选的方式中,步骤110之后,本发明实施例还可以包括:
58.步骤111:获取数据提供方上传的与所述数据目录关联的电子数据,并生成与所述电子数据关联的多个电子数据分片,确定每个电子数据分片在区块链的存储位置之后,将每个电子数据分片分别存储至对应存储位置。
59.其中,数据提供方可以上传与数据目录关联的电子数据。获取数据提供方上传的与数据目录关联的电子数据后,可以将数据提供方上传的电子数据保存至区块链。进一步的,可以生成与数据提供方上传的电子数据关联的多个电子数据分片,确定每个电子数据分片在区块链的存储位置,并且将每个电子数据分片分别存储至区块链的对应存储位置。基于数据分割算法可以将数据提供方上传的电子数据分割为多个电子数据分片,还可以根据数据合并算法将多个电子数据分片还原为电子数据。
60.在一种可选的方式中,数据提供方在上传与数据目录关联的电子数据前,可以事先使用数据提供方的公钥对电子数据进行加密,并且将加密后的电子数据进行上传。因此,经数据提供方的公钥进行加密并且与数据目录关联的电子数据后,可以利用数据提供方的私钥对电子数据进行解密,利用数据提供方的私钥对电子数据进行解密,生成与解密后的电子数据关联的多个电子数据分片,然后将与解密后的电子数据关联的多个电子数据分片分别存储至对应存储位置。
61.步骤120:获取数据需求方对与目标数据目录关联的目标数据的数据请求,根据所述数据请求以及所述目标数据目录确定目标数据提供方。
62.其中,数据需求方根据数据请求来获取目标数据。目标数据为数据需求方希望获取的数据。通过数据需求方的数据请求可以确定与数据请求关联的目标数据目录以及与目标数据目录关联的目标数据的标识。因此,获取数据需求方对与目标数据目录关联的目标数据的数据请求后,可以根据数据请求以及目标数据目录确定目标数据提供方。目标数据提供方为提供目标数据的数据提供方。
63.在一种可选的方式中,步骤120之后,本发明实施例可以进一步包括:
64.步骤121:将所述数据请求上传至区块链,以使所有区块链节点执行所述数据请求,在所述数据提供方通过区块链节点监听到所述数据请求后,获取所述数据提供方的通过所述区块链节点上传的应答信息,若根据所述应答信息判断所述数据请求方获得授权,则在智能合约中将所述数据请求方标识为已授权请求方。
65.其中,在向数据需求方发送目标数据之前,需要对数据需求方进行鉴权,以确定数据需求方是否具备获取目标数据的权限。将数据请求上传至区块链后,可以使所有的区块链节点执行该数据请求。在数据提供方通过任一区块链节点监听到该数据请求后,可以生成应答信息,并且将应答信息上传至区块链网络。通过应答信息可以确定数据需求方是否已经被授予获取目标数据的权限。在获取数据提供方通过区块链节点上传的应答信息后,若根据应答信息判断数据请求方获取授权,则在智能合约中将数据请求方标识为已授权请求方,并且根据授权信息生成新的区块,将生成的新的区块添加至区块链。已授权请求方为具备获取目标数据的权限的数据请求方。
66.如图2所示,在一种可选的方式中,本发明实施例的数据溯源方法可以应用于数据交易机构进行数据交易的过程中。数据需求方a、数据需求方b和数据需求方c分别发起数据请求,需要对数据需求方a、数据需求方b和数据需求方c进行鉴权以分别确定数据需求方a、数据需求方b和数据需求方c是否具备获取目标数据的权限。用户甲可以向数据提供方进行授权,将用户甲的授权信息发送给数据提供方,使数据提供方获取用户甲的授权信息。用户乙可以向数据提供方进行授权,将用户乙的授权信息发送给数据提供方,使数据提供方获取用户乙的授权信息。进一步的,可以获取数据提供方接收的用户甲的授权信息和用户乙的授权信息,将用户甲的授权信息和用户乙的授权信息保存至授权信息链中。根据授权信息链中保存的授权信息确定数据需求方a、数据需求方b和数据需求方c是否具备获取目标数据的权限。授权信息链为用于记录授权信息的区块链网络。
67.步骤130:根据所述目标数据目录关联的智能合约确定所述目标数据的多个存储位置,并在所述多个存储位置分别获取目标数据分片。
68.其中,智能合约是区块链中的一种事先约定的执行规则协议。在本实施例中,可以根据目标数据目录关联的智能合约确定目标数据的多个存储位置,并在多个存储位置分别获取目标数据分片。
69.步骤140:根据所述目标数据分片生成所述目标数据,对生成的目标数据添加数字水印,所述数字水印至少包括所述数据需求方的标识以及所述数据提供方的标识。
70.其中,可以根据多个目标数据分片生成目标数据。数字水印是一种标识信息,将数字水印添加到电子数据内部可以达到版本保护、保密通信、文件真伪鉴别和产品标识等目的。对生成的目标数据添加数字水印可以记录目标数据的操作信息。数字水印至少可以包括数据需求方的标识以及数据提供的标识,还可以包括数据需求方被授权使用目标数据的时间。
71.在一种可选的方式中,获取目标数据后,对目标数据进行哈希算法处理以生成目标数据的哈希值,将目标数据的哈希值确定为目标数据的标识。在执行对生成的目标数据添加数字水印时,可以获取数据需求方的标识、数据提供方的标识以及目标数据的标识,根据数据需求方的标识、数据提供方的标识以及目标数据的标识生成数字水印,将生成的数字水印添加至目标数据中。
72.其中,将生成的数字水印添加至目标数据中不会影响目标数据的使用,并且目标数据中的数字水印不易被识别及篡改。在根据数据需求方的标识、数据提供方的标识以及目标数据的标识生成数字水印,将生成的数字水印添加至目标数据之后,即完成了对目标数据的标记。进一步的,可以在标记过的目标数据中提取数字水印,根据提取出的数字水印可以确定数据需求方的标识、数据提供方的标识以及目标数据的标识等信息。若该标记过的目标数据被泄漏,则可以根据数据需求方的标识、数据提供方的标识对泄漏人员进行辅助判断。此外,还可以根据目标数据的标识对目标数据是否被篡改进行判断。例如,在目标数据的标识为目标数据的哈希值时,可以生成可能被篡改的目标数据的哈希值,将可能被篡改的目标数据的哈希值与根据数字水印确定的目标数据的哈希值不一致,则可以确定目标数据被篡改。
73.其中,在数据交易场景下,可以根据目标数据的版权信息、授权信息、买卖合约信息、订单信息、交付信息、交易状态信息、使用过程信息、使用结果信息以及时间戳信息等生
成数字水印,将数字水印添加至目标数据中,以使得在目标数据中提取数字水印后,可以确定目标数据关联的版权信息、授权信息、买卖合约信息、订单信息、交付信息、交易状态信息、使用过程信息、使用结果信息以及时间戳信息。因此,在数据交易场景下,利用区块链的不易篡改以及易溯源的特性可以对目标数据进行全生命周期管理,从而对目标数据进行溯源,以在有公证需要时进行取证。
74.步骤150:将添加数字水印的目标数据发送给所述数据需求方。
75.其中,在将生成的数字水印添加至目标数据后,可以将添加数字水印的目标数据发送给数据需求方,以供数据需求方获取到添加数字水印的目标数据。
76.在一种可选的方式中,为了提高数据传输过程中的安全性,可以利用数据需求方的公钥对添加水印的目标数据进行加密,将经过加密的添加水印的目标数据发送给数据需求方。在数据需求方获取到添加水印的目标数据后,通过数据需求方的私钥对加密后的目标数据进行解密后,即可对目标数据进行使用。在将添加数字水印的目标数据发送给数据需求方之后,可以将区块链上的目标数据销毁,以避免目标数据继续占用区块链网络的存储空间。
77.如图3所示,在一种可选的方式中,本发明实施例的数据溯源方法可以应用于基于区块链的数据溯源系统中。该基于区块链的数据溯源系统通过七个步骤来完成将数据提供方提供的目标数据发送给数据需求方。步骤一:获取数据提供方的数据目录,将该数据目录保存至区块链。步骤二:获取数据需求方对与目标数据目录关联的目标数据的数据请求,根据数据请求以及目标数据目录确定目标数据提供方。步骤三:通过区块链网络使数据需求方和数据提供方签订智能合约并协商密钥。步骤四:获取数据提供方提供的目标数据,对目标数据进行加密,将经过加密的目标数据保存至区块链网络。步骤五:通过智能合约对目标数据进行处理,根据处理过程生成处理操作记录,根据处理操作记录生成新的区块,将新生成的区块添加至原有的区块链的末尾。步骤六:将经过加密的目标数据发送给数据需求方,供数据需求方根据与数据提供方协商密钥的结果,对目标数据进行解密以使用经过解密的目标数据。步骤七:将区块链上的目标数据进行销毁,以节省区块链网络的存储空间。
78.在一种可选的方式中,在将添加数字水印的目标数据发送给数据需求方之前,还可以对添加数字水印的目标数据进行数据处理,以使得数据需求方获取到数据处理之后的目标数据,避免直接向数据需求方公开目标数据的原始内容。
79.步骤160:在获取对待溯源目标数据的溯源请求后,提取所述待溯源目标数据中的数字水印,根据提取出的数字水印对所述待溯源目标数据进行溯源。
80.其中,在获取对待溯源目标数据的溯源请求后,可以提取待溯源目标数据中的数字水印,并且根据提取出的数字水印确定目标数据的使用信息以及修改信息,并且根据目标数据的使用信息以及修改信息对待溯源目标数据进行溯源。
81.如图4所示,在一种可选的方式中,本发明实施例的数据溯源方法可以应用于数据查询和数据使用过程中。在进行数据查询和数据使用的过程中,用户可以和接入服务器进行交互以进行数据查询和数据使用,接入服务器可以将用户的数据请求发送给查询服务器。若用户请求的目标数据在区块链上,查询服务器可以与区块链网络进行交互,以获取用户的请求结果,将用户的请求结果发送给接入服务器,使得接入服务器将用户的请求结果发送给对应的用户。若用户请求的目标数据并未存储于区块链上,则查询服务器可以与链
下的存储器进行交互,以获取用户的请求结果,将用户的请求结果发送给接入服务器,使得接入服务器将用户的请求结果发送给对应的用户。若用户的数据请求为查询数据,则接入服务器可以通过前述的处理过程将查询结果返回给用户;若用户的数据请求为使用数据,则接入服务器可以通过前述的处理过程将数据结果集返回给用户。进一步的,可以将用户对目标数据的使用记录用预设的公钥进行加密,并在添加时间戳之后保存至区块链网络,以及可以将用户对目标数据的修改记录用预设的公钥进行加密,并在添加时间戳之后保存至区块链网络。在获取对待溯源目标数据的溯源请求后,可以从区块链网络中获取待溯源目标数据的使用记录以及修改记录,根据修改记录和使用记录对待溯源目标数据进行溯源。
82.本发明实施例在向数据需求方发送目标数据前,通过目标数据目录关联的智能合约确定目标数据的多个存储位置,并在多个存储位置分别获取目标数据分片,根据目标数据分片生成目标数据,对生成的目标数据添加数字水印,添加的数字水印至少包括数据需求方的标识以及数据提供方的标识;在将添加数字水印的目标数据发送给数据需求方后,在获取对待溯源目标数据的溯源请求后,提取待溯源目标数据中的数字水印,根据提取出的数字水印对待溯源目标数据进行溯源。由于数字水印可以较为准确的记录目标数据的提供方及需求方,因此本发明实施例可以较为准确的进行数据溯源。
83.图5示出了本发明实施例是数据溯源装置的结构示意图。如图5所示,该装置300包括:保存模块310、确定模块320、获取模块330、添加模块340、发送模块350和溯源模块360。
84.其中,保存模块310,用于获取数据提供方的数据目录,将所述数据目录保存至区块链;
85.确定模块320,用于获取数据需求方对与目标数据目录关联的目标数据的数据请求,根据所述数据请求以及所述目标数据目录确定目标数据提供方;
86.获取模块330,用于根据所述目标数据目录关联的智能合约确定所述目标数据的多个存储位置,并在所述多个存储位置分别获取目标数据分片;
87.添加模块340,用于根据所述目标数据分片生成所述目标数据,对生成的目标数据添加数字水印,所述数字水印至少包括所述数据需求方的标识以及所述数据提供方的标识;
88.发送模块350,用于将添加数字水印的目标数据发送给所述数据需求方;
89.溯源模块360,用于在获取对目标数据的溯源请求后,提取待溯源目标数据中的数字水印,根据提取出的数字水印对所述目标数据进行溯源。
90.在一种可选的方式中,装置300还包括标识模块,用于将所述数据请求上传至区块链,以使所有区块链节点执行所述数据请求,在所述数据提供方通过区块链节点监听到所述数据请求后,获取所述数据提供方的通过所述区块链节点上传的应答信息,若根据所述应答信息判断所述数据请求方获得授权,则在智能合约中将所述数据请求方标识为已授权请求方。
91.在一种可选的方式中,添加模块340用于:获取所述数据需求方的标识、所述数据提供方的标识以及所述目标数据的标识,根据所述数据需求方的标识、所述数据提供方的标识以及所述目标数据的标识生成数字水印,将生成的数字水印添加至目标数据中。
92.在一种可选的方式中,添加模块340用于:获取所述目标数据后,对所述目标数据
进行哈希算法处理以生成所述目标数据的哈希值,将所述目标数据的哈希值确定为所述目标数据的标识。
93.在一种可选的方式中,保存模块310用于:获取数据提供方上传的与所述数据目录关联的电子数据,并生成与所述电子数据关联的多个电子数据分片;确定每个电子数据分片在区块链的存储位置之后,将每个电子数据分片分别存储至对应存储位置。
94.在一种可选的方式中,获取模块330用于:获取数据提供方上传的与所述数据目录关联的电子数据,所述电子数据为经数据提供方的公钥进行加密后的电子数据,利用数据提供方的私钥对所述电子数据进行解密,生成与解密后的电子数据关联的多个电子数据分片。
95.在一种可选的方式中,发送模块350用于:利用数据需求方的公钥对所述添加水印的目标数据进行加密,将经过加密的所述添加水印的目标数据发送给数据需求方。
96.本发明实施例在向数据需求方发送目标数据前,通过目标数据目录关联的智能合约确定目标数据的多个存储位置,并在多个存储位置分别获取目标数据分片,根据目标数据分片生成目标数据,对生成的目标数据添加数字水印,添加的数字水印至少包括数据需求方的标识以及数据提供方的标识;在将添加数字水印的目标数据发送给数据需求方后,在获取对待溯源目标数据的溯源请求后,提取待溯源目标数据中的数字水印,根据提取出的数字水印对待溯源目标数据进行溯源。由于数字水印可以较为准确的记录目标数据的提供方及需求方,因此本发明实施例可以较为准确的进行数据溯源。
97.图6示出了本发明实施例电子设备结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
98.如图6所示,该电子设备可以包括:处理器(processor)402、通信接口(communications interface)404、存储器(memory)406、以及通信总线408。
99.其中:处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。通信接口404,用于与其它设备比如客户端或其它服务器等的网元通信。处理器402,用于执行程序410,具体可以执行上述用于数据溯源方法实施例中的相关步骤。
100.具体地,程序410可以包括程序代码,该程序代码包括计算机可执行指令。
101.处理器402可能是中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
102.存储器406,用于存放程序410。存储器406可能包含高速ram存储器,也可能还包括非易失性存储器(non
‑
volatile memory),例如至少一个磁盘存储器。
103.程序410具体可以被处理器402调用使电子设备执行以下操作:
104.获取数据提供方的数据目录,将所述数据目录保存至区块链;
105.获取数据需求方对与目标数据目录关联的目标数据的数据请求,根据所述数据请求以及所述目标数据目录确定目标数据提供方;
106.根据所述目标数据目录关联的智能合约确定所述目标数据的多个存储位置,并在所述多个存储位置分别获取目标数据分片;
107.根据所述目标数据分片生成所述目标数据,对生成的目标数据添加数字水印,所
述数字水印至少包括所述数据需求方的标识以及所述数据提供方的标识;
108.将添加数字水印的目标数据发送给所述数据需求方;
109.在获取对待溯源目标数据的溯源请求后,提取所述待溯源目标数据中的数字水印,根据提取出的数字水印对所述待溯源目标数据进行溯源。
110.在一种可选的方式中,程序410具体可以被处理器402调用使电子设备执行以下操作:
111.将所述数据请求上传至区块链,以使所有区块链节点执行所述数据请求;
112.在所述数据提供方通过区块链节点监听到所述数据请求后,获取所述数据提供方的通过所述区块链节点上传的应答信息;
113.若根据所述应答信息判断所述数据请求方获得授权,则在智能合约中将所述数据请求方标识为已授权请求方。
114.在一种可选的方式中,程序410具体可以被处理器402调用使电子设备执行以下操作:
115.获取所述数据需求方的标识、所述数据提供方的标识以及所述目标数据的标识;
116.根据所述数据需求方的标识、所述数据提供方的标识以及所述目标数据的标识生成数字水印;
117.将生成的数字水印添加至目标数据中。
118.在一种可选的方式中,程序410具体可以被处理器402调用使电子设备执行以下操作:
119.获取所述目标数据后,对所述目标数据进行哈希算法处理以生成所述目标数据的哈希值;
120.将所述目标数据的哈希值确定为所述目标数据的标识。
121.在一种可选的方式中,程序410具体可以被处理器402调用使电子设备执行以下操作:
122.获取数据提供方上传的与所述数据目录关联的电子数据,并生成与所述电子数据关联的多个电子数据分片;
123.确定每个电子数据分片在区块链的存储位置之后,将每个电子数据分片分别存储至对应存储位置。
124.在一种可选的方式中,程序410具体可以被处理器402调用使电子设备执行以下操作:
125.获取数据提供方上传的与所述数据目录关联的电子数据,所述电子数据为经数据提供方的公钥进行加密后的电子数据;
126.利用数据提供方的私钥对所述电子数据进行解密;
127.生成与解密后的电子数据关联的多个电子数据分片。
128.在一种可选的方式中,程序410具体可以被处理器402调用使电子设备执行以下操作:
129.利用数据需求方的公钥对所述添加水印的目标数据进行加密;
130.将经过加密的所述添加水印的目标数据发送给数据需求方。
131.本发明实施例在向数据需求方发送目标数据前,通过目标数据目录关联的智能合
约确定目标数据的多个存储位置,并在多个存储位置分别获取目标数据分片,根据目标数据分片生成目标数据,对生成的目标数据添加数字水印,添加的数字水印至少包括数据需求方的标识以及数据提供方的标识;在将添加数字水印的目标数据发送给数据需求方后,在获取对待溯源目标数据的溯源请求后,提取待溯源目标数据中的数字水印,根据提取出的数字水印对待溯源目标数据进行溯源。由于数字水印可以较为准确的记录目标数据的提供方及需求方,因此本发明实施例可以较为准确的进行数据溯源。
132.本发明实施例提供了一种计算机可读存储介质,所述存储介质存储有至少一可执行指令,该可执行指令在电子设备上运行时,使得所述电子设备执行上述任意方法实施例中的数据溯源方法。
133.本发明实施例提供一种数据溯源装置,用于执行上述数据溯源方法。
134.本发明实施例提供了一种计算机程序,所述计算机程序可被处理器调用使电子设备执行上述任意方法实施例中的数据溯源方法。
135.本发明实施例提供了一种计算机程序产品,计算机程序产品包括存储在计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令在计算机上运行时,使得所述计算机执行上述任意方法实施例中的数据溯源方法。
136.在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
137.在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
138.类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。
139.本领域技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
140.应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实
现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。