一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于区块链的数据查询方法及装置、介质、设备与流程

2022-05-27 01:42:17 来源:中国专利 TAG:


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.聚合模块,用于聚合各个配置签名后的组合消息承诺,并存储于区块链的智能合约中。
47.优选的,所述加密模块,具体包括:
48.第一生成单元,用于生成第一公、私钥对以及第二公、私钥对;
49.第一加密单元,用于基于第一公钥对所述目标数据进行加密操作,生成第一加密文件;
50.第二生成单元,用于根据第一私钥与第二公钥生成重加密密钥;
51.第二加密单元,用于基于所述重加密密钥对所述第一加密文件进行加密处理,生成第二加密文件。
52.优选的,所述第一加密单元之前,所述模块还包括:
53.分类单元,用于接收所述数据存储方的全量数据,进行分类处理,得到多个数据类别的数据集;
54.所述第一加密单元,具体包括:
55.加密子单元,用于基于第一公钥对多个所述数据集进行加密操作,生成多个第一加密文件;
56.存储子单元,用于将所述多个第一加密文件存储于所述区块链下数据库,并将对应的所述区块链下数据库的地址存储于所述区块链上索引表,生成索引关系。
57.优选的,所述获取模块,具体包括:
58.查询单元,用于根据所述数据类别查询所述区块链上索引表,获取与所述数据类别匹配的所述区块链下数据库的地址;
59.获取单元,用于基于所述区块链下数据库的地址,获取与所述数据类别匹配的第一加密文件。
60.优选的,所述加密模块还用于:
61.将所述加密文件发送至所述数据查询方,以使得所述数据查询方基于数据查询方的私钥解密所述加密文件,得到所述目标数据。
62.根据本技术的又一方面,提供了一种存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述基于区块链的数据查询方法对应的操作。
63.根据本技术的再一方面,提供了一种终端,包括:处理器、存储器、通信接口和通信
总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
64.所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述基于区块链的数据查询方法对应的操作。
65.借由上述技术方案,本技术实施例提供的技术方案至少具有下列优点:
66.本技术提供了一种基于区块链的数据查询方法及装置,首先基于区块链计算层接收目标数据的查询指令,所述查询指令中携带所述目标数据的数据类别;其次根据所述数据类别在区块链存储层获取与所述数据类别相匹配的目标数据,所述目标数据存储于区块链下数据库,所述数据类别存储于区块链上索引表,所述目标数据与对应的数据类别之间存在索引关系;最后将所述目标数据进行加密处理生成加密文件,并发送至数据查询方,所述加密处理为基于区块链计算层进行的。与现有技术相比,本技术实施例通过区块链进行数据的存储以及查询,以使得数据查询方只能获得需要查询的目标数据,而查询不到其他数据,从而保证了数据存储方数据的安全;同时在将数据查询方查询的目标数据发送到数据查询方之前对目标数据进行加密处理,以使得数据查询方必须经过解密才可获得查询的目标数据,进一步的保证了数据存储方数据的安全。
67.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
附图说明
68.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
69.图1示出了本技术实施例提供的一种基于区块链的数据查询方法流程图;
70.图2示出了本技术实施例提供的总体框架图;
71.图3示出了本技术实施例提供的一种基于区块链的数据查询装置组成框图;
72.图4示出了本技术实施例提供的一种终端的结构示意图。
具体实施方式
73.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
74.同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
75.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本技术及其应用或使用的任何限制。
76.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
77.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一
个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
78.本技术实施例可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
79.计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
80.本技术实施例提供了一种基于区块链的数据查询方法,如图1所示,该方法包括:
81.101、基于区块链计算层接收目标数据的查询指令。
82.本技术实施例中,查询指令中携带目标数据的数据类别。目标数据为数据存储方预先存储到指定位置的数据。数据类别包括但不限于医疗信息、个人账号信息、金融信息等。区块链计算层中可以包含用于区块链共识操作的共识节点,链上索引表的存储节点,以及代理重加密节点,其中,共识节点可以用于当数据查询方为多方时,在查询数据之前,对多方数据查询方进行共识操作,以实现各个数据查询方之间的信任,从而在返回查询数据时将多方数据进行合并加密操作,以使得各个数据查询方基于各自的私钥获得目标数据,而无从知晓其他数据查询方查询的数据,进而保证用户数据的安全。链上索引表可以用于存储数据类别以及对应的数据存储地址。可以理解的是,将数据分类并按数据类别存储于指定位置,再将数据类别以及指定位置的地址信息存储于链上索引表,在查询数据时仅可以查询到数据类别对应的数据,以保证用户数据的安全;同时,基于这样的存储方式,还实现了节省区块链存储空间的目的。代理重加密节点可以用于当数据查询方为单一数据查询方时,将数据存储方用自己公钥加密的密文转换为可以用数据查询方的私钥可以解密的密文,且不泄露数据存储方的私钥和明文信息。通常情况下,数据存储方用自己的公钥加密得到的密文,只可以用自己的私钥进行解密,以得到明文信息,本技术实施例中,通过代理重加密节点可以实现数据之间的共享,同时保证数据不被泄露。
83.102、根据数据类别在区块链存储层获取与数据类别相匹配的目标数据。
84.本技术实施例中,目标数据存储于区块链下数据库,数据类别存储于区块链上索引表,目标数据与对应的数据类别之间存在索引关系。
85.需要说明的是,数据存储方可以将存储于个人本地节点(即区块链数据层)的数据上传至区块链存储层,并对数据具有绝对控制权,即数据查询方需要进行解密方可获得查询的数据。另外,为了节省区块链的存储空间,优选的,可以将数据存储方上传的数据经过分类处理分别存储于区块链下数据库,同时将数据类别以及对应的区块链下数据库的地址存储于区块链上索引表,并形成索引关系。这样,在查询数据时,在区块链上索引表中搜索与查询数据的数据类别相同的数据类别,并根据地址信息到对应的区块链下数据库获取相应的数据即可,保护了数据安全的同时又节省了区块链的存储空间。
86.103、将目标数据进行加密处理生成加密文件,并发送至数据查询方。
87.本技术实施例中,加密处理为基于区块链计算层进行的。其中,区块链计算层可以用于对步骤102获得的目标数据进行加密处理后,再发送到数据查询方,以使得数据查询方基于自己的私钥经过解密获得查询的目标数据,从而保证了数据存储方的数据安全。
88.需要说明的是,区块链计算层对目标数据进行加密时,可以根据不同的数据查询方进行不同的加密过程。例如,当数据查询方为单一数据查询方时,可以基于区块链计算层中的重加密节点,对数据进行加密后再发送;当数据查询方为多方数据查询方时,可以基于区块链计算层中的共识节点进行共识操作后,将多方数据合并加密后再发送,本技术实施例中不做具体限定。
89.与现有技术相比,本技术实施例通过区块链进行数据的存储以及查询,以使得数据查询方只能获得需要查询的目标数据,而查询不到其他数据,从而保证了数据存储方数据的安全;同时在将数据查询方查询的目标数据发送到数据查询方之前对目标数据进行加密处理,以使得数据查询方必须经过解密才可获得查询的目标数据,进一步的保证了数据存储方数据的安全。
90.本技术实施例中,为了进一步说明以及限定,将目标数据进行加密处理生成加密文件,具体包括:基于第一公、私钥对以及第二公、私钥对对目标数据进行多次加密操作,生成加密文件;或将多组目标数据进行合并处理,基于第三公钥分别对合并后的数据进行加密处理,生成加密文件。
91.其中,当数据查询方为单一数据查询方时,第一公、私钥对用于表征数据存储方的公、私钥对,第二公、私钥对用于表征数据查询方的公、私钥对;当数据查询方为多方数据查询方时,第三公钥用于表征与目标数据对应的数据查询方的公钥。具体的,当数据查询方为单一数据查询方时,由于仅针对一方进行数据的提供,可以通过区块链计算层的重加密节点将数据经过多次加密,转换为数据查询方利用自己私钥即可解密的密文,以保证数据的安全;当数据查询方为多方数据查询方时,为了提高查询效率,可以通过区块链计算层的共识节点预先对多方数据查询方进行共识操作,获得数据查询方之间的相互信任,再将所有数据查询方查询的数据经过合并加密操作,以使得各个数据查询方可以基于各自的私钥进行解密获得目标数据,而无从知晓其他数据查询方查询的数据,同样保证了数据的安全。
92.本技术实施例中,为了在数据查询方为多方数据查询方时,获得多方数据查询方之间的相互信任,将多组目标数据进行合并处理,基于第三公钥分别对合并后的数据进行加密处理,生成加密文件之前,实施例方法还包括:生成与各个数据查询方对应的多组第三公、私钥对;将数据类别进行隐匿消息承诺操作,生成多个隐匿消息承诺;将隐匿消息承诺以及对应的第三公钥进行合并操作,生成多个消息及公钥的合并组合;将各个数据查询方对应的消息及公钥的合并组合进行合并操作,生成组合消息承诺;基于各个第三私钥分别对组合消息承诺进行配置签名操作;聚合各个配置签名后的组合消息承诺,并存储于区块链的智能合约中。
93.其中,隐匿消息承诺配置有对应的数据查询方的签名。隐匿消息承诺,又称为pedersen承诺,是一种隐私保护方案中使用的较为广泛的密码学承诺,该承诺具备同态特性,可直接对密文消息进行操作,也就是说,对消息进行加密。示例性的,m为消息,commitment就是对消息加密后的密文,也就是敏感消息m的承诺。
94.示例性的,三方数据查询方为例,首先,各个数据查询方利用如下公式进行隐匿消息承诺,
95.commitmenti=mi×
g seedi×h96.其中,commitmenti为敏感消息的承诺,其中,g和h为有限域椭圆曲线上2个位置不同的基点;mi为各方签署的消息;seedi为随机数种子,i∈{1,2,3}。生成隐匿消息承诺commitment1,commitment2,commitment3。三方数据查询方各自生成对应的盲因子r1,r2,r3,并互相公开r1×
h,r2×
h,r3×
h,以及基于盲因子的公钥ri,i∈{1,2,3}。三方数据查询方分别将各自的公钥与隐匿消息承诺合并,再将三方合并生成组合消息承诺如下,
[0097][0098]
三方数据查询方分别用自己的私钥对组合消息承诺进行schnorr签名,
[0099]
sigmi=ri sum
commitment
×
prkeyi[0100]
其中,prkeyi为数据查询方私钥。三方数据查询方之间共享各自的签名,并由最后一方将三方签名聚合,sigm=sigm1 sigm2 sigm3,并将(r,sigm,commitment)提交到区块链的智能合约中,其中,r=r1 r2 r3。
[0101]
本技术实施例中,为了进一步对单一数据查询方的查询过程进行说明以及限定,基于第一公、私钥对以及第二公、私钥对对目标数据进行多次加密操作,生成加密文件,具体包括:生成第一公、私钥对以及第二公、私钥对;基于第一公钥对目标数据进行加密操作,生成第一加密文件;根据第一私钥与第二公钥生成重加密密钥;基于重加密密钥对第一加密文件进行加密处理,生成第二加密文件。
[0102]
其中,第一公、私钥对用于表征数据存储方的公、私钥对,第二公、私钥对用于表征数据查询方的公、私钥对。具体的,首先生成数据查询方和储存方各自的公、私钥对,利用数据存储方的公钥对存储的数据进行加密操作,生成第一加密文件。需要说明的是,第一加密文件是存储于区块链下数据库的。优选的,此加密过程可以采用非对称加密规则,即需要生成一对公、私钥对,用公钥对数据进行加密,只有对应的私钥才可以解密出数据,例如,基于安全散列算法sha-256生成32字节(256位)的随机字符串作为唯一的私钥,再经过椭圆曲线乘法运算可到对应的公钥,可以理解的是,由于数学原理,由私钥推算公钥是可行的,公钥逆推私钥是不可能的,从而保证了数据的安全。由于此时的第一加密文件仅可以由数据存储方的私钥进行解密,为了实现数据的授权共享,本技术实施例中,根据数据存储方私钥以及数据查询方公钥生成重加密密钥,即转换密钥,区块链重加密节点基于重加密密钥对第一加密文件进行重加密操作,即可将仅可以由数据存储方私钥进行解密的第一加密文件转换为利用数据查询方私钥也可以解密的第二加密文件,从而实现了数据的授权共享。
[0103]
本技术实施例中,为了节省区块链从的存储空间,基于第一公钥对目标数据进行加密操作,生成第一加密文件之前,实施例方法还包括:接收数据存储方的全量数据,进行分类处理,得到多个数据类别的数据集;基于第一公钥对所述目标数据进行加密操作,生成第一加密文件,具体包括:基于第一公钥对多个数据集进行加密操作,生成多个第一加密文件;将多个第一加密文件存储于区块链下数据库,并将对应的区块链下数据库的地址存储于区块链上索引表,生成索引关系。
[0104]
具体的,当前执行主体首先接收数据存储方上传的全量数据,并将其进行分类处
理,得到多个与数据类别相对应的数据集,利用数据存储方公钥将数据集加密生成第一加密文件,并存储于区块链下数据库,同时将区块链下数据库的地址与对应的数据类别存储于区块链上索引表,以实现节省区块链存储空间的目的。
[0105]
需要说明的是,区块链下数据库的地址相当于数据的唯一标识,例如,利用数据存储方公钥进行推导得出对应的区块链下数据库的地址。另外,区块链中索引区块的数据结构由区块头和区块体组成,其中,区块头中存储区块的头信息(即上一个区块的哈希值、本区块的哈希值、时间戳、随机数等信息),区块体中存储着数据查询者需要查询的索引信息。
[0106]
本技术实施例中,为了进一步说明以及限定,根据数据类别在区块链存储层获取与数据类别相匹配的目标数据,具体包括:根据数据类别查询区块链上索引表,获取与数据类别匹配的区块链下数据库的地址;基于区块链下数据库的地址,获取与数据类别匹配的第一加密文件。
[0107]
需要说明的是,根据索引关系可以获取到目标数据的区块链下数据库的地址,由于区块链下数据库的地址相当于数据的唯一标识,基于地址即可获取对应的第一加密文件。
[0108]
本技术实施例中,进一步的,实施方法还包括:将加密文件发送至数据查询方,以使得数据查询方基于数据查询方的私钥解密加密文件,得到目标数据。
[0109]
需要说明的是,将加密文件只可以基于数据查询方私钥进行解密,以获得明文信息,从而保证了数据的安全。
[0110]
在具体的应用场景中,区块链的总体框架如图2所示,数据层位于用户(即数据存储方)个人本地节点,用于存放用户的隐私数据,并对其拥有绝对控制权。用户可以将数据上传值存储层,经过分类,将分类得到的数据集经过用户公钥加密存储于区块链下数据库,同时将数据类别以及信息地址存储于区块链上索引表,并形成索引关系。当查询方为单一查询方时,根据查询的数据类别找到区块链下数据库中的加密文件,在区块链计算层的重加密节点中对加密文件进行重加密操作,发送到查询方,以使得查询方基于自己的私钥解密获得数据;当查询方为区块链机构层中的各个机构时(即多方查询方),预先在区块链计算层中的共识节点进行共识操作,以获得各个机构之间的信任,再将所有机构查询的数据进行合并加密操作发送到对应的机构,以使得机构利用自己的私钥进行解密获得数据,而无从知晓其他机构查询的数据。
[0111]
本技术提供了一种基于区块链的数据查询方法,首先基于区块链计算层接收目标数据的查询指令,所述查询指令中携带所述目标数据的数据类别;其次根据所述数据类别在区块链存储层获取与所述数据类别相匹配的目标数据,所述目标数据存储于区块链下数据库,所述数据类别存储于区块链上索引表,所述目标数据与对应的数据类别之间存在索引关系;最后将所述目标数据进行加密处理生成加密文件,并发送至数据查询方,所述加密处理为基于区块链计算层进行的。与现有技术相比,本技术实施例通过区块链进行数据的存储以及查询,以使得数据查询方只能获得需要查询的目标数据,而查询不到其他数据,从而保证了数据存储方数据的安全;同时在将数据查询方查询的目标数据发送到数据查询方之前对目标数据进行加密处理,以使得数据查询方必须经过解密才可获得查询的目标数据,进一步的保证了数据存储方数据的安全。
[0112]
进一步的,作为对上述图1所示方法的实现,本技术实施例提供了一种基于区块链
的数据查询装置,如图3所示,该装置包括:
[0113]
接收模块21,获取模块22,加密模块23。
[0114]
接收模块21,用于基于区块链计算层接收目标数据的查询指令,所述查询指令中携带所述目标数据的数据类别;
[0115]
获取模块22,用于根据所述数据类别在区块链存储层获取与所述数据类别相匹配的目标数据,所述目标数据存储于区块链下数据库,所述数据类别存储于区块链上索引表,所述目标数据与对应的数据类别之间存在索引关系;
[0116]
加密模块23,用于将所述目标数据进行加密处理生成加密文件,并发送至数据查询方,所述加密处理为基于区块链计算层进行的。
[0117]
在具体的应用场景中,所述加密模块,具体用于:
[0118]
基于第一公、私钥对以及第二公、私钥对对所述目标数据进行多次加密操作,生成加密文件,所述第一公、私钥对用于表征数据存储方的公、私钥对,所述第二公、私钥对用于表征数据查询方的公、私钥对,所述数据查询方为单一数据查询方;或
[0119]
将多组所述目标数据进行合并处理,基于第三公钥分别对合并后的数据进行加密处理,生成加密文件,所述第三公钥用于表征与所述目标数据对应的数据查询方的公钥,所述数据查询方为多方数据查询方。
[0120]
在具体的应用场景中,所述加密模块之前,所述装置还包括:
[0121]
生成模块,用于生成与各个数据查询方对应的多组第三公、私钥对;
[0122]
隐匿模块,用于将所述数据类别进行隐匿消息承诺操作,生成多个隐匿消息承诺,所述隐匿消息承诺配置有对应的数据查询方的签名;
[0123]
合并模块,用于将所述隐匿消息承诺以及对应的第三公钥进行合并操作,生成多个消息及公钥的合并组合;
[0124]
所述合并模块,还用于将各个数据查询方对应的所述消息及公钥的合并组合进行合并操作,生成组合消息承诺;
[0125]
签名模块,用于基于各个第三私钥分别对所述组合消息承诺进行配置签名操作;
[0126]
聚合模块,用于聚合各个配置签名后的组合消息承诺,并存储于区块链的智能合约中。
[0127]
在具体的应用场景中,所述加密模块,具体包括:
[0128]
第一生成单元,用于生成第一公、私钥对以及第二公、私钥对;
[0129]
第一加密单元,用于基于第一公钥对所述目标数据进行加密操作,生成第一加密文件;
[0130]
第二生成单元,用于根据第一私钥与第二公钥生成重加密密钥;
[0131]
第二加密单元,用于基于所述重加密密钥对所述第一加密文件进行加密处理,生成第二加密文件。
[0132]
在具体的应用场景中,所述第一加密单元之前,所述模块还包括:
[0133]
分类单元,用于接收所述数据存储方的全量数据,进行分类处理,得到多个数据类别的数据集;
[0134]
所述第一加密单元,具体包括:
[0135]
加密子单元,用于基于第一公钥对多个所述数据集进行加密操作,生成多个第一
加密文件;
[0136]
存储子单元,用于将所述多个第一加密文件存储于所述区块链下数据库,并将对应的所述区块链下数据库的地址存储于所述区块链上索引表,生成索引关系。
[0137]
在具体的应用场景中,所述获取模块,具体包括:
[0138]
查询单元,用于根据所述数据类别查询所述区块链上索引表,获取与所述数据类别匹配的所述区块链下数据库的地址;
[0139]
获取单元,用于基于所述区块链下数据库的地址,获取与所述数据类别匹配的第一加密文件。
[0140]
在具体的应用场景中,所述加密模块还用于:
[0141]
将所述加密文件发送至所述数据查询方,以使得所述数据查询方基于数据查询方的私钥解密所述加密文件,得到所述目标数据。
[0142]
本技术提供了一种基于区块链的数据查询装置,首先基于区块链计算层接收目标数据的查询指令,所述查询指令中携带所述目标数据的数据类别;其次根据所述数据类别在区块链存储层获取与所述数据类别相匹配的目标数据,所述目标数据存储于区块链下数据库,所述数据类别存储于区块链上索引表,所述目标数据与对应的数据类别之间存在索引关系;最后将所述目标数据进行加密处理生成加密文件,并发送至数据查询方,所述加密处理为基于区块链计算层进行的。与现有技术相比,本技术实施例通过区块链进行数据的存储以及查询,以使得数据查询方只能获得需要查询的目标数据,而查询不到其他数据,从而保证了数据存储方数据的安全;同时在将数据查询方查询的目标数据发送到数据查询方之前对目标数据进行加密处理,以使得数据查询方必须经过解密才可获得查询的目标数据,进一步的保证了数据存储方数据的安全。
[0143]
根据本技术一个实施例提供了一种存储介质,所述存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的基于区块链的数据查询方法。
[0144]
基于这样的理解,本技术的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施场景所述的方法。
[0145]
图4示出了根据本技术一个实施例提供的一种终端的结构示意图,本技术具体实施例并不对终端的具体实现做限定。
[0146]
如图4所示,该终端可以包括:处理器(processor)302、通信接口(communications interface)304、存储器(memory)306、以及通信总线308。
[0147]
其中:处理器302、通信接口304、以及存储器306通过通信总线308完成相互间的通信。
[0148]
通信接口304,用于与其它设备比如客户端或其它服务器等的网元通信。
[0149]
处理器302,用于执行程序310,具体可以执行上述接口的基于区块链的数据查询方法实施例中的相关步骤。
[0150]
具体地,程序310可以包括程序代码,该程序代码包括计算机操作指令。
[0151]
处理器302可能是中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本技术实施例的一个或多个集成电
路。终端包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
[0152]
存储器306,用于存放程序310。存储器306可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0153]
程序310具体可以用于使得处理器302执行以下操作:
[0154]
基于区块链计算层接收目标数据的查询指令,所述查询指令中携带所述目标数据的数据类别;
[0155]
根据所述数据类别在区块链存储层获取与所述数据类别相匹配的目标数据,所述目标数据存储于区块链下数据库,所述数据类别存储于区块链上索引表,所述目标数据与对应的数据类别之间存在索引关系;
[0156]
将所述目标数据进行加密处理生成加密文件,并发送至数据查询方,所述加密处理为基于区块链计算层进行的。
[0157]
存储介质中还可以包括操作系统、网络通信模块。操作系统是管理上述基于区块链的数据查询的实体设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与信息处理实体设备中其它硬件和软件之间通信。
[0158]
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0159]
可能以许多方式来实现本技术的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本技术的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本技术的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本技术实施为记录在记录介质中的程序,这些程序包括用于实现根据本技术的方法的机器可读指令。因而,本技术还覆盖存储用于执行根据本技术的方法的程序的记录介质。
[0160]
显然,本领域的技术人员应该明白,上述的本技术的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本技术不限制于任何特定的硬件和软件结合。
[0161]
以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献