基于区块链系统的多方计算方法和系统与流程

allin2023-03-25  60



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.图1为本发明实施例提供的一种基于区块链系统的多方计算方法的流程图;
51.图2为本发明实施例提供的一种贡献度确定方法的流程图;
52.图3为本发明实施例提供的另一种基于区块链系统的多方计算方法的流程图;
53.图4为本发明实施例提供的一种多方计算参与装置的结构示意图;
54.图5为本发明实施例提供的一种多方计算协作装置的结构示意图;
55.图6为本发明实施例提供的一种多方计算服务系统的结构示意图。
具体实施方式
56.以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
57.如本发明所使用的,术语“和/或”包括一个或多个相关列举条目的任何和全部组合。
58.本发明所使用的术语仅用于描述特定实施例,且不意欲限制本发明。如本发明所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。
59.当本发明中使用术语“包括”和/或“由
……
制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。
60.本发明所述实施例可借助本发明的理想示意图而参考平面图和/或截面图进行描述。因此,可根据制造技术和/或容限来修改示例图示。
61.除非另外限定,否则本发明所用的全部术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本发明的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本发明明确如此限定。
62.图1为本发明实施例提供的一种基于区块链系统的多方计算方法的流程图。该多方计算方法应用于多方计算服务系统,该多方计算服务系统包括多方计算协作装置和多个多方计算参与装置。
63.如图1所示,该基于区块链系统的多方计算方法,包括以下步骤s101-s106。
64.步骤s101、多方计算协作装置将目标计算任务的任务信息发送至区块链系统。
65.其中,目标计算任务信息包括目标计算任务标识、多方计算模型和每个多方计算参与装置使用的任务数据集索引。目标计算任务标识用于唯一标识该目标计算任务。多方计算模型是可执行的文本或可执行的二进制代码,该多方计算模型在区块链系统中可以以智能合约的形式存储,也可以采用其它可执行模块方式表现和存储。任务数据集索引是计算该多方计算任务需要使用到的数据集对应的索引。需要说明的是,由于该目标计算任务是多方计算任务,因此,该目标计算任务的任务信息中通常包括多个任务数据集索引,不同的任务数据集索引对应的任务计算数据可以由不同的多方计算参与装置拥有。
66.步骤s102、多方计算参与装置获取目标计算任务的任务信息。
67.其中,目标计算任务是当前需要进行计算的多方计算任务,该多方计算任务是指需要由多个多方计算参与装置分别使用归属自身的数据进行计算的任务。
68.目标计算任务信息包括目标计算任务标识、多方计算模型和每个多方计算参与装置使用的任务数据集索引。
69.在一些实施方式中,该目标计算任务的任务信息还包括:目标计算任务类型、目标计算任务参数、交互方式、参与计算的各多方计算参与装置的装置信息、多方协作装置的装置信息和通信信道数据加密信息等一种或多种。
70.其中,计算任务的类型例如一次性计算类型或者多次重复计算类型。交互方式包括多方计算参与装置分别与区块链系统、其他的多方计算参与装置、与多方计算协作装置之间进行信息交互的方式。多方计算参与装置的装置信息包括多方计算参与装置的标识以及多方计算参与装置的证书等信息。多方协作装置的装置信息包括多方计算协作装置的标识以及多方计算协作装置的证书等信息。通信信道数据加密信息包括:数据加解密方法、加解密配置参数和加解密密钥等信息。
71.在一个实施方式中,在多方计算参与装置获取目标计算任务的任务信息之前,该方法还包括:向区块链系统发送计算装置注册信息,以供该区块链系统执行装置注册操作。
72.其中,计算装置注册信息包括该多方计算协作装置标识、公钥、证书、支持的摘要和加密算法等。多方计算参与装置保管自己的私钥。
73.在另一个实施方式中,在多方计算参与装置获取目标计算任务的任务信息之前,该方法还包括:向多方计算协作装置发送计算装置注册信息,以供该多方计算协作装置执行装置注册操作。
74.其中,计算装置注册信息包括该多方计算参与装置标识、公钥、证书、支持的摘要和加密算法等。多方计算参与装置保管自己的私钥。
75.需要说明的是,在该实施方式中,多方计算协作装置可以直接管理多方计算参与装置的装置注册信息,而不通过区块链系统。
76.在该实施方式中,多方计算协作装置也可以向区块链系统发送协作装置注册信息,以供区块链系统基于协作装置注册信息对多方计算协作装置进行注册;其中,协作装置注册信息包括多方计算协作装置标识、公钥、证书、支持的摘要和加密算法等。多方计算协作装置保管自己的私钥。多方计算协作装置对协作装置注册信息采用事先约定的规则生成摘要,并使用多方计算协作装置的私钥签名该摘要,该签名之后的摘要作为该协作装置注册信息的组成部分。区块链系统中各节点(例如多方计算参与装置)可以利用多方计算协作装置的协作装置注册信息中的摘要等信息来识别该多方计算协作装置。
77.以及,多方计算协作装置还可以向区块链系统发送多方计算注册信息,其中,多方计算注册信息包括至少一个多方计算模型、至少一个多方计算任务模板、至少一个多方计算任务和至少一个贡献度评估模型中的一种或多种,以供区块链系统分别对多方计算模型、多方计算任务模板、多方计算任务和贡献度评估模型中的一种或多种进行注册。
78.在一个实施方式中,针对任意一个所述多方计算参与装置,多方计算参与装置在获取目标计算任务的任务信息之前,该方法还包括:
79.步骤一、多方计算参与装置基于归属于多方计算参与装置的原始数据生成至少一条计算数据索引。
80.其中,计算数据索引用于标识和核对该原始数据。计算数据索引包括:数据标识、数据类型、数据长度、数据摘要和索引摘要中的至少一个。
81.其中,数据标识用于唯一标识原始数据;数据长度可以用字节数表示;数据摘要按照预先约定的规则和该原始数据生成的摘要信息,并可以使用多方计算参与装置的私钥进行签名或者加密;索引摘要是按照预先约定的规则和该条数据索引生成的摘要信息,并可以使用多方计算参与装置的私钥进行签名或者加密。
82.需要说明的是,归属于多方计算参与装置的原始数据可以是经过预处理操作后的数据,该预处理操作例如去冗余、归一化等操作。数据摘要用于检索和确认计算数据索引对应的原始数据。索引摘要用于确认该计算数据索引完整且未被修改。
83.在一个实施方式中,多方计算装置在生成的计算数据索引为多条的情况下,还可以将多条计算数据索引中的部分或全部计算数据索引生成数据集索引,该数据集索引包括该部分或全部计算数据索引。例如,将包括的数据类型相同的计算数据索引生成一条数据集索引。通过该实施方式,能够提高使用数据的便利性,进而提高多方计算的效率。
84.步骤二、多方计算参与装置向区块链系统发送索引注册信息,该索引注册信息包括至少一条计算数据索引,以供区块链系统对该至少一条计算数据索引进行索引注册。
85.需要说明的是,由于多方计算参与装置向区块链系统发送的只是计算数据索引,因此,区块链系统的各节点只能获知该多方计算参与装置拥有的可用于多方计算的计算数
据,而并不能获得并使用该归属于该多方计算参与装置的计算数据,能够有效降低该计算数据泄露的可能性,保障多方计算参与装置拥有的计算数据的安全性。
86.在一个实施方式中,索引注册信息还可以包括的是至少一条数据集索引,以供区块链系统对该至少一条数据集索引进行索引注册。
87.在一个实施方式中,多方计算参与装置在进行索引注册之后,还包括:
88.步骤三、多方计算参与装置接收多方计算协作装置发送的多方计算协商信息。
89.其中,多方计算协商信息包括目标计算任务标识、各个多方计算参与装置标识、计算模型要求和数据集要求。目标计算任务标识用于唯一标识当前需要计算的目标计算任务;各个多方计算参与装置标识是协作计算该目标计算任务的各个多方计算参与装置的标识;计算模型要求是运行该目标计算任务对应的多方计算模型所要满足的装置要求;数据集要求是该目标计算任务需要用到的多方计算数据集需要满足的数据要求,例如,数据集中的数据类型等要求。
90.步骤四、多方计算参与装置基于多方计算参与装置的装置状态信息和多方计算协商信息向多方计算协作装置返回协商结果,以供多方计算协作装置在各多方计算参与装置返回的协商结果均为成功结果的情况下,将目标计算任务的任务信息发送至区块链系统。
91.其中,装置状态信息是多方计算参与装置的状态信息,包括装置拥有的能力、拥有的数据集情况等信息。
92.在一个实施方式中,多方计算参与装置基于多方计算参与装置的装置状态信息和多方计算协商信息向多方计算协作装置返回协商结果的步骤,包括:多方计算参与装置基于自身拥有的能力以及计算模型要求判断自身是否支持运行多方计算模型,以及,多方计算参与装置基于拥有的数据集情况以及数据集要求判断自身拥有的原始数据是否满足该数据集要求。在计算模型要求和数据集要求均满足的情况下,生成并返回的协商结果为成功结果;在计算模型要求和数据集要求任意一项不满足的情况下,生成并返回的协商结果为不成功结果。
93.在一个实施方式中,多方计算参与装置与多方计算协作装置均可以将与协作过程相关的信息存储到区块链系统中,以便于后续过程中产生追溯需求时进行追溯。该与协作过程相关的信息例如上述多方计算协商信息以及协商结果等信息。
94.在一个实施方式中,多方计算参与装置获取目标计算任务的任务信息的步骤,包括:多方计算参与装置接收多方计算协作装置发送的目标计算任务的任务信息。或者,多方计算参与装置向多方计算协作装置发送任务信息获取请求,接收该多方计算协作装置响应于所述任务信息获取请求返回的目标计算任务的任务信息,其中,任务信息获取请求包括目标计算任务标识。
95.在另一个实施方式中,多方计算协作装置在各多方计算参与装置返回的协商结果均为成功结果的情况下,将目标计算任务的任务信息发送至区块链系统,因此,多方计算参与装置获取目标计算任务的任务信息的步骤,还可以包括:从区块链系统中获取目标计算任务的任务信息。
96.步骤s103、多方计算参与装置基于目标计算任务信息中的对应的任务数据集索引从专属于多方计算参与装置的数据库中提取任务计算数据。
97.其中,专属于多方计算参与装置的数据库是只有该多方计算参与装置有权限进行
读写操作的数据库,该数据库中存储的数据是归属于该多方计算装置的数据。
98.需要说明的是,由于多方计算参与装置提供任务计算数据,参与计算的任务计算数据对多方计算协作装置来说是“可用不可见”,但对于多方计算参与装置来说,在本装置中参与计算的任务计算数据是可见也是可用的。由于参与计算的任务数据集索引是多方计算参与装置自己提供的,所以,可以不用再从区块链系统中下载索引信息。不过,多方计算参与装置可以获知哪些其他多方计算参与装置的哪些数据集将参与到该目标计算任务的计算过程中。
99.步骤s104、多方计算参与装置在安全执行环境下加载并执行多方计算模型,以根据任务计算数据生成该目标计算任务对应的计算输出信息,并将该计算输出信息发送至所述区块链系统。
100.其中,安全执行环境包括软件环境和硬件环境,该软件环境例如安全容器或安全虚拟机等,硬件环境例如安全芯片等。计算输出信息包括计算结果信息和计算日志信息。计算日志信息包括执行情况、计算过的数据集、计算次数、计算时长等信息中的至少一种。
101.在一个实施方式中,在目标计算任务为多次重复计算类型的任务的情况下,该计算结果信息包括多个计算结果。
102.在一个实施方式中,多方计算模型由多方计算参与装置加载并执行后,采用统一的接口与多方计算参与装置中的其它模块交互,以获得任务计算数据,或者存储和交换计算结果(包括中间结果)等。
103.步骤s105、在安全执行环境下加载并执行多方计算模型的过程中,向多方计算协作装置发送至少一次任务执行状态信息。
104.其中,任务执行状态信息是用于表征多方计算参与装置的任务执行进度和执行情况。该任务执行状态信息包括模型加载状态、模型执行状态、中间结果、计算输出信息中的至少一种。其中,模型加载状态例如加载成功或加载失败;模型执行状态例如执行成功或执行失败。中间结果是该目标计算任务为多次重复计算类型的任务的情况下,生成的计算结果。
105.需要说明的是,由于目标计算任务可以为多次重复计算类型的任务,因此,多方计算参与装置可以在每次计算完成后向多方计算协作装置发送一次任务执行状态信息,以使该多方计算协作装置能够及时了解该多方计算参与装置的任务执行状态。
106.在一个实施方式中,多方计算参与装置向多方计算协作装置发送至少一次任务执行状态信息之后,该方法还包括:多方计算参与装置接收多方计算协作装置基于任务执行状态信息发送的控制信息,并基于该控制信息进行相应操作。
107.其中,控制信息包括启动、停止目标计算任务的命令信息,还包括更新目标计算任务的计算参数等信息的命令。
108.需要说明的是,目标计算任务为多次重复计算类型的任务时,多方计算参与装置多次执行计算,并在计算过程中,通过多方计算协作装置与其它多方计算参与装置交换参数,如,中间计算结果等。同时,多方计算协作装置为使该目标计算任务成功执行,也可以主动向多方计算参与装置发送任务评测通知和参数,以检查和判断执行效果。目标计算任务的终止,可以基于预先设定的计算终止条件,也可以由多方计算协作装置决定是否和何时终止。在多次重复性多方计算任务中,每个多方计算参与装置可以基于自有数据以及多方
计算协作装置传送的参数等信息独立进行计算。
109.在一些实施例中,在目标计算任务执行过程中,多方计算参与装置与多方计算协作装置可以采用加密方式通信,其可以采用传统的ssl(security socket layer,一种加密机制)加密通信方法或其它的加密通信方法。
110.在一些实施例中,多方计算协作装置可以使用各个多方计算参与装置的公钥加密通信信道数据,从而,多方计算参与装置使用自己的私钥解密信道数据,以获得未加密的通信信道数据。针对同一个目标计算任务,多方计算协作装置可以使用不同的密钥体系或密钥与不同的多方计算参与装置交互。在多方计算参与装置执行目标计算任务时,针对需要与多方计算协作装置交互的通信数据或者存储到区块链系统中的通信数据,可以使用多方计算协作装置的公钥来加密通信信道数据,也可能使用事先约定的加密方法、参数和加解密密钥。
111.在一些实施例中,在多方计算参与装置处理目标计算任务时,针对需要与多方计算协作装置交互的通信数据或者存储到区块链系统中的通信数据,可以按事先约定的摘要算法计算摘要,并使用自己的私钥对通信数据的摘要做签名,从而以证明该数据是由该多方计算参与装置生成并上传。其它多方计算参与装置和多方计算协作装置在获得该多方计算参与装置上传的通信数据后,使用该多方计算参与装置的公钥验证该通信数据的摘要,进而可以验证该通信数据是否由该多方计算参与装置生成并上传。
112.在一个实施方式中,多方计算参与装置在安全执行环境下加载并执行多方计算模型,以根据任务计算数据生成目标计算任务对应的计算输出信息的步骤,包括:
113.步骤一、多方计算参与装置检验多方计算模型是否符合预先约定的模型要求,在检验多方计算模型符合预先约定的模型要求的情况下,在安全执行环境下加载并执行多方计算模型。
114.其中,预先约定的模型要求是该多方计算模型需要满足的要求。多方计算模型上具有多方计算协作装置的签名,因此,可以根据该多方计算模型上的多方计算协作装置的签名验证该多方计算模型的来源和有效性,进而确定该多方计算模型是否符合预先约定的模型要求。
115.在一些实施方式中,检验多方计算模型是否符合预先约定的模型要求,包括:在检验该多方计算协作装置的签名正确的情况下,该多方计算模型符合预先约定的模型要求;在检验该多方计算协作装置的签名不正确的情况下,该多方计算模型不符合预先约定的模型要求。通过该步骤,能够降低多方计算参与装置运行不安全的模型的可能性,降低多方计算参与装置被攻击的概率,提高多方计算过程的安全性。
116.在一些实施方式中,检验多方计算模型是否符合预先约定的模型要求,还可以通过多方计算模型的类型、多方计算模型的摘要、多方计算协作装置的公钥等信息来验证。其中,多方计算模型的摘要是多方计算协作装置在注册多方计算模型时,随多方计算模型存储在区块链系统的附加信息,该附加信息还包括多方计算模型的标识等,该多方计算模型的摘要由多方计算协作装置使用自己的私钥进行过签名。
117.步骤二、多方计算参与装置在执行多方计算模型的过程中,检验任务计算数据是否符合预先约定的数据要求,在检验任务计算数据符合预先约定的数据要求的情况下,根据任务计算数据生成目标计算任务对应的计算输出信息。
118.其中,检验任务计算数据是否符合预先约定的数据要求例如检验多方计算参与装置提供的任务计算数据是否属于预先约定的数据范围,属于的情况下,该任务计算数据符合预先约定的数据要求;不属于的情况下下,任务计算数据不符合预先约定的数据要求。
119.在一个实施方式中,计算输出信息还包括执行多方计算模型后自动生成的多方计算协作装置的公钥签名,例如,生成计算输出信息的摘要信息并使用多方计算协作装置的公钥加密该摘要信息。通过该实施方式,使得多方计算参与装置不能修改运行该多方计算模型生成的计算结果信息和计算日志信息。
120.需要说明的是,执行多方计算模型生成的计算结果信息和计算日志信息,对多方计算参与装置本身是透明的,该计算结果信息和计算日志信息也只能由该多方计算参与装置输出,从而可以保护多方计算参与装置的数据隐私。在多方计算参与装置确认该计算结果信息和计算日志信息无误后,该多方计算参与装置可以在该计算输出信息上生成和追加摘要信息,并使用自己的私钥加密该摘要信息,该加密后的摘要信息作为计算输出信息的组成部分,以表明计算输出信息来自于自身。还需要说明的是,多方计算参与装置也可以对计算输出信息中的计算结果信息和计算日志信息分别执行前述操作,有利于保护多方计算参与装置的数据隐私。
121.步骤s106、多方计算协作装置在多个多方计算参与装置均计算完成目标计算任务的情况下,基于多个多方计算参与装置发送的任务执行状态信息生成协作日志信息,并将协作日志信息发送至区块链系统。
122.需要说明的是,由于目标计算任务可以为多次重复计算类型的任务,因此,多方计算参与装置可以在每次计算完成后向多方计算协作装置发送一次任务执行状态信息。多方计算协作装置可以接收各多方计算参与装置在安全执行环境下加载并执行多方计算模型发送的至少一次任务执行状态信息。该任务执行状态信息用于表征多方计算参与装置的任务执行进度和执行情况,该任务执行状态信息包括模型加载状态、模型执行状态、中间结果、计算输出信息中的至少一种。
123.需要说明的是,目标计算任务为多次重复计算类型的任务时,多方计算参与装置多次执行计算,并在计算过程中,通过多方计算协作装置与其它多方计算参与装置交换参数,如,中间计算结果等。同时,多方计算协作装置为使该目标计算任务成功执行,也可以主动向多方计算参与装置发送任务评测通知和参数,以检查和判断执行效果。目标计算任务的终止,可以基于预先设定的计算终止条件,也可以由多方计算协作装置决定是否和何时终止。在多次重复性多方计算任务中,每个多方计算参与装置可以基于自有数据以及多方计算协作装置传送的参数等信息独立进行计算。
124.在一些实施例中,在目标计算任务执行过程中,多方计算参与装置与多方计算协作装置可以采用加密方式通信,其可以采用传统的ssl(security socket layer,一种加密机制)加密通信方法或其它的加密通信方法。
125.在一些实施例中,多方计算协作装置可以使用各个多方计算参与装置的公钥加密通信信道数据,从而,多方计算参与装置使用自己的私钥解密信道数据,以获得未加密的通信信道数据。针对同一个目标计算任务,多方计算协作装置可以使用不同的密钥体系或密钥与不同的多方计算参与装置交互。在多方计算参与装置执行目标计算任务时,针对需要与多方计算协作装置交互的通信数据或者存储到区块链系统中的通信数据,可以使用多方
计算协作装置的公钥来加密通信信道数据,也可能使用事先约定的加密方法、参数和加解密密钥。
126.本发明实施例提供的应用于多方计算服务系统的多方计算方法,多方计算协作装置将目标计算任务的任务信息发送至区块链系统,该目标计算任务信息包括目标计算任务标识、多方计算模型和每个多方计算参与装置使用的任务数据集索引,多方计算参与装置获取目标计算任务的任务信息,基于任务数据集索引从专属于多方计算参与装置数据库中提取任务计算数据,即该目标计算任务可以基于各方约定的任务数据集进行计算,这些任务数据集本身不需要共享,只需要共享这些任务数据集的索引信息即可,保护了的多方计算参与装置的数据隐私,提高了数据使用的便利性。然后,多方计算参与装置在安全执行环境下加载并执行多方计算模型,以根据任务计算数据生成目标计算任务对应的计算输出信息,并将计算输出信息发送至区块链系统,即各多方计算参与装置能够按照相同的多方计算模型执行,从而能够保证计算的确定性和一致性,也可以保证计算输出信息的可信,并且,安全容器也起着沙箱的作用,可以保护多方计算参与装置的数据、存储和通信安全。多方计算参与装置在安全执行环境下加载并执行多方计算模型的过程中,向多方计算协作装置发送至少一次任务执行状态信息,多方计算协作装置在多个所述多方计算参与装置均计算完成所述目标计算任务的情况下,基于多个所述多方计算参与装置发送的所述任务执行状态信息生成协作日志信息,并将所述协作日志信息发送至区块链系统,可以保护参与该目标计算任务的多方计算参与装置与多方计算协作装置的数据隐私,还能够使得多方计算更加可信
127.图2为本发明实施例提供的一种贡献度确定方法的流程图。该方法应用于多方计算参与装置,在一个实施方式中,如图2所示,该贡献度的确定方法包括:
128.步骤s201、在各多方计算参与装置均计算完成目标计算任务的情况下,从区块链系统中获取目标计算任务对应的任务处理数据。
129.其中,任务处理数据包括各多方计算参与装置发送的计算输出信息、多方计算协作装置发送的协作日志信息。区块链系统确保该目标计算任务各参与方(例如多方计算协作装置和各多方计算参与装置)存储数据的安全性和一致性。
130.在一个实施方式中,从区块链系统中获取目标计算任务对应的任务处理数据之后,需要检查各多方计算参与装置以及多方计算协作装置的身份信息,例如验证签名。在检查各多方计算参与装置以及多方计算协作装置的身份信息通过后,执行下述步骤s202。
131.步骤s202、基于任务处理数据和预先获取的贡献度评估模型,生成任务贡献度信息。
132.其中,贡献度评估模型是用于使各贡献度计算方(例如多方计算协作装置和各多方计算参与装置)以统一的计算标准进行贡献度计算的模型,贡献度计算模型通常以可执行代码形式(例如,智能合约)存储。任务贡献度信息包括各多方计算参与装置针对目标计算任务的贡献度。
133.在一些实施例中,贡献度计算方法可以多种,例如,通过有效贡献度比率来计算贡献度。
134.其中,有效贡献度比率涉及总计算量、实际计算量、有效计算量、数据有效性等参数。该数据有效性,通过对比实际计算数据与所述多方计算任务的数据集的相关性来判断。
多方计算任务执行时,可以约定依托的数据集。
135.在一个实施场景中,贡献度为有效贡献度与总有效贡献度的比值,其中,总有效贡献度为所有多方计算参与装置的有效贡献度的总和。有效贡献度为计算数据量与计算次数的乘积与更新并被接受的参数的数量之和。
136.步骤s203、向区块链系统发送任务贡献度信息,以供区块链系统基于各多方计算参与装置发送的任务贡献度信息和多方协作装置发送的任务贡献度信息,最终确定各多方计算参与装置针对目标计算任务的贡献度。
137.其中,区块链系统接收各多方计算参与装置发送的任务贡献度信息和多方协作装置发送的任务贡献度信息,针对任意一个多方计算参与装置,选择其他的多方计算参与装置发送的任务贡献度信息中出现次数最多的贡献度作为该多方计算参与装置最终的贡献度。
138.在一个实施方式中,最终确定各多方计算参与装置针对目标计算任务的贡献度之后,参与目标计算任务的任何一方(例如多方计算协作装置和各多方计算参与装置)都可以申请和查寻目标计算任务中任何其他方的贡献度。
139.上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
140.图3为本发明实施例提供的另一种基于区块链系统的多方计算方法的流程图。该多方计算方法应用于多方计算协作装置,如图3所示,该方法包括:步骤s301-步骤s303。
141.步骤s301、接收多方计算参与装置发送的任务执行状态信息。
142.其中,任务执行状态信息是多方计算协作装置获取目标计算任务的任务信息之后,在安全执行环境下加载并执行多方计算模型,以根据任务计算数据生成目标计算任务对应的计算输出信息的过程中发送的信息。
143.该目标计算任务信息包括目标计算任务标识、多方计算模型和任务数据集索引;其中,任务计算数据是多方计算协作装置基于任务数据集索引从专属于该多方计算协作装置的数据库中提取出的数据。
144.需要说明的是,由于目标计算任务可以为多次重复计算类型的任务,因此,多方计算参与装置可以在每次计算完成后向多方计算协作装置发送一次任务执行状态信息。多方计算协作装置可以接收各多方计算参与装置在安全执行环境下加载并执行多方计算模型发送的至少一次任务执行状态信息。该任务执行状态信息用于表征多方计算参与装置的任务执行进度和执行情况,该任务执行状态信息包括模型加载状态、模型执行状态、中间结果、计算输出信息中的至少一种。
145.在一个实施方式中,多方计算协作装置还可以基于多方计算参与装置发送的任务执行状态信息向该多方计算参与装置发送的控制信息,使多方计算参与装置基于该控制信息进行相应操作。
146.其中,控制信息包括启动、停止目标计算任务的命令信息,还包括更新目标计算任务的计算参数等信息的命令。
147.需要说明的是,目标计算任务为多次重复计算类型的任务时,多方计算参与装置
多次执行计算,并在计算过程中,通过多方计算协作装置与其它多方计算参与装置交换参数,如,中间计算结果等。同时,多方计算协作装置为使该目标计算任务成功执行,也可以主动向多方计算参与装置发送任务评测通知和参数,以检查和判断执行效果。目标计算任务的终止,可以基于预先设定的计算终止条件,也可以由多方计算协作装置决定是否和何时终止。在多次重复性多方计算任务中,每个多方计算参与装置可以基于自有数据以及多方计算协作装置传送的参数等信息独立进行计算。
148.在一些实施例中,在目标计算任务执行过程中,多方计算参与装置与多方计算协作装置可以采用加密方式通信,其可以采用传统的ssl(security socket layer,一种加密机制)加密通信方法或其它的加密通信方法。
149.在一些实施例中,多方计算协作装置可以使用各个多方计算参与装置的公钥加密通信信道数据,从而,多方计算参与装置使用自己的私钥解密信道数据,以获得未加密的通信信道数据。针对同一个目标计算任务,多方计算协作装置可以使用不同的密钥体系或密钥与不同的多方计算参与装置交互。在多方计算参与装置执行目标计算任务时,针对需要与多方计算协作装置交互的通信数据或者存储到区块链系统中的通信数据,可以使用多方计算协作装置的公钥来加密通信信道数据,也可能使用事先约定的加密方法、参数和加解密密钥。
150.在一个实施方式中,多方计算协作装置接收多方计算协作装置发送的任务执行状态信息之前,还包括:
151.步骤一、向各多方计算参与装置发送多方计算协商信息。
152.其中,多方计算协商信息包括目标计算任务标识、各个多方计算参与装置标识、计算模型要求和数据集要求。
153.在一些实施例中,多方计算协作装置向各多方计算参与装置发送多方计算协商信息之前,还包括:向区块链系统发送协作装置注册信息,以供区块链系统基于协作装置注册信息对多方计算协作装置进行注册。
154.其中,协作装置注册信息包括多方计算协作装置标识、公钥、证书、支持的摘要和加密算法等。多方计算协作装置保管自己的私钥。多方计算协作装置对协作装置注册信息采用事先约定的规则生成摘要,并使用多方计算协作装置的私钥签名该摘要,该签名之后的摘要作为该协作装置注册信息的组成部分。区块链系统中各节点(例如多方计算参与装置)可以利用多方计算协作装置的协作装置注册信息中的摘要等信息来识别该多方计算协作装置。
155.在一些实施例中,多方计算协作装置还向区块链系统发送多方计算注册信息,其中,多方计算注册信息包括至少一个多方计算模型、至少一个多方计算任务模板、至少一个多方计算任务和至少一个贡献度评估模型中的一种或多种,以供该区块链系统分别对多方计算模型、多方计算任务模板、多方计算任务和贡献度评估模型中的一种或多种进行注册。
156.其中,多方计算模型是可执行的文本或可执行的二进制代码,该多方计算模型在区块链系统中可以以智能合约的形式存储,也可以采用其它可执行模块方式表现和存储。多方计算任务模板用于生成多方计算任务,包括计算方法、参与多方计算的多方计算参与装置的数目、数据集及特性等。多方计算任务相关信息,由多方计算协作装置注册,注册时生成信息摘要,并使用自己的私钥签名所述摘要,摘要用来验证所述多方计算作为信息的
来源及信息的有效性。贡献度评估模型,用于在各多方计算参与装置将目标计算任务执行完成后,确定各多方计算参与装置在多方计算任务中的贡献度。贡献度计算依据包括,实际使用数据集的有效性、数据集的使用次数、计算次数、结果(包括中间结果)的提交次数等。
157.步骤二、接收各多方计算参与装置分别基于该多方计算参与装置的装置状态信息和多方计算协商信息返回的协商结果。
158.其中,协商结果包括成功结果或失败结果。
159.在一个实施方式中,在各多方计算参与装置返回的协商结果包括至少一个不成功结果的情况下,结束对目标任务的多方计算过程。
160.步骤三、在各多方计算参与装置返回的协商结果均为成功结果的情况下,将目标计算任务的任务信息发送至区块链系统。
161.其中,目标计算任务信息包括目标计算任务标识、多方计算模型、每个多方计算参与装置使用的任务数据集索引、目标计算任务类型、目标计算任务参数、交互方式、参与计算的各多方计算参与装置的装置信息、多方协作装置的装置信息和通信信道数据加密信息等一种或多种。
162.在一个实施方式中,在接收多方计算协作装置发送的任务执行状态信息之后,该方法还包括:基于任务执行状态信息向对应的多方算协作装置发送控制信息,以供多方计算协作装置基于所述控制信息进行相应操作。其中,控制信息包括启动、停止目标计算任务的命令信息,还包括更新目标计算任务的计算参数等信息的命令。
163.需要说明的是,目标计算任务为多次重复计算类型的任务时,多方计算参与装置多次执行计算,并在计算过程中,通过多方计算协作装置与其它多方计算参与装置交换参数,如,中间计算结果等。同时,多方计算协作装置为使该目标计算任务成功执行,也可以主动向多方计算参与装置发送任务评测通知和参数,以检查和判断执行效果。目标计算任务的终止,可以基于预先设定的计算终止条件,也可以由多方计算协作装置决定是否和何时终止。在多次重复性多方计算任务中,每个多方计算参与装置可以基于自有数据以及多方计算协作装置传送的参数等信息独立进行计算。
164.在一些实施例中,在目标计算任务执行过程中,多方计算参与装置与多方计算协作装置可以采用加密方式通信,其可以采用传统的ssl(security socket layer,一种加密机制)加密通信方法或其它的加密通信方法。
165.在一些实施例中,多方计算协作装置可以使用各个多方计算参与装置的公钥加密通信信道数据。从而,多方计算参与装置使用自己的私钥解密信道数据,以获得未加密的通信信道数据。针对同一个目标计算任务,多方计算协作装置可以使用不同的密钥体系或密钥与不同的多方计算参与装置交互。在多方计算参与装置执行目标计算任务时,针对需要与多方计算协作装置交互的通信数据或者存储到区块链系统中的通信数据,可以使用多方计算协作装置的公钥来加密通信信道数据,也可能使用事先约定的加密方法、参数和加解密密钥。
166.步骤s302、在各多方计算参与装置均计算完成目标计算任务的情况下,基于各多方计算参与装置发送的任务执行状态信息生成协作日志信息。
167.其中,协作日志信息包括数据访问情况、信息同步情况等信息。
168.步骤s303、将协作日志信息发送至区块链系统。
169.其中,将协作日志信息发送至区块链系统,能够保护日志数据隐私,使得多方安全计算更加可信。
170.在一个实施方式中,多方计算方法还包括:
171.步骤一、在各多方计算参与装置均计算完成目标计算任务的情况下,从区块链系统中获取所述目标计算任务对应的任务处理数据。
172.步骤二、基于任务处理数据和预先确定的贡献度评估模型,生成任务贡献度信息。
173.其中,任务贡献度信息包括各多方计算参与装置针对目标计算任务的贡献度。
174.步骤三、向区块链系统发送任务贡献度信息,以供区块链系统基于任务贡献度信息和各多方计算参与装置发送的任务贡献度信息,最终确定各多方计算参与装置针对该目标计算任务的贡献度。
175.需要说明的是,多方计算协作装置计算贡献度的过程与多方计算参与装置计算贡献度的过程类似,因此,多方计算协作装置计算贡献度的过程可以参见前述实施例中多方计算参与装置计算贡献度的过程,此次不再赘述。
176.本发明实施例提供的应用于多方计算协作装置的多方计算方法,首先,接收多方计算参与装置发送的任务执行状态信息;其中,任务执行状态信息是多方计算协作装置获取目标计算任务的任务信息之后,在安全执行环境下加载并执行多方计算模型,以根据任务计算数据生成目标计算任务对应的计算输出信息的过程中发送的信息;目标计算任务信息包括目标计算任务标识、多方计算模型和任务数据集索引;任务计算数据是多方计算协作装置基于任务数据集索引从专属于多方计算协作装置的数据库中提取出的数据。即该目标计算任务可以基于各方约定的任务数据集进行计算,这些任务数据集本身不需要共享,只需要共享这些任务数据集的索引信息即可,保护了的多方计算参与装置的数据隐私,提高了数据使用的便利性,进而提高了多方计算的效率。并且,各多方计算参与装置能够按照相同的多方计算模型执行,从而能够保证计算的确定性和一致性,也可以保证计算输出信息的可信,并且,安全容器也起着沙箱的作用,可以保护多方计算参与装置的数据、存储和通信安全。然后,在各多方计算参与装置均计算完成目标计算任务的情况下,基于各多方计算参与装置发送的任务执行状态信息生成协作日志信息,将该协作日志信息发送至区块链系统,可以保护该多方计算协作装置的数据隐私,还使得多方计算更加可信。
177.本发明实施例提供的多方计算服务系统,包括多方计算协作装置和多个多方计算参与装置。其中,多方计算参与装置的结构如下述图4所示,多方计算协作装置的结构如下述图5所示。
178.图4为本发明实施例提供的一种多方计算参与装置的结构示意图。如图4所示,该多方计算参与装置包括:第一获取模块41、第一提取模块42、任务处理模块43、第一同步模块44和第一区块链服务代理模块45。
179.其中,第一获取模块41,用于获取目标计算任务的任务信息。该目标计算任务信息包括目标计算任务标识、多方计算模型和任务数据集索引。
180.第一提取模块42,用于基于任务数据集索引从专属于多方计算参与装置的数据库中提取任务计算数据。
181.任务处理模块43,用于在安全执行环境下加载并执行多方计算模型,以根据任务计算数据生成所述目标计算任务对应的计算输出信息。其中,计算输出信息包括计算结果
信息和计算日志信息。
182.第一同步模块44,用于在在安全执行环境下加载并执行多方计算模型的过程中,向多方计算协作装置发送至少一次任务执行状态信息,以供多方计算协作装置基于各多方计算参与装置发送的任务执行状态信息向区块链系统发送协作日志信息。
183.第一区块链服务代理模块45,用于将计算输出信息发送至区块链系统。
184.本发明实施例提供的应用于多方计算参与装置,第一获取模块用于获取目标计算任务的任务信息,该目标计算任务信息包括目标计算任务标识、多方计算模型和任务数据集索引,第一提取模块用于基于该任务数据集索引从专属于多方计算参与装置的数据库中提取任务计算数据,即该目标计算任务可以基于各方约定的任务数据集进行计算,这些任务数据集本身不需要共享,只需要共享这些任务数据集的索引信息即可,保护了的多方计算参与装置的数据隐私,提高了数据使用的便利性。任务处理模块用于在安全执行环境下加载并执行多方计算模型,以根据任务计算数据生成目标计算任务对应的计算输出信息,即各多方计算参与装置能够按照相同的多方计算模型执行,从而能够保证计算的确定性和一致性,也可以保证计算输出信息的可信,并且,安全容器也起着沙箱的作用,可以保护多方计算参与装置的数据、存储和通信安全。第一同步模块用于在在安全执行环境下加载并执行多方计算模型的过程中,向多方计算协作装置发送至少一次任务执行状态信息,以供多方计算协作装置基于各多方计算参与装置发送的任务执行状态信息向区块链系统发送协作日志信息;第一区块链服务代理模块用于将计算输出信息发送至区块链系统,可以保护参与该目标计算任务的多方计算参与装置的数据隐私,还使得多方计算更加可信。
185.图5为本发明实施例提供的一种多方计算协作装置的结构示意图。如图5所示,该装置包括:
186.第二同步模块51,用于接收多方计算协作装置发送的任务执行状态信息。
187.其中,任务执行状态信息是多方计算协作装置获取目标计算任务的任务信息之后,在安全执行环境下加载并执行多方计算模型,以根据任务计算数据生成目标计算任务对应的计算输出信息的过程中发送的信息。目标计算任务信息包括目标计算任务标识、多方计算模型和任务数据集索引。任务计算数据是所述多方计算协作装置基于所述任务数据集索引从专属于所述多方计算协作装置的数据库中提取出的数据。
188.第二生成模块52,用于在各多方计算参与装置均计算完成所述目标计算任务的情况下,基于各多方计算参与装置发送的任务执行状态信息生成协作日志信息。
189.第二区块链服务代理模块53,用于将协作日志信息发送至区块链系统。
190.本发明实施例提供的多方计算协作装置,第二同步模块用于接收多方计算参与装置发送的任务执行状态信息;其中,任务执行状态信息是多方计算协作装置获取目标计算任务的任务信息之后,在安全执行环境下加载并执行多方计算模型,以根据任务计算数据生成目标计算任务对应的计算输出信息的过程中发送的信息;目标计算任务信息包括目标计算任务标识、多方计算模型和任务数据集索引;任务计算数据是多方计算协作装置基于任务数据集索引从专属于多方计算协作装置的数据库中提取出的数据。即该目标计算任务可以基于各方约定的任务数据集进行计算,这些任务数据集本身不需要共享,只需要共享这些任务数据集的索引信息即可,保护了的多方计算参与装置的数据隐私,提高了数据使用的便利性。并且,各多方计算参与装置能够按照相同的多方计算模型执行,从而能够保证
计算的确定性和一致性,也可以保证计算输出信息的可信,并且,安全容器也起着沙箱的作用,可以保护多方计算参与装置的数据、存储和通信安全。第二生成模块,用于在各多方计算参与装置均计算完成目标计算任务的情况下,基于各多方计算参与装置发送的任务执行状态信息生成协作日志信息;第二区块链服务代理模块,用于将该协作日志信息发送至区块链系统,可以保护该多方计算协作装置的数据隐私,还使得多方计算更加可信。
191.在一个实施方式中,多方计算参与装置还包括:第一任务管理模块。其中,该第一任务管理模块,用于多方计算参与装置接收多方计算协作装置发送的多方计算协商信息,并基于多方计算参与装置的装置状态信息和所述多方计算协商信息向多方计算协作装置返回协商结果,该多方计算协商信息包括目标计算任务标识、各个多方计算参与装置标识、计算模型要求和数据集要求。
192.在该实施方式中,多方计算协作装置的第二区块链服务代理模块,用于在多方计算协作装置在各多方计算参与装置返回的协商结果均为成功结果的情况下,将目标计算任务的任务信息发送至区块链系统。
193.在一个实施方式中,多方计算参与装置还包括:第一数据管理模块。该第一数据管理模块,用于基于归属于多方计算参与装置的原始数据生成至少一条计算数据索引,并向所述区块链系统发送索引注册信息,其中,索引注册信息包括至少一条计算数据索引,以供区块链系统对少一条计算数据索引进行索引注册;该计算数据索引包括:数据标识、数据类型、数据长度、数据摘要和索引摘要中的至少一个。
194.图6为本发明实施例提供的一种多方计算服务系统的结构示意图。如图6所示,该系统包括:多个多方计算参与装置61和多方计算协作装置62。
195.在一个实施方式中,如图6所示,该多方计算参与装置61包括:第一装置管理模块611、第一任务管理模块612、第一数据管理模块613、第一数据注册模块614、第一任务处理模块615、第一同步模块616、第一贡献度评估617、第一日志管理模块618、第一区块链服务代理模块619等。
196.第一装置管理模块611,用于注册自身,及查寻其它多方计算参与装置和多方计算协作装置的注册信息。多方计算参与装置的注册操作,类似于多方计算协作装置的注册操作类似。
197.第一任务管理模块612,用于与多方计算协作装置协商多方计算任务、获取多方计算模型、启动/关闭/检查/记录多方计算任务,以及多方计算任务执行过程中的日志处理(例如日志生成等)、与多方参与装置信息交互等。
198.第一数据管理模块613,用于按预计设定的规则准备计算数据集和数据集索引,并通过数据注册模块和区块链服务代理模块把数据集索引写入到区块链系统中,以及用于向任务执行模块执行多方计算任务时输入计算数据集(包括数据集的索引)。在多方计算任务预备阶段,则可指定用于多方计算的数据集。当执行多方计算任务时,数据管理模块向任务执行模块输入事前约定的数据集。
199.第一数据注册模块614,用于按数据管理模块的输入,与第一区块链服务代理模块619协同,把数据集索引的相关信息写入到区块链系统中。
200.第一任务处理模块615,用于加载和执行多方计算模型、通过第一装置管理模块611检查和验证多方计算协作装置、从数据管理模块获得计算数据,并通过第一同步模块
616与多方计算协作装置交互中间及最终计算结果。第一任务处理模块615还可以通过第一日志管理模块618等模块,把任务执行过程中的数据和过程信息,写入到区块链系统中。第一任务处理模块615在接收到第一数据管理模块613提供的数据集时,可以执行计算数据集的检查,以检查是否使用了事前约定的数据集,同时把相关结果生成日志并经第一日志管理模块618和第一区块链服务代理模块619写入区块链系统。可选的,第一任务处理模块615可根据事先约定的规则生成每条数据的摘要,但不是继续实时检查是否属于约定的数据集,而是通过第一日志管理模块618和第一区块链服务代理模块619把相关信息写入到区块链系统中。事后,再使用贡献度评估模块,检测实际使用的数据集和预先约定的数据集的差异度,并作为贡献度评估的重要依据。原则上来说,多方计算任务在计算过程中,要使用事先约定的数据集的全部或部分数据条目来计算,以达到约束性计算和可信的目标。
201.该第一任务处理模块615还用于在执行多方计算任务时,检查和加载多方计算模块。第一任务处理模块615提供安全执行沙箱。在安全执行沙箱中,计算数据由第一数据管理模块613提供,与多方计算协作装置的交互由第一同步模块616提供服务,区块链系统的交互由第一任务管理模块612和第一日志管理模块618提供服务,验证多方计算模型由第一任务管理模块612负责,验证多方计算协作装置的身份信息由所第一装置管理模块611承担。
202.需要说明的是,由于多方计算模块是可执行代码,由外部提供,并在第一任务处理模块615中运营,所以,多方计算参与装置为保护自身的安全,则需要提供安全执行沙箱。该安全执行沙箱,不与多方计算参与装置的本地资源(包括数据、存储、通信等)直接交互。
203.第一同步模块616,主要用于与多方计算协作装置进行任务协商,包括协商多方计算任务、协同计算、同步多方计算结果(包括中间过程参数)等。
204.第一日志管理模块618,主要用于根据第一任务处理模块615等模块的执行情况,生成执行多方计算任务时的日志信息,包括数据访问情况、信息同步情况等。第一日志管理模块618还用于把日志信息通过区块链服务代理模块写入到区块链系统中。还用于负责多方计算模作装置的日志生成和输出存储。
205.在一些实施例中,多方计算参与装置的其它模块,除第一区块链服务代理模块619外,都可以通过第一日志管理模块618来存储和输出相关日志信息。
206.第一贡献度评估617,用于根据选择的贡献度评估计算方法,通过第一区块链服务代理模块619,从区块链系统中获取多方计算任务的信息,并计算该多方计算任务中各参与方的贡献度。
207.第一区块链服务代理模块619,用于与区块链系统交互,以存储或读取多方计算任务的记录信息。针对不同类型的区块链系统,可以有对应的区块链服务代理模块。
208.在一个实施方式中,多方计算协作装置包括:第二同步模块621、第二任务协同模块622、第二模型管模块理623、第二日志管理模块624、第二任务管理模块625、第二装置管理模块626、第二贡献度评估模块627、第二区块链服务代理模块628等。
209.第二同步模块621,用于与各个相关多方计算参与装置协同,包括协商多方计算任务、协同计算、同步多方计算结果(包括中间过程参数)等。
210.第二装置管理模块626,用于处理多方计算协作装置的注册操作及相关信息管理。多方计算协作装置使用第二装置管理模块626在区块链系统中注册(登记)自己,并可以查
寻和验证已注册的多方计算参与装置相关的注册信息。可选的,多方计算参与装置可以直接通过其第一同步模块把自己注册到多方计算协作装置,换言之,多方计算协作装置可以直接管理多方计算参与装置的装置注册信息,而不通过区块链系统。
211.第二模型管模块理623,用于管理多方计算模型,以及注册多方计算模型到区块链系统。可选的,多方计算协作装置与多方计算参与装置之间,可以直接通信以传送多方计算模型。第二模型管模块理623,还用于向区块链中注册多方计算模型。多方计算模型的注册信息,主要包括,多方计算模型的标识(全球唯一标识串)、计算模型可执行代码(文本或二进制)、摘要等。该摘要是根据标识和可执行代码等注册信息,按事先约定的方法计算,并使用多方计算协作装置的私钥签名。可选的,当多方计算模型存储在区块链系统中时,多方计算协作装置可以加密多方计算模型;多方计算参与装置在使用加密的多方计算模型时,可以与多方计算协作装置交互,以获得解密密钥解密多方计算模型。
212.第二任务管理模块625,主要用于管理多方计算任务及相关信息。第二任务管理模块625通过第二同步模块621,与多方计算参与装置协商多方计算任务,协商多方计算任务时,需要明确使用的多方计算模型信息(模型标识、模型获得地址等)、多方计算的数据集信息(各参与方的数据集列表等)、参与计算的多方计算参与装置(标识、交互通信地址、端口、协议等)、计算存证信息(存证的分类标识等),以及多方计算模型相关的参数等信息。
213.第二任务协同模块622,主要用于根据选择的多方计算模型、数据集和相关参数,协调多方计算参与装置执行多方计算任务。对于重复性计算的多方计算任务,第二任务协同模块622提供持续性的服务,并提供在多方计算参与装置之间协调传递相关中间结果参数及相关信息。第二任务协同模块622,还用于获得多方计算任务的最终结果。
214.第二日志管理模块624,主要用于根据第二任务协同模块622等模块的执行情况,生成执行多方计算任务时的日志信息,包括数据访问情况、信息同步情况等。第二日志管理模块624,还用于把日志信息通过第二区块链服务代理模块628写入到区块链系统中。还用于负责多方计算模作装置的日志生成和输出存储。多方计算协作装置的其它模块,除第二区块链服务代理模块628外,都可以通过第二日志管理模块624来存储和输出相关日志信息。
215.第二贡献度评估模块627,用于根据选择的贡献度评估计算方法,以及第二区块链服务代理模块628从区块链系统中获取的多方计算任务的信息,计算多方计算任务中各参与方的贡献度,其中,计算多方计算任务中各参与方的贡献度的步骤参见前述实施例,此处不再赘述。在区块链系统中,多方计算任务的记录信息,都附带多方计算任务的标识信息,通过标识等信息,可以从区块链系统中获得多方计算任务的记录信息。
216.第二区块链服务代理模块628,用于与区块链系统交互,以存储或读取多方计算任务的记录信息。针对不同类型的区块链系统,可以有对应的区块链服务代理模块。
217.在一个实施方式中,第二区块链服务代理模块628还用于向区块链系统发送任务贡献度信息,以供区块链系统基于任务贡献度信息和各多方计算参与装置发送的任务贡献度信息,最终确定各多方计算参与装置针对目标计算任务的贡献度。
218.在一个实施方式中,第一区块链服务代理模块619和第二区块链服务代理模块628与区块链系统可以进行交互。该区块链系统用于存储多方计算任务注册和执行等过程中产生的数据,支撑读取相关数据用于贡献度评估。所述相关数据的访问过程中及访问过程中
产生的数据,可以存储在区块链系统中。此专利技术,对区块链系统没有特别技术要求,任何满足数据防篡改,能保证数据一致性、完整性、私密性的区块链系统都可适用于本专利技术。此技术方案中,把区块链系统,视作为可信的数据存储服务系统,包括,存储数据集索引、任务模型、装置信息、日志信息等。针对每个多方计算任务,都有一个特定标识。该特定标识随各个多方计算任务数据一起存储,以用于在区块链系统中查找和识别存储的相关多方计算任务数据。
219.需要明确的是,本发明并不局限于上文实施例中所描述并在图中示出的特定配置和处理。为了描述的方便和简洁,这里省略了对已知方法的详细描述,并且上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
220.本领域普通技术人员可以理解,上文中所发明方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其它存储器技术、cd-rom、数字多功能盘(dvd)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其它的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其它传输机制之类的调制数据信号中的其它数据,并且可包括任何信息递送介质。
221.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
222.本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本实施例的范围之内并且形成不同的实施例。
223.可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

