CN109886687A - 一种基于区块链实现安全多方计算的结果验证方法及系统 - Google Patents

一种基于区块链实现安全多方计算的结果验证方法及系统 Download PDF

Info

Publication number
CN109886687A
CN109886687A CN201910152737.8A CN201910152737A CN109886687A CN 109886687 A CN109886687 A CN 109886687A CN 201910152737 A CN201910152737 A CN 201910152737A CN 109886687 A CN109886687 A CN 109886687A
Authority
CN
China
Prior art keywords
label
output line
terminal
information
block chain
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910152737.8A
Other languages
English (en)
Other versions
CN109886687B (zh
Inventor
安瑞
谢翔
孙立林
谢红军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Matrix Technology (shenzhen) Co Ltd
Original Assignee
Matrix Technology (shenzhen) Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matrix Technology (shenzhen) Co Ltd filed Critical Matrix Technology (shenzhen) Co Ltd
Priority to CN201910152737.8A priority Critical patent/CN109886687B/zh
Publication of CN109886687A publication Critical patent/CN109886687A/zh
Application granted granted Critical
Publication of CN109886687B publication Critical patent/CN109886687B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Storage Device Security (AREA)

Abstract

本说明书提供一种基于区块链实现安全多方计算的结果验证方法及系统,将区块链与安全多方计算相结合,整体上采用了链下计算,链上验证的策略。数据的计算采用的是安全多方计算来实现,保证了原始数据的隐私,链下计算结果的正确性由区块链上的节点来进行验证。仅将链下计算部分的数据标签和计算结果上链,使计算结果可获得公开验证。从而使得无需在区块链上存储大量的数据,并且又能很好地将繁重的计算任务全部转移到链下来,极大地提高了整个系统的可扩展性,使区块链仅完成最纯粹的共识验证部分。本说明书实施例提供的隐私计算方式解决了区块链的可扩展性问题,并且保证了计算结果的可信性。

Description

一种基于区块链实现安全多方计算的结果验证方法及系统
技术领域
本说明书属于计算机技术领域,尤其涉及一种基于区块链实现安全多方计算的结果验证方法及终端。
背景技术
区块链可以理解为一个不可篡改的数据库,并且通过图灵完备的智能合约可以实现链上任何逻辑的执行。但是在区块链上的任何行为,包括交易转账和合约执行,不仅需要花费经济成本,而且要经由链上所有共识节点执行一次逻辑,造成链上资源的极大浪费,也影响了区块链本身的性能,因此,区块链本质上不适用于计算。
MPC(Secure Multi-Party Computation,安全多方计算)可以表示用户在无需进行数据归集的情况下,完成数据协同计算,同时保护数据所有方的原始数据隐私。参与各方在数据保留在各自本地的情况下,执行共同的既定计算逻辑(算法),得到计算结果。计算完成,参与各方除了自己的输入数据和输出结果外,无法获知任何额外信息。
安全多方计算(MPC)作为一个隐私计算技术,与区块链本身无任何关系。但若有区块链中的需求方对数据隐私计算后的结果也有着需求,那么如何保证安全多方计算的结果对于需求方是可信的,提高数据处理的准确性和可信性,是本领域亟需解决的技术问题。
发明内容
本说明书实施例目的在于提供一种基于区块链实现安全多方计算的结果验证方法及系统,提高数据处理的准确性和可信性。
第一方面本说明书实施例提供了一种基于区块链实现安全多方计算的结果验证方法,包括:
第一终端基于安全多方计算生成加密电路和所述加密电路中各条输出线对应的输出线标签;
所述第一终端根据所述输出线标签生成加密信息,并将所述第一终端的第一输入信息转换为第一输入标签;
所述第一终端将所述加密电路、所述加密信息、所述第一输入标签、所述输出线标签对应的真值表发送给第二终端;
所述第二终端与所述第一终端利用不经意传输协议,获取与所述第二终端的第二输入信息相对应的第二输入标签;
所述第二终端利用所述第一输入标签、第二输入标签对所述加密电路进行解密,获得输出线解密标签;
所述第二终端判断所述输出线解密标签和所述加密信息是否匹配,若匹配,则将计算结果信息存储到区块链中,所述计算结果信息包括:所述加密信息、计算输出结果、所述输出线解密标签、所述真值表;
所述区块链中的节点根据所述计算结果信息对所述安全多方计算的结果进行正确性验证。
第二方面,本说明书提供了一种基于区块链实现安全多方计算的结果验证系统,包括:
第一终端、第二终端、区块链,其中,
所述第一终端基于安全多方计算生成加密电路和所述加密电路中各条输出线对应的输出线标签;
所述第一终端根据所述输出线标签生成加密信息,并将所述第一终端的第一输入信息转换为第一输入标签;
所述第一终端将所述加密电路、所述加密信息、所述第一输入标签、所述输出线标签对应的真值表发送给第二终端;
所述第二终端与所述第一终端利用不经意传输协议,获取与所述第二终端的第二输入信息相对应的第二输入标签;
所述第二终端利用所述第一输入标签、第二输入标签对所述加密电路进行解密,获得输出线解密标签;
所述第二终端判断所述输出线解密标签和所述加密信息是否匹配,若匹配,则将计算结果信息存储到区块链中,所述计算结果信息包括:所述加密信息、计算输出结果、所述输出线解密标签、所述真值表;
所述区块链中的节点根据所述计算结果信息对所述安全多方计算的结果进行正确性验证。
第三方面,本说明书提供了一种基于区块链实现安全多方计算的结果验证方法,包括:
利用安全多方计算生成加密电路,和所述加密电路中各条输出线对应的输出线标签;
根据所述输出线标签生成加密信息,并将第一输入信息转换为第一输入标签;
将所述加密电路、所述加密信息、所述第一输入标签、所述输出线标签对应的真值表发送给第二终端,以使得所述第二终端根据所述加密电路、所述第一输入标签、所述真值表对所述加密电路进行解密,获得输出线解密标签,所述第二终端将计算结果信息存储到区块链中,所述计算结果信息包括:所述加密信息、计算输出结果、所述输出线解密标签、所述真值表。
第四方面,本说明书提供了一种基于区块链实现安全多方计算的结果验证终端,包括:
加密电路生成模块,用于利用安全多方计算生成加密电路,和所述加密电路中各条输出线对应的输出线标签;
信息加密模块,用于根据所述输出线标签生成加密信息,并将第一输入信息转换为第一输入标签;
信息发送模块,用于将所述加密电路、所述加密信息、所述第一输入标签、所述输出线标签对应的真值表发送给第二终端,以使得所述第二终端根据所述加密电路、所述第一输入标签、所述真值表对所述加密电路进行解密,获得输出线解密标签,所述第二终端将计算结果信息存储到区块链中,所述计算结果信息包括:所述加密信息、计算输出结果、所述输出线解密标签、所述真值表。
第五方面,本说明书提供了一种基于区块链实现安全多方计算的结果验证方法,包括:
接收第一终端基于安全多方计算生成并发送的加密电路、第一输入标签、所述加密电路的输出线标签对应的真值表、所述输出线标签对应的加密信息;
利用不经意传输协议,获得第二输入信息对应的第二输入标签;
利用所述第一输入标签、第二输入标签对所述加密电路进行解密,获得输出线解密标签;
将计算结果信息存储到区块链中,以使得所述区块链的节点根据所述计算结果信息对所述安全多方计算的结果进行正确性验证;
其中,所述加密信息为所述第一终端根据所述输出线标签生成的,所述计算结果信息包括:所述加密信息、计算输出结果、所述输出线解密标签、所述真值表。
第六方面,本说明书提供了一种基于区块链实现安全多方计算的结果验证终端,包括:
信息接收模块,用于接收第一终端基于安全多方计算生成并发送的加密电路、第一输入标签、所述加密电路的输出线标签对应的真值表、所述输出线标签对应的加密信息;
输入标签获取模块,用于利用不经意传输协议,获得第二输入信息对应的第二输入标签;
解密模块,用于利用所述第一输入标签、第二输入标签对所述加密电路进行解密,获得输出线解密标签;
验证模块,用于将计算结果信息存储到区块链中,以使得所述区块链的节点根据所述计算结果信息对所述安全多方计算的结果进行正确性验证;
其中,所述加密信息为所述第一终端根据所述输出线标签生成的,所述计算结果信息包括:所述加密信息、计算输出结果、所述输出线解密标签、所述真值表。
第七方面,本说明书提供了基于区块链实现安全多方计算的结果验证方法,包括:
接收并存储第二终端发送的计算结果信息,所述计算结果信息由第一终端和所述第二终端基于安全多方计算获得,所述计算结果信息包括:所述第一终端根据加密电路的输出线标签获得的加密信息、加密电路的输出线标签对应的真值表、所述第二终端根据加密电路以及输入标签获得的输出线解密标签、安全多方计算的计算输出结果;
根据所述计算结果信息,验证所述安全多方计算的结果是否准确。
第八方面,本说明书提供了基于区块链实现安全多方计算的结果验证装置,包括:
计算结果接收模块,用于接收并存储第二终端发送的计算结果信息,所述计算结果信息由第一终端和所述第二终端基于安全多方计算获得,所述计算结果信息包括:所述第一终端根据加密电路的输出线标签获得的加密信息、加密电路的输出线标签对应的真值表、所述第二终端根据加密电路以及输入标签获得的输出线解密标签、安全多方计算的计算输出结果;
结果验证模块,用于根据所述计算结果信息,验证所述安全多方计算的结果是否准确。
第九方面,本说明书提供了一种基于区块链实现安全多方计算的结果验证处理设备,包括:至少一个处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述第一方面或第三方面或第五方面或第七方面所述的方法。
第十方面,本说明书提供了一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述第一方面或第三方面或第五方面或第七方面所述的方法。
本说明书提供的基于区块链实现安全多方计算的结果验证方法、系统、终端、装置、处理设备,将区块链与安全多方计算相结合,整体上采用了链下计算,链上验证的策略。数据的计算采用的是安全多方计算来实现,保证了原始数据的隐私,链下计算结果的正确性由区块链上的节点来进行验证。仅将链下计算部分的数据标签和计算结果上链,使计算结果可获得公开验证。从而使得无需在区块链上存储大量的数据,并且又能很好地将繁重的计算任务全部转移到链下来,极大地提高了整个系统的可扩展性,使区块链仅完成最纯粹的共识验证部分。本说明书实施例提供的隐私计算方式解决了区块链的可扩展性问题,并且保证了计算结果的可信性。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书一个实施例中基于区块链实现安全多方计算的结果验证方法的流程示意图;
图2是本说明书一个实施例中加密电路以及对应的真值表的结构示意图;
图3是本说明书一个实施例中加密电路和对应的输出线标签表的示意图;
图4是本说明书一个实施例中加密电路解密的结构示意图;
图5是本说明书实施例中第一终端执行的基于区块链实现安全多方计算的结果验证方法的流程示意图;
图6是本说明书实施例中第二终端执行的基于区块链实现安全多方计算的结果验证方法的流程示意图;
图7是本说明书又一实施例中基于区块链实现安全多方计算的结果验证方法的流程示意图;
图8是本说明书实施例中采用哈希算法对安全多方计算的结果进行验证的交互流程示意图;
图9是本说明书实施例中采用承诺协议对安全多方计算的结果进行验证的交互流程示意图;
图10是本说明书提供的基于区块链实现安全多方计算的结果验证系统一个实施例的模块结构示意图;
图11是本说明书实施例中的基于区块链实现安全多方计算的结果验证终端的结构示意图;
图12是本说明书又一实施例中的基于区块链实现安全多方计算的结果验证终端的结构示意图;
图13是本说明书实施例中的基于区块链实现安全多方计算的结果验证装置的结构示意图;
图14是应用本说明书实施例中基于区块链实现安全多方计算的结果验证方法的服务器的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,区块链具有不可篡改的特性。随着计算机和互联网技术的发展,区块链的应用也越来越广泛。区块链中通常会使用密码学算法,保证数据传输和访问的安全性,但是,区块链本质上通常是不适用于计算。
本说明书实施例中提供了一种基于区块链实现安全多方计算的结果验证方法,将区块链与安全多方计算相结合,整体上采用了链下计算,链上验证的策略。数据的计算采用的是安全多方计算来实现,保证了原始数据的隐私,链下计算结果的正确性可以由区块链上的节点来进行验证。仅将链下计算部分的数据标签和计算结果上链,使计算结果可获得公开验证。从而使得无需在区块链上存储大量的数据,并且又能很好地将繁重的计算任务全部转移到链下来,极大地提高了整个系统的可扩展性,使区块链仅完成最纯粹的共识验证部分。本说明书实施例提供的隐私计算方式解决了区块链的可扩展性问题,并且保证了计算结果的可信性。
本说明书中基于区块链实现安全多方计算的结果验证方法可以应用在客户端或服务器中,客户端可以是智能手机、平板电脑、智能可穿戴设备(智能手表、虚拟现实眼镜、虚拟现实头盔等)、智能车载设备等电子设备。
具体的,图1是本说明书一个实施例中基于区块链实现安全多方计算的结果验证方法的流程示意图,本说明书实施例中的基于区块链实现安全多方计算的结果验证方法主要是基于Garbled Circuits(乱码电路)的两方安全计算。数据的隐私性通常可以采用安全多方计算(MPC)的方式来保护,基于Garbled Circuits的两方计算是一个通用的两方安全计算架构。Garbled Circuits是以电路的形式来执行,它可以让两方针对某个算式来计算答案,而不需要知道两方在计算时所输入的数字。
本说明书实施例中的安全多方计算主要涉及到两个处理终端,本说明书实施例中可以称为第一终端和第二终端。最后,可以将两方安全计算中的数据标签和计算结果发送到区块链中进行存储,区块链的任意节点均可以根据存储的数据标签和计算结果进行验证。如图1所示,本说明书一个实施例中提供的基于区块链实现安全多方计算的结果验证方法的整体过程可以包括:
步骤102、第一终端基于安全多方计算生成加密电路和所述加密电路中各条输出线对应的输出线标签。
本说明书实施例中的安全多方计算可以采用基于Garbled Circuits(乱码电路)的两方安全计算,当然,根据实际需要,也可以采用其他的安全多方计算方法,本说明书实施例不作具体限定。在具体的实施过程中,本说明书实施例中基于Garbled Circuits的两方安全计算通常包括两方,一方用于生成加密电路,一方用于执行加密电路。也可以理解为包括两个终端即第一终端和第二终端,第一终端可以理解为加密电路生成者,第二终端可以理解为加密电路执行者。
加密电路的生成可以根据需要执行的计算函数和计算逻辑生成,图2是本说明书一个实施例中加密电路以及对应的真值表的结构示意图。如图2所示,通常情况下,第一终端可以将进行安全多方计算的计算函数转换为布尔电路,即将计算函数转换为门电路组成的布尔电路,再将电路中的每个门表示为真值表。
图3是本说明书一个实施例中加密电路和对应的输出线标签表的示意图,在生成加密电路后,第一终端还可以给电路中的每条输出线选取两个比特串长度为k的随机数标签如:A0、A1(k可以表示安全参数,通常为128)来代表0、1,即生成输出线对应的输出线标签。如:A0表示0,A1表示1,对应关系只有第一终端知道,生成如图3所示的输出线标签表。图2-图4中的A0、A1、B0、B1、C0、C1、D0、D1、E0、E1、F0、F1、G0、G1、H0、H1、I0、I1均可以表示加密电路中各条线对应的输出线标签。
步骤104、所述第一终端根据所述输出线标签生成加密信息,并将所述第一终端的第一输入信息转换为第一输入标签。
生成加密电路和输出线标签后,第一终端可以对输出线标签进行加密,生成加密信息。本说明书实施例中,第一终端可以将输出线标签进行哈希计算,将各个输出线标签对应的哈希值作为加密信息,还可以对输出线标签进行基于承诺协议的承诺计算,生成输出线标签对应的承诺值,将各个输出线标签对应的承诺值作为加密信息。当然,根据实际需要,还可以采用其他的加密方式,本说明书实施例不作具体限定。
第一终端还需要对其自身的输入信息即第一输入信息进行加密,将第一输入信息转换为第一输入标签。例如:第一终端可以将第一输入信息转换为对应于布尔电路输入的布尔值,然后将布尔值的每一比特都用对应于加密电路输入的标签A0、A1等来替换,将所有的第一输入信息都进行替换后,获得第一输入信息对应的第一输入标签。
步骤106、所述第一终端将所述加密电路、所述加密信息、所述第一输入标签、所述输出线标签对应的真值表发送给第二终端。
第一终端完成上述步骤后,可以将加密电路、第一输入标签、输出线标签对应的真值表等均发送给第二终端,由第二终端进行加密电路的计算。
步骤108、所述第二终端与所述第一终端利用不经意传输协议,获取与所述第二终端的第二输入信息相对应的第二输入标签。
第二终端已有加密电路和第一终端的第一输入信息对应的第一输入标签,还需要第二终端自身的第二输入信息的第二标签,才能计算出加密电路。本说明书实施例中,第二终端和第一终端利用不经意传输协议,使得第二终端获得第二终端的第二输入信息对应的第二输入标签。
不经意传输协议,通常可以简写为OT协议(Oblivious Transfer),它指的是发送者从一个值集合中向接收者发送单个值的问题,这里发送者不知道发送的是哪一个值,而且接收者也不能获知除了接收值之外的其它任何值。形式化描述为:发送者有由N个值组成的集合,接收者有索引i,0≤i≤N。协议执行完成,接收者只知道Ni,不知道Nj,这里j≠i,并且发送者不知道i,可以称为1-out-of-NOblivious Transfer。
对于N=2,即为1-out-of-2Oblivious Transfer,接收者在计算加密电路之前,首先根据自己的输入数据获得与之相关的标签,由于标签是发送者定义的,因此接收者与发送者之间执行此OT协议。接收者按照其输入的每个比特,以b=0/1为输入,发送者以标签为输入,协议执行完成,接收者获得标签Xb。协议执行过程,满足以下性质:
1)、发送者不可获知接收者选择的是哪个标签;
2)、接收者无法知道另一个标签X1-b
本说明书实施例中,第一终端定义了输入信息对应的标签,第二终端和第一终端之间执行不经意传输协议,第二终端可以根据自己的第二输入信息获得对应的第二输入标签,第一终端无法获得第二终端的第二输入信息。
步骤110、所述第二终端利用所述第一输入标签、第二输入标签对所述加密电路进行解密,获得输出线解密标签。
第二终端获得第一终端发送的加密电路、第一输入标签,以及通过不经意传输协议获得的第二输入标签,可以根据第一输入标签和第二输入标签对加密电路进行解密,获得加密电路中每个逻辑门对应的输出线解密标签。图4是本说明书一个实施例中加密电路解密的结构示意图,如图4所示,在对加密电路进行解密时,可以逐个门依次进行解密,并将每个门解密后的输出值传递给下一个门,作为下一个门解密时的输入。
步骤112、所述第二终端判断所述输出线解密标签和所述加密信息是否匹配,若匹配,则将计算结果信息存储到区块链中,所述计算结果信息包括:所述加密信息、计算输出结果、所述输出线解密标签、所述真值表。
第二终端将加密电路进行解密计算之后,可以将解密计算出的输出线解密标签和第一终端发送的加密信息进行匹配,如:若加密信息为第一终端将输出线标签进行哈希计算获得的,则第二终端可以将输出线解密标签进行哈希计算后,判断哈希计算的结果与对应的加密信息的值是否相同,若相同,则可以认为输出线解密标签和加密信息匹配。若加密信息是第一终端基于承诺协议将输出线标签转换为对应的承诺值获得的,则第二终端可以利用承诺协议,对加密信息进行打开承诺计算,判断打开承诺计算获得的计算结果和第二终端计算出的输出线解密标签是否相同,若相同,则可以认为输出线解密标签和加密信息匹配。
第二终端判断输出线解密标签和加密信息匹配后,可以确定当前的安全多方计算结果是正确的,可以将计算结果信息如:加密信息、计算输出结果、输出线解密标签、输出线标签对应的真值表等发送到区块链上存储。其中,计算输出结果可以在第二终端解密加密电路时,获得的最后的输出结果,如图4中的I0
步骤114、所述区块链中的节点根据所述计算结果信息对所述安全多方计算的结果进行正确性验证。
第二终端将安全多方计算的计算结果信息上链后,区块链中的任意节点,可以获取到计算结果信息,并可以根据计算结果信息对安全多方计算的结果进行正确性验证,如:基于哈希算法的一致性或承诺协议来对安全多方计算的结果进行验证,验证的方法可以参考第二终端的验证方式,还可以对计算结果信息中的其他数据进行验证,本说明书实施例不作具体限定。
例如:若加密信息为第一终端对所述输出线标签进行哈希计算获得的,计算结果信息还包括第一终端计算获得的输出线标签的统一哈希值,统一哈希值可以理解为第一终端将所有的输出线标签进行哈希计算获得的哈希值。则区块链的各节点可以采用下述方式进行验证:
验证加密信息与统一哈希值是否匹配,如:可以计算所有加密信息的哈希值,判断计算出的哈希值与统一哈希值是否相同,若相同,则认为加密信息与所述统一哈希值匹配,则继续验证加密信息与输出线解密标签的哈希值是否相同,若相同,则继续验证计算结果信息中的真值表的哈希值与第一终端计算的哈希真值表是否匹配,若匹配,则根据真值表获取输出线解密标签对应的比特值,继续验证输出线解密标签对应的比特值与计算输出结果是否匹配,若匹配,则可以确定安全多方计算的结果正确。
若加密信息为第一终端利用承诺协议将各输出线标签分别生成对应的承诺值,则区块链的各节点可以采用下述方式验证安全多方计算的结果是否准确:
验证加密信息与输出线解密标签是否匹配,如:利用承诺协议将加密信息进行打开承诺计算,获得加密信息中的承诺值对应的打开值,判断打开值与输出线解密标签是否相同,若相同则认为加密信息与输出线解密标签匹配,则继续验证计算结果信息中的真值表的哈希值与第一终端计算的哈希真值表是否匹配,若匹配,则根据所述真值表获取所述输出线解密标签对应的比特值,继续验证输出线解密标签对应的比特值与计算输出结果是否匹配,若匹配,则确定安全多方计算的结果正确。
需要说明的是,本说明书实施例中的第一终端、第二终端分别表示加密电路的生成者和执行者,其结构或功能上可以没有实际的区别,根据实际需要也可以将第二终端作为电路的生成者、第一终端作为电路的执行者,本说明书实施例不作具体限定。
本说明书实施例提供的基于区块链实现安全多方计算的结果验证方法,将区块链与安全多方计算相结合,整体上采用了链下计算,链上验证的策略。数据的计算采用的是安全多方计算来实现,保证了原始数据的隐私,链下计算结果的正确性由区块链上的节点来进行验证。仅将链下计算部分的数据标签和计算结果上链,使计算结果可获得公开验证。从而使得无需在区块链上存储大量的数据,并且又能很好地将繁重的计算任务全部转移到链下来,极大地提高了整个系统的可扩展性,使区块链仅完成最纯粹的共识验证部分。本说明书实施例提供的隐私计算方式解决了区块链的可扩展性问题,并且保证了计算结果的可信性。
图5是本说明书实施例中第一终端执行的基于区块链实现安全多方计算的结果验证方法的流程示意图,如图5所示,在上述实施例的基础上,本说明书一个实施例中还提供了第一终端侧执行的基于区块链实现安全多方计算的结果验证方法,第一终端可以是客户端或服务器或其它能够进行数据处理的装置。
具体的,如图5所示,本说明书实施例中第一终端侧执行的基于区块链实现安全多方计算的结果验证方法可以包括:
步骤502、利用安全多方计算生成加密电路,和所述加密电路中各条输出线对应的输出线标签。
在具体的实施过程中,第一终端可以根据要进行数据计算的函数,生成对应的加密电路,并生成各条输出线对应的输出线标签。加密电路和输出线标签的生成方式可以参考上述实施例的记载,此处不再赘述。
如图2-图3所示,本说明书实施例中每条输出线可以对应有两个输出线标签,假设总共有n条输出线,则可以定义输出线标签分别为
步骤504、根据所述输出线标签生成加密信息,并将第一输入信息转换为第一输入标签。
在具体的实施过程中,第一终端可以对输出线标签进行加密计算,生成对应的加密信息,并将自身的第一输入信息转换为对应的第一输入标签,其中第一输入标签的转换可以参考上述实施例的记载,此处不再赘述。
其中,对输出线标签进行加密获得加密信息的方法可以根据实际需要进行选择,需要注意的是,在后续第二终端以及区块链各节点对安全多方计算的结果进行验证时,需要采用与加密信息的加密方式对应的方法进行验证。本说明书一些实施例中可以采用哈希计算或承诺协议,对输出线标签进行加密获得加密信息,如:
本说明书一些实施例中,第一终端可以将各个输出线标签分别进行哈希计算,将获得的哈希计算结果作为加密信息。此外,第一终端还可以将输出线标签对应的真值表进行哈希计算,获得哈希真值表,并将加密信息和哈希真值表上传到区块链进行存储。具体可以采用下述的算法1进行计算:
算法1:
上述算法1中:n可以表示加密电路的输出线的总数量,outi0、outi1可以表示第i条输出线的输出线标签的哈希值,可以表示第i条输出线的输出线标签,table可以表示输出线标签与0/1之间对应的真值表,tHash可以表示哈希真值表。
利用哈希算法对安全多方计算中的数据标签进行哈希计算加密,后续可以通过哈希算法的一致性来验证安全多方计算的结果的准确性,实现了链下计算,链上验证,方法简单,提高了数据处理的准确性、可信性和系统的可扩展性。
本说明书另一些实施例中,第一终端还可以采用承诺协议,将各输出线标签分别生成对应的承诺值,将获得的承诺值作为加密信息。承诺协议可以理解为密码学原语,它允许承诺一个选定的值(或选定的声明),同时使得值对其他人不可见,并且之后能够揭示出所承诺的值。承诺协议的设计使得一方在承诺后不能改变所承诺的值或声明:即承诺协议具有约束力。承诺协议在许多密码学协议中具有重要的应用,包括安全硬币投掷,零知识证明和安全多方计算等。
本说明书一些实施例中,承诺协议主要可以包括两个部分:
承诺生成:由发送者生成一个关于待隐藏值的承诺,并发送给接收者。
承诺打开:发送者在收到承诺后,将承诺打开,并由接受者验证。
例如:发送者将所要发送的消息放进一个锁着的盒子,然后将盒子给接收者。对于接收者来说,盒子里面的消息不可见,也无法打开盒子。由于盒子由接收者所持有,因此消息不可被改变。之后,发送者将盒子打开就可揭示出消息。
本说明书实施例中的承诺协议可以由以下三个算法构成(Setup,Commit,Open),
1)、Setup(设置):CK←Setup(1k),通过安全参数k生成公共承诺密钥,CK可以表示承诺密钥。
2)、Commit(生成承诺计算):对任意消息m,(c,d)←CommitCK(m),通过承诺生成算法生成对于消息m的承诺和打开这一对值。c=c(m)为承诺值,d=d(m)为打开值,CK为承诺密钥。
3)、Open(打开承诺计算):这里当c不是任何一个消息的有效承诺时,则返回⊥。若打开得到的满足则承诺的正确性得到验证。
第一终端可以利用上述承诺协议,对输出线标签进行生成承诺计算,获得输出线标签对应的承诺值,并将所有的承诺值作为加密信息。此外,第一终端还可以将输出线标签对应的真值表进行哈希计算,获得哈希真值表,并将加密信息和哈希真值表上传到区块链进行存储。具体可以采用下述的算法2进行计算:
算法2:
上述算法2中:n可以表示加密电路的输出线的总数量,Wi0、Wi1可以表示第i条输出线的输出线标签的承诺值,可以表示第i条输出线的输出线标签,table可以表示输出线标签与0/1之间对应的真值表,tHash可以表示哈希真值表。
利用承诺协议对安全多方计算中的数据标签进行承诺值计算加密,后续可以通过承诺协议来验证安全多方计算的结果的准确性,实现了链下计算,链上验证,方法简单,提高了数据处理的准确性、可信性和系统的可扩展性。
在上述实施例的基础上,本说明书一些实施例中,第一终端在计算加密信息时还可以将计算获得的加密信息如:各输出线标签的哈希值、各输出线标签对应的承诺值,上传到区块链进行存储,还可以计算输出线标签对应的真值表的哈希真值表tHash,并将哈希真值表tHash上传至区块链进行存储。
此外,在使用哈希算法对输出线标签进行加密时,第一终端还可以将输出线标签的哈希值发送给第二终端,由第二终端对所有的哈希值进行统一的哈希计算,获得输出线标签的统一哈希值,并将统一哈希值上传到区块链进行存储。具体可以采用下述算法3进行处理:
算法3:
1:out←Hash(out10,out11,out20,out21,...,outn0,outn1)
上述算法3中:out可以表示输出线标签的统一哈希值,out10~outn1可以表示第一终端计算的输出线标签的哈希值。
本说明书实施例,通过将输出线标签的哈希值,再进行统一的哈希处理,不直接将所有的输出线标签的哈希值上链存储,减少了上链的数据量,提高了数据处理效率和区块链系统的性能。
步骤506、将所述加密电路、所述加密信息、所述第一输入标签、所述输出线标签对应的真值表发送给第二终端,以使得所述第二终端根据所述加密电路、所述第一输入标签、所述真值表对所述加密电路进行解密,获得输出线解密标签,所述第二终端将计算结果信息存储到区块链中,所述计算结果信息包括:所述加密信息、计算输出结果、所述输出线解密标签、所述真值表。
在具体的实施过程中,第一终端将安全多方计算中的数据标签进行加密后,可以将加密电路、加密信息、第一输入标签、输出标签对应的真值表等发送给第二终端。其中,输出标签对应的真值表可以参考下述表1:
表1:真值表
第二终端可以根据接收到的数据,对加密电路进行解密计算,获得加密电路中各个输出线对应的输出线解密标签以及计算输出结果。第二终端可以将计算结果信息如:加密信息、计算输出结果、输出线解密标签、真值表等,上传至区块链中存储,区块链各节点均可以根据计算结果信息对安全多方计算的结果进行正确性验证。其中,第二终端对加密电路进行解密的方法以及区块链各节点进行安全多方计算的结果验证均可以参考上述实施例的记载,此处不再赘述。
本说明书实施例提供的基于区块链实现安全多方计算的结果验证方法,将区块链与安全多方计算相结合,整体上采用了链下计算,链上验证的策略。数据的计算采用的是安全多方计算来实现,保证了原始数据的隐私,链下计算结果的正确性可以由区块链上的节点来进行验证。仅将链下计算部分的数据标签和计算结果上链,使计算结果可获得公开验证。从而使得无需在区块链上存储大量的数据,并且又能很好地将繁重的计算任务全部转移到链下来,极大地提高了整个系统的可扩展性,使区块链仅完成最纯粹的共识验证部分。提高了区块链的可扩展性,并且保证了计算结果的准确性和可信性。
本说明书中上述方法的各个实施例均采用递进的方式描述,步骤并表示严格的先后顺序,根据实际需要可以调整各个步骤的顺序。各个实施例之间相同相似的部分互相参加即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参加方法实施例的部分说明即可。
本说明书一些实施例中还提供了基于第二终端执行的基于区块链实现安全多方计算的结果验证方法,第二终端可以是客户端或服务器。图6是本说明书实施例中第二终端执行的基于区块链实现安全多方计算的结果验证方法的流程示意图,如图6所示,本说明书实施例提供的第二终端执行的基于区块链实现安全多方计算的结果验证方法的流程可以包括:
步骤602、接收第一终端基于安全多方计算生成并发送的加密电路、第一输入标签、所述加密电路的输出线标签对应的真值表、所述输出线标签对应的加密信息。
在具体的实施过程中,第一终端可以参考上述实施例的记载,生成用于安全多方计算的加密电路以及加密电路中各输出线对应的输出线标签,并生成输出线标签与0/1对应的真值表。第一终端还可以将自身的第一输入信息转换为对应的第一输入标签,并将输出线标签进行加密生成加密信息,将加密信息以及输出线标签对应的哈希真值表等上传至区块链进行存储。第一终端还可以将生成的加密电路、加密信息、第一输入标签、输出线标签对应的真值表等发送给第二终端,第二终端接收第一终端发送的数据,以便后续进行加密电路的解密计算。
步骤604、利用不经意传输协议,获得第二输入信息对应的第二输入标签。
第二终端接收到第一终端发送的信息后,可以与第一终端执行不经意传输协议,获得第二终端的第二输入信息对应的第二输入标签。第二终端利用不经意传输协议获得第二输入标签的方法可以参考上述实施例的记载,此处不再赘述。
步骤606、利用所述第一输入标签、第二输入标签对所述加密电路进行解密,获得输出线解密标签。
第二终端获得第二输入标签后,可以利用第一终端发送的第一输入标签,结合第二输入标签对加密电路进行解密,依次获得各个输出线对应的输出线解密标签以及最终的计算结果即加密电路中最后一个逻辑门的输出线解密标签如:图4中的I0。解密的过程可以参考上述实施例的记载,此处不再赘述。
需要说明的是,本说明书实施例中,每个输出线对应有2个输出线标签,也对应有两个加密信息,第二终端在对加密电路进行解密时,可以获得其中一个输出线标签outL1、outL2、...、outLn
步骤608、将计算结果信息存储到区块链中,以使得所述区块链的节点根据所述计算结果信息对所述安全多方计算的结果进行正确性验证。
其中,所述加密信息为所述第一终端根据所述输出线标签生成的,所述计算结果信息包括:所述加密信息、计算输出结果、所述输出线解密标签、所述真值表。
第二终端将加密电路解密获得输出线解密标签以及计算输出结果后,可以将计算结果信息包括:加密信息、计算输出结果、输出线解密标签、输出线标签对应的真值表等上传至区块链进行存储。区块链的各个节点均可以获取第二终端上传的计算结果信息,并基于计算结果信息对安全多方计算的结果进行验证。
本说明书实施例提供的基于区块链实现安全多方计算的结果验证方法,将区块链与安全多方计算相结合,整体上采用了链下计算,链上验证的策略。数据的计算采用的是安全多方计算来实现,保证了原始数据的隐私,链下计算结果的正确性可以由区块链上的节点来进行验证。仅将链下计算部分的数据标签和计算结果上链,使计算结果可获得公开验证。从而使得无需在区块链上存储大量的数据,并且又能很好地将繁重的计算任务全部转移到链下来,极大地提高了整个系统的可扩展性,使区块链仅完成最纯粹的共识验证部分。提高了区块链的可扩展性,并且保证了计算结果的准确性和可信性。
在上述实施例的基础上,本说明书一些实施例中,所述将计算结果信息存储到区块链中,包括:
判断所述输出线解密标签和所述加密信息是否匹配,若匹配,则将计算结果信息存储到区块链中。
在具体的实施过程中,第二终端在对加密电路进行解密获得输出线解密标签后,可以先对计算结果进行初步的验证,如:可以判断输出线解密标签和加密信息是否匹配,若匹配,则将计算结果信息上传至区块链中存储,若不匹配,则说明安全多方计算结果有误,可以重新进行计算或终止计算或报警提示相关工作人员处理等。
本说明书实施例,第二终端在将计算结果信息上传至区块链之前,先对计算结果进行初步的验证,提高了数据处理的准确性,避免上传错误的计算结果,浪费计算资源。
在上述实施例的基础上,本说明书一些实施例中,第二终端在进行初步验证时,可以采用下述两种方法进行:
1、若所述加密信息为所述第一终端将各所述输出线标签分别进行哈希计算获得的哈希计算结果;
相应地,所述判断所述输出线解密标签和所述加密信息是否匹配,包括:
判断所述输出线解密标签的哈希值与所述第一终端生成的对应的加密信息是否相同,若相同,则确定所述输出线解密标签和所述加密信息匹配。
在具体的实施过程中,若加密信息是第一终端通过对各个输出线标签分别进行哈希计算获得的哈希计算结果,则可以利用哈希算法的一致性进行验证。具体可以采用下述算法4,判断第二终端计算出的输出线解密标签的哈希值与第一终端通过哈希计算获得的对应的加密信息是否相同,若相同,则确定输出线解密标签和加密信息匹配,可以将计算结果信息上传至区块链存储。
算法4:
上述算法4中:n可以表示加密电路中输出线的总数量,outLi可以表示第二终端通过解密获得的第i条输出线的输出线解密标签,outi0、outi1可以表示第一终端对第i条输出线的输出线标签进行哈希计算获得的加密信息。
如算法4所示,每条输出线对应有2个输出线标签,对应有两个输出线标签的哈希值加密信息,当第i条输出线对应的输出线解密标签的哈希值等于第i条输出线对应的一个输出线标签的哈希值即加密信息outi0或outi1,即可以说明输出线解密标签和加密信息匹配。
需要说明的是,第二终端在进行初步验证时,需要每一条输出线的输出线解密标签的哈希值与第一终端通过哈希计算获得的对应输出线的输出线标签的哈希值均相同,才能确定输出线解密标签和加密信息匹配,若出现一个不相同,则验证失败,说明输出线解密标签和加密信息不匹配。
当加密信息为第一终端利用哈希算法计算获得时,利用哈希算法的一致性进行初步验证,可以实现安全多方计算结果的快速准确性验证,提高数据处理效率和准确性。
2、若所述加密信息为所述第一终端利用承诺协议将各所述输出线标签分别生成对应的承诺值;
相应地,所述判断所述输出线解密标签和所述加密信息是否匹配,包括:
接收所述第一终端发送的用于生成所述承诺值的加密参数;
利用所述承诺协议和所述加密参数对每个承诺值进行打开承诺计算,判断所述输出线解密标签与对应的所述打开承诺计算的结果是否相同,若相同,则确定所述输出线解密标签和所述加密信息匹配。
在具体的实施过程中,若加密信息为第一终端利用承诺协议将各个输出线标签进行承诺计算获得的承诺值时,第二终端可以采用下述算法5,对第一终端发送过来的每个承诺值进行打开承诺计算,判断打开承诺计算的结果与对应的第二终端通过解密计算获得的输出线解密标签是否相同,若相同,则确定输出线解密标签和加密信息匹配,可以将计算结果信息上传至区块链存储。其中,承诺协议中的打开承诺计算原理可以参考上述实施例的记载,此处不再赘述。
算法5:
上述算法5中:n可以表示加密电路中输出线的总数量,Wi 0、Wi 1可以表示第一终端计算的第i条输出线的输出线标签的承诺值,ri 0、ri 1可以表示第一终端在计算第i条输出线的输出线标签的承诺值时使用的随机数,outLi可以表示第二终端通过解密获得的第i条输出线的输出线解密标签。
其中,承诺协议以及打开承诺的计算原理可以参考上述实施例的记载,此处不再赘述。
如算法5所示,每条输出线对应有2个输出线标签,对应有两个输出线标签的承诺值,当第i条输出线对应的输出线解密标签等于第i条输出线对应的一个输出线标签的承诺值的打开值,即可以说明输出线解密标签和加密信息匹配。
需要说明的是,第二终端在进行初步验证时,需要每一条输出线的输出线解密标签与打开第一终端通过承诺协议获得的对应输出线的输出线标签的承诺值均相同,才能确定输出线解密标签和加密信息匹配,若出现一个不相同,则验证失败,说明输出线解密标签和加密信息不匹配。
当加密信息为第一终端利用承诺协议计算获得时,利用承诺协议进行打开承诺计算进行初步验证,可以实现安全多方计算结果的快速准确性验证,提高数据处理效率和准确性。
本说明书中上述方法的各个实施例均采用递进的方式描述,步骤并表示严格的先后顺序,根据实际需要可以调整各个步骤的顺序。各个实施例之间相同相似的部分互相参加即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参加方法实施例的部分说明即可。
本说明书一些实施例中还提供了基于区块链终端执行的基于区块链实现安全多方计算的结果验证方法,本说明书实施例中的区块链可以表示能够进行区块链计算的客户端或服务器。图7是本说明书又一实施例中基于区块链实现安全多方计算的结果验证方法的流程示意图,如图7所示,本说明书实施例提供的区块链终端执行的基于区块链实现安全多方计算的结果验证方法的流程可以包括:
步骤702、接收并存储第二终端发送的计算结果信息,所述计算结果信息由第一终端和所述第二终端基于安全多方计算获得,所述计算结果信息包括:所述第一终端根据加密电路的输出线标签获得的加密信息、加密电路的输出线标签对应的真值表、所述第二终端根据加密电路以及输入标签获得的输出线解密标签、安全多方计算的计算输出结果。
第一终端和第二终端可以利用安全多方计算进行数据的处理,并将数据计算过程中的数据标签以及计算输出结果等信息上传至区块链进行存储。第一终端和第二终端的安全多方计算处理过程可以参考上述实施例的记载,此处不再赘述。区块链可以接收第二终端发送的计算结果信息如:第一终端根据加密电路的输出线标签获得的加密信息、安全多方计算的计算输出结果、第二终端根据加密电路以及输入标签获得的输出线解密标签、加密电路的输出线标签对应的真值表等。
步骤704、根据所述计算结果信息,验证所述安全多方计算的结果是否准确。
区块链中的任意节点可以获取到计算结果信息,并根据计算结果信息对安全多方计算的结果进行准确性验证。
本说明书实施例中,区块链中的各个节点可以采用如下方式对安全多方计算的结果进行验证:
1、若所述加密信息为所述第一终端对所述输出线标签进行哈希计算获得的,所述计算结果信息还包括所述第一终端计算获得的所述输出线标签的统一哈希值,则区块链中的节点的验证方法可以参考如下:
验证加密信息与统一哈希值是否匹配,具体可以采用下述算法6,先计算所有加密信息的哈希值,再验证所有加密信息的哈希值与输出线标签的统一哈希值是否相同,若相同则进入下一步验证:
算法6:
上述算法6中:n可以表示加密电路中输出线的总数量,out可以表示输出线标签的统一哈希值,out10,out11,...,outn0,outn1可以表示加密信息。
当确定加密信息与统一哈希值匹配后,进一步验证加密信息与输出线解密标签的哈希值是否相同,具体可以采用上述算法4进行验证,若验证通过,则进行下一步验证。
当确定加密信息与输出线解密标签的哈希值相同后,则验证输出线标签对应的真值表的哈希值与第一终端上传的哈希真值表tHash是否相等,若相等,则可以采用下述算法7根据真值表获取输出线解密标签对应的比特值,验证输出线解密标签对应的比特值与计算输出结果是否匹配。
算法7:
上述算法7中:n可以表示加密电路中输出线的总数量,biti可以表示第i个输出线对应的输出线解密标签的比特值,lookup可以表示查询函数,outLi可以表示第i个输出线对应的输出线解密标签,Bi可以表示第i个输出线的输出结果。
若上述所有验证均通过,则可以说明安全多方计算的结果正确。
2、若所述加密信息为所述第一终端利用承诺协议将各所述输出线标签分别生成对应的承诺值,则区块链中的节点的验证方法可以参考如下:
验证加密信息与输出线解密标签是否匹配,具体可以采用上述实施例中的算法5对输出线标签的承诺值进行打开承诺计算,判断计算出的结果是否与对应的输出线的一个输出线标签相同,若相同,则进行下一步验证。
当确定加密信息与输出线解密标签匹配后,则验证输出线标签对应的真值表的哈希值与第一终端上传的哈希真值表tHash是否相等,若相等,则可以采用上述实施例中的算法7根据真值表获取输出线解密标签对应的比特值,验证输出线解密标签对应的比特值与计算输出结果是否匹配。
本说明书实施例中,区块链可以根据第一终端和第二终端采用的安全多方计算的加密方式,采用对应的方法对安全多方计算的结果进行正确性验证,将区块链与安全多方计算相结合,整体上采用了链下计算,链上验证的策略。数据的计算采用的是安全多方计算来实现,保证了原始数据的隐私,链下计算结果的正确性由区块链上的节点来进行验证。仅将链下计算部分的数据标签和计算结果上链,使计算结果可获得公开验证。从而使得无需在区块链上存储大量的数据,并且又能很好地将繁重的计算任务全部转移到链下来,极大地提高了整个系统的可扩展性,使区块链仅完成最纯粹的共识验证部分。解决了区块链的可扩展性问题,并且保证了计算结果的可信性。
下面结合具体示例,介绍本说明书实施例中两种不同的实施方案:
方案一:哈希算法加密
图8是本说明书实施例中采用哈希算法对安全多方计算的结果进行验证的交互流程示意图,如图8所示,本说明书实施例中采用哈希算法进行安全多方计算的验证过程可以包括:
1、电路生成者A即上述实施例中的第一终端,首先为加密电路的每根线生成输出线标签,假设总共有n条输出线,定义输出线标签分别为
2、电路生成者A调用上述算法1将所有输出线的两个输出线标签做哈希计算,并将生成的哈希值out10、out11、out20、out21、...outn0、outn1等上链存储,同时将输出线标签与0/1之间的对应表table的哈希真值表tHash上链存储。
注意:本说明书一些实施例中还可以由电路生成者A将输出线标签的哈希值发送给电路执行者B即上述实施例中的第二终端,电路执行者B可以调用上述实施例中的算法3将所有哈希值再做一个哈希,并将最终的统一哈希值out存储上链。实现了减少上链的数据量,提高数据处理效率和区块链的性能。
3、电路生成者A将加密电路、与自己输入x相对应的标签即上述实施例中的第一输入标签、输出线标签与0、1之间对应关系的真值表table、输出线标签的哈希值均发送给电路执行者B。
4、电路执行者B与电路生成者A之间执行OT协议,获得与第二输入信息y相对应的第二输入标签。
5、电路执行者B执行加密电路,执行电路过程即为以第一输入标签和第二输入标签对每个门依次进行双重AES(Advanced Encryption Standard,高级加密标准)解密。执行完成,电路执行者B获得每个输出线的其中一个标签即输出线解密标签,记为outL1、outL2、...、outLn
6、电路执行者B调用上述算法4验证计算出的输出线解密标签的哈希值是否与电路生成者A发送过来的输出线标签的哈希值相等。若出现不一致,则此次验证失败,说明计算结果不正确;若全部一致,则进入下一步;
7、电路执行者B将计算结果的正确性证明proof即计算结果信息上链。
计算结果的正确性证明可以记为:proof=(a,b,c,d,e),其中a可以表示为电路生成者A计算的所有输出线标签的统一哈希值;b可以表示为电路生成者A计算的每个输出线的两个输出线标签的两个哈希值;c为电路执行者B计算的所有输出线解密标签;d可以表示为计算输出结果rst,这里rst由n个比特组成,记rst=B1B2...Bn;e可以表示输出线标签与0、1之间的对应表table。
具体为:a=out,b=(out10,out11,out20,out21,...,outn0,outn1),c=(outL1,outL2,...,outLn),d=rst,e=table。
即结果的正确性证明为:
proof=(out,(out10,out11,out20,out21,...,outn0,outn1),(outL1,outL2,...outLn),rst,table)
区块链验证
区块链上的任何节点验证计算结果是否正确时,首先从链上查询到对应的结果的正确性证明proof。验证过程为:
8、区块链上的节点首先调用算法6验证a与b是否匹配,即验证b的哈希值是否与a相等。若相等,则进入下一步验证。
9、验证b中的哈希值是否与c的哈希值相同,此步骤可直接调用算法4完成。若成立,则进入下一步验证。
10、验证输出线标签的真值表table的哈希值是否与tHash相等,若相等,则调用算法7根据table,执行lookup查找出c中的每个输出线解密标签对应的比特值,验证每个输出线解密标签对应的比特是否与d的每个比特相等。
若上述所有验证均通过,则此MPC结果的正确性得以验证。
方案二:承诺协议加密
图9是本说明书实施例中采用承诺协议对安全多方计算的结果进行验证的交互流程示意图,如图9所示,本说明书实施例中采用承诺协议进行安全多方计算的验证过程可以包括:
1、电路生成者A即上述实施例中的第一终端,首先为加密电路的每根线生成输出线标签,假设总共有n条输出线,定义输出线标签分别为
2、电路生成者A调用上述算法2,通过对所有输出线的两个输出线标签进行commit生成对应的承诺值,并将生成的承诺值等上链存储,同时将输出线标签与0/1之间的对应表table的哈希真值表tHash上链存储。
3、电路生成者A将加密电路、与自己输入相对应的标签即第一输入标签、输出线标签与0、1之间对应关系的真值表table、输出线标签对应的承诺值均发送给电路执行者B即上述实施例中的第二终端。
4、电路执行者B与电路生成者A之间执行OT协议,获得与第二输入信息相对应的第二输入标签。
5、电路执行者B执行加密电路,执行电路过程即为以第一输入标签和第二输入标签对对每个门依次进行双重AES解密。执行完成,电路执行者B获得每个输出线的其中一个标签即输出线解密标签,记为outL1、outL2、...、outLn
6、加密电路执行完成后,电路生成者A将生成承诺所用的随机数(即上述实施例中的加密参数)等发送给电路执行者B。
7、电路执行者B执行上述算法5对每个承诺值进行打开承诺计算open,打开所有承诺值,并验证计算出的标签是否与其中一个承诺值对应的输出线解密标签一致。若出现不一致,则此次验证失败,说明计算结果不正确;若全部一致,则进入下一步。
8、电路执行者B将计算结果的正确性证明proof即计算结果信息上链。
计算结果的正确性证明记为:proof=(a',b',c',d'),其中a'为电路生成者A计算的每个输出线的输出线标签的两个承诺值;b'为电路执行者B计算的所有的输出线解密标签;c'为计算输出结果rst,这里rst由n个比特组成,记rst=B1B2...Bn;d'为对应表table。
具体为:
即结果的正确性证明为:
区块链验证
区块链上的任何节点验证计算结果是否正确时,首先从链上查询到对应的结果的正确性证明proof。验证过程为:
9、区块链上的节点调用算法5验证a'与b'是否匹配,即验证承诺值中的标签是否与执行所得到的输出线解密标签一致。若一致,则进入下一步验证;
10、验证真值表table的哈希值是否与tHash相等,若相等,则调用上述算法7,根据输出线标签的真值表d',查找出b'中的每个标签对应的比特值,验证每个标签对应的比特是否与c'的每个比特相等。
若上述所有验证均通过,则此MPC结果的正确性得以验证。
本说明书实施例,将基于Garbled Circuits的两方安全计算中的数据标签上链存储,通过哈希算法的一致性来验证计算是否正确。或在基于Garbled Circuits的两方安全计算中,通过生成输出线标签的承诺,并将承诺上链存储,使用承诺方案来验证结果是否正确。将计算结果的正确性证明存储在区块链上,使得链下计算结果的正确性能够让所有人可公开验证,从而使得无需在区块链上存储大量的数据,并且又能很好地将繁重的计算任务全部转移到链下来,极大地提高了整个系统的可扩展性。使区块链仅完成最纯粹的共识验证部分。解决了区块链的可扩展性问题,并且保证了计算结果的可信性。
本说明书中上述方法的各个实施例均采用递进的方式描述,步骤并表示严格的先后顺序,根据实际需要可以调整各个步骤的顺序。各个实施例之间相同相似的部分互相参加即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参加方法实施例的部分说明即可。
基于上述所述的基于区块链实现安全多方计算的结果验证方法,本说明书一个或多个实施例还提供一种基于区块链实现安全多方计算的结果验证系统、终端、基于区块链实现安全多方计算的结果验证装置。所述的系统、终端和装置可以包括使用了本说明书实施例所述方法的系统(包括分布式系统)、软件(应用)、模块、组件、服务器、客户端等并结合必要的实施硬件的装置。基于同一创新构思,本说明书实施例提供的一个或多个实施例中的服务器如下面的实施例所述。由于服务器解决问题的实现方案与方法相似,因此本说明书实施例具体的服务器、客户端、终端的实施可以参加前述方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
具体地,图10是本说明书提供的基于区块链实现安全多方计算的结果验证系统一个实施例的模块结构示意图,如图10所示,本说明书中提供的基于区块链实现安全多方计算的结果验证系统可以包括:第一终端101、第二终端102、区块链103,其中:
所述第一终端101基于安全多方计算生成加密电路和所述加密电路中各条输出线对应的输出线标签;
所述第一终端101根据所述输出线标签生成加密信息,并将所述第一终端的第一输入信息转换为第一输入标签;
所述第一终端101将所述加密电路、所述加密信息、所述第一输入标签、所述输出线标签对应的真值表发送给第二终端102;
所述第二终端102与所述第一终端101利用不经意传输协议,获取所述第二终端102的第二输入信息对应的第二输入标签;
所述第二终端102利用所述第一输入标签、第二输入标签对所述加密电路进行解密,获得输出线解密标签;
所述第二终端102判断所述输出线解密标签和所述加密信息是否匹配,若匹配,则将计算结果信息存储到区块链103中,所述计算结果信息包括:所述加密信息、计算输出结果、所述输出线解密标签、所述真值表;
所述区块链103中的节点根据所述计算结果信息对所述安全多方计算的结果进行正确性验证。
本说明书实施例提供的基于区块链实现安全多方计算的结果验证系统,将区块链与安全多方计算相结合,整体上采用了链下计算,链上验证的策略。数据的计算采用的是安全多方计算来实现,保证了原始数据的隐私,链下计算结果的正确性由区块链上的节点来进行验证。仅将链下计算部分的数据标签和计算结果上链,使计算结果可获得公开验证。从而使得无需在区块链上存储大量的数据,并且又能很好地将繁重的计算任务全部转移到链下来,极大地提高了整个系统的可扩展性,使区块链仅完成最纯粹的共识验证部分。本说明书实施例提供的隐私计算方式解决了区块链的可扩展性问题,并且保证了计算结果的可信性。
需要说明的,上述所述的系统根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照上述系统对应执行的方法实施例的描述,在此不作一一赘述。
本说明书实施例还提供可一种基于区块链实现安全多方计算的结果验证终端即上述实施例中的第一终端,图11是本说明书实施例中的基于区块链实现安全多方计算的结果验证终端的结构示意图,如图11所示,本说明书实施例中的基于区块链实现安全多方计算的结果验证终端可以执行上述实施例中第一终端对应的数据处理过程,可以包括:加密电路生成模块111、信息加密模块112、信息发送模块113,其中:
加密电路生成模块111,可以用于利用安全多方计算生成加密电路,和所述加密电路中各条输出线对应的输出线标签;
信息加密模块112,可以用于根据所述输出线标签生成加密信息,并将第一输入信息转换为第一输入标签;
信息发送模块113,可以用于将所述加密电路、所述加密信息、所述第一输入标签、所述输出线标签对应的真值表发送给第二终端,以使得所述第二终端根据所述加密电路、所述第一输入标签、所述真值表对所述加密电路进行解密,获得输出线解密标签,所述第二终端将计算结果信息存储到区块链中,所述计算结果信息包括:所述加密信息、计算输出结果、所述输出线解密标签、所述真值表。
本说明书实施例提供的基于区块链实现安全多方计算的结果验证终端,将区块链与安全多方计算相结合,整体上采用了链下计算,链上验证的策略。数据的计算采用的是安全多方计算来实现,保证了原始数据的隐私,链下计算结果的正确性可以由区块链上的节点来进行验证。仅将链下计算部分的数据标签和计算结果上链,使计算结果可获得公开验证。从而使得无需在区块链上存储大量的数据,并且又能很好地将繁重的计算任务全部转移到链下来,极大地提高了整个系统的可扩展性,使区块链仅完成最纯粹的共识验证部分。提高了区块链的可扩展性,并且保证了计算结果的准确性和可信性。
需要说明的,上述所述的终端根据第一终端执行的方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照上述第一终端执行的方法实施例的描述,在此不作一一赘述。
本说明书实施例还提供可一种基于区块链实现安全多方计算的结果验证终端即上述实施例中的第二终端,图12是本说明书又一实施例中的基于区块链实现安全多方计算的结果验证终端的结构示意图,如图12所示,本说明书实施例中的基于区块链实现安全多方计算的结果验证终端可以执行上述实施例中第二终端对应的数据处理过程,可以包括:信息接收模块121、输入标签获取模块122、解密模块123、验证模块124,其中:
信息接收模块121,可以用于接收第一终端基于安全多方计算生成并发送的加密电路、第一输入标签、所述加密电路的输出线标签对应的真值表、所述输出线标签对应的加密信息;
输入标签获取模块122,可以用于利用不经意传输协议,获得第二输入信息对应的第二输入标签;
解密模块123,可以用于利用所述第一输入标签、第二输入标签对所述加密电路进行解密,获得输出线解密标签;
验证模块124,可以用于将计算结果信息存储到区块链中,以使得所述区块链的节点根据所述计算结果信息对所述安全多方计算的结果进行正确性验证;
其中,所述加密信息为所述第一终端根据所述输出线标签生成的,所述计算结果信息包括:所述加密信息、计算输出结果、所述输出线解密标签、所述真值表。
本说明书实施例提供的基于区块链实现安全多方计算的结果验证终端,将区块链与安全多方计算相结合,整体上采用了链下计算,链上验证的策略。数据的计算采用的是安全多方计算来实现,保证了原始数据的隐私,链下计算结果的正确性可以由区块链上的节点来进行验证。第二终端仅将链下计算部分的数据标签和计算结果上链,使计算结果可获得公开验证。从而使得无需在区块链上存储大量的数据,并且又能很好地将繁重的计算任务全部转移到链下来,极大地提高了整个系统的可扩展性,使区块链仅完成最纯粹的共识验证部分。提高了区块链的可扩展性,并且保证了计算结果的准确性和可信性。
需要说明的,上述所述的终端根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照上述第二终端执行的方法实施例的描述,在此不作一一赘述。
本说明书实施例还提供可一种基于区块链实现安全多方计算的结果验证装置即上述实施例中的区块链或区块链中各节点对应的数据处理装置,图13是本说明书实施例中的基于区块链实现安全多方计算的结果验证装置的结构示意图,如图13所示,本说明书实施例中的基于区块链实现安全多方计算的结果验证终端可以执行上述实施例中区块链对应的数据处理过程,可以包括:计算结果接收模块131、结果验证模块132,其中:
计算结果接收模块131,可以用于接收并存储第二终端发送的计算结果信息,所述计算结果信息由第一终端和所述第二终端基于安全多方计算获得,所述计算结果信息包括:所述第一终端根据加密电路的输出线标签获得的加密信息、加密电路的输出线标签对应的真值、所述第二终端根据加密电路以及输入标签获得的输出线解密标签、安全多方计算的计算输出结果;
结果验证模块132,可以用于根据所述计算结果信息,验证所述安全多方计算的结果是否准确。
本说明书实施例提供的基于区块链实现安全多方计算的结果验证装置,区块链可以根据第一终端和第二终端采用的安全多方计算的加密方式,采用对应的方法对安全多方计算的结果进行正确性验证,将区块链与安全多方计算相结合,整体上采用了链下计算,链上验证的策略。数据的计算采用的是安全多方计算来实现,保证了原始数据的隐私,链下计算结果的正确性由区块链上的节点来进行验证。仅将链下计算部分的数据标签和计算结果上链,使计算结果可获得公开验证。从而使得无需在区块链上存储大量的数据,并且又能很好地将繁重的计算任务全部转移到链下来,极大地提高了整个系统的可扩展性,使区块链仅完成最纯粹的共识验证部分。解决了区块链的可扩展性问题,并且保证了计算结果的可信性。
需要说明的,上述所述的装置根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照上述区块链侧执行的方法实施例的描述,在此不作一一赘述。
本说明书实施例还提供一种数字货币交易数据处理设备,包括:至少一个处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述实施例的基于区块链实现安全多方计算的结果验证方法,如:第一终端执行的方法或第二终端执行的方法或区块链执行的方法或第一终端、第二终端以及区块链执行的方法。
在上述实施例的基础上,本说明书一个实施例中还可以提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述实施例基于区块链实现安全多方计算的结果验证方法,如:第一终端执行的方法或第二终端执行的方法或区块链执行的方法或第一终端、第二终端以及区块链执行的方法。
所述存储介质可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。所述存储介质有可以包括:利用电能方式存储信息的装置如,各式存储器,如RAM、ROM等;利用磁能方式存储信息的装置如,硬盘、软盘、磁带、磁芯存储器、磁泡存储器、U盘;利用光学方式存储信息的装置如,CD或DVD。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。
需要说明的,上述所述的处理设备以及计算机可读存储介质根据方法实施例的描述还可以包括其他的实施方式。具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
本说明书实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图14是应用本说明书实施例中基于区块链实现安全多方计算的结果验证方法的服务器的硬件结构框图,图14可以表示第一终端的结构框图,也可以表示第二终端或区块链对应的处理装置的结构框图。如图14所示,服务器10可以包括一个或多个(图中仅示出一个)处理器100(处理器100可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器200、以及用于通信功能的传输模块300。本领域普通技术人员可以理解,图14所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器10还可包括比图14中所示更多或者更少的组件,例如还可以包括其他的处理硬件,如数据库或多级缓存、GPU,或者具有与图14所示不同的配置。
存储器200可用于存储应用软件的软件程序以及模块,如本说明书实施例中的基于区块链实现安全多方计算的验证方法对应的程序指令/模块,处理器100通过运行存储在存储器200内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器200可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器200可进一步包括相对于处理器100远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块300用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输模块300包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块300可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书提供的上述实施例所述的方法或装置可以通过计算机程序实现业务逻辑并记录在存储介质上,所述的存储介质可以计算机读取并执行,实现本说明书实施例所描述方案的效果。
本说明书实施例提供的上述基于区块链实现安全多方计算的结果验证方法、终端、系统或装置可以在计算机中由处理器执行相应的程序指令来实现,如使用windows操作系统的c++语言在PC端实现、linux系统实现,或其他例如使用android、iOS系统程序设计语言在智能终端实现,以及基于量子计算机的处理逻辑实现等。
需要说明的是说明书上述所述的装置、计算机存储介质、系统根据相关方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照对应方法实施例的描述,在此不作一一赘述。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参加即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参加方法实施例的部分说明即可。
本说明书实施例并不局限于必须是符合行业通信标准、标准计算机数据处理和数据存储规则或本说明书一个或多个实施例所描述的情况。某些行业标准或者使用自定义方式或实施例描述的实施基础上略加修改后的实施方案也可以实现上述实施例相同、等同或相近、或变形后可预料的实施效果。应用这些修改或变形后的数据获取、存储、判断、处理方式等获取的实施例,仍然可以属于本说明书实施例的可选实施方案范围之内。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参加即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参加方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。

Claims (18)

1.一种基于区块链实现安全多方计算的结果验证方法,其特征在于,包括:
第一终端基于安全多方计算生成加密电路和所述加密电路中各条输出线对应的输出线标签;
所述第一终端根据所述输出线标签生成加密信息,并将所述第一终端的第一输入信息转换为第一输入标签;
所述第一终端将所述加密电路、所述加密信息、所述第一输入标签、所述输出线标签对应的真值表发送给第二终端;
所述第二终端与所述第一终端利用不经意传输协议,获取与所述第二终端的第二输入信息相对应的第二输入标签;
所述第二终端利用所述第一输入标签、第二输入标签对所述加密电路进行解密,获得输出线解密标签;
所述第二终端判断所述输出线解密标签和所述加密信息是否匹配,若匹配,则将计算结果信息存储到区块链中,所述计算结果信息包括:所述加密信息、计算输出结果、所述输出线解密标签、所述真值表;
所述区块链中的节点根据所述计算结果信息对所述安全多方计算的结果进行正确性验证。
2.一种基于区块链实现安全多方计算的结果验证系统,其特征在于,包括:第一终端、第二终端、区块链,其中,
所述第一终端基于安全多方计算生成加密电路和所述加密电路中各条输出线对应的输出线标签;
所述第一终端根据所述输出线标签生成加密信息,并将所述第一终端的第一输入信息转换为第一输入标签;
所述第一终端将所述加密电路、所述加密信息、所述第一输入标签、所述输出线标签对应的真值表发送给第二终端;
所述第二终端与所述第一终端利用不经意传输协议,获取与所述第二终端的第二输入信息相对应的第二输入标签;
所述第二终端利用所述第一输入标签、第二输入标签对所述加密电路进行解密,获得输出线解密标签;
所述第二终端判断所述输出线解密标签和所述加密信息是否匹配,若匹配,则将计算结果信息存储到区块链中,所述计算结果信息包括:所述加密信息、计算输出结果、所述输出线解密标签、所述真值表;
所述区块链中的节点根据所述计算结果信息对所述安全多方计算的结果进行正确性验证。
3.一种基于区块链实现安全多方计算的结果验证方法,其特征在于,包括:
利用安全多方计算生成加密电路,和所述加密电路中各条输出线对应的输出线标签;
根据所述输出线标签生成加密信息,并将第一输入信息转换为第一输入标签;
将所述加密电路、所述加密信息、所述第一输入标签、所述输出线标签对应的真值表发送给第二终端,以使得所述第二终端根据所述加密电路、所述第一输入标签、所述真值表对所述加密电路进行解密,获得输出线解密标签,所述第二终端将计算结果信息存储到区块链中,所述计算结果信息包括:所述加密信息、计算输出结果、所述输出线解密标签、所述真值表。
4.如权利要求3所述的方法,其特征在于,所述根据所述输出线标签生成加密信息,包括:
将各所述输出线标签分别进行哈希计算,将获得的哈希计算结果作为所述加密信息。
5.如权利要求3所述的方法,其特征在于,所述根据所述输出线标签生成加密信息,包括:
利用承诺协议将各所述输出线标签分别生成对应的承诺值,将获得的所述承诺值作为所述加密信息。
6.如权利要求3所述的方法,其特征在于,所述方法还包括:
将所述加密信息、所述输出线标签和所述真值表的哈希真值表存储到区块链中;
或,将所述输出线标签和所述真值表的哈希真值表存储到区块链中,并将所述加密信息发送给第二终端,以使得所述第二终端对所述加密信息统一进行哈希计算,获得所述输出线标签的统一哈希值,所述第二终端将所述输出线标签哈希值存储到区块链中。
7.一种基于区块链实现安全多方计算的结果验证终端,其特征在于,包括:
加密电路生成模块,用于利用安全多方计算生成加密电路,和所述加密电路中各条输出线对应的输出线标签;
信息加密模块,用于根据所述输出线标签生成加密信息,并将第一输入信息转换为第一输入标签;
信息发送模块,用于将所述加密电路、所述加密信息、所述第一输入标签、所述输出线标签对应的真值表发送给第二终端,以使得所述第二终端根据所述加密电路、所述第一输入标签、所述真值表对所述加密电路进行解密,获得输出线解密标签,所述第二终端将计算结果信息存储到区块链中,所述计算结果信息包括:所述加密信息、计算输出结果、所述输出线解密标签、所述真值表。
8.一种基于区块链实现安全多方计算的结果验证方法,其特征在于,包括:
接收第一终端基于安全多方计算生成并发送的加密电路、第一输入标签、所述加密电路的输出线标签对应的真值表、所述输出线标签对应的加密信息;
利用不经意传输协议,获得第二输入信息对应的第二输入标签;
利用所述第一输入标签、第二输入标签对所述加密电路进行解密,获得输出线解密标签;
将计算结果信息存储到区块链中,以使得所述区块链的节点根据所述计算结果信息对所述安全多方计算的结果进行正确性验证;
其中,所述加密信息为所述第一终端根据所述输出线标签生成的,所述计算结果信息包括:所述加密信息、计算输出结果、所述输出线解密标签、所述真值表。
9.如权利要求8所述的方法,其特征在于,所述将计算结果信息存储到区块链中,包括:
判断所述输出线解密标签和所述加密信息是否匹配,若匹配,则将计算结果信息存储到区块链中。
10.如权利要求9所述的方法,其特征在于,所述加密信息为所述第一终端将各所述输出线标签分别进行哈希计算获得的哈希计算结果;
相应地,所述判断所述输出线解密标签和所述加密信息是否匹配,包括:
判断所述输出线解密标签的哈希值与所述第一终端生成的对应的加密信息是否相同,若相同,则确定所述输出线解密标签和所述加密信息匹配。
11.如权利要求9所述的方法,其特征在于,所述加密信息为所述第一终端利用承诺协议将各所述输出线标签分别生成对应的承诺值;
相应地,所述判断所述输出线解密标签和所述加密信息是否匹配,包括:
接收所述第一终端发送的用于生成所述承诺值的加密参数;
利用所述承诺协议和所述加密参数对每个承诺值进行打开承诺计算,判断所述输出线解密标签与对应的所述打开承诺计算的结果是否相同,若相同,则确定所述输出线解密标签和所述加密信息匹配。
12.一种基于区块链实现安全多方计算的结果验证终端,其特征在于,包括:
信息接收模块,用于接收第一终端基于安全多方计算生成并发送的加密电路、第一输入标签、所述加密电路的输出线标签对应的真值表、所述输出线标签对应的加密信息;
输入标签获取模块,用于利用不经意传输协议,获得第二输入信息对应的第二输入标签;
解密模块,用于利用所述第一输入标签、第二输入标签对所述加密电路进行解密,获得输出线解密标签;
验证模块,用于将计算结果信息存储到区块链中,以使得所述区块链的节点根据所述计算结果信息对所述安全多方计算的结果进行正确性验证;
其中,所述加密信息为所述第一终端根据所述输出线标签生成的,所述计算结果信息包括:所述加密信息、计算输出结果、所述输出线解密标签、所述真值表。
13.一种基于区块链实现安全多方计算的结果验证方法,其特征在于,包括:
接收并存储第二终端发送的计算结果信息,所述计算结果信息由第一终端和所述第二终端基于安全多方计算获得,所述计算结果信息包括:所述第一终端根据加密电路的输出线标签获得的加密信息、加密电路的输出线标签对应的真值表、所述第二终端根据加密电路以及输入标签获得的输出线解密标签、安全多方计算的计算输出结果;
根据所述计算结果信息,验证所述安全多方计算的结果是否准确。
14.如权利要求13所述的方法,其特征在于,所述加密信息为所述第一终端对所述输出线标签进行哈希计算获得的,所述计算结果信息还包括所述第一终端计算获得的所述输出线标签的统一哈希值;
所述根据所述计算结果信息,验证所述安全多方计算的结果是否准确,包括:
验证所述加密信息与所述统一哈希值是否匹配,若匹配,则验证所述加密信息与所述输出线解密标签的哈希值是否相同,若相同,则验证所述真值表的哈希值与计算的哈希真值表是否匹配,若匹配,则根据所述真值表获取所述输出线解密标签对应的比特值,验证所述输出线解密标签对应的比特值与所述计算输出结果是否匹配,若匹配,则确定所述安全多方计算结果正确。
15.如权利要求13所述的方法,其特征在于,所述加密信息为所述第一终端利用承诺协议将各所述输出线标签分别生成对应的承诺值;
相应地,所述根据所述计算结果信息,验证所述安全多方计算的结果是否准确,包括:
验证所述加密信息与所述输出线解密标签是否匹配,若匹配,则验证所述真值表的哈希值与所述计算的哈希真值表是否匹配,若匹配,则根据所述真值表获取所述输出线解密标签对应的比特值,验证所述输出线解密标签对应的比特值与所述计算输出结果是否匹配,若匹配,则确定所述安全多方计算结果正确。
16.一种基于区块链实现安全多方计算的结果验证装置,其特征在于,包括:
计算结果接收模块,用于接收并存储第二终端发送的计算结果信息,所述计算结果信息由第一终端和所述第二终端基于安全多方计算获得,所述计算结果信息包括:所述第一终端根据加密电路的输出线标签获得的加密信息、加密电路的输出线标签对应的真值表、所述第二终端根据加密电路以及输入标签获得的输出线解密标签、安全多方计算的计算输出结果;
结果验证模块,用于根据所述计算结果信息,验证所述安全多方计算的结果是否准确。
17.一种基于区块链实现安全多方计算的结果验证处理设备,其特征在于,包括:至少一个处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1所述的方法或权利要求3-6任一项所述的方法或权利要求8-11任一项所述的方法或权利要求13-15任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,所述指令被执行时实现权利要求1所述的方法或权利要求3-6任一项所述的方法或权利要求8-11任一项所述的方法或权利要求13-15任一项所述的方法。
CN201910152737.8A 2019-02-28 2019-02-28 一种基于区块链实现安全多方计算的结果验证方法及系统 Active CN109886687B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910152737.8A CN109886687B (zh) 2019-02-28 2019-02-28 一种基于区块链实现安全多方计算的结果验证方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910152737.8A CN109886687B (zh) 2019-02-28 2019-02-28 一种基于区块链实现安全多方计算的结果验证方法及系统

Publications (2)

Publication Number Publication Date
CN109886687A true CN109886687A (zh) 2019-06-14
CN109886687B CN109886687B (zh) 2023-12-05

Family

ID=66930132

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910152737.8A Active CN109886687B (zh) 2019-02-28 2019-02-28 一种基于区块链实现安全多方计算的结果验证方法及系统

Country Status (1)

Country Link
CN (1) CN109886687B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111090876A (zh) * 2020-03-18 2020-05-01 支付宝(杭州)信息技术有限公司 调用合约的方法及装置
CN111507696A (zh) * 2020-04-10 2020-08-07 杭州能链科技有限公司 基于区块链的电力交易方法、装置及存储介质
CN111628991A (zh) * 2020-05-25 2020-09-04 安徽大学 一种通用且抗恶意敌手的安全计算方法
CN112711744A (zh) * 2020-06-23 2021-04-27 华控清交信息科技(北京)有限公司 一种计算任务的处理方法、装置和用于计算任务的处理装置
CN112765631A (zh) * 2021-01-26 2021-05-07 天津理工大学 一种基于区块链的安全多方计算方法
CN112861166A (zh) * 2021-04-23 2021-05-28 浙江数秦科技有限公司 一种高效率安全多方计算方法
CN113051177A (zh) * 2021-04-20 2021-06-29 支付宝(杭州)信息技术有限公司 测试方法和装置
CN113064729A (zh) * 2021-04-16 2021-07-02 上海边界智能科技有限公司 一种基于区块链技术的安全多方计算的方法
TWI734554B (zh) * 2020-07-13 2021-07-21 鴻海精密工業股份有限公司 基於區塊鏈系統之多媒體資料流防篡改裝置、方法及介質
CN113222591A (zh) * 2020-12-23 2021-08-06 华南理工大学 一种基于区块链的公平两方协商方法及系统
CN113472538A (zh) * 2021-09-02 2021-10-01 富算科技(上海)有限公司 多方安全计算的结果隐私性检测方法、装置、设备及介质
CN114024674A (zh) * 2021-11-23 2022-02-08 支付宝(杭州)信息技术有限公司 两方安全比较的方法及系统
CN114024674B (zh) * 2021-11-23 2024-05-31 支付宝(杭州)信息技术有限公司 两方安全比较的方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017001872A1 (en) * 2015-07-01 2017-01-05 Barclays Bank Plc Secure computation
CN108694669A (zh) * 2018-07-18 2018-10-23 矩阵元技术(深圳)有限公司 一种区块链智能合约实现方法及装置
CN109241016A (zh) * 2018-08-14 2019-01-18 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备
CN109314634A (zh) * 2016-06-13 2019-02-05 微软技术许可有限责任公司 安全数据交换

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017001872A1 (en) * 2015-07-01 2017-01-05 Barclays Bank Plc Secure computation
CN109314634A (zh) * 2016-06-13 2019-02-05 微软技术许可有限责任公司 安全数据交换
CN108694669A (zh) * 2018-07-18 2018-10-23 矩阵元技术(深圳)有限公司 一种区块链智能合约实现方法及装置
CN109241016A (zh) * 2018-08-14 2019-01-18 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
多方安全计算专栏,CSDN博客: "安全多方计算从入门到精通:MPC简介&JUGO平台", Retrieved from the Internet <URL:https://blog.csdn.net/juzhenyuan/article/details/80913777> *
王成: "基于区块链的保险行业信息系统构架及关键技术研究", 《中国优秀博士学位论文全文数据库经济与管理科学辑》 *
王成: "基于区块链的保险行业信息系统构架及关键技术研究", 《中国优秀博士学位论文全文数据库经济与管理科学辑》, 15 December 2018 (2018-12-15), pages 161 - 3 *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111090876A (zh) * 2020-03-18 2020-05-01 支付宝(杭州)信息技术有限公司 调用合约的方法及装置
WO2021184963A1 (zh) * 2020-03-18 2021-09-23 支付宝(杭州)信息技术有限公司 调用合约的方法及装置
CN111507696A (zh) * 2020-04-10 2020-08-07 杭州能链科技有限公司 基于区块链的电力交易方法、装置及存储介质
CN111628991A (zh) * 2020-05-25 2020-09-04 安徽大学 一种通用且抗恶意敌手的安全计算方法
CN111628991B (zh) * 2020-05-25 2021-12-28 安徽大学 一种通用且抗恶意敌手的安全计算方法
CN112711744A (zh) * 2020-06-23 2021-04-27 华控清交信息科技(北京)有限公司 一种计算任务的处理方法、装置和用于计算任务的处理装置
TWI734554B (zh) * 2020-07-13 2021-07-21 鴻海精密工業股份有限公司 基於區塊鏈系統之多媒體資料流防篡改裝置、方法及介質
CN113222591A (zh) * 2020-12-23 2021-08-06 华南理工大学 一种基于区块链的公平两方协商方法及系统
CN112765631A (zh) * 2021-01-26 2021-05-07 天津理工大学 一种基于区块链的安全多方计算方法
CN112765631B (zh) * 2021-01-26 2022-05-24 天津理工大学 一种基于区块链的安全多方计算方法
CN113064729A (zh) * 2021-04-16 2021-07-02 上海边界智能科技有限公司 一种基于区块链技术的安全多方计算的方法
CN113051177A (zh) * 2021-04-20 2021-06-29 支付宝(杭州)信息技术有限公司 测试方法和装置
CN112861166A (zh) * 2021-04-23 2021-05-28 浙江数秦科技有限公司 一种高效率安全多方计算方法
CN113472538A (zh) * 2021-09-02 2021-10-01 富算科技(上海)有限公司 多方安全计算的结果隐私性检测方法、装置、设备及介质
CN113472538B (zh) * 2021-09-02 2021-12-10 富算科技(上海)有限公司 多方安全计算的结果隐私性检测方法、装置、设备及介质
CN114024674A (zh) * 2021-11-23 2022-02-08 支付宝(杭州)信息技术有限公司 两方安全比较的方法及系统
CN114024674B (zh) * 2021-11-23 2024-05-31 支付宝(杭州)信息技术有限公司 两方安全比较的方法及系统

Also Published As

Publication number Publication date
CN109886687B (zh) 2023-12-05

Similar Documents

Publication Publication Date Title
CN109886687A (zh) 一种基于区块链实现安全多方计算的结果验证方法及系统
CN107392040B (zh) 一种共识验证的方法及装置
CN107196989B (zh) 一种业务请求的处理方法及装置
Hazay et al. Efficient secure two-party protocols: Techniques and constructions
CN102170357B (zh) 组合密钥动态安全管理系统
CN110046996A (zh) 区块链交易的生成方法和装置
CN108600272A (zh) 一种区块链数据处理方法、装置、处理设备及系统
CN108932297A (zh) 一种数据查询、数据共享的方法、装置及设备
Designolle et al. Genuine high-dimensional quantum steering
CN108737403A (zh) 一种区块链数据处理方法、装置、处理设备及系统
CN102170356B (zh) 一种支持数字签名密钥专属控制的认证系统实现方法
CN109409122A (zh) 文件存储方法及其电子设备、存储介质
CN108377189A (zh) 区块链上用户通信加密方法、装置、终端设备及存储介质
CN109639677A (zh) 一种可限制访问次数的云存储外包解密属性基加密方法
WO2021174927A1 (zh) 基于区块链的身份校验方法、装置、设备及存储介质
CN109714165A (zh) 客户端各自生成密钥分量的密钥管理方法和电子设备
CN110971390A (zh) 一种用于智能合约隐私保护的全同态加密方法
CN109491965A (zh) 购售电合同的存储方法及其网络和电子设备
CN109934582A (zh) 数字货币交易数据处理方法、服务器、客户端及系统
WO2020216078A1 (zh) 一种基于区块链的竞争排名方法及装置
CN110324321A (zh) 数据处理方法及装置
CN109547208A (zh) 金融电子设备主密钥在线分发方法及系统
CN109800582A (zh) 可溯源的多方数据处理方法、装置及设备
CN109714368A (zh) 报文加解密方法、装置、电子设备及计算机可读存储介质
ES2367940A1 (es) Método para la verificación del correcto registro de una información.

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant