一种数据处理方法和装置与流程

文档序号:33026824发布日期:2023-01-20 19:46阅读:41来源:国知局
一种数据处理方法和装置与流程

1.本技术属于隐私计算技术领域,尤其涉及一种数据处理方和装置。


背景技术:

2.安全多方计算(secure multi-party computation,mpc)用于解决在一个互不信任的多用户网络中,两个或多个用户能够在不泄漏各自私有输入信息情况下,协同合作执行某项计算任务的问题。当前主流的安全多方计算通用计算模型,有基于混淆电路(garbled circuit)的计算模型和基于秘密分享(secret share)的计算模型。
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.图1是本技术提供的基于区块链的通用隐私计算系统的系统架构示意图;
44.图2是本技术提供的算法创建与查询逻辑示意图;
45.图3是本技术提供的任务创建与加入逻辑示意图;
46.图4是本技术提供的数据分发逻辑示意图;
47.图5是本技术提供的隐私计算执行逻辑示意图;
48.图6是本技术提供的数据处理方法的一种流程示意图;
49.图7是本技术提供的数据提供方进行数据分片加密并向区块链节点提交加密数据分片的一个示例;
50.图8是本技术提供的区块链节点的隐私计算逻辑示意图;
51.图9是本技术提供的图数据处理方法的另一种流程示意图;
52.图10是本技术提供的结果方从区块链网络查询任务的分片处理结果的示意图;
53.图11是本技术提供的数据处理方法的又一种流程示意图;
54.图12是本技术提供的数据处理方法的再一种流程示意图;
55.图13是本技术提供的数据处理装置的组成结构图;
56.图14是本技术提供的电子设备的组成结构图。
具体实施方式
57.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
58.本技术公开一种数据处理方法和装置,用于提出并实现一种基于区块链的通用隐私计算方案,通过由区块链网络中的节点,基于智能合约在链上完成计算任务的分发与调度,及此基础上的隐私计算,降低隐私计算平台的中心化程度,并提供防篡改,可追溯等功能。
59.本技术的数据处理方法和装置,可应用于基于区块链的通用隐私计算系统中,以实现对隐私计算任务的安全多方计算,图1示出了该系统的一种可选系统架构,包括:区块链网络、算法提供方、数据提供方,任务创建方和结果方。
60.其中,区块链网络由多个区块链节点构成,各区块链节点可基于区块链特性,通过
相互间的协同,以去中心化方式完成隐私计算任务在不同区块链节点间的分发与调度,区块链节点同时还可以承担计算节点角色,在任务启动后,能够根据任务需求进行对应的隐私计算。可选的,区块链节点可通过虚拟机进行任务所需的隐私计算,隐私计算过程中涉及的相关数据,如隐私处理指令集、输入数据、计算结果等等,均可以选择性保存在链上,隐私处理指令集具体可以为隐私计算算法,更确切的,为隐私计算算法对应的算法指令集。算法提供方,用于向区块链网络提供能够对计算任务进行隐私计算的隐私处理指令集(隐私计算算法);数据提供方,用于向区块链网络提供需参与任务计算的待处理数据的数据分片,以支持对计算任务的隐私计算;任务创建方用于根据需求创建对应的隐私计算任务,并提交至区块链网络。
61.基于上述隐私计算系统的一个完整的隐私计算处理过程,可以划分为初始化、算法创建与查询、任务创建与加入、数据分发、隐私计算执行、结果处理等几个阶段。各阶段具体如下:
62.(一)初始化阶段
63.建立包括多个区块链节点的区块链网络,搭建基于区块链网络的安全多方隐私计算环境,并对搭建的安全多方隐私计算环境进行初始化,使得能够适用于安全多方隐私计算。
64.(二)算法创建与查询
65.参见图2所示的算法创建与查询逻辑示意图,该阶段中,算法提供方使用上层编程语言(如,c/c++、java等)编写用于作为隐私处理指令集的隐私计算算法,完成编写后,可将算法输入编译器,生成对应的字节码,并将字节码包含到用于提交算法的智能合约中,通过智能合约将字节码形式的隐私处理指令集提交给区块链节点。
66.可选的,具体可基于创建算法的方式,如creatalgo(algoid,algocontent),将隐私处理指令集的相关信息包含到用于提交算法的智能合约中。其中,algoid表示待提交的隐私处理指令集(隐私计算算法)的标识,如算法名称或编号,algocontent表示隐私处理指令集的内容。但不限于此,也可以直接将使用上层编程语言编写的源码形式的隐私处理指令集,通过智能合约提交给区块链节点(可以是区块链网络的任一节点)。
67.之后,如图2所示,通过在区块链网络中进行背书与同步,将隐私处理指令集保存在所有区块链节点的账本上,完成上链,隐私处理指令集的保存所采用的一种可选账本格式为{algoid:algocontent},即,将指令集标识与指令集内容关联存储。
68.其中,区块链节点的背书与同步,是指,当一个智能合约被提交到区块链节点后,通过本地执行,远端背书,排序与验证等阶段(不同区块链系统可能经历不同的阶段),最终所有节点状态达成一致。
69.但不限于此,在其他实施方式中,区块链节点可通过广播技术,将算法提供方提交的隐私处理指令集广播至区块链网络中的其他节点,各区块链节点将指令集内容如算法内容存放在各自的本地数据库中,只在账本上保存指令集摘要(算法摘要),即仅将摘要上链,所采用的账本格式可以为{algoid:hash(algocontent)},其中,hash(algocontent)表示对指令集内容按预设摘要算法(如哈希函数)进行运算后所得的摘要(算法摘要),后续可以摘要为索引值从本地数据库查询所需的隐私处理指令集。
70.数据提供方、任务构建方等使用者,可通过用于查询指令集(算法)的智能合约,获
得区块链网络中的指令集列表,如算法列表,可选的,指令集列表中包括但不限于区块链网络中各个隐私处理指令集的标识、摘要、算法功能描述等中的部分或全部信息,以供查询方按需选择对应的隐私处理指令集进行使用。
71.(三)任务创建与加入
72.参见图3所示的任务创建与加入逻辑示意图,该阶段中,任务创建方可通过用于创建任务的智能合约,创建对应的隐私计算任务,如creatjob(jobid,algoid,jobspec),并通过智能合约将任务信息提交给区块链节点,以完成任务创建。其中,jobid表示任务标识,如任务名称或编号,algoid表示任务的执行所需的隐私处理指令集的标识,可以包括一个或多个隐私处理指令集标识,视任务需求而定,jobspec表示任务描述信息,包括但不限于任务需实现的业务功能,需调用何种协议,对返回结果的时间要求,分片处理结果是否需要上链,要求哪些数据提供方加入任务等中的部分或全部信息。
73.如图3所示,通过在区块链网络中进行背书与同步,将提交的任务保存在所有区块链节点的账本上,完成上链,对应的一种可选账本格式为{jobid:{algoid,jobspec}。
74.数据提供方可通过调用用于查询任务的智能合约,获取区块链网络中的任务列表,任务列表中包括但不限于区块链网络中各个任务的标识及相关描述信息。并可调用用于加入任务的智能合约joinjob(jobid,clientid)来加入对应任务,其中,clientid表示数据提供方的终端标识,可以但不限于是数据提供方终端的uuid(universally unique identifier,通用唯一识别码),当任务的所有数据提供方均加入任务后,可更改任务状态为就绪态ready。
75.(四)数据分发
76.参见图4所示的数据分发逻辑示意图,数据提供方可通过调用用于查询任务状态的智能合约,从区块链网络获得所加入任务的任务状态,或者,也可以由区块链网络的节点向加入任务的数据提供方发送任务状态通知,当任务状态为就绪态ready时,数据提供方对持有的待参与任务计算的数据(即待处理数据)进行拆分,并将拆分得到的数据分片提交至区块链节点。
77.通过在区块链网络中进行背书与同步,将数据分片保存在所有区块链节点的账本上,完成上链。但不限于此,在其他实施方式中,还可以由接收到数据分片的区块链节点,将数据分片广播至区块链网络的其他节点,以供待参与任务计算的各区块链节点从中提取所需的数据分片用于后续的任务计算。
78.(五)隐私计算执行
79.在收到任务所需的所有数据的数据分片后,需参与任务计算的区块链节点执行用于实现任务计算的隐私处理指令集,例如,参见图5所示的隐私计算执行逻辑示意图,区块链节点可使用虚拟机执行用于实现任务计算的隐私处理指令集的字节码,以完成对任务的隐私计算。
80.可选的,区块链节点不自动执行计算,而是由对应的智能合约基于预置触发条件触发任务的计算流程。智能合约中预置的任务触发条件,可以但不限于为基于时间的触发条件,或基于逻辑判断的触发条件。
81.(六)结果处理
82.任务的隐私计算完成后,区块链节点输出计算结果;可选的,如果在达到要求的时
间时未完成计算,可返回未完成的状态通知,如果任务意外中断或执行失败,可返回用于表征任务中断或失败的提示信息,如返回错误码。
83.可选的,区块链节点不计算任务的最终结果,而是输出数据分片对应的分片处理结果。输出的分片处理结果可进行上链存储或直接返回给结果方,后续由结果方通过对任务的多个分片处理结果进行重构,得到任务的最终结果。
84.对于将分片处理结果在区块链网络上链存储的实施方式,结果方可通过调用用于查询任务结果的智能合约,从链上数据获取任务对应的各个分片处理结果,通过对各个分片处理结果的重构,得到任务的最终结果。
85.在上述基于区块链的隐私计算系统的基础上,参见图6示出的数据处理方法流程图,本技术提供的数据处理方法至少包括:
86.步骤601、获得目标任务对应的待处理数据,待处理数据中包括多个数据分片。
87.本技术实施例公开的数据处理方法,具体可应用于上述通用隐私计算系统的区块链网络中的第一节点,第一节点可以是指区块链网络中的任一节点,或者,也可以是预先在区块链网络中指定的用于对目标任务进行隐私计算的特定节点,例如,基于相应智能合约预先向确定出的需参与任务计算的节点发起通知,仅将接收到通知的节点视为第一节点。
88.目标任务可以为区块链网络的任务列表中的任一隐私计算任务。当基于对应的触发条件触发目标任务后,区块链网络中的各个节点或指定的用于参与目标任务的节点,作为第一节点获得目标任务对应的待处理数据。
89.目标任务对应的待处理数据可以为一个或多个,且每个待处理数据包含多个数据分片。其中,在为多个的情况下,多个待处理数据可以分别由不同的数据提供方提供,一个待处理数据通常由对应的一个数据提供方提供。
90.数据提供方在加入目标任务后,可对持有的需参与任务计算的待处理数据进行数据拆分,例如具体在目标任务的状态为就绪态ready时,进行数据拆分,并将拆分得到的多个数据分片提交至区块链网络的某一区块链节点(可以是区块链网络的任一节点),该区块链节点可通过将接收的数据分片进行上链处理同步至区块链网络中的其他节点。该实施方式下,第一节点具体可从本地的链上数据获得目标任务对应的待处理数据,如从本地的链上数据查询与目标任务的任务标识对应的各个待处理数据的数据分片。
91.在其他实施方式中,接收到数据提供方提交的待处理数据后,区块链节点也可以通过广播方式,将接收的待处理数据的数据分片同步给区块链网络的其他节点。该实施方式下,若第一节点为接收到数据提供方提交的待处理数据的节点,则第一节点可直接获得目标任务的数据提供方提交的待处理数据,并将待处理数据广播至区块链网络中的其他节点。若第一节点不是接收到数据提供方提交的待处理数据的节点,第一节点相应可获得区块链网络中的其他节点广播的目标任务的待处理数据。
92.可选的,本技术方法在获得目标任务对应的待处理数据之前,还可以根据目标任务指定的节点信息,和/或,通过与区块链网络中其他相应节点的协商,确定需参与目标任务的任务处理的多个目标节点。
93.也就是说,任务创建方可根据需求,直接指定需参与目标任务隐私计算的目标节点,例如在任务描述信息(jobspec)中指定需参与任务计算的各个目标节点。或者,任务创建方也可以不指定任何的计算节点信息,而是由区块链网络根据网络中各节点的负载、网
络、资源等状态,为目标任务协商对应的需参与任务计算的各个目标节点。在其他实施方式中,还可以结合上述两种实施方式,仅在目标任务中根据需求指定需参与任务计算的部分目标节点,其他目标节点则基于区块链网络中各节点的协商确定。
94.进一步,可选的,待处理数据的多个数据分片,为由对应的数据提供方通过对持有的待处理数据进行拆分与加密处理而得到的多个加密数据分片,目标任务的各个数据提供方,以加密方式将各自持有的待处理数据的数据分片提交至区块链网络,以保证待处理数据的数据分片的安全性。
95.其中,每个待处理数据的多个加密数据分片,可以为由对应的数据提供方根据多个目标节点分别对应的公钥,对持有的待处理数据的不同数据分片分别进行一对一加密而得到的结果。
96.实际应用中,数据提供方的客户端,具体可以但不限于在任务状态查询阶段,获得区块链网络在反馈任务状态时,同步反馈的需参与任务计算的各目标节点(计算节点)的公钥,并利用获得的各目标节点的公钥,分别对持有的待处理数据的各个数据分片进行一对一加密,得到待处理数据的各个加密数据分片,后续,可将待处理数据的各个加密数据分片进行整合,并通过对应的智能合约将整合后的各个加密数据分片发送给区块链网络的某一区块链节点,由该区块链节点通过对接收的加密数据分片进行上链或广播处理,同步给区块链网络的其他节点。
97.例如,参见图7,以目标任务对应的需参与任务计算的目标节点包括a、b、c三个节点为例,假设三个节点分别对应一公私钥对:(pka,ska)、(pkb,skb)和(pkc,skc)。某数据提供方持有的待参与该任务计算的待处理数据为v,则该数据提供方可将待处理数据v拆分为三个数据分片v1、v2、v3,并根据节点a、b、c的公钥pka、pkb、pkc分别对v1、v2、v3进行一对一加密,得到对应的加密数据分片,即:
98.ev1=enc(pka,v1);
99.ev2=enc(pkb,v2);
100.ev3=enc(pkc,v3)。
101.之后,将各个加密数据分片整合得到整合结果share={ev1,ev2,ev3},并将整合结果发送至区块链网络的某一区块链节点,由该节点通过对接收的数据进行上链或广播处理,同步至区块链其他节点。
102.当基于对应的触发条件触发目标任务后,区块链网络中的第一节点,具体可获得目标任务的各个数据提供方分别提供的待处理数据的加密数据分片,如从本地链上数据获得各个数据提供方分别提供的待处理数据的加密数据分片等,以用于后续对目标任务的隐私计算。
103.步骤602、从待处理数据确定与第一节点对应的第一数据分片。
104.第一节点具体可利用其持有的私钥,对获得的待处理数据的各个加密数据分片进行解密,成功解密得到的数据分片作为其对应的第一数据分片。以第一节点为图7中的节点a为例,具体可根据其公钥pka,对目标任务的每个待处理数据包含的多个数据分片进行解密,得到解密成功的相应数据分片,如从share={ev1,ev2,ev3}中成功解密得到ev1对应的数据分片v1,该数据分片v1即可视为节点a的一个第一数据分片。
105.其中,若第一节点为目标任务对应的需参与任务计算的多个目标节点中的一个节
点,则第一节点能够确定(即能够成功解密)出对应的第一数据分片,若第一节点为多个目标节点之外的其他节点,则不能确定出对应的第一数据分片,以保证待处理数据的数据分片,仅能被区块链节点中具备权限的相关目标节点(计算节点)获取。
106.步骤603、若确定出对应的第一数据分片,对第一数据分片进行处理,得到第一处理结果。
107.在能够确定出对应的第一数据分片情况下,第一节点所得到的第一数据分片的数量,与目标任务对应的待处理数据的数量相同,即第一节点能够从目标任务的每个待处理数据中成功解密得到一个数据分片,来用于参与本节点的任务计算。
108.第一节点在得到对应数量的各个第一数据分片后,可通过执行用于实现目标任务的任务计算的目标隐私处理指令集,如执行字节码形式的目标隐私处理指令集,对各个第一数据分片进行处理,以完成对获得的各个第一数据分片的隐私计算,得到对应的第一处理结果。
109.用于实现目标任务的任务计算的目标隐私处理指令集,可以为一个或多个,视目标任务的任务需求而定。
110.第一节点具体可根据隐私处理指令集的存储方式,从本地的链上数据中获取用于实现目标任务的任务计算的目标隐私处理指令集,或以链上存储的相关摘要信息为索引,从本地数据库获取目标隐私处理指令集。
111.参见图8所示的区块链节点的隐私计算过程示意图,第一节点具体可利用虚拟机调用目标隐私处理指令集的字节码,并加载各个第一数据分片,之后按字节码的处理逻辑,对各个第一数据分片进行处理。
112.可选的,参见图8,在一些实施例中,第一节点还可以加载对应的预计算信息,结合预计算信息,通过执行目标隐私处理指令集的字节码,实现对各个第一数据分片的处理。
113.其中,预计算信息为通过数据预处理得到的信息,数据预处理具体由需参与目标任务的隐私计算的各目标节点,基于目标隐私处理指令集通过各目标节点间的交互完成,无需数据提供方的待处理数据参与。
114.数据预处理,具体通过预先生成一个或多个区别于待处理数据、且可用于参与任务计算的中间参数/辅助参数值,来达到任务计算提速、辅助任务计算等效果。对于某个计算任务,是否需在任务执行前执行数据预处理,由用于完成该任务的目标隐私处理指令集(一个或多个)决定,如果目标隐私处理指令集体现的隐私算法中涉及一些需参与计算的中间参数/辅助参数,则需执行对应的数据预处理,否则则不需要。
115.步骤604、输出第一处理结果,第一处理结果用于与第二处理结果共同确定对应于目标任务的目标处理结果,第二处理结果由区块链网络中区别于第一节点的其他相应节点对待处理数据中与自身对应的数据分片进行处理得到。
116.第一节点在在通过对获得的各个第一数据分片进行处理,得到对应的第一处理结果后,将第一处理结果输出。
117.容易理解,第一处理结果为目标任务的各个待处理数据对应的多个分片处理结果中的一个分片处理结果,后续,可通过将第一处理结果与参与目标任务的隐私计算的其他节点所输出的第二处理结果进行重构,确定出目标任务对应的目标处理结果。第二处理结果,具体相应由区块链网络中参与目标任务的隐私计算的各目标节点中,区别于第一节点
的其他目标节点对待处理数据中与自身对应的数据分片进行处理得到。
118.第二处理结果的数量可以为一个或多个,视参与目标任务的隐私计算的各目标节点的数量而定,每个参与目标任务的隐私计算的目标节点均通过对自身获得的数据分片的处理,得到对应的一个处理结果(分片处理结果)。
119.可选的,在一实施方式中,具体可由区块链网络基于智能合约,通过重构各个目标节点分别输出的分片处理结果,得到目标任务对应的目标处理结果,以供结果方获取,如直接将目标处理结果反馈至结果方,或者,将目标处理结果在区块链网络进行上链,由结果方从链上数据查询得到目标任务对应的目标处理结果等。
120.在其他实施方式中,当区块链节点输出数据分片对应的分片处理结果后,区块链网络端不执行对各个分片处理结果的重构,输出的分片处理结果可在区块链网络进行上链存储或直接返回给结果方,后续由结果方通过对任务的多个分片处理结果进行重构,得到任务的最终结果。与上一实施方式相比,该由结果方进行分片处理结果重构的方式,在数据安全方面更具优势,实际应用本技术时可优选该方式进行方案的实施。
121.由以上方案可知,本技术公开的数据处理方法,在区块链网络的第一节点获得目标任务对应的待处理数据,待处理数据中包括多个数据分片,从待处理数据确定与第一节点对应的第一数据分片,在确定出对应的第一数据分片情况下,对第一数据分片进行处理,得到第一处理结果,并输出第一处理结果。其中,第一处理结果用于与第二处理结果共同确定对应于目标任务的目标处理结果,第二处理结果由区块链网络中的其他相应节点对待处理数据中与自身对应的数据分片进行处理得到。
122.可见,本技术提出并实现了一种基于区块链的隐私计算方案,基于该方案在链上完成计算任务的分发与调度,及此基础上的隐私计算,从而降低了隐私计算平台的中心化程度,达到了对隐私计算平台的去中心化效果,并具备防篡改,可追溯等特性,可有效克服目前主流的隐私计算平台通过引入协调者进行任务分发与调度的解决方式所存在的单点问题,保障了隐私计算的安全性。
123.在一实施例中,可选的,参见图9提供的数据处理方法流程图,在步骤604即第一节点输出第一处理结果之后,本技术公开的数据处理方法,还可以包括以下处理:
124.步骤605、利用结果方的公钥加密第一处理结果,得到加密的第一处理结果。
125.步骤606、将加密的第一处理结果在区块链网络进行上链存储,以便结果方从区块链网络的链上数据获得目标任务对应的分片处理结果,并重构目标任务的分片处理结果得到目标任务对应的目标处理结果。
126.本实施例中,在输出目标任务的分片处理结果如第一处理结果后,不在区块链网络端执行对目标任务的各分片处理结果的重构,直接将输出的分片处理结果如第一处理结果在区块链网络进行上链存储,且优选的,为了保证数据安全,利用结果方的公钥加密输出的分片处理结果,并将加密的分片处理结果进行上链。
127.后续,结合参见图10,结果方可根据目标任务的任务信息,如任务id,从区块链网络的链上数据查询目标任务对应的各个加密分片处理结果,并利用结果方的自身私钥,对各个加密分片处理结果进行解密,之后,可进一步通过对解密得到的各分片处理结果的明文数据进行秘密重构,得到目标任务对应的目标处理结果。
128.本实施例通过在区块链端,对目标任务的各分片处理结果按结果方公钥进行加密
并上链存储,由结果方对目标任务的各加密分片处理结果进行解密与秘密重构,得到目标任务的最终处理结果,进一步提升了基于区块链的多方隐私安全计算的安全程度,确保了用户隐私数据的安全性。
129.在一实施例中,可选的,参见图11提供的数据处理方法流程图,本技术公开的数据处理方法,还可以包括以下处理:
130.步骤607、获得算法提供方提供的隐私处理指令集,广播获得的隐私处理指令集至区块链网络中的其他节点,并保存获得的隐私处理指令集的摘要信息到区块链。
131.基于对应的智能合约,区块链网络中的任一节点,具备接收算法提供方提交的隐私处理指令集并对其相关信息进行上链处理的功能。
132.相应的,当算法提供方向区块链网络的第一节点提交隐私处理指令集时,第一节点可接收算法提供方提交的隐私处理指令集,如接收算法提供方通过对应的智能合约提交的字节码形式的隐私处理指令集等。且优选的,可通过广播方式将接收的隐私处理指令集,同步至区块链网络的其他节点,并基于预设摘要算法(如哈希函数)计算隐私处理指令集的摘要信息,将计算得到的摘要信息进行上链处理,保存到区块链的链上账本中。而通过广播同步至各区块链节点的指令集内容如算法内容,则可存放在各区块链节点各自的本地数据库中,后续,各区块链节点可以链上存储的指令集摘要为索引值,从本地数据库查询所需的隐私处理指令集。
133.需要说明,区块链网络中的节点,可在完成初始化后的任意时间环节,接收算法提供方提交的隐私处理指令集,并对其进行处理。
134.步骤608、响应于获得指令集查询请求,反馈隐私处理指令集的指令集列表;所反馈的列表中包括已获得的隐私处理指令集的相关信息。
135.数据提供方、任务构建方等使用者可通过用于查询指令集(算法)的智能合约,向区块链网络中的节点如第一节点发起指令集查询请求,响应于获得指令集查询请求,第一节点等区块链节点向查询方终端反馈区块链网络中的指令集列表,如算法列表,指令集列表中包括但不限于区块链网络中各个隐私处理指令集的标识、摘要、算法功能描述等中的部分或全部信息,以供使用者按需选择对应的隐私处理指令集进行使用。
136.本实施例中,区块链节点通过广播方式将接收到的隐私处理指令集同步至区块链网络的其他节点进行本地存储,并仅将指令集摘要进行上链存储,实现了对区块链网络链上存储的优化,可有效降低对链上存储空间的占用。
137.在一实施例中,可选的,参见图12提供的数据处理方法流程图,本技术公开的数据处理方法,还可以包括以下处理:
138.步骤1201、获得任务创建请求,生成对应的任务列表。
139.任务创建方可根据需求,向区块链网络中的节点如第一节点发起任务创建请求,在此基础上,通过用于创建任务的智能合约按需创建对应的隐私计算任务,如creatjob(jobid,algoid,jobspec),并通过智能合约将创建的任务提交给区块链节点,以完成任务创建。
140.区块链节点相应可生成对应的包含所创建任务的任务信息的任务列表,任务列表中包括但不限于区块链网络中各个任务的标识及相关描述信息。
141.步骤1202、根据对任务列表的反馈信息将对应数据提供方确定为目标任务对应的
数据提供方。
142.数据提供方可通过调用用于查询任务的智能合约,获取区块链网络中的任务列表,并可调用用于加入任务的智能合约joinjob(jobid,clientid)来加入所需的目标任务,区块链节点如第一节点,相应可基于数据提供方通过执行加入目标任务的操作所产生的对任务列表的反馈信息,将对应数据提供方确定为目标任务的数据提供方,以便于在后续触发目标任务后,有针对性的获得目标任务对应的数据提供方的待处理数据,来用于目标任务的隐私计算,避免此阶段中不安全因素(如攻击者在此阶段提供数据对后续任务计算进行干扰等)带来的数据安全隐患。
143.在一实施例中,可选的,区块链的链上数据或区块链节点的本地数据库中存储的用于实现目标任务的目标隐私处理指令集,可以为字节码形式或源码形式。
144.也就是说,算法提供方在向区块链节点提交隐私处理指令集时,具体可提交经过编译器编译后得到的字节码形式的隐私处理指令集,或者,也可以直接提交基于上层编程语言编写的源码形式的隐私处理指令集,不作限制。
145.其中,若目标隐私处理指令集为源码形式,本技术的数据处理方法,在对确定出的第一数据分片进行数据处理之前,还可以包括以下处理:
146.确定区块链网络当前对应的网络状态;
147.将获得的源码形式的目标隐私处理指令集转换为与当前的网络状态匹配的字节码形式的隐私处理指令集。
148.可选的,具体可以但不限于获取区块链网络中部分或全部节点的吞吐量、带宽、可用资源量/资源占用率(如,处理器/内存/存储器/寄存器的可用资源量/资源占用率)等信息,根据获取的信息,确定区块链网络当前的网络状态,如高带宽/吞吐量、低资源占用率的高可用状态,或与之相悖的低可用状态等。并可针对区块链网络当前的网络状态,对源码形式的目标隐私处理指令集进行编译,以得到目标隐私处理指令集的与当前网络状态匹配的字节码,进而使得基于得到的字节码对目标任务的隐私计算,能够与区块链网络当前的网络状态相适配。
149.示例性的,例如,针对高带宽/吞吐量、低资源占用率的高可用状态,可为目标隐私处理指令集编译生成对应于高并发处理方式的字节码,基于该字节码使目标任务有较高的执行速率。针对低带宽/吞吐量、高资源占用率的低可用状态,则为目标隐私处理指令集编译生成对应于低并发处理方式的字节码,基于该字节码尽可能保证目标任务执行过程的稳定性,避免因资源不足导致任务中断或失败。
150.在目标隐私处理指令集为源码形式情况下,本实施例通过确定区块链网络当前的网络状态,并将源码形式的目标隐私处理指令集转换为与当前的网络状态匹配的字节码,可确保目标任务的执行具备较佳性能,如在带宽、处理器等资源充足情况下尽可能使目标任务的执行具备较高的执行速率、在资源非充足情况下至少确保目标任务的执行稳定性、有效性等,实现了对目标任务的执行过程进行与当前网络状态相适配的优化处理。
151.对应于上述的数据处理方法,本技术实施例还提供一种数据处理装置,可应用于区块链网络中的第一节点,该装置的组成结构如图13所示,包括:
152.获取单元1301,用于获得目标任务对应的待处理数据,所述待处理数据中包括多个数据分片;
153.确定单元1302,用于从所述待处理数据确定与所述第一节点对应的第一数据分片;
154.处理单元1303,用于在确定出对应的第一数据分片情况下,对所述第一数据分片进行处理,得到第一处理结果;
155.输出单元1304,用于输出所述第一处理结果,所述第一处理结果用于与第二处理结果共同确定对应于所述目标任务的目标处理结果,所述第二处理结果由所述区块链网络中的其他相应节点对所述待处理数据中与自身对应的数据分片进行处理得到。
156.在一实施方式中,获取单元1301,具体用于:
157.从本地的链上数据获得目标任务对应的待处理数据;
158.或,获得数据提供方提交的目标任务对应的待处理数据;其中,在获得数据提供方提交的所述待处理数据后,将所述待处理数据广播至所述区块链网络中的其他节点;
159.或,获得所述区块链网络中的其他节点广播的目标任务对应的待处理数据。
160.在一实施方式中,确定单元1302,还可以用于:
161.在获得目标任务对应的待处理数据之前,根据目标任务指定的节点信息,和/或,通过与所述区块链网络中其他相应节点的协商,确定需参与所述目标任务的任务处理的多个目标节点;
162.其中,若所述第一节点为所述多个目标节点中的一个节点,所述第一节点能够确定出对应的第一数据分片。
163.在一实施方式中,所述待处理数据的多个数据分片,为由对应的数据提供方通过对所述待处理数据进行拆分与加密处理而得到的多个加密数据分片;所述多个加密数据分片为由数据提供方根据所述多个目标节点分别对应的公钥,对持有的待处理数据的不同数据分片分别进行一对一加密而得到的结果;
164.确定单元1302,在从待处理数据确定与第一节点对应的第一数据分片时,具体用于:利用所持有的私钥,对所述待处理数据的各个加密数据分片进行解密,成功解密得到的数据分片作为所述第一数据分片。
165.在一实施方式中,获取单元1301,还可以用于:获得算法提供方提供的隐私处理指令集,广播所述隐私处理指令集至所述区块链网络中的其他节点,并保存所述隐私处理指令集的摘要信息到区块链。
166.在一实施方式中,上述装置还可以包括响应单元,用于:响应于获得指令集查询请求,反馈隐私处理指令集的指令集列表;所反馈的列表中包括已获得的隐私处理指令集的相关信息。
167.在一实施方式中,获取单元1301,还可以用于:获得任务创建请求,生成对应的任务列表;
168.确定单元1302,还可以用于:根据对所述任务列表的反馈信息将对应数据提供方确定为所述目标任务对应的数据提供方。
169.在一实施方式中,基于目标隐私处理指令集对所述第一数据分片进行处理,所述目标隐私处理指令集为字节码形式或源码形式;
170.上述装置还包括转换单元,用于在目标隐私处理指令集为源码形式情况下,确定区块链网络当前对应的网络状态,将获得的源码形式的目标隐私处理指令集转换为与所述
网络状态匹配的字节码形式的隐私处理指令集。
171.在一实施方式中,上述装置还包括:
172.加密处理单元,用于:利用结果方的公钥加密所述第一处理结果,得到加密的第一处理结果;将加密的第一处理结果在区块链网络进行上链存储,以便结果方从所述区块链网络的链上数据获得所述目标任务对应的分片处理结果,并重构所述目标任务的分片处理结果得到所述目标任务对应的目标处理结果。
173.对于本技术实施例提供的数据处理装置而言,由于其与上文各方法实施例提供的数据处理方法相对应,所以描述的比较简单,相关相似之处请参见上文各方法实施例的说明即可,此处不再详述。
174.本技术实施例还公开一种电子设备,具体可以是但不限于服务器,并可作为区块链节点部署在基于区块链的通用隐私计算系统中。
175.电子设备的组成结构,如图14所示,至少包括:
176.存储器10,用于存放计算机指令集;
177.计算机指令集可以通过计算机程序的形式实现。
178.处理器20,用于通过执行计算机指令集,实现如上文任一方法实施例公开的数据处理方法。
179.处理器20可以为中央处理器(central processing unit,cpu),特定应用集成电路(application-specific integrated circuit,asic),数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件等。
180.电子设备具备显示装置和/或具备显示接口、能外接显示装置。
181.可选的,电子设备还包括摄像头组件,和/或连接有外置摄像头组件。
182.除此之外,电子设备还可以包括通信接口、通信总线等组成部分。存储器、处理器和通信接口通过通信总线完成相互间的通信。
183.通信接口用于电子设备与其他设备之间的通信。通信总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等,该通信总线可以分为地址总线、数据总线、控制总线等。
184.需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
185.为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本技术时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
186.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本技术的技术方案本质上或者说做出创造性贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例或者实施例的某些部分所述的方法。
187.最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语是用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实
体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
188.以上所述仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1