技术特征:
1.一种基于区块链系统的多方计算方法,其特征在于,应用于多方计算服务系统,所述多方计算服务系统包括多方计算协作装置和多个多方计算参与装置,所述方法包括:所述多方计算协作装置将目标计算任务的任务信息发送至区块链系统;所述目标计算任务信息包括目标计算任务标识、多方计算模型和每个多方计算参与装置使用的任务数据集索引;针对任意一个所述多方计算参与装置,所述多方计算参与装置获取目标计算任务的任务信息;所述多方计算参与装置基于对应的所述任务数据集索引从专属于所述多方计算协作装置的数据库中提取任务计算数据;所述多方计算参与装置在安全执行环境下加载并执行所述多方计算模型,以根据所述任务计算数据生成所述目标计算任务对应的计算输出信息;所述计算输出信息包括计算结果信息和计算日志信息;所述多方计算参与装置将所述计算输出信息发送至所述区块链系统;所述多方计算参与装置在所述在安全执行环境下加载并执行所述多方计算模型的过程中,向所述多方计算协作装置发送至少一次任务执行状态信息;所述多方计算协作装置在多个所述多方计算参与装置均计算完成所述目标计算任务的情况下,基于多个所述多方计算参与装置发送的所述任务执行状态信息生成协作日志信息,并将所述协作日志信息发送至区块链系统。2.根据权利要求1所述的方法,其特征在于,针对任意一个所述多方计算参与装置,在所述多方计算参与装置获取目标计算任务的任务信息之前,所述方法还包括:所述多方计算参与装置接收多方计算协作装置发送的多方计算协商信息;所述多方计算协商信息包括目标计算任务标识、各个多方计算参与装置标识、计算模型要求和数据集要求;所述多方计算参与装置基于多方计算参与装置的装置状态信息和所述多方计算协商信息向所述多方计算协作装置返回协商结果;所述多方计算协作装置将目标计算任务的任务信息发送至区块链系统的步骤,包括:所述多方计算协作装置在各多方计算参与装置返回的协商结果均为成功结果的情况下,将所述目标计算任务的任务信息发送至所述区块链系统。3.根据权利要求2所述的方法,其特征在于,针对任意一个所述多方计算参与装置,在所述多方计算参与装置接收多方计算协作装置发送的多方计算协商信息之前,所述方法还包括:所述多方计算参与装置基于归属于多方计算参与装置的原始数据生成至少一条计算数据索引;所述计算数据索引包括:数据标识、数据类型、数据长度、数据摘要和索引摘要中的至少一个;所述多方计算参与装置向所述区块链系统发送索引注册信息,所述索引注册信息包括所述至少一条计算数据索引,以供所述区块链系统对所述至少一条计算数据索引进行索引注册。4.根据权利要求1所述的方法,其特征在于,所述多方计算参与装置向多方计算协作装置发送至少一次任务执行状态信息之后,所述方法还包括:
所述多方计算协作装置基于所述任务执行状态信息向对应的多方计算协作装置发送控制信息;所述多方计算参与装置接收所述多方计算协作装置基于所述任务执行状态信息发送的控制信息;所述多方计算参与装置基于所述控制信息进行相应操作。5.根据权利要求1所述的方法,其特征在于,针对任意一个所述多方计算参与装置,所述多方计算参与装置在安全执行环境下加载并执行所述多方计算模型,以根据所述任务计算数据生成所述目标计算任务对应的计算输出信息的步骤,包括:所述多方计算参与装置在检验所述多方计算模型符合预先约定的模型要求的情况下,在安全执行环境下加载并执行所述多方计算模型;所述多方计算参与装置在执行所述多方计算模型的过程中,检验所述任务计算数据符合预先约定的数据要求的情况下,根据所述任务计算数据生成所述目标计算任务对应的计算输出信息,所述计算输出信息还包括执行所述多方计算模型后自动生成的所述多方计算协作装置的公钥签名。6.根据权利要求1所述的方法,其特征在于,所述多方计算协作装置将目标计算任务的任务信息发送至区块链系统之前,还包括:所述多方计算协作装置向所述区块链系统发送多方计算注册信息,所述多方计算注册信息包括至少一个多方计算模型、至少一个多方计算任务模板、至少一个多方计算任务和至少一个贡献度评估模型中的一种或多种,以供所述区块链系统分别对多方计算模型、多方计算任务模板、多方计算任务和贡献度评估模型中的一种或多种进行注册。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述多方计算协作装置在各多方计算参与装置均计算完成所述目标计算任务的情况下,从所述区块链系统中获取所述目标计算任务对应的任务处理数据;所述多方计算协作装置基于所述任务处理数据和预先确定的贡献度评估模型,生成任务贡献度信息,所述任务贡献度信息包括各多方计算参与装置针对所述目标计算任务的贡献度;所述多方计算协作装置向所述区块链系统发送所述任务贡献度信息,以供所述区块链系统基于所述任务贡献度信息和各多方计算参与装置发送的任务贡献度信息,最终确定各多方计算参与装置针对所述目标计算任务的贡献度。8.一种多方计算服务系统,所述多方计算服务系统包括多方计算协作装置和多个多方计算参与装置,其特征在于,所述多方计算参与装置包括:第一获取模块、第一提取模块、任务处理模块、第一同步模块和第一区块链服务代理模块;所述多方计算协作装置包括:第二生成模块和第二区块链服务代理模块;所述第二区块链服务代理模块,用于将目标计算任务的任务信息发送至区块链系统;所述目标计算任务信息包括目标计算任务标识、多方计算模型和每个多方计算参与装置使用的任务数据集索引;所述第一获取模块,用于获取目标计算任务的任务信息;所述第一提取模块,用于基于对应的所述任务数据集索引从专属于多方计算参与装置的数据库中提取任务计算数据;
所述任务处理模块,用于在安全执行环境下加载并执行所述多方计算模型,以根据所述任务计算数据生成所述目标计算任务对应的计算输出信息;所述计算输出信息包括计算结果信息和计算日志信息;第一区块链服务代理模块,用于将所述计算输出信息发送至所述区块链系统;所述第一同步模块,用于在所述在安全执行环境下加载并执行所述多方计算模型的过程中,向所述多方计算协作装置发送至少一次任务执行状态信息;所述第二生成模块,用于在各多方计算参与装置均计算完成所述目标计算任务的情况下,基于各多方计算参与装置发送的所述任务执行状态信息生成协作日志信息;所述第二区块链服务代理模块,还用于将所述协作日志信息发送至区块链系统。9.根据权利要求8所述的多方计算服务系统,其特征在于,所述多方计算参与装置还包括:第一任务管理模块;所述第一任务管理模块,用于所述多方计算参与装置接收多方计算协作装置发送的多方计算协商信息,并基于多方计算参与装置的装置状态信息和所述多方计算协商信息向所述多方计算协作装置返回协商结果;所述多方计算协商信息包括目标计算任务标识、各个多方计算参与装置标识、计算模型要求和数据集要求;所述多方计算协作装置的第二区块链服务代理模块,用于在所述多方计算协作装置在各多方计算参与装置返回的协商结果均为成功结果的情况下,将所述目标计算任务的任务信息发送至所述区块链系统。10.根据权利要求9所述的多方计算服务系统,其特征在于,所述多方计算参与装置还包括:第一数据管理模块所述第一数据管理模块,用于基于归属于多方计算参与装置的原始数据生成至少一条计算数据索引,并向所述区块链系统发送索引注册信息,所述索引注册信息包括所述至少一条计算数据索引,以供所述区块链系统对所述至少一条计算数据索引进行索引注册;所述计算数据索引包括:数据标识、数据类型、数据长度、数据摘要和索引摘要中的至少一个。11.根据权利要求8所述的多方计算服务系统,其特征在于,所述多方计算协作装置还包括:第二贡献度评估模块;所述第二区块链服务代理模块,还用于在各多方计算参与装置均计算完成所述目标计算任务的情况下,从所述区块链系统中获取所述目标计算任务对应的任务处理数据;所述第二贡献度评估模块,用于基于所述任务处理数据和预先确定的贡献度评估模型,生成任务贡献度信息,所述任务贡献度信息包括各多方计算参与装置针对所述目标计算任务的贡献度;所述第二区块链服务代理模块,还用于向所述区块链系统发送所述任务贡献度信息,以供所述区块链系统基于所述任务贡献度信息和各多方计算参与装置发送的任务贡献度信息,最终确定各多方计算参与装置针对所述目标计算任务的贡献度。

技术总结
本发明公开了一种基于区块链系统的多方计算方法和系统,涉及通信技术领域。方法包括:多方计算协作装置将目标计算任务的任务信息发送至区块链系统;多方计算参与装置获取目标计算任务的任务信息,基于对应的任务数据集索引从专属于多方计算协作装置的数据库中提取任务计算数据,并在安全执行环境下加载并执行多方计算模型,然后将该计算输出信息发送至区块链系统;多方计算参与装置还向多方计算协作装置发送至少一次任务执行状态信息;多方计算协作装置基于多个多方计算参与装置发送的任务执行状态信息生成协作日志信息,并将协作日志信息发送至区块链系统。本发明能够提高多方计算的协作效率和可信度。计算的协作效率和可信度。计算的协作效率和可信度。


技术研发人员:加雄伟
受保护的技术使用者:中国联合网络通信集团有限公司
技术研发日:2022.03.30
技术公布日:2022/7/5
转载请注明原文地址: https://www.8miu.com/read-7650.html

最新回复(0)