1.本说明书多个实施例涉及区块链技术领域,尤其涉及一种基于多方协作的数据查询方法及装置。
背景技术:2.隐私计算(privacy compute),是指在保护数据本身不对外泄露的前提下,实现数据分析计算的技术。例如,目前主流的隐私计算技术通常可以包括,fl(federated learning,联邦学习)技术、mpc(secure multi-party computation,多方安全计算)技术,tee(trusted execute environment,可信执行环境)技术,等等。在实际应用中,参与隐私计算的数据可能来自于多个不同的数据源,因此如何利用多个不同的数据源的数据来进行隐私计算,是业界一直以来关注的重点。
技术实现要素:3.本说明书提出一种基于多方协作的数据查询方法,基于区块链的数据协作平台对接了多个协作参与方;所述方法应用于与所述多个协作参与方中的任一目标协作参与方对应的服务端;所述方法包括:
4.获取用户输入的针对虚拟数据集合的数据查询请求;其中,所述虚拟数据集合为所述数据协作平台针对所述多个协作参与方分别维护的用于参与隐私计算的数据,进行数据虚拟化处理得到的虚拟数据集合;
5.解析所述数据查询请求,得到与所述数据查询请求相关的至少一个子操作;
6.从与所述隐私计算相关的实例化算子库中选择与所述至少一个子操作对应的至少一个实例化算子,并基于所述至少一个实例化算子生成与所述数据查询请求对应的查询流程;
7.创建包含与所述查询流程对应的查询逻辑的智能合约,并将创建的所述智能合约部署到与所述数据协作平台对接的区块链网络中,以供所述用户进行调用。
8.本说明书还提出一种基于多方协作的数据查询方法,所述方法应用于基于区块链的数据协作平台;其中,所述数据协作平台对接了多个协作参与方;所述方法包括:
9.获取所述多个协作参与方中的任一目标协作参与方对应服务端上传的,由用户输入的针对虚拟数据集合的数据查询请求;其中,所述虚拟数据集合为所述数据协作平台针对所述多个协作参与方分别维护的用于参与隐私计算的数据,进行数据虚拟化处理得到的虚拟数据集合;
10.解析所述数据查询请求,得到与所述数据查询请求相关的至少一个子操作;
11.从与所述隐私计算相关的实例化算子库中选择与所述至少一个子操作对应的至少一个实例化算子,并基于所述至少一个实例化算子生成与所述数据查询请求对应的查询流程;
12.创建包含与所述查询流程对应的查询逻辑的智能合约,并将创建的所述智能合约
部署到与所述数据协作平台对接的区块链网络中,以供所述用户进行调用。
13.本说明书还提出一种基于多方协作的数据查询装置,基于区块链的数据协作平台对接了多个协作参与方;所述方法应用于与所述多个协作参与方中的任一目标协作参与方对应的服务端;所述装置包括:
14.第一获取模块,获取用户输入的针对虚拟数据集合的数据查询请求;其中,所述虚拟数据集合为所述数据协作平台针对所述多个协作参与方分别维护的用于参与隐私计算的数据,进行数据虚拟化处理得到的虚拟数据集合;
15.第一解析模块,解析所述数据查询请求,得到与所述数据查询请求相关的至少一个子操作;
16.第一生成模块,从与所述隐私计算相关的实例化算子库中选择与所述至少一个子操作对应的至少一个实例化算子,并基于所述至少一个实例化算子生成与所述数据查询请求对应的查询流程;
17.第一部署模块,创建包含与所述查询流程对应的查询逻辑的智能合约,并将创建的所述智能合约部署到与所述数据协作平台对接的区块链网络中,以供所述用户进行调用。
18.本说明书还提出一种基于多方协作的数据查询装置,所述装置应用于基于区块链的数据协作平台;其中,所述数据协作平台对接了多个协作参与方;所述装置包括:
19.第二获取模块,获取接入所述多个协作参与方中的任一目标协作参与方对应服务端上传的,由用户输入的针对虚拟数据集合的数据查询请求;其中,所述虚拟数据集合为所述数据协作平台针对所述多个协作参与方分别维护的用于参与隐私计算的数据,进行数据虚拟化处理得到的虚拟数据集合;
20.第二解析模块,解析所述数据查询请求,得到与所述数据查询请求相关的至少一个子操作;
21.第二生成模块,从与所述隐私计算相关的实例化算子库中选择与所述至少一个子操作对应的至少一个实例化算子,并基于所述至少一个实例化算子生成与所述数据查询请求对应的查询流程;
22.第二部署模块,创建包含与所述查询流程对应的查询逻辑的智能合约,并将创建的所述智能合约部署到与所述数据协作平台对接的区块链网络中,以供所述用户进行调用。
23.在本说明书以上的技术方案中,不仅可以在针对来自多个数据源的数据进行隐私计算时,降低数据的使用复杂度,还可以让数据使用的过程更加透明可信并且便于追溯。而且,由于用户可以在针对多个数据源的数据进行虚拟机化处理得到的虚拟数据集合的基础上,从全局的数据视角来定制数据查询需求,并且可以基于数据协作平台自身的隐私计算能力,针对用户不同的数据查询需求,来规划不同的数据隐私查询流程,因此可以灵活的适配不同的数据隐私查询场景,使得该数据协作平台可以激活更多的数据使用场景。
附图说明
24.图1是本说明书一示例性实施例示出的数据协作平台的系统架构图。
25.图2是本说明书根据一示例性实施例示出的一种基于多方协作的数据查询方法的
流程图。
26.图3是本说明书根据一示例性实施例示出的一种对多个协作参与方维护的数据进行虚拟化处理的示意图。
27.图4是本说明书根据一示例性实施例示出的另一种基于多方协作的数据查询方法的流程图。
28.图5是一示例性实施例提供的一种电子设备的示意结构图。
29.图6是本说明书根据一示例性实施例示出的一种基于多方协作的数据查询装置的框图。
30.图7是本说明书根据一示例性实施例示出的另一种基于多方协作的数据查询装置的框图。
具体实施方式
31.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
32.需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
33.在针对来自多个不同的数据源的数据进行隐私计算的场景中,为了打破各个数据源之间的信息孤岛,实现充分的数据融合,通常会搭建一个中心化的数据协作平台。该中心化的数据协作平台,通常负责对各个数据源的数据进行调度管理。在需要针对来自多个不同的数据源的数据进行隐私计算时,可以由该数据协作平台从不同的数据源分别查询数据,并基于自身的隐私计算能力,对查询到的数据进行隐私计算处理。
34.然而,在实际应用中,不同的数据源对于其维护的数据的使用,通常都具有不同的安全性要求;比如,部分数据源可能会出于隐私保护的目的,禁止将数据导出其所在的数据域进行使用,或者不允许将其维护的数据与其他数据源维护的数据进行汇总后使用,等等。
35.而不同的数据源对于数据的安全性要求上存在的这种差异,可能会衍生出大量的数据查询和隐私计算的场景。因此,对于数据协作平台来说,如何灵活的去适配这些数据查询和隐私计算的场景,则具有非常重要的意义。
36.基于此,本说明书提出一种在基于多个数据源维护的数据进行隐私计算的场景下,用户可以从全局的数据视角来定制查询数据需求,并基于数据协作平台自身的隐私计算能力,来灵活的规划与用户定制的数据查询需求对应的数据查询流程的技术方案。
37.在实现时,可以搭建一个基于区块链的数据协作平台,该数据协作平台可以对接多个协作参与方。其中,每一个协作参与方,都可以维护用于参与隐私计算的数据。数据协作平台可以基于数据虚拟化技术,针对各个协作参与方维护的数据进行数据虚拟化处理,
得到一个虚拟数据集合。
38.对于该多个协作参与方中的任一目标协作参与方来说,接入该目标协作参与方对应的服务端的用户,可以输入针对该虚拟数据集合的数据查询请求。而该目标协方参与方对应的服务端在获取到该数据查询请求之后,可以解析该数据查询请求,得到与该数据查询请求相关的至少一个子操作;再从与数据协作平台管理的与隐私计算相关的实例化算子库中,选择与上述至少一个子操作对应的至少一个实例化算子,并基于上述至少一个实例化算子生成与上述数据查询请求对应的查询流程。
39.最后,可以创建包含与该查询流程对应的查询逻辑的智能合约,并将创建的智能合约部署到与数据协作平台对接的区块链网络中。后续,用户可以通过调用该智能合约,来完成与上述数据查询请求对应的查询过程。
40.在以上技术方案中,不仅可以在针对来自多个数据源的数据进行隐私计算时,降低数据的使用复杂度,还可以让数据使用的过程更加透明可信并且便于追溯。
41.而且,由于用户可以在针对多个数据源的数据进行虚拟机化处理得到的虚拟数据集合的基础上,从全局的数据视角来定制数据查询需求,并且可以基于数据协作平台自身的隐私计算能力,针对用户不同的数据查询需求,来规划不同的数据隐私查询流程,因此可以灵活的适配不同的数据隐私查询场景,使得该数据协作平台可以激活更多的数据使用场景。
42.请参见图1,图1是本说明书一示例性实施例示出的数据协作平台的系统架构图。
43.如图1所示,上述数据协作平台,具体可以是一个基于区块链的隐私协作平台,可以对接一个区块链网络,以及多个协作参与方(即多个数据源)。该数据协作平台可以对该多个协作参与方维护的数据进行计算调度,从全局的数据视角完成隐私计算。
44.例如,在符合各个协作参与方对数据的安全性要求的前提下,将各个协作参与方维护的数据作为一个整体进行隐私计算。
45.对于各个协作参与方来说,可以分别维护数据集合和计算结果集。其中,数据集,用于存储参与隐私计算的数据。上述计算结果集,用于存储针对上述数据集中的数据进行隐私计算得到的计算结果。该计算结果具体可以是中间计算结果,也可以是最终的计算结果。
46.需要说明的是,上述数据集和上述计算结果集,具体都可以是一个数据库。对于不同的协作参与方来说,采用的数据库可以是同构的数据库,也可以是异构的数据库,在本说明书中不进行特别限定。
47.除了上述数据集和计算结果集以外,各个协作参与方还可以搭载若干与隐私计算相关的实例化算子和功能组件。
48.如图1所示,各个协作参与方搭载的与隐私计算相关的实例化算子,具体可以包括基于mpc的实例化算子、基于tee的实例化算子、以及基于tl的实例算子,等等。每一种实例化算子,都对应一种基于特定的隐私计算技术实现的一项计算操作或者计算功能。而对于某一项具体的计算操作或者计算功能来说,可以对应基于多种隐私计算技术实现的多种实例化算子。
49.例如,以要实现的计算功能为求交集计算为例,那么与该求交集计算功能对应的实例化算子,具体可以包括基于mpc的求交集计算的实例化算子,基于tee的求交集计算的
实例化算子,等等。也即,对于求交集计算功能,可以分别基于mpc技术和tee技术实现出两种实例化算子。
50.如图1所示,各个协作参与方搭载的功能组件,具体可以包括以下几种:
51.数据查询解析组件,用于对用户输入的数据查询请求进行解析,获取该数据查询请求表达出的数据查询需求,将该数据查询请求解析成至少一个与数据查询相关的子操作。例如,在实际应用中,上述数据查询请求具体可以是一个数据查询语句(比如sql语句),数据查询解析组件则用于对该数据查询语句进行语法解析,得到该数据查询语句的语法树,再基于得到的语法树所描述的语法结构来明确用户的查询需求,将用户的查询需求转换成至少一个与数据查询相关的子操作。
52.数据查询规划组件,用于根据上述数据查询解析组件解析出的上述至少一个子操作,规划出与上述数据查询请求对应的基本查询流程。
53.应用执行规划组件,用于从数据协作平台管理的实例化算子库中,选择与上述至少一个子操作对应的至少一个实例化算子,再基于上述至少一个实例化算子规划出与上述基本查询流程对应的实例化查询流程。此时该实例化查询流程,即为基于用户输入的数据查询请求所表达出的数据查询需求,规划出的一个具体的用于查询数据的数据协作应用。
54.应用合约管理组件,用于生成与上述实例化查询流程对应的查询逻辑相关的执行代码,并将生成的执行代码编译成为智能合约代码,并在与数据协作平台对接的区块链网络中部署包含上述智能合约代码的智能合约。
55.执行调度组件,用于与上述智能合约进行交互,通过监听区块链上存储的智能合约的调用结果,来进一步调度本地的实例化算子,来完成相关的隐私计算。
56.其中,需要说明的是,以上示出的各个功能组件,仅为示意性的,在实际应用中,可以基于实际的需求对其中的部分组件的进行整合,也可以对部分组件进行进一步的拆分,在本说明书中不进行特别限定。
57.还需要说明的是,以上示出的各个功能组件中除了执行调度组件以外的其它组件,可以由数据协作平台分布式的部署在各个协作参与方(图1示出的就是这种分布式的部署在各个协作参与方的情况),也可以中心化的部署在数据协作平台上,在本说明书中不进行特别限定。例如,可以中心化的部署在用于对上述区块链网络进行管理的一个区块链服务平台(图1中未示出)上。
58.请继续参见图1,各个协作参与方来说,还可以面向用户提供一个应用执行客户端。
59.该应用执行客户端,具体用于面向用户提供数据协作平台的接入服务,用户可以通过该应用执行客户端,发起针对上述智能合约的合约调用,并通过该应用执行客户端,来查询该智能合约的调用结果。
60.请参见图2,图2是本说明书根据一示例性实施例示出的一种基于多方协作的数据查询方法的流程图,该方法可以应用于图1所示的多个协作参与方中的任一目标协作参与方对应的服务端;所述方法包括:
61.步骤202,获取用户输入的针对虚拟数据集合的数据查询请求;其中,所述虚拟数据集合为所述数据协作平台针对所述多个协作参与方中的至少部分协作参与方分别维护的用于参与隐私计算的数据,进行数据虚拟化处理得到的虚拟数据集合;
62.上述协作参与方,具体可以接入数据协作平台的数据提供方。例如,在一个例子中,上述多个协作参与方,具体可以包括分布在不同地域的多个数据中心。
63.各个协作参与方可以分别在其本地维护用于参与隐私计算的数据集合。而为了打破各个协作参与方之间的信息孤岛,数据协作平台可以基于数据虚拟化技术,针对各个协作参与方分别维护的数据集进行数据虚拟化处理。
64.数据虚拟机化技术,是一种将多个数据源维护的物理数据,在逻辑层面映射成虚拟数据,进而将多个数据源维护的物理数据整合成为一个逻辑上的虚拟数据集合(也称之为逻辑视图),供上层应用使用的技术。通过对各个协作参与方维护的数据集进行数据虚拟化处理,可以将各个协作参与方维护的数据集整合成为一个虚拟数据集合,供用户使用。
65.其中,在将多个数据源维护的物理数据映射成为虚拟数据时,通常是指将物理数据中包含的物理数据属性,映射成为虚拟数据属性的过程。需要说明的是,将物理数据中包含的物理数据属性映射成为虚拟数据属性时,具体可以采用一对一映射的方式,将物理数据中包含的一个物理数据属性,映射成为一个对应的虚拟数据属性,也可以采用多对一映射的方式,将物理数据中包含的多个物理数据属性,映射成为一个对应的虚拟数据属性。
66.例如,请参见图3,图3为本说明书一示例性实施例示出的一种对多个协作参与方维护的数据进行数据虚拟化处理的示意图。
67.如图3所示,假设协作参与方1维护的数据集1中存储的数据包括属性1-3,协作参与方2维护的数据集2中存储的数据包括属性4-7,协作参与方3维护的数据集3中存储的数据包括属性8-11。其中,每一个属性都可以代表数据表中的一个字段。对数据集1-3中存储的数据进行数据虚拟化处理之后得到的虚拟数据表,可以包含属性a-f。
68.其中,如图3所示出的数据虚拟化处理方式可知,数据集1中的属性1,数据集2中的属性4,以及数据集3中的属性8,采用多对一映射的方式,映射成了虚拟数据表中的属性a;数据集1中的属性2,数据集2中的属性5,以及数据集3中的属性9,采用多对一映射的方式,映射成了虚拟数据表中的属性b;数据集1中的属性3和数据集2中的属性6,采用多对一映射的方式,映射成了虚拟数据表中的属性c。而数据集3中的属性10,采用一对一映射的方式,映射成了虚拟数据表中的属性d;数据集2中的属性7,采用一对一映射的方式,映射成了虚拟数据表中的属性e;数据集3中的属性11,采用一对一映射的方式,映射成了虚拟数据表中的属性f。
69.需要强调的是,图3示出的数据映射方式,仅为示例性的,在实际应用中,对多个协作参与方维护的数据进行数据虚拟化时所采用的数据映射方式,通常取决于数据本身的数据语义,在本说明书中不进行特别限定;例如,在进行数据映射时,如果分布在不同的协作参与方的多个数据字段的数据语义相关,则可以采用将该多个数据字段映射成为一个虚拟数据属性的方式。
70.在针对各个协作参与方维护的数据集进行数据虚拟化处理完成后,可以将得到的虚拟数据表在下发至各个协作参与方,由各个协作参与方进一步将该虚拟数据表作为能够全局的反映各协作参与方维护的数据状况的数据视图,向用户进行输出展示。
71.而通过客户端接入上述目标协作参与方的用户在具有数据查询需求时,可以通过该客户端输入针对该虚拟数据表的数据查询请求的方式,以全局的数据视角来发起数据查询。
72.其中,上述数据查询请求,具体用于向数据协作平台来表达用户的数据查询需求,关于该数据查询请求的具体形式,在本说明书中不进行特别限定。例如,在一个例子中,上述数据查询请求具体可以是用户输入的数据查询语句(比如sql语句)。
73.步骤204,解析所述数据查询请求,得到与所述数据查询请求相关的至少一个子操作;
74.在实际应用中,用户针对上述虚拟数据集合的数据查询操作,通常是由至少一个子操作构成的一个完整的查询流程。
75.例如,假设上述虚拟数据集合为存储用户个人信息的用户信息表,该信息表中包括性别字段和年龄字段。如果用户针对该用户信息表的数据查询需求是“查询该用户信息表中存储的男性用户的年龄数据的平均值”,那么此时用户针对上述虚拟数据集合的数据查询操作,则是由“针对该用户信息表中的男性用户的用户信息的查询子操作”,“针对该用户信息表中的男性用户的用户信息中的年龄数据的筛选计算子操作”,“针对筛选出的年龄数据的平均值计算子操作”构成的一个查询流程。
76.与上述目标协作参与方对应的服务端在获取到用户通过客户端输入的数据查询请求后,可以对该数据查询请求进行解析,来明确该用户针对上述虚拟数据集合的数据查询需求,进而将上述数据查询请求解析成与数据查询相关的至少一个子操作。
77.例如,请继续参见图1,与上述目标协作参与方对应的服务端在获取到用户通过客户端输入的数据查询请求后,可以调用图1描述的数据查询解析组件,对该数据查询请求进行解析。
78.其中,对上述数据查询请求进行解析的具体过程,通常取决于该数据查询请求的具体形式。
79.例如,在示出的一种实施方式中,上述数据查询请求具体可以是数据查询语句。而对于数据查询语句来说,通常是通过一定的语法结构来组织和表达用户的数据查询需求。在这种情况下,可以针对该数据查询语句进行语法解析,来得到与该数据查询语句对应的语法树。其中,语法树通常用于描述数据查询语句的语法结构。当通过语法解析得到语法树后,就可以基于语法树中描述的语法结构,来明确用户的数据查询需求,确定出与该数据查询语句相关的至少一个子操作。
80.其中,需要说明的是,针对该数据查询语句进行语法解析的具体过程,本说明书中不再进行详述,本领域技术人员在将本说明书记载的技术方案付诸实现时,可以参考相关技术中的记载。比如,可以利用一些通用的语法解析引擎,对上述数据查询语句进行语法解析。
81.在示出的一种实施方式中,上述数据查询请求具体也可以是用于数据查询的请求报文。而对于用于数据查询的请求报文来说,通常是通过一定的报文格式来组织和表达用户的数据查询需求。在这种情况下,可以针对该请求报文进行报文格式解析,来明确用户的数据查询需求,确定出与该请求报文相关的至少一个子操作。
82.其中,需要说明的是,针对该请求报文进行报文格式解析的具体过程,本说明书中不再进行详述,本领域技术人员在将本说明书记载的技术方案付诸实现时,可以参考相关技术中的记载。比如,可以利用一些通用的报文解析工具或者协议,对上述请求报文进行报文格式解析。
83.在本说明书中,上述数据查询请求具体可以是一个仅用于对上述虚拟数据集合中的虚拟数据进行数据查询的请求,也可以是一个用于对上述虚拟数据集合中的虚拟数据进行数据查询计算的请求。
84.在示出的一种实施方式中,如果上述数据查询请求是一个仅用于对上述虚拟数据集合中的虚拟数据进行数据查询的请求,在这种情况下,上述至少一个子操作,通常仅包括针对上述虚拟数据集合中的虚拟数据的至少一个查询子操作。
85.例如,仍以上述虚拟数据集合为存储用户个人信息的用户信息表为例,此类数据查询请求通常可以是诸如“查询该用户信息表中存储的男性用户”的数据查询请求。在这种情况下,上述至少一个子操作,通常仅包括至少一个“针对该用户信息表中的男性用户的用户信息的查询子操作”。
86.需要说明的是,由于虚拟数据集合中的虚拟数据包含的若干个虚拟数据字段,是通过对各个协作参与方维护的物理数据包含的物理数据字段进行映射整合后得到的,因此上述若干个虚拟数据字段对应的数据内容,实际上是维护在不同的协作参与方的。在这种情况下,上述至少一个子操作,通常可以包括从不同的协作参与方维护的数据中分别查询上述若干个虚拟数据字段对应的数据内容的至少一个查询子操作。
87.在示出的一种实施方式中,如果上述数据查询请求是一个用于对上述虚拟数据集合中的虚拟数据进行数据查询计算的请求,在这种情况下,上述至少一个子操作,则还可以包括针对查询到的数据进行计算的至少一个计算子操作。
88.例如,仍以上述虚拟数据集合为存储用户个人信息的用户信息表为例,此类数据查询请求则可以是以上描述的“查询该用户信息表中存储的男性用户的年龄数据的平均值”的数据查询请求。在这种情况下,上述至少一个子操作,除了可以包括“针对该用户信息表中的男性用户的用户信息的查询子操作”以外,还可以包括“针对该用户信息表中的男性用户的用户信息中的年龄数据的筛选计算子操作”,以及“针对筛选出的年龄数据的平均值计算子操作”。
89.需要说明的是,与用户输入的数据查询请求相关的至少一个计算子操作的种类,通常取决于上述数据协作平台自身的隐私计算能力,在本说明书中不进行特别限定。
90.例如,在实际应用中,上述至少一个计算子操作,通常可以包括对数据进行求交集计算的子操作;对数据进行过滤计算的子操作;对数据进行统计计算的子操作等等,在本说明书中不再进行一一列举。
91.步骤206,从与所述隐私计算相关的实例化算子库中选择与所述至少一个子操作对应的至少一个实例化算子,并基于所述至少一个实例化算子生成与所述数据查询请求对应的查询流程;
92.需要说明的是,本说明书中描述的算子,是指针对各个协作参与方维护的数据进行隐私计算的过程中所涉及的各种计算操作/计算功能。也即,针对各个协作参与方维护的数据进行隐私计算的过程中所涉及的任何一项计算操作/计算功能,都可以称之为是一个算子。
93.而上述实例化算子,则是指基于特定的隐私计算技术实现的一项计算功能或者计算操作。例如,目前主流的隐私计算技术通常可以包括,fl技术、mpc技术,以及tee技术等等,因此上述实例化算子库中的实例化算子,可以包括基于fl技术实现的实例化算子、基于
mpc技术实现的实例化算子、以及基于tee技术实现的算子等等。
94.在实际应用中,数据协作平台自身的隐私计算能力,通常是由数据协作平台管理的实例化算子库来决定,该实例化算子库中包含的实例化算子的种类越丰富,表明该数据协作平台自身的隐私计算能力越强大。
95.在示出的一种实施方式中,数据协作平台管理的实例化算子库中的实例化算子,具体可以基于数据协作平台支持的隐私计算技术实现的算子,还可以包含基于各个协作参与方支持的隐私计算技术实现的算子。通过这种方式,使得数据协作平台可以涵盖接入的各个协作参与方的隐私计算能力。
96.与上述目标协作参与方对应的服务端在将上述数据查询请求解析成至少一个子操作之后,可以从管理的上述实例化算子库中,选择与上述至少一个子操作对应的至少一个实例化算子并基于选择出的上述至少一个实例化算子生成与上述数据查询请求对应的查询流程。
97.在示出的一种实施方式中,数据协作平台具体可以在与上述多个协作参与方对应的服务端上,分布式的部署流程规划组件,该流程规划组件,具体可以用于从管理的上述实例化算子库中,选择与上述至少一个子操作对应的至少一个实例化算子并基于选择出的上述至少一个实例化算子生成与上述数据查询请求对应的查询流程。上述数据协作平台管理的实例化算子库,具体也可以分别下发至各个协作参与方对应的服务端,由各个协作参与方分别进行维护。在这种情况下,与上述目标协作参与方对应的服务端在将上述数据查询请求解析成至少一个子操作之后,可以调用该流程规划组件,从本地维护的与所述隐私计算相关的实例化算子库中选择与所述至少一个子操作对应的至少一个实例化算子,并基于上述至少一个实例化算子生成与上述数据查询请求对应的查询流程。
98.例如,请继续参见图1,上述流程规划组件,具体可以包括图1示出的数据查询规划组件和应用执行规划组件,在这种情况下,与上述目标协作参与方对应的服务端在将上述数据查询请求解析成至少一个子操作之后,可以先调用上述数据查询规划组件,根据解析出的上述至少一个子操作,规划出与上述数据查询请求对应的基本查询流程。然后再调用上述应用执行规划组件,从数据协作平台管理的实例化算子库中,选择与上述至少一个子操作对应的至少一个实例化算子,再基于上述至少一个实例化算子规划出与上述基本查询流程对应的实例化查询流程。此时该实例化查询流程,即为基于用户输入的数据查询请求所表达出的数据查询需求,规划出的一个具体的用于查询数据的数据协作应用。
99.其中,需要说明的是,在实际应用中,不同的数据源对于其维护的数据的使用,通常都具有不同的安全性要求;比如,部分数据源可能会出于隐私保护的目的,禁止将数据导出其所在的数据域进行使用,或者不允许将其维护的数据与其他数据源维护的数据进行汇总后使用,等等。因此,为了确保选择出的实例化算子能够满足各个协作参与方对于数据使用的安全性要求,可以参考各个协作参与方对于数据使用的安全性要求,从上述实例化算子库中来选择合适的实例化算子。
100.在示出的一种实施方式中,在从上述实例化算子库中,选择与上述至少一个子操作对应的至少一个实例化算子时,具体可以先获取各协作参与方针对其维护的数据的数据安全要求,再从上述实例化算子库中选择满足上述数据安全要求的,与上述至少一个子操作对应的至少一个实例化算子。
101.通过这种方式,使得用户在不了解的各个协作参与方对数据使用的安全性要求的前提下,数据协作平台仍然能够基于用户的数据查询需求,自动化的为用户选择能够满足各个协作参与方对数据使用的安全性要求的实例化算子,从而可以避免由于用户不了解各个协作参与方对应数据使用的安全性要求,而导致的数据查询不符合安全性要求而造成的查询失败的情况。
102.其中,由于各个协作参与方针对其维护的数据配置的数据安全策略,某种程度上可以反映各个协作参与方对数据使用的安全性要求;因此,在获取各协作参与方针对其维护的数据的数据安全要求时,具体可以先获取各个协作参与方针对其维护的数据配置的数据安全策略,当获取到各个协作参与方针对其维护的数据配置的数据安全策略之后,可以基于该数据安全策略,来进一步确定出各个协作参与方对于其维护的数据的数据安全要求。
103.其中,各个协作参与方针对其维护的数据配置的数据安全策略的具体内容,通常取决于各个协作参与方对数据使用的具体的安全性要求,因此在本说明书不再进行具体的限定。
104.在示出的一种实施方式中,上述数据安全策略具体可以包括以下示出的一项或者多项的组合:
105.针对所述数据配置的安全级别;
106.针对所述数据配置的安全防护级别;
107.与其它的协作参与方的数据信任关系;
108.与以上数据安全策略相对应的是,各个协作参与方对数据使用的安全性要求,具体也可以包括以下示出的一项或者多项的组合:
109.基于所述安全级别确定出的,是否允许将数据导出其所在的数据域的安全性要求;
110.基于所述安全防护级别确定出的,是否允许对数据以及针对数据的隐私计算结果进行数据脱敏处理的安全性要求;
111.基于所述数据信任关系确定出的,是否允许将数据与其它的协作参与方维护的数据进行汇总的安全性要求。
112.在示出的一种实施方式中,对于实例化算子库中包含的实例化算子库,也可以为其配置对应的数据安全要求。为实例化算子库配置的数据安全要求,具体用于指示该实例化算子能够满足的数据安全要求。
113.在这种情况下,在从实例化算子库中选择满足数据安全要求的与所述至少一个子操作对应的至少一个实例化算子时,具体可以先在实例算子库中查找与上述至少一个子操作对应的至少一个实例化算子;此时查找到的这些实例化算子中可能会存在不满足上述安全性要求的实例化算子。然后,可以将各个协作参与方针对其维护的数据的数据安全要求,与查找到的上述至少一个实例化算子对应的数据安全要求进行匹配;然后可以基于匹配结果,从上述至少一个实例化算子中进一步选择与上述各个协作参与方针对其维护的数据的数据安全要求匹配的实例化算子。
114.其中,需要说明的是,如前所述,上述实例化算子库中的实例化算子,通常可以包括基于fl技术实现的实例化算子、基于mpc技术实现的实例化算子、以及基于tee技术实现
的算子等等,然而基于fl技术实现的实例化算子通常无法应用于数据查询的场景。因此,在本说明书中,与上述至少一个子操作对应的实例化算子,具体可以包括基于tee实现的实例化算子和基于mpc实现的实例化算子。
115.例如,上述至少一个子操作对应的实例化算子,具体可以包括基于tee实现的用于进行隐私查询或者隐私查询计算的实例化算子,以及基于mpc实现的用于进行隐私查询或者隐私查询计算的实例化算子。
116.在示出的一种实施方式中,在基于上述至少一个实例化算子生成与上述数据查询请求对应的查询流程时,具体可以基于上述至少一个实例化算子生成多个查询流程,再将该多个查询流程向用户进行输出展示,以由用户从该多个查询流程中选择一个与上述数据查询请求对应的最优的查询流程。当然,在实际应用中,具体也可以默认基于上述至少一个实例化算子生成一个最优的查询流程。
117.步骤208,创建包含与所述查询流程对应的查询逻辑的智能合约,并将创建的所述智能合约部署到与所述数据协作平台对接的区块链网络中,以供所述用户进行调用。
118.与上述目标协作参与方对应的服务端在基于上述至少一个实例化算子生成了与上述数据查询请求对应的查询流程之后,可以进一步将该查询流程编译成智能合约的形式,部署到与数据协作平台对接的区块链网络中。
119.例如,在一个例子中,上述服务端可以先自动生成与上述查询流程对应的查询逻辑相关的执行代码,并将生成的执行代码编译成为智能合约代码;然后,在与上述数据协作平台对接的区块链网络中部署包含该智能合约代码的智能合约。其中,部署智能合约的具体过程,在本说明书中不再进行详述。比如,在实际应用中,通过可以基于该智能合约代码打包一笔智能合约创建交易,将该智能合约创建交易发布到区块链网络中。而区块链网络中的节点设备可以对该智能合约创建交易进行共识校验,并在共识校验通过后,执行该智能合约调用交易,在区块链中创建一个智能合约账户,并将该智能合约代码锚定到该智能合约账户中,以完成智能合约的创建。
120.在示出的一种实施方式中,数据协作平台具体可以在与上述多个协作参与方对应的服务端上,分布式的部署智能合约管理组件,该智能合约管理组件,具体可以用于生成与所述查询流程对应的查询逻辑相关的执行代码,并将生成的所述执行代码编译成为智能合约代码,并在与所述数据协作平台对接的区块链网络中部署包含所述智能合约代码的智能合约。
121.在这种情况下,与上述目标协作参与方对应的服务端在基于上述至少一个实例化算子生成了与上述数据查询请求对应的查询流程之后,可以调用该智能合约管理组件,生成与所述查询流程对应的查询逻辑相关的执行代码,并将生成的所述执行代码编译成为智能合约代码,在与所述数据协作平台对接的区块链网络中部署包含所述智能合约代码的智能合约。
122.例如,请继续参见图1,上述智能合约管理组件,具体可以包括图1示出的应用合约管理组件,在这种情况下,与上述目标协作参与方对应的服务端在基于上述至少一个实例化算子生成了与上述数据查询请求对应的查询流程之后,可以调用该应用合约管理组件,生成与所述查询流程对应的查询逻辑相关的执行代码,并将生成的所述执行代码编译成为智能合约代码,在与所述数据协作平台对接的区块链网络中部署包含所述智能合约代码的
智能合约。
123.在本说明书中,当上述智能合约部署完成,此时用户可以通过客户端来发起针对该智能合约的合约调用,来完成针对上述虚拟数据集合的数据查询。
124.例如,请继续参见图1,当上述智能合约部署完成,用户可以通过图1示出的应用执行客户端,来发起针对该智能合约的合约调用,并通过该应用执行客户端,来查询该智能合约的调用结果。
125.请参见图4,图4是本说明书根据一示例性实施例示出的一种基于多方协作的数据查询方法的流程图,该方法可以应用于图1所示的数据协作平台;例如,该数据协作平台具体可以是一个用于对上述区块链网络进行管理的一个区块链服务平台;比如,baas(blockchain as a service,区块链即服务)平台;所述方法包括:
126.步骤402,获取所述多个协作参与方中的任一目标协作参与方对应服务端上传的,由用户输入的针对虚拟数据集合的数据查询请求;其中,所述虚拟数据集合为所述数据协作平台针对所述多个协作参与方分别维护的用于参与隐私计算的数据,进行数据虚拟化处理得到的虚拟数据集合;
127.通过客户端接入上述目标协作参与方的用户在具有数据查询需求时,可以通过该客户端输入针对该虚拟数据表的数据查询请求的方式,以全局的数据视角来发起数据查询。与上述目标协作参与方对应的服务端在获取到用户通过客户端输入的数据查询请求后,可以将该数据查询请求上传至上述数据协作平台,由该数据协作平台进行中心化的处理。
128.步骤404,解析所述数据查询请求,得到与所述数据查询请求相关的至少一个子操作;
129.步骤406,从与所述隐私计算相关的实例化算子库中选择与所述至少一个子操作对应的至少一个实例化算子,并基于所述至少一个实例化算子生成与所述数据查询请求对应的查询流程;
130.步骤408,创建包含与所述查询流程对应的查询逻辑的智能合约,并将创建的所述智能合约部署到与所述数据协作平台对接的区块链网络中,以使所述用户调用所述智能合约包含的所述查询逻辑,完成针对所述虚拟数据集合的数据查询。
131.上述数据协作平台在收到上述目标协作参与方上传的上述数据查询请求之后,可以执行步骤404-408示出的执行逻辑,对该数据查询请求进行中心化的处理,具体的实施细节请参考图2示出的实施例的描述,在本说明书中不再进行详述。
132.在以上技术方案中,不仅可以在针对来自多个数据源的数据进行隐私计算时,降低数据的使用复杂度,还可以让数据使用的过程更加透明可信并且便于追溯。
133.例如,通过数据虚拟化处理技术,将各个协作参与方维护的数据进行数据虚拟化处理得到一个虚拟数据集合,不仅可以实现多数据源的充分数据融合,还可以让用户在该虚拟数据集合的基础上,从全局的数据视角来使用数据,而不必需要数据在各个协作参与方的数据存储状况,因此可以显著的降低数据使用的复杂度。而通过将生成的查询流程以智能合约的形式部署在区块链供用户调用,可以充分利用智能合约的特点,让每一次查询都透明可信并且便于追溯。
134.而且,由于用户可以在针对多个数据源的数据进行虚拟机化处理得到的虚拟数据
集合的基础上,从全局的数据视角来定制数据查询需求,并且可以基于数据协作平台自身的隐私计算能力,针对用户不同的数据查询需求,来规划不同的数据隐私查询流程,因此可以灵活的适配不同的数据隐私查询场景,使得该数据协作平台可以激活更多的数据使用场景。例如,不同的数据源对于其维护的数据的使用,通常都具有不同的安全性要求。而作为具有数据使用需求的用户一方来说,通常并不了解各个数据源对于数据的使用的安全性要求,这就有可能导致用户在从全局的数据视角,来查询和使用多个数据源的数据时,会出现用户的数据使用需求不符合其中的某一个或者多个数据源对于数据的使用的安全性要求的情况。而通过以上技术方案,由于可以基于数据协作平台自身的隐私计算能力,来灵活的适配用户的数据查询需求,对于数据协作平台来说,其对于数据使用场景的适配能力会得到明显的提升,因此这也让数据协助平台为用户的数据查询需求定制符合各个数据源对于数据的使用的安全性要求的查询流程变为可能。
135.与前述方法的实施例相对应,本说明书还提供了装置、电子设备以及存储介质的实施例。
136.图5是一示例性实施例提供的一种电子设备的示意结构图。请参考图5,在硬件层面,该设备包括处理器502、内部总线504、网络接口506、内存508以及非易失性存储器510,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器502从非易失性存储器510中读取对应的计算机程序到内存508中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
137.如图6所示,图6是本说明书根据一示例性实施例示出的一种基于多方协作的数据查询装置的框图,该装置可以应用于如图5所示的电子设备中,以实现本说明书的技术方案。所述装置600包括:
138.第一获取模块601,获取用户输入的针对虚拟数据集合的数据查询请求;其中,所述虚拟数据集合为所述数据协作平台针对所述多个协作参与方分别维护的用于参与隐私计算的数据,进行数据虚拟化处理得到的虚拟数据集合;
139.第一解析模块602,解析所述数据查询请求,得到与所述数据查询请求相关的至少一个子操作;
140.第一生成模块603,从与所述隐私计算相关的实例化算子库中选择与所述至少一个子操作对应的至少一个实例化算子,并基于所述至少一个实例化算子生成与所述数据查询请求对应的查询流程;
141.第一部署模块604,创建包含与所述查询流程对应的查询逻辑的智能合约,并将创建的所述智能合约部署到与所述数据协作平台对接的区块链网络中,以供所述用户进行调用。
142.上述装置600的各个模块的具体细节已经在之前描述的方法流程中进行了详细的描述,因此此处不再赘述。
143.如图7所示,图7是本说明书根据一示例性实施例示出的另一种用户服务使用装置的框图,该装置也可以应用于如图5所示的电子设备中,以实现本说明书的技术方案。所述装置700包括:
144.第二获取模块701,获取接入所述多个协作参与方中的任一目标协作参与方对应服务端上传的,由用户输入的针对虚拟数据集合的数据查询请求;其中,所述虚拟数据集合为所述数据协作平台针对所述多个协作参与方分别维护的用于参与隐私计算的数据,进行数据虚拟化处理得到的虚拟数据集合;
145.第二解析模块702,解析所述数据查询请求,得到与所述数据查询请求相关的至少一个子操作;
146.第二生成模块703,从与所述隐私计算相关的实例化算子库中选择与所述至少一个子操作对应的至少一个实例化算子,并基于所述至少一个实例化算子生成与所述数据查询请求对应的查询流程;
147.第二部署模块704,创建包含与所述查询流程对应的查询逻辑的智能合约,并将创建的所述智能合约部署到与所述数据协作平台对接的区块链网络中,以供所述用户进行调用。
148.上述装置700的各个模块的具体细节已经在之前描述的方法流程中进行了详细的描述,因此此处不再赘述。
149.相应的,本说明书还提供一种电子设备,所述电子设备包括有处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为实现之前描述的全部的方法流程中的步骤。
150.相应的,本说明书还提供一种计算机可读存储介质,其上存储有可执行的指令;其中,该指令被处理器执行时,实现之前描述的全部的方法流程中的步骤。
151.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
152.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
153.在一个典型的配置中,计算机包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
154.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
155.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除
可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
156.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
157.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
158.在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
159.应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
160.以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
技术特征:1.一种基于多方协作的数据查询方法,基于区块链的数据协作平台对接了多个协作参与方;所述方法应用于与所述多个协作参与方中的任一目标协作参与方对应的服务端;所述方法包括:获取用户输入的针对虚拟数据集合的数据查询请求;其中,所述虚拟数据集合为所述数据协作平台针对所述多个协作参与方分别维护的用于参与隐私计算的数据,进行数据虚拟化处理得到的虚拟数据集合;解析所述数据查询请求,得到与所述数据查询请求相关的至少一个子操作;从与所述隐私计算相关的实例化算子库中选择与所述至少一个子操作对应的至少一个实例化算子,并基于所述至少一个实例化算子生成与所述数据查询请求对应的查询流程;创建包含与所述查询流程对应的查询逻辑的智能合约,并将创建的所述智能合约部署到与所述数据协作平台对接的区块链网络中,以供所述用户进行调用。2.根据权利要求1所述的方法,所述数据查询请求包括数据查询语句;解析所述数据查询请求,得到与所述数据查询请求相关的至少一个子操作,包括:对所述数据查询语句进行语法解析,得到与所述数据查询语句对应的语法树;基于所述语法树确定与所述数据查询语句相关的至少一个子操作。3.根据权利要求2所述的方法,所述数据查询语句包括sql语句。4.根据权利要求2所述的方法,所述虚拟数据集合中的虚拟数据包括若干个数据字段;所述若干个数据字段分别维护在不同的协作参与方;所述至少一个子操作包括,从所述不同的协作参与方维护的数据中分别查询所述若干个数据字段的至少一个查询子操作。5.根据权利要求2所述的方法,所述数据查询语句包括针对所述虚拟数据集合中的虚拟数据进行数据查询计算的请求;所述至少一个子操作还包括,针对查询到的数据进行计算的至少一个计算子操作。6.根据权利要求5所述的方法,所述至少一个计算子操作包括以下示出的任一或者多个的组合:对数据进行求交集计算的子操作;对数据进行过滤计算的子操作;对数据进行统计计算的子操作。7.根据权利要求1所述的方法,从与所述隐私计算相关的实例化算子库中选择与所述至少一个子操作对应的至少一个实例化算子,并基于所述至少一个实例化算子生成与所述数据查询请求对应的查询流程,包括:获取各个协作参与方针对其维护的数据的数据安全要求,从与所述隐私计算相关的实例化算子库中选择满足所述数据安全要求的与所述至少一个子操作对应的至少一个实例化算子,并基于所述至少一个实例化算子生成与所述数据查询请求对应的查询流程。8.根据权利要求7所述的方法,所述实例化算子包括基于所述数据协作平台和所述协作参与方支持的隐私计算技术实现的算子。9.根据权利要求1所述的方法,获取各个协作参与方针对其维护的数据的数据安全要求,包括:获取各个协作参与方针对其维护的数据配置的数据安全策略;
基于所述数据安全策略确定所述各个协作参与方针对其维护的数据的数据安全要求。10.根据权利要求9所述的方法,所述数据安全策略包括以下示出的一项或者多项的组合:针对所述数据配置的安全级别;针对所述数据配置的安全防护级别;与其它的协作参与方的数据信任关系;相应的,所述数据安全要求包括以下示出的一项或者多项的组合:基于所述安全级别确定出的,是否允许将所述数据导出其所在的数据域的安全性要求;基于所述安全防护级别确定出的,是否允许对所述数据以及针对所述数据的隐私计算结果进行数据脱敏处理的安全性要求;基于所述数据信任关系确定出的,是否允许将所述数据与其它的协作参与方维护的数据进行汇总的安全性要求。11.根据权利要求1所述的方法,所述数据协作平台在与所述多个协作参与方对应的服务端上,分布式的部署了流程规划组件;所述多个协作参与方对应的服务端上分别维护了所述实例化算子库;从与所述隐私计算相关的实例化算子库中选择与所述至少一个子操作对应的至少一个实例化算子,并基于所述至少一个实例化算子生成与所述数据查询请求对应的查询流程,包括:调用所述流程规划组件,从本地维护的与所述隐私计算相关的实例化算子库中选择与所述至少一个子操作对应的至少一个实例化算子,并基于所述至少一个实例化算子生成与所述数据查询请求对应的查询流程。12.根据权利要求11所述的方法,所述实例化算子库包括若干实例化算子和与所述实例化算子对应的数据安全要求;从所述实例化算子库中选择满足所述数据安全要求的与所述至少一个子操作对应的至少一个实例化算子,包括:查找所述实例化算子库中与所述至少一个子操作对应的至少一个实例化算子;将各个协作参与方针对其维护的数据的数据安全要求,与查找到的所述至少一个实例化算子对应的数据安全要求分别进行匹配;基于匹配结果,从所述至少一个实例化算子中选择与所述各个协作参与方针对其维护的数据的数据安全要求匹配的实例化算子。13.根据权利要求12所述的方法,所述实例化算子包括以下示出的一项或者多项的组合:基于tee实现的实例化算子;基于mpc实现的实例化算子。14.根据权利要求1所述的方法,基于所述至少一个实例化算子生成与所述数据查询请求对应的查询流程,包括:基于所述至少一个实例化算子生成多个查询流程;将所述多个查询流程向所述用户进行输出展示,以由所述用户从所述多个查询流程中
选择与所述数据查询请求对应的查询流程。15.根据权利要求1所述的方法,所述数据协作平台在与所述多个协作参与方对应的服务端上,分布式的部署了智能合约管理组件;创建包含与所述查询流程对应的查询逻辑的智能合约,并将创建的所述智能合约部署到与所述数据协作平台对接的区块链网络中,包括:调用所述智能合约管理组件,生成与所述查询流程对应的查询逻辑相关的执行代码,并将生成的所述执行代码编译成为智能合约代码;在与所述数据协作平台对接的区块链网络中部署包含所述智能合约代码的智能合约。16.根据权利要求15所述的方法,所述多个协作参与方包括分布在不同地域的多个数据中心。17.根据权利要求1所述的方法,所述数据协作平台包括与所述区块链网络对应的区块链服务平台。18.一种基于多方协作的数据查询方法,所述方法应用于基于区块链的数据协作平台;其中,所述数据协作平台对接了多个协作参与方;所述方法包括:获取所述多个协作参与方中的任一目标协作参与方对应服务端上传的,由用户输入的针对虚拟数据集合的数据查询请求;其中,所述虚拟数据集合为所述数据协作平台针对所述多个协作参与方分别维护的用于参与隐私计算的数据,进行数据虚拟化处理得到的虚拟数据集合;解析所述数据查询请求,得到与所述数据查询请求相关的至少一个子操作;从与所述隐私计算相关的实例化算子库中选择与所述至少一个子操作对应的至少一个实例化算子,并基于所述至少一个实例化算子生成与所述数据查询请求对应的查询流程;创建包含与所述查询流程对应的查询逻辑的智能合约,并将创建的所述智能合约部署到与所述数据协作平台对接的区块链网络中,以供所述用户进行调用。19.一种基于多方协作的数据查询装置,基于区块链的数据协作平台对接了多个协作参与方;所述装置应用于与所述多个协作参与方中的任一目标协作参与方对应的服务端;所述装置包括:第一获取模块,获取用户输入的针对虚拟数据集合的数据查询请求;其中,所述虚拟数据集合为所述数据协作平台针对所述多个协作参与方分别维护的用于参与隐私计算的数据,进行数据虚拟化处理得到的虚拟数据集合;第一解析模块,解析所述数据查询请求,得到与所述数据查询请求相关的至少一个子操作;第一生成模块,从与所述隐私计算相关的实例化算子库中选择与所述至少一个子操作对应的至少一个实例化算子,并基于所述至少一个实例化算子生成与所述数据查询请求对应的查询流程;第一部署模块,创建包含与所述查询流程对应的查询逻辑的智能合约,并将创建的所述智能合约部署到与所述数据协作平台对接的区块链网络中,以供所述用户进行调用。20.一种基于多方协作的数据查询装置,所述装置应用于基于区块链的数据协作平台;其中,所述数据协作平台对接了多个协作参与方;所述装置包括:
第二获取模块,获取接入所述多个协作参与方中的任一目标协作参与方对应服务端上传的,由用户输入的针对虚拟数据集合的数据查询请求;其中,所述虚拟数据集合为所述数据协作平台针对所述多个协作参与方分别维护的用于参与隐私计算的数据,进行数据虚拟化处理得到的虚拟数据集合;第二解析模块,解析所述数据查询请求,得到与所述数据查询请求相关的至少一个子操作;第二生成模块,从与所述隐私计算相关的实例化算子库中选择与所述至少一个子操作对应的至少一个实例化算子,并基于所述至少一个实例化算子生成与所述数据查询请求对应的查询流程;第二部署模块,创建包含与所述查询流程对应的查询逻辑的智能合约,并将创建的所述智能合约部署到与所述数据协作平台对接的区块链网络中,以供所述用户进行调用。21.一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器通过运行所述可执行指令以实现如权利要求1-18中任一项所述的方法。22.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-18中任一项所述方法的步骤。
技术总结本说明书一个或多个实施例提供一种基于多方协作的数据查询方法及装置。所述方法包括:获取用户输入的针对虚拟数据集合的数据查询请求;解析所述数据查询请求,得到与所述数据查询请求相关的至少一个子操作;从与所述隐私计算相关的实例化算子库中选择与所述至少一个子操作对应的至少一个实例化算子,并基于所述至少一个实例化算子生成与所述数据查询请求对应的查询流程;创建包含与所述查询流程对应的查询逻辑的智能合约,并将创建的所述智能合约部署到与所述数据协作平台对接的区块链网络中,以供所述用户进行调用。以供所述用户进行调用。以供所述用户进行调用。
技术研发人员:马超 杨仁慧 孙善禄 黄胜
受保护的技术使用者:蚂蚁区块链科技(上海)有限公司
技术研发日:2022.07.22
技术公布日:2022/11/1