CN114143311B - 一种基于区块链的隐私保护方案聚合方法及装置 - Google Patents

一种基于区块链的隐私保护方案聚合方法及装置 Download PDF

Info

Publication number
CN114143311B
CN114143311B CN202111297395.2A CN202111297395A CN114143311B CN 114143311 B CN114143311 B CN 114143311B CN 202111297395 A CN202111297395 A CN 202111297395A CN 114143311 B CN114143311 B CN 114143311B
Authority
CN
China
Prior art keywords
scheme
gradient
aggregation
ciphertext
client
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.)
Active
Application number
CN202111297395.2A
Other languages
English (en)
Other versions
CN114143311A (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.)
Xidian University
WeBank Co Ltd
Original Assignee
Xidian University
WeBank 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 Xidian University, WeBank Co Ltd filed Critical Xidian University
Priority to CN202111297395.2A priority Critical patent/CN114143311B/zh
Priority to PCT/CN2021/139191 priority patent/WO2023077627A1/zh
Publication of CN114143311A publication Critical patent/CN114143311A/zh
Application granted granted Critical
Publication of CN114143311B publication Critical patent/CN114143311B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例提供一种基于区块链的隐私保护方案聚合方法及装置,区块链系统接收各客户端上传的本地方案梯度密文;所述区块链系统通过智能合约将聚合任务下发至聚合服务端和验证服务端,所述聚合任务用于通过聚合规则将所述各客户端的本地方案梯度密文聚合从而获取全局方案梯度密文;所述区块链系统基于所述聚合服务端和所述验证服务端执行所述聚合任务的聚合结果,确定出全局方案梯度密文;所述区块链系统将所述全局方案梯度密文下发至各客户端,所述全局方案梯度密文解密后用于客户端对本地方案进行训练。上述方法用于降低区块链节点计算开销,提高全局方案梯度的准确性。

Description

一种基于区块链的隐私保护方案聚合方法及装置
技术领域
本发明涉及网络技术领域,尤其涉及一种基于区块链的隐私保护方案聚合方法及装置。
背景技术
近年来,随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出更高的要求。而由于区块链所基于的密码学技术和去中心化思想使链上的历史信息无法被篡改的优势,区块链技术也在金融行业有着普遍应用。
现有隐私保护方案中:各客户端利用本地数据集训练本地方案,得到各自训练后的本地方案梯度,可以将各客户端的本地方案梯度聚合获取优化的全局方案梯度,各客户端根据全局方案梯度训练本地方案,提升本地方案训练的效果。其中,为了避免单点失效问题,将方案梯度的聚合过程设置在区块链中,由区块链接收各客户端上传的本地方案梯度,并对各客户端上传的本地方案梯度进行聚合获取全局方案梯度。区块链节点将全局方案梯度下发至各客户端,使得各客户端可以根据全局方案梯度进一步优化本地方案。该过程虽然应用了区块链的密码学技术和去中心化思想使方案梯度信息不会泄露和被篡改,但是也相应的大大增加了区块链节点的计算压力。
因此,现在亟需一种基于区块链的隐私保护方案聚合方法及装置,用于降低区块链节点计算开销,提高全局方案梯度的准确性。
发明内容
本发明实施例提供一种基于区块链的隐私保护方案聚合方法及装置,用于降低区块链节点计算开销,提高全局方案梯度的准确性。
第一方面,本发明实施例提供一种基于区块链的隐私保护方案聚合方法,该方法包括:
区块链系统接收各客户端上传的本地方案梯度密文;所述区块链系统通过智能合约将聚合任务下发至聚合服务端和验证服务端,所述聚合任务用于通过聚合规则将所述各客户端的本地方案梯度密文聚合从而获取全局方案梯度密文;所述区块链系统基于所述聚合服务端和所述验证服务端执行所述聚合任务的聚合结果,确定出全局方案梯度密文;所述区块链系统将所述全局方案梯度密文下发至各客户端,所述全局方案梯度密文解密后用于客户端对本地方案进行训练。
上述方法中,区块链系统将聚合任务下发至聚合服务端和验证服务器,分别获取聚合服务端和验证服务端上传的聚合结果,并对聚合服务端和验证服务端上传的聚合结果进行验证,确定正确的全局方案梯度密文,将正确的全局方案梯度密文下发至各客户端,以使得客户端通过正确的全局方案梯度密文对本地方案进行训练。如此,相比于现有技术中在区块链中进行聚合来说。本发明可以降低区块链的计算开销。还可以通过对聚合服务端和验证服务端的聚合结果进行验证获取正确的全局方案梯度,提高全局方案梯度计算的准确性。可选的,通过智能合约将所述聚合任务下发至聚合服务端和验证服务端,包括:所述区块链系统通过所述智能合约将所述聚合任务下发至所述聚合服务端;所述区块链系统接收所述聚合服务端上传的执行所述聚合任务的第一聚合任务结果;所述第一任务聚合结果中包含第一全局方案梯度密文;所述区块链系统通过所述智能合约将所述第一全局方案梯度密文公开审计;所述区块链系统接收所述验证服务端验证请求,通过所述智能合约将所述聚合任务下发至所述验证服务端。
上述方法中,区块链系统通过智能合约将聚合任务下发至聚合服务端,并在接收聚合服务端上传的第一聚合任务结果后,将第一聚合任务结果中的第一全局方案梯度密文进行公开审计,若验证服务端挑战该聚合任务,则区块链系统通过智能合约将该聚合任务下发至验证服务端,获取验证服务端的第二聚合任务结果中的第二全局方案梯度密文。如此,根据聚合服务端的第一全局方案梯度密文和验证服务端的第二全局方案梯度密文确定正确的全局方案梯度密文,即,增加全局方案梯度密文的挑战验证机制,以获取多个全局方案梯度密文,从中选取可靠性最高的全局方案梯度密文下发至各客户端,提高全局方案梯度密文的准确度,以及提高客户端本地方案训练的准确性。
可选的,所述区块链系统基于所述聚合服务端和所述验证服务端执行所述聚合任务的聚合结果,确定出全局方案梯度密文,包括:所述区块链系统若未接收到所述验证服务端上传的执行所述聚合任务的第二聚合任务结果,则将所述第一全局方案梯度密文确定为所述全局方案梯度密文;所述区块链系统若接收到所述第二聚合任务结果,则根据所述第一聚合任务结果和所述第二聚合任务结果,确定出全局方案梯度密文。
上述方法中,若验证服务端没有发起验证挑战,则以聚合服务端的第一聚合任务结果中的第一全局方案梯度密文作为全局方案梯度密文。
可选的,所述区块链系统基于所述聚合服务端和所述验证服务端执行所述聚合任务的聚合结果,确定出全局方案梯度密文,包括:所述区块链系统通过所述智能合约比较第一全局方案梯度密文和第二全局方案梯度密文是否相同,所述第一全局方案梯度密文包含于所述聚合服务端执行所述聚合任务得到的第一聚合任务结果中,所述第二全局方案梯度密文包含于所述验证服务端执行所述聚合任务得到的第二聚合任务结果中;若不同,所述区块链系统获取分歧指令,所述分歧指令为所述第二聚合任务结果中各指令对应的状态中,与所述第一聚合任务结果中各指令对应的状态产生分歧的指令;所述区块链系统通过所述智能合约以所述分歧指令前一指令对应的状态作为初始状态,执行所述分歧指令,获取所述分歧指令在所述区块链系统中对应的状态;若所述分歧指令在所述区块链系统中对应的状态与所述分歧指令在所述第二聚合任务结果中对应的状态相同,则确定所述第二全局方案梯度密文是所述全局方案梯度密文。
上述方法中,当第一全局方案梯度密文和第二全局方案梯度密文相同时,则可以认为聚合服务端和验证服务端获取的全局方案梯度密文是准确的;当第一全局方案梯度密文和第二全局方案梯度密文不相同时,则聚合服务端/验证服务端的聚合结果中存在错误的全局方案梯度密文。对聚合服务端和验证服务端的聚合结果进行验证:聚合服务端上传的第一聚合任务结果中包含各指令对应的状态,以及验证服务端上传的第二聚合任务结果中包含各指令对应的状态,则区块链系统通过智能合约可以从第二聚合任务结果中各指令对应的状态中确定出与第一聚合任务结果中各指令对应的状态产生分歧的指令,即,分歧指令,并以该分歧指令前一指令对应的状态作为初始状态,执行该分歧指令,获取该分歧指令在区块链系统中对应的状态,比较该分歧指令在区块链系统中对应的状态和该分歧指令在验证服务端中对应的状态是否一致,若一致,则认为验证服务端上传的第二聚合任务结果是正确的,即,第二全局方案梯度密文是正确的,聚合服务端上传的第一全局方案梯度密文是准确性低的。如此,增加了全局方案梯度密文的多方执行,多结果比较验证的机制,提高全局方案梯度密文的准确性。
可选的,所述聚合任务中还包含标准方案;所述聚合任务用于通过聚合规则将所述各客户端的本地方案梯度密文聚合从而获取全局方案梯度密文,包括:
根据所述标准方案和标准数据集,得到标准方案梯度密文;
针对任一客户端的本地方案梯度密文,确定所述客户端的本地方案梯度密文与所述标准方案梯度密文的余弦相似度;在所述余弦相似度满足设定条件时,根据所述客户端的本地方案梯度密文和所述余弦相似度,确定所述客户端的聚合子项,并基于所述客户端的聚合子项更新已聚合客户端的累积结果,直至各客户端均聚合结束;通过所述客户端计算所述累积结果得到全局方案梯度密文。
上述方法中,标准数据集可以是聚合服务端在专业权威机构获取的,标准方案可以是基于客户端本地方案类型和特征确定的。则根据标准方案和标准数据集得到的标准方案梯度密文为具有客户端本地方案的代表性的正向(准确)的方案梯度密文。则根据客户端的本地方案梯度密文和标准方案梯度密文的余弦相似度确定该客户端的本地方案梯度密文是否进行聚合,可以提高聚合结果的准确性。换句话说,若客户端被攻击,本地方案被篡改,则该客户端上传的本地方案梯度密文与标准方案梯度密文的余弦相似度则会不符合设定条件,不对该客户端的本地方案梯度密文进行聚合,可以防止客户端发生被恶意投毒攻击导致的全局方案梯度密文不准确的情况。
可选的,确定所述客户端的本地方案梯度密文与所述标准方案梯度密文的余弦相似度,包括:将所述客户端的本地方案梯度密文与所述标准方案梯度密文按照相同的分片规则进行分片,分别得到
Figure BDA0003335283590000051
个梯度分量,n为方案梯度长度,k为梯度分量长度;针对
Figure BDA0003335283590000052
个梯度分量中处于同一分量位置的第v分量,确定所述客户端的本地方案梯度密文的第v分量与所述标准方案梯度密文的第v分量的子余弦相似度;根据
Figure BDA0003335283590000053
个梯度分量的子余弦相似度,得到所述客户端的本地方案梯度密文与所述标准方案梯度密文的余弦相似度。
上述方法中,若方案梯度长度较长,不能一次加密,则可以根据加密算法的加密能力k,将方案梯度进行分片获取
Figure BDA0003335283590000054
个梯度分量。如此,保证加密的正常执行。相应的,在计算余弦相似度时,则可以将本地方案梯度密文的分量和标准方案梯度密文的对应分量进行密文余弦相似度计算,获取该位置分量对应的子余弦相似度,将
Figure BDA0003335283590000055
个梯度分量的子余弦相似度作和得到客户端的本地方案梯度密文与标准方案梯度密文的余弦相似度。
可选的,所述余弦相似度满足设定条件,包括:基于所述余弦相似度进行变形获取第一常量和第二常量,根据密文比较规则和所述第一常量和所述第二常量确定第一变量与第二变量,所述密文比较规则用于在密文下获取所述密文的明文比较结果;并根据所述密文比较规则确定基于所述第一变量与所述第二变量的比较结果;确定所述比较结果不等于所述第二常量。
上述方法中,由于余弦相似度是客户端的本地方案梯度密文与标准方案梯度密文的。因此,为了获取客户端的本地方案梯度明文与标准方案梯度密明文的余弦相似度与设定条件的比较结果,通过上述密文比较规则获取该密文在明文条件下的余弦相似度是否符合设定条件的比较结果,在密文条件下,保证明文计算结果的准确性。
可选的,根据所述客户端的本地方案梯度密文和所述余弦相似度,确定所述客户端的聚合子项,并基于所述客户端的聚合子项更新已聚合客户端的累积结果,包括:将所述客户端的本地方案梯度密文和所述客户端对应的余弦相似度的乘积作为第一聚合子项;将所述客户端对应的所述余弦相似度作为第二聚合子项;将所述第一聚合子项与第一累积结果累加,更新所述第一累积结果;将所述第二聚合子项与第二累积结果累加,更新所述第二累积结果;
通过所述客户端计算所述累积结果得到全局方案梯度密文,包括:
确定第一随机向量和第二随机向量,获取所述第一随机向量与所述第一累积结果的乘积的第一乘积,获取所述第二随机向量与所述第二累积结果的乘积的第二乘积;
将所述第一乘积和所述第二乘积发送至所述客户端;
基于所述客户端的私钥,对所述第一乘积进行解密,得到第一解密结果,并对所述第二乘积进行解密,得到第二解密结果,将所述第一解密结果/所述第二解密结果得到计算结果;
基于所述客户端的公钥对所述计算结果加密,得到加密计算结果;
根据所述第二随机向量/第一随机向量与所述加密计算结果的乘积得到全局方案梯度密文。
上述方法中,聚合服务端确定第一随机向量和第二随机向量,将第一随机向量和第二随机向量分别与第一累积结果和第二累积结果相乘,得到第一乘积和第二乘积。聚合服务端将第一乘积和第二乘积发送至客户端,基于该客户端的私钥,该客户端对所述第一乘积和第二乘积进行解密,得到第一解密结果和第二解密结果。如此,得到明文的第一解密结果(但实际仍然是明文的第一累积结果与第一随机向量的乘积)和第二解密结果(但实际仍然是明文的第二累积结果与第二随机向量的乘积),该客户端进一步将第一解密结果和第二解密结果进行除法运算,得到全局方案梯度*(第一随机向量/第二随机向量)。该客户端根据公钥对全局方案梯度*(第一随机向量/第二随机向量)加密,并将结果发送至聚合服务端,聚合服务端将加密的全局方案梯度*(第一随机向量/第二随机向量)乘以(第二随机向量/第一随机向量)得到全局方案梯度密文。如此,即可以通过客户端进行除法规则运算获取全局方案梯度,又可以保证聚合服务端与客户端之间信息传输的安全性,即,保证聚合服务端和客户端间传输的全局方案梯度密文的安全性。另外,通过设置第一随机向量和第二随机向量分别与第一累积结果和第二累积结果相乘,使得即使客户端将第一累积结果和第二累积结果解密,也仍然不能获得全局方案梯度的明文,进一步保证全局方案梯度的安全保密性。
可选的,方案梯度密文为通过CKKS同态加密算法对方案梯度进行加密得到的。
上述方法中,CKKS同态加密算法可以保证客户端、服务端和区块链系统间方案梯度传输的数据隐私,且计算量较小,得到的密文小,可以节约加密资源和密文传输资源。
第二方面,本发明实施例提供一种基于区块链的隐私保护方案聚合装置,该装置包括:
收发模块,用于接收各客户端上传的本地方案梯度密文;
所述收发模块还用于,通过智能合约将聚合任务下发至聚合服务端和验证服务端,所述聚合任务用于通过聚合规则将所述各客户端的本地方案梯度密文聚合从而获取全局方案梯度密文;
处理模块,用于基于所述聚合服务端和所述验证服务端执行所述聚合任务的聚合结果,确定出全局方案梯度密文;
所述收发模块还用于,将所述全局方案梯度密文下发至各客户端,所述全局方案梯度密文解密后用于客户端对本地方案进行训练。
第三方面,本发明实施例还提供一种计算设备,包括:存储器,用于存储程序;处理器,用于调用所述存储器中存储的程序,按照获得的程序执行如第一方面的各种可能的设计中所述的方法。
第四方面,本发明实施例还提供一种计算机可读非易失性存储介质,包括计算机可读程序,当计算机读取并执行所述计算机可读程序时,使得计算机执行如第一方面的各种可能的设计中所述的方法。
本发明的这些实现方式或其他实现方式在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于区块链的隐私保护方案聚合的架构示意图;
图2为本发明实施例提供的一种基于区块链的隐私保护方案聚合方法的流程示意图;
图3为本发明实施例提供的一种余弦相似度计算方法的流程示意图;
图4为本发明实施例提供的一种基于区块链的隐私保护方案聚合方法的流程示意图;
图5为本发明实施例提供的一种基于区块链的隐私保护方案聚合方法的流程示意图;
图6为本发明实施例提供的一种基于区块链的隐私保护方案聚合装置示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种基于区块链的隐私保护方案聚合的系统架构,多个客户端(Z为大于0的正整数)101将本地方案梯度密文上传至区块链系统102,区块链系统102根据多个客户端101上传的本地方案梯度密文生成聚合任务,下发至聚合服务端103,聚合服务端103根据聚合任务将多个客户端101上传的本地方案梯度密文聚合获取聚合任务结果,将聚合任务结果上传至区块链系统102。区块链系统102将该聚合任务结果进行公审,接收到验证服务端104的验证请求,将聚合任务下发至验证服务端104。验证服务端104根据聚合任务对多个客户端101上传的本地方案梯度密文聚合获取聚合任务结果,将聚合任务结果上传至区块链系统102。这里也可以是区块链系统102将聚合任务分别下发至聚合服务端103和验证服务端104,获取聚合服务端103上传的第一聚合任务结果和验证服务端104上传的第二聚合任务结果。此时,区块链系统102中包含聚合服务端103的聚合任务结果和验证服务端104的聚合任务结果,聚合任务结果中包含全局方案梯度密文,区块链系统102对聚合服务端103的聚合任务结果和验证服务端104的聚合任务结果进行验证,获取正确的全局方案梯度密文,将该正确的全局方案梯度密文分别下发至多个客户端101,使得多个客户端101根据该全局方案梯度密文对本地方案进行训练。
基于此,本发明实施例提供了一种基于区块链的隐私保护方案聚合方法的流程,如图2所示,包括:
步骤201、区块链系统接收各客户端上传的本地方案梯度密文;
此处,客户端上传的本地方案梯度密文是根据该客户端的本地方案梯度加密获得的,本地方案梯度是本地方案训练获取的。
在一种示例中,客户端节点计算第i轮本地方案梯度:
Figure BDA0003335283590000101
其中,
Figure BDA0003335283590000102
表示第l个客户端节点第i轮本地方案梯度,
Figure BDA0003335283590000103
表示求导操作,L(·)表示损失函数,Dl表示第l个客户端节点的本地数据。这里的客户端本地方案训练方法只是一种示例,客户端本地方案训练还可以是神经网络的图像二分类方案的训练方法等等,具体不做限定。
步骤202、所述区块链系统通过智能合约将聚合任务下发至聚合服务端和验证服务端,所述聚合任务用于通过聚合规则将所述各客户端的本地方案梯度密文聚合从而获取全局方案梯度密文;
步骤203、所述区块链系统基于所述聚合服务端和所述验证服务端执行所述聚合任务的聚合结果,确定出全局方案梯度密文;
步骤204、所述区块链系统将所述全局方案梯度密文下发至各客户端,所述全局方案梯度密文解密后用于客户端对本地方案进行训练。
上述方法中,区块链系统将聚合任务下发至聚合服务端和验证服务器,分别获取聚合服务端和验证服务端上传的聚合结果,并对聚合服务端和验证服务端上传的聚合结果进行验证,确定正确的全局方案梯度密文,将正确的全局方案梯度密文下发至各客户端,以使得客户端通过正确的全局方案梯度密文对本地方案进行训练。如此,相比于现有技术中在区块链中进行聚合来说。本发明可以降低区块链的计算开销。还可以通过对聚合服务端和验证服务端的聚合结果进行验证获取正确的全局方案梯度,提高全局方案梯度计算的准确性。
本发明实施例提供了一种基于区块链的隐私保护方案聚合方法,通过智能合约将所述聚合任务下发至聚合服务端和验证服务端,包括:所述区块链系统通过所述智能合约将所述聚合任务下发至所述聚合服务端;所述区块链系统接收所述聚合服务端上传的执行所述聚合任务的第一聚合任务结果;所述第一任务聚合结果中包含第一全局方案梯度密文;所述区块链系统通过所述智能合约将所述第一全局方案梯度密文公开审计;所述区块链系统接收所述验证服务端验证请求,通过所述智能合约将所述聚合任务下发至所述验证服务端。也就是说,区块链系统下发聚合任务时,还可以是先将聚合任务下发至聚合服务端,在聚合服务端返回聚合任务结果后,对该聚合任务结果进行公开审计,若未接收的到验证服务端的验证请求,则将聚合服务端的聚合任务结果中的全局方案梯度密文下发至各客户端,若是接收到验证服务端的验证请求,则将聚合任务下发至该验证服务端获取该验证服务端的聚合任务结果。
另外,这里提供一种聚合服务端的确定方法:区块链系统在第一轮进行隐私保护方案聚合时,针对聚合服务端先初始化一个空集,作为可以执行聚合任务的聚合服务端集合,多个聚合服务端判断执行聚合任务的计算消耗和完成聚合任务的奖励,若一个聚合服务端判定计算消耗小于奖励,则将该聚合服务端添加到该聚合服务端集合,若计算消耗大于等于奖励,则忽略该聚合服务端,最后获取包含至少一个聚合服务端的聚合服务端集合。后续,区块链系统在第i轮进行隐私保护方案聚合时,可以直接从聚合服务端集合中选择一个聚合服务端执行聚合任务。
本发明实施例提供了一种基于区块链的隐私保护方案聚合方法,所述区块链系统基于所述聚合服务端和所述验证服务端执行所述聚合任务的聚合结果,确定出全局方案梯度密文,包括:所述区块链系统若未接收到所述验证服务端上传的执行所述聚合任务的第二聚合任务结果,则将所述第一全局方案梯度密文确定为所述全局方案梯度密文;所述区块链系统若接收到所述第二聚合任务结果,则根据所述第一聚合任务结果和所述第二聚合任务结果,确定出全局方案梯度密文。也就是说,区块链系统若未接收到验证服务端上传的执行聚合任务的第二聚合任务结果,则将聚合服务端上传的第一聚合任务结果中的第一全局方案梯度密文作为全局方案梯度密文,若区块链系统接收到第二聚合任务结果,从第一聚合任务结果和第二聚合任务结果中仲裁出全局方案梯度密文。
本发明实施例提供了一种区块链系统仲裁方法,所述区块链系统基于所述聚合服务端和所述验证服务端执行所述聚合任务的聚合结果,确定出全局方案梯度密文,包括:所述区块链系统通过所述智能合约比较第一全局方案梯度密文和第二全局方案梯度密文是否相同,所述第一全局方案梯度密文包含于所述聚合服务端执行所述聚合任务得到的第一聚合任务结果中,所述第二全局方案梯度密文包含于所述验证服务端执行所述聚合任务得到的第二聚合任务结果中;若不同,所述区块链系统获取分歧指令,所述分歧指令为所述第二聚合任务结果中各指令对应的状态中,与所述第一聚合任务结果中各指令对应的状态产生分歧的指令;所述区块链系统通过所述智能合约以所述分歧指令前一指令对应的状态作为初始状态,执行所述分歧指令,获取所述分歧指令在所述区块链系统中对应的状态;若所述分歧指令在所述区块链系统中对应的状态与所述分歧指令在所述第二聚合任务结果中对应的状态相同,则确定所述第二全局方案梯度密文是所述全局方案梯度密文。也就是说,区块链系统通过比较第一聚合任务结果中各指令对应状态和第二聚合任务结果中各指令对应状态确定出分歧指令,以分歧指令的前一指令对应的状态作为初始状态,执行分歧指令,区块链系统获取该分歧指令在区块链系统执行下的指令对应状态,比较分歧指令在服务端中指令对应的状态和在区块链系统的指令对应状态是否相同,若相同,则确定该服务端的该分歧指令对应的全局方案梯度密文为下发至各客户端的正确的全局梯度密文。
本发明实施例提供了一种基于区块链的隐私保护方案聚合方法,所述聚合任务中还包含标准方案;所述聚合任务用于通过聚合规则将所述各客户端的本地方案梯度密文聚合从而获取全局方案梯度密文,包括:根据所述标准方案和标准数据集,得到标准方案梯度密文;针对任一客户端的本地方案梯度密文,确定所述客户端的本地方案梯度密文与所述标准方案梯度密文的余弦相似度;在所述余弦相似度满足设定条件时,根据所述客户端的本地方案梯度密文和所述余弦相似度,确定所述客户端的聚合子项,并基于所述客户端的聚合子项更新已聚合客户端的累积结果,直至各客户端均聚合结束;通过所述客户端计算所述累积结果得到全局方案梯度密文。
也就是说,聚合服务端或验证服务端在接收聚合任务后,聚合任务中包含标准方案、聚合规则和各客户端的本地方案梯度密文。聚合服务端或验证服务端根据标准方案(基于客户端本地方案确定的,可以是与本地方案相同类型的方案)和标准数据集(可以是聚合服务端或验证服务端从专业权威数据库获取的具有代表性的数据,也可以是其它数据获取渠道获取的具有代表性的正向(正确的、未被篡改过的数据))得到标准方案梯度密文。如此,可以根据标准方案梯度密文对待聚合的各客户端的本地方案梯度密文进行筛选,即,计算标准方案梯度密文分别与各客户端的本地方案梯度密文的余弦相似度,若余弦相似度不满足设定条件,则认为该余弦相似度对应的客户端本地方案梯度密文与标准方案梯度密文的差距过大,该客户端大概率被篡改攻击,则该客户端的本地方案梯度密文不予聚合,如此,防止客户端篡改攻击影响到所有客户端的本地方案。
其中,对各余弦相似度满足设定条件的客户端的本地方案梯度密文,进行聚合,每个客户端的本地方案梯度密文对应一个聚合子项,在进行聚合过程中,将各客户端的聚合子项累积,直至各客户端均聚合结束,得到累计结果;通过所述客户端计算所述累积结果得到全局方案梯度密文。
在一种示例中,余弦相似度满足的设定条件可以为,大于0,此处只是一种示例,并不对方案的具体实施做限制,如,若标准方案和客户端本地方案更适用于其他相似度计算方式,则可以通过其他相似度对聚合的客户端本地方案梯度密文进行筛选,相应的,相似度的设定条件适配性的改变。
本发明实施例提供了一种密文的余弦相似度计算方法,确定所述客户端的本地方案梯度密文与所述标准方案梯度密文的余弦相似度,包括:将所述客户端的本地方案梯度密文与所述标准方案梯度密文按照相同的分片规则进行分片,分别得到
Figure BDA0003335283590000141
个梯度分量,n为方案梯度长度,k为梯度分量长度;针对
Figure BDA0003335283590000142
个梯度分量中处于同一分量位置的第v分量,确定所述客户端的本地方案梯度密文的第v分量与所述标准方案梯度密文的第v分量的子余弦相似度;根据
Figure BDA0003335283590000143
个梯度分量的子余弦相似度,得到所述客户端的本地方案梯度密文与所述标准方案梯度密文的余弦相似度。也就是说,计算客户端的本地方案梯度密文与标准方案梯度密文的余弦相似度,可以是根据客户端的本地方案梯度密文分量与对应的标准方案梯度密文分量的子余弦相似度获取的。具体的,这里提供了一种余弦相似度的计算方法:第i轮方案梯度密文为对标准化后的
Figure BDA0003335283590000144
个第i轮方案梯度分量分别加密后获取的,所述
Figure BDA0003335283590000145
个第i轮方案梯度分量为对长度为n的第i轮方案梯度以k长度进行分片获取的;标准化公式满足:
Figure BDA0003335283590000146
其中,gi表示第i轮方案梯度,
Figure BDA0003335283590000147
表示标准化后的方案梯度,|·|表示向量模;第i轮本地方案梯度密文分量与对应第i轮标准方案梯度密文分量的余弦相似度计算规则满足如下方式:
Figure BDA0003335283590000148
Figure BDA0003335283590000149
Figure BDA00033352835900001410
其中,
Figure BDA00033352835900001411
表示所述第i轮本地方案梯度密文分量,
Figure BDA0003335283590000151
表示所述第i轮标准方案梯度密文分量,
Figure BDA0003335283590000152
Figure BDA0003335283590000153
表示所述第i轮本地方案梯度密文分量和所述第i轮标准方案梯度密文分量的余弦相似度,m为方案梯度分量长度;
第i轮本地方案梯度密文与对应第i轮标准方案梯度密文的余弦相似度计算规则满足如下方式:
Figure BDA0003335283590000154
其中,所述CSi表示所述客户端第i轮本地方案梯度密文与第i轮标准方案梯度密文的第i轮余弦相似度。
基于上述方法,本发明实施例提供了一种余弦相似度计算方法流程,如图3所示,包括:
步骤301、将1赋值给v,将Enc(0,PKl)赋值给y;
此处,l表示各客户端中的第l个客户端。
步骤302、计算第i轮本地方案梯度密文分量
Figure BDA0003335283590000155
与第i轮标准梯度密文分量
Figure BDA0003335283590000156
的乘积,将乘积结果作为第一中间密文,其中
Figure BDA0003335283590000157
表示客户端l的第i轮本地方案梯度密文
Figure BDA0003335283590000158
的第v分量;
在上述公式中,
Figure BDA0003335283590000159
表示所述第i轮本地方案梯度密文分量,
Figure BDA00033352835900001510
表示所述第i轮标准方案梯度密文分量。
步骤303、将1赋值给u,对第一中间密文进行循环左移操作,得到将第一中间密文所对应的明文每一项都循环左移一位后的密文,作为第二中间密文;
步骤304、将第一中间密文和第二中间密文相加,赋值给第一中间密文;
步骤305、将第二中间密文循环左移,赋值给第二中间密文;
步骤306、判断u是否小于m,若是,将u+1赋值给u,执行步骤304(如此,针对每个客户端的本地方案梯度密文分量,相当于循环左移m-1次,
Figure BDA00033352835900001511
Figure BDA00033352835900001512
Figure BDA0003335283590000161
Figure BDA0003335283590000162
且最终的
Figure BDA0003335283590000163
Figure BDA0003335283590000164
Figure BDA0003335283590000165
将最终的第一中间密文与Enc(1,PKl)相乘,赋值给
Figure BDA0003335283590000166
Figure BDA0003335283590000167
将第一中间密文与y相加,赋值给y(相当于
Figure BDA0003335283590000168
Figure BDA0003335283590000169
),执行步骤307;
步骤307、判断v是否小于
Figure BDA00033352835900001610
若是,将v+1赋值给v,执行第二步,否则,执行步骤308;
步骤308、返回y(CSi)。
本发明实施例提供了一种密文的余弦相似度比较方法,所述余弦相似度满足设定条件,包括:基于所述余弦相似度进行变形获取第一常量和第二常量,根据密文比较规则和所述第一常量和所述第二常量确定第一变量与第二变量,所述密文比较规则用于在密文下获取所述密文的明文比较结果;并根据所述密文比较规则确定基于所述第一变量与所述第二变量的比较结果;确定所述比较结果不等于所述第二常量。也就是说,由于余弦相似度是方案梯度密文的余弦相似度,因此,可以通过密文比较规则获取该方案梯度密文的方案梯度明文对应的余弦相似度的比较结果。
具体的,在一种示例中,密文的余弦相似度比较方法包括:所述各客户端的本地方案梯度密文与标准方案梯度密文的余弦相似度是否大于0满足如下判断方式,包括:
a=[CSi+Enc(1,PK)]×Enc(1/2,PK),
b=Enc(1/2,PK);
x=(a+b)/2,y=(a-b)/2,a0=y,b0=y-1
其中,x表示第一变量,y表示第二变量,a0表示第三变量,b0表示第四变量,PK是所述客户端的公钥;按照下式,对所述第三变量和所述第四变量进行迭代:
Figure BDA0003335283590000171
其中,q表示迭代次数,取值范围为[0,d-1],d表示一个正整数,d越大,结果越准确;x-ad是否等于Enc(1/2,PKl),若是,余弦相似度小于0,若否,余弦相似度大于等于0。也就是说,因为余弦相似度的取值范围为[-1,1],为了符合余弦相似度比较方法的条件,通过对余弦相似度进行[CSi+Enc(1,PK)]×Enc(1/2,PK)计算,使得余弦相似度取值在[0,1]。若[CSi+Enc(1,PK)]×Enc(1/2,PK)<Enc(1/2,PK),则该余弦相似度小于0,该小于0的余弦相似度对应的客户端的本地方案被篡改,该客户端的本地方案梯度密文相应被篡改,则不对该客户端的本地方案梯度密文聚合。
本发明实施例提供了一种基于区块链的隐私保护方案聚合方法,根据所述客户端的本地方案梯度密文和所述余弦相似度,确定所述客户端的聚合子项,并基于所述客户端的聚合子项更新已聚合客户端的累积结果,包括:
将所述客户端的本地方案梯度密文和所述余弦相似度的乘积作为第一聚合子项;将所述客户端对应的所述余弦相似度作为第二聚合子项;将所述第一聚合子项与第一累积结果累加,更新所述第一累积结果;将所述第二聚合子项与第二累积结果累加,更新所述第二累积结果;通过所述客户端计算所述累积结果得到全局方案梯度密文,包括:确定第一随机向量和第二随机向量,获取所述第一随机向量与所述第一累积结果的乘积的第一乘积,获取所述第二随机向量与所述第二累积结果的乘积的第二乘积;将所述第一乘积和所述第二乘积发送至所述客户端;基于所述客户端的私钥,对所述第一乘积进行解密,得到第一解密结果,并对所述第二乘积进行解密,得到第二解密结果,将所述第一解密结果/所述第二解密结果得到计算结果;基于所述客户端的公钥对所述计算结果加密,得到加密计算结果;根据所述第二随机向量/第一随机向量与所述加密计算结果的乘积得到全局方案梯度密文。也就是说,第一累积结果为各客户端的本地方案梯度密文和对应的余弦相似度的乘积的累积和,第二累积结果为各客户端对应的余弦相似度的累积和。聚合服务端确定第一随机向量和第二随机向量,分别将第一随机向量与第一累积结果相乘获得第一乘积,将第二随机向量与第二累积结论相乘获得第二乘积,将第一乘积和第二乘积发送至该客户端。该客户端根据私钥分别对第一乘积和第二乘积解密获取对应的第一解密结果和第二解密结果,并计算第一解密结果/第二解密结果的值,该值为全局方案梯度*(第一随机向量/第二随机向量),进一步该客户端通过公钥对该全局方案梯度*(第一随机向量/第二随机向量)进行加密,获得加密后的结果,将该结果返回至聚合服务端。聚合服务端将该加密的全局方案梯度*(第一随机向量/第二随机向量)乘以(第二随机向量/第一随机向量)得到全局方案梯度密文。
基于上述方法,本发明实施例提供了一种基于区块链的隐私保护方案聚合方法流程,如图4所示,包括:
步骤401、服务端生成两个随机实数S,C,将0赋值给S,C;。
步骤402、将1赋值给l;。
步骤403、利用密文余弦相似度计算规则(如上述图3中的方法流程),计算第l个客户端节点第i轮本地方案梯度密文
Figure BDA0003335283590000181
与第i轮标准方案梯度密文
Figure BDA0003335283590000182
的第i轮余弦相似度
Figure BDA0003335283590000183
步骤404、利用密文比较规则(如上述密文的余弦相似度比较方法),比较第l个客户端第i轮余弦相似度
Figure BDA0003335283590000184
和Enc(0,PKl),判断比较结果是否等于第l个客户端第i轮余弦相似度
Figure BDA0003335283590000185
若是,执行步骤405,否则,执行步骤412。
步骤405、计算第l个客户端第i轮余弦相似度
Figure BDA0003335283590000186
和第l个客户端第i轮本地方案梯度密文
Figure BDA0003335283590000187
的乘积,将乘积结果与S相加,将和赋值给S;。
步骤406、将第l个客户端第i轮余弦相似度
Figure BDA0003335283590000188
与C相加,将和赋值给C;。
步骤407、判断l是否小于f,若是,将l+1赋值给l,执行步骤403,否则,执行步骤408。
此处,f为参与方案梯度聚合的客户端数量。
步骤408、服务端将S(第一累积结果)和C(第二累积结果)分别与第一随机向量h1和第二随机向量h2相乘得到S′=S×Enc(h1,PKl′)(第一乘积)和C′=C×Enc(h2,PKl′)(第二乘积),随机选取一个客户端l′,将作为S′和C′发送至客户端l′。PKl′为客户端l′的公钥。
步骤409、客户端l′运行密文除法规则使用私钥SKl′对S′和C′解密得到d1和d2,客户端l′使用公钥PKl′对d1/d2加密得到r,将r发送至该服务端。
步骤410、服务端计算第i轮全局方案梯度密文ci=r×Enc(h2/h1,PKl′)。
步骤411、服务端将第i轮全局方案梯度密文ci上传至区块链系统。
步骤412、服务端丢弃第i轮本地方案梯度密文
Figure BDA0003335283590000191
与对应的第i轮余弦相似度
Figure BDA0003335283590000192
基于上述方法流程,本发明实施例提供了一种基于区块链的隐私保护方案聚合方法流程,如图5所示,包括:
步骤501、隐私保护方案聚合系统初始化:
构建CKKS加密系统,为第l个客户端节点生成用于各自本地方案梯度加密的公钥PKl和私钥SKl,其中,l的取值范围为[1,f],f表示客户端节点的总数。其中,CKKS加密系统可以设置在基于图1所示的系统架构中另外添加的加密服务端中,也可以设置在客户端中,或者区块链系统的智能合约中等等,这里对CKKS加密系统具体设置位置不做限定。每个客户端节点初始化一个本地方案,智能合约初始化一个标准方案。
步骤502、客户端训练本地方案,得到第i轮本地方案梯度。
此处,在一种示例中,客户端节点执行随机梯度下降方法训练本地方案,生成本地方案梯度;如,客户端节点计算第i轮本地方案梯度:
Figure BDA0003335283590000193
其中,
Figure BDA0003335283590000194
表示第l个客户端节点第i轮本地方案梯度,
Figure BDA0003335283590000195
表示求导操作,L(·)表示损失函数,Dl表示第l个客户端节点的本地数据。
步骤503、客户端加密第i轮本地方案梯度获得第i轮本地方案梯度密文。
此处,在一种示例中,客户端节点将第i轮本地方案梯度发送给CKKS(同态加密算法)加密系统进行加密。需要说明的是,为了便于后续流程步骤中密文余弦相似度的计算,这里对客户端的第i轮本地方案梯度进行标准化:
Figure BDA0003335283590000201
其中,
Figure BDA0003335283590000202
表示第l个客户端节点标准化后的第i轮本地方案梯度,|·|表示向量模操作。
基于CKKS同态加密算法的性质,即,可加密数据长度k,对第i轮本地方案梯度进行分片,第l个客户端节点将标准化后的第i轮本地方案梯度
Figure BDA0003335283590000203
分为
Figure BDA0003335283590000204
个片段
Figure BDA0003335283590000205
利用CKKS加密算法对每个分片结果进行加密,得到第i轮本地方案梯度密文
Figure BDA0003335283590000206
Figure BDA0003335283590000207
其中,
Figure BDA0003335283590000208
表示向上取整操作,Enc(·)表示CKKS加密算法,
Figure BDA0003335283590000209
表示向下取整操作。
步骤504、客户端将第i轮本地方案梯度密文上传至区块链系统。
步骤505、区块链系统接收各客户端上传的第i轮本地方案梯度密文,通过智能合约根据各客户端上传的第i轮本地方案梯度密文、标准方案、聚合规则、执行聚合任务的抵押激励值、完成聚合任务的奖励激励值、智能合约地址生成聚合任务。
步骤506、区块链系统通过智能合约将聚合任务下发至聚合服务端,且聚合服务端给出执行该聚合任务的抵押激励值。
此处,通过针对服务端执行聚合任务设置抵押激励值和奖励激励值的激励机制,即可以提高服务端的执行聚合任务的积极性,又可以提高服务端执行聚合任务获取结果的准确性。
另外,若是对第1轮本地方案梯度密文进行聚合,则区块链系统可以通过智能合约初始化一个空集,将计算消耗小于奖励激励值的聚合服务端添加到该空集中得到可执行聚合任务的聚合服务端集合。区块链系统通过智能合约将聚合任务下发至该聚合服务端集合中的一个聚合服务端中。
步骤507、聚合服务端根据聚合任务采集标准数据集,根据聚合任务中的标准方案计算第i轮标准方案梯度,通过CKKS加密系统对该第i轮标准方案梯度进行加密获取第i轮标准方案梯度密文。
此处,在一种示例中,聚合服务端计算第i轮标准方案:
Figure BDA0003335283590000211
其中,
Figure BDA0003335283590000212
表示第i轮标准方案,α表示方案学习率;利用随机梯度下降公式,计算第i轮标准方案梯度
Figure BDA0003335283590000213
进一步利用CKKS加密算法将第i轮标准方案梯度
Figure BDA0003335283590000214
加密为第i轮标准方案梯度密文
Figure BDA0003335283590000215
步骤508、聚合服务端根据聚合任务中的各客户端的本地方案梯度密文和局和规则聚合各客户端的本地方案梯度密文,如图4中的流程步骤获取全局方案梯度密文,聚合服务端根据全局方案梯度密文ci(第一全局方案梯度密文)和该聚合过程中各指令对应的状态生成第一聚合任务结果,并将该第一聚合任务结果上传至区块链系统。
步骤509、区块链系统将该聚合服务端获得的该第一聚合任务结果进行公开审计。
步骤510、区块链系统接收验证服务端的验证请求和抵押激励值。
步骤511、区块链系统将聚合任务下发至验证服务端。
步骤512、验证服务端根据聚合任务采集标准数据集,根据聚合任务中的标准方案计算第i轮标准方案梯度,通过CKKS加密系统对该第i轮标准方案梯度进行加密获取第i轮标准方案梯度密文。
此处,在一种示例中,验证服务端计算第i轮标准方案:
Figure BDA0003335283590000216
其中,
Figure BDA0003335283590000217
表示第i轮标准方案,α表示方案学习率;利用随机梯度下降公式,计算第i轮标准方案梯度
Figure BDA0003335283590000221
进一步利用CKKS加密算法将第i轮标准方案梯度
Figure BDA0003335283590000222
加密为第i轮标准方案梯度密文
Figure BDA0003335283590000223
步骤513、验证服务端根据聚合任务中的各客户端的本地方案梯度密文和局和规则聚合各客户端的本地方案梯度密文,如图4中的流程步骤获取全局方案梯度密文,验证服务端根据全局方案梯度密文ci(第二全局方案梯度密文)和该聚合过程中各指令对应的状态生成第二聚合任务结果,并将该第二聚合任务结果上传至区块链系统。
步骤514、区块链系统通过智能合约从第一聚合任务结果和第二聚合任务结果中确定出全局方案梯度密文。
此处,区块链系统获取第一聚合任务结果中的第一全局方案梯度密文和第二聚合任务结果中的第二全局方案梯度密文,通过所述智能合约比较第一全局方案梯度密文和第二全局方案梯度密文是否相同。
若不同,区块链系统通过智能合约从第二聚合任务结果的各指令对应的状态中确定出与第一聚合任务结果中各指令对应的状态产生分歧的指令(分歧指令),并通过智能合约以该分歧指令前一指令对应的状态作为初始状态,执行分歧指令,获取分歧指令在区块链系统中对应的状态,若分歧指令在区块链系统中对应的状态与分歧指令在第二聚合任务结果中对应的状态相同,则确定第二全局方案梯度密文是全局方案梯度密文。若分歧指令在区块链系统中对应的状态与分歧指令在第二聚合任务结果中对应的状态不同,则确定第一全局方案梯度密文是全局方案梯度密文。
步骤515、若确定第二全局方案梯度密文是全局方案梯度密文,则给予验证服务端奖励激励值,并给予聚合服务端扣除抵押激励值。若确定第一全局方案梯度密文是全局方案梯度密文,则给予聚合服务端奖励激励值,并给予验证服务端扣除抵押激励值。
步骤516、区块链系统将全局方案梯度密文下发至各客户端。
步骤517、客户端接收全局方案梯度密文,并根据全局方案梯度密文对本地方案进行训练。
客户端节点计算第i+1轮本地方案:
Figure BDA0003335283590000231
其中,
Figure BDA0003335283590000232
表示第l个客户端节点第i+1轮本地方案,α表示方案学习率,gi表示第i轮全局方案梯度;利用随机梯度下降公式,客户端节点对第i轮全局方案梯度进行局部训练,得到相应客户端节点第i+1轮本地方案梯度;计算每个客户端节点第i+1轮本地方案与相应第i轮本地方案的差,判断所有客户端节点对应的计算结果差值是否均小于给定的阈值,若是,则训练结束,否则,将i+1赋值给i,重复步骤503-步骤517。
需要说明的是,上述方法流程步骤并不唯一,如,步骤506和步骤511可以同时执行,则相应的,步骤507和步骤508与步骤512和步骤513可以同时执行,也可以先后执行,步骤512和步骤513可以在步骤507和步骤508之前执行,步骤509和步骤510可以不执行。
基于同样的构思,本发明实施例提供一种基于区块链的隐私保护方案聚合装置,图6为本申请实施例提供的一种基于区块链的隐私保护方案聚合装置示意图,如图6示,包括:
收发模块601,用于接收各客户端上传的本地方案梯度密文;
所述收发模块601还用于,通过智能合约将聚合任务下发至聚合服务端和验证服务端,所述聚合任务用于通过聚合规则将所述各客户端的本地方案梯度密文聚合从而获取全局方案梯度密文;
处理模块602,用于基于所述聚合服务端和所述验证服务端执行所述聚合任务的聚合结果,确定出全局方案梯度密文;
所述收发模块601还用于,将所述全局方案梯度密文下发至各客户端,所述全局方案梯度密文解密后用于客户端对本地方案进行训练。
可选的,所述收发模块601具体用于,通过所述智能合约将所述聚合任务下发至所述聚合服务端;接收所述聚合服务端上传的执行所述聚合任务的第一聚合任务结果;所述第一任务聚合结果中包含第一全局方案梯度密文;通过所述智能合约将所述第一全局方案梯度密文公开审计;接收所述验证服务端验证请求,通过所述智能合约将所述聚合任务下发至所述验证服务端。
可选的,所述处理模块602具体用于,若未接收到所述验证服务端上传的执行所述聚合任务的第二聚合任务结果,则将所述第一全局方案梯度密文确定为所述全局方案梯度密文;若接收到所述第二聚合任务结果,则根据所述第一聚合任务结果和所述第二聚合任务结果,确定出全局方案梯度密文。
可选的,所述处理模块602具体用于,通过所述智能合约比较第一全局方案梯度密文和第二全局方案梯度密文是否相同,所述第一全局方案梯度密文包含于所述聚合服务端执行所述聚合任务得到的第一聚合任务结果中,所述第二全局方案梯度密文包含于所述验证服务端执行所述聚合任务得到的第二聚合任务结果中;若不同,所述区块链系统获取分歧指令,所述分歧指令为所述第二聚合任务结果中各指令对应的状态中,与所述第一聚合任务结果中各指令对应的状态产生分歧的指令;通过所述智能合约以所述分歧指令前一指令对应的状态作为初始状态,执行所述分歧指令,获取所述分歧指令在所述区块链系统中对应的状态;若所述分歧指令在所述区块链系统中对应的状态与所述分歧指令在所述第二聚合任务结果中对应的状态相同,则确定所述第二全局方案梯度密文是所述全局方案梯度密文。
可选的,所述处理模块602具体用于,根据所述标准方案和标准数据集,得到标准方案梯度密文;针对任一客户端的本地方案梯度密文,确定所述客户端的本地方案梯度密文与所述标准方案梯度密文的余弦相似度;在所述余弦相似度满足设定条件时,根据所述客户端的本地方案梯度密文和所述余弦相似度,确定所述客户端的聚合子项,并基于所述客户端的聚合子项更新已聚合客户端的累积结果,直至各客户端均聚合结束;通过任一客户端计算所述累积结果得到全局方案梯度密文。
可选的,所述处理模块602具体用于,包括:将所述客户端的本地方案梯度密文与所述标准方案梯度密文按照相同的分片规则进行分片,分别得到
Figure BDA0003335283590000251
个梯度分量,n为方案梯度长度,k为梯度分量长度;针对
Figure BDA0003335283590000252
个梯度分量中处于同一分量位置的第v分量,确定所述客户端的本地方案梯度密文的第v分量与所述标准方案梯度密文的第v分量的子余弦相似度;根据
Figure BDA0003335283590000253
个梯度分量的子余弦相似度,得到所述客户端的本地方案梯度密文与所述标准方案梯度密文的余弦相似度。
可选的,所述处理模块602具体用于,所述余弦相似度满足设定条件,包括:基于所述余弦相似度进行变形获取第一常量和第二常量,根据密文比较规则和所述第一常量和所述第二常量确定第一变量与第二变量,所述密文比较规则用于在密文下获取所述密文的明文比较结果;并根据所述密文比较规则确定基于所述第一变量与所述第二变量的比较结果;确定所述比较结果不等于所述第二常量。
可选的,所述处理模块602具体用于,将所述客户端的本地方案梯度密文和所述余弦相似度的乘积作为第一聚合子项;将所述客户端对应的所述余弦相似度作为第二聚合子项;将所述第一聚合子项与第一累积结果累加,更新所述第一累积结果;将所述第二聚合子项与第二累积结果累加,更新所述第二累积结果;通过任一客户端计算所述累积结果得到全局方案梯度密文,包括:
确定第一随机向量和第二随机向量,获取所述第一随机向量与所述第一累积结果的乘积的第一乘积,获取所述第二随机向量与所述第二累积结果的乘积的第二乘积;
将所述第一乘积和所述第二乘积发送至所述客户端;
基于所述客户端的私钥,对所述第一乘积进行解密,得到第一解密结果,并对所述第二乘积进行解密,得到第二解密结果,将所述第一解密结果/所述第二解密结果得到计算结果;
基于所述客户端的公钥对所述计算结果加密,得到加密计算结果;
根据所述第二随机向量/第一随机向量与所述加密计算结果的乘积得到全局方案梯度密文。
可选的,方案梯度密文为通过CKKS同态加密算法对方案梯度进行加密得到的。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (8)

1.一种基于区块链的隐私保护方案聚合方法,其特征在于,所述方法包括:
区块链系统接收各客户端上传的本地方案梯度密文;
所述区块链系统通过智能合约将聚合任务下发至聚合服务端,所述聚合任务用于通过聚合规则将所述各客户端的本地方案梯度密文聚合从而获取全局方案梯度密文;
所述区块链系统接收所述聚合服务端上传的执行所述聚合任务的第一聚合任务结果;所述第一聚合任务结果中包含第一全局方案梯度密文;
所述区块链系统通过所述智能合约将所述第一全局方案梯度密文公开审计;
所述区块链系统接收验证服务端验证请求,通过所述智能合约将所述聚合任务下发至所述验证服务端;
所述区块链系统若未接收到所述验证服务端上传的执行所述聚合任务的第二聚合任务结果,则将所述第一全局方案梯度密文确定为所述全局方案梯度密文;
所述区块链系统若接收到所述第二聚合任务结果,且若通过所述智能合约确定所述第一全局方案梯度密文和所述第二聚合任务结果中的第二全局方案梯度密文不同,
则获取分歧指令,所述分歧指令为所述第二聚合任务结果中各指令对应的状态中,与所述第一聚合任务结果中各指令对应的状态产生分歧的指令;
所述区块链系统通过所述智能合约以所述分歧指令前一指令对应的状态作为初始状态,执行所述分歧指令,获取所述分歧指令在所述区块链系统中对应的状态;
若所述分歧指令在所述区块链系统中对应的状态与所述分歧指令在所述第二聚合任务结果中对应的状态不同,则确定所述第一全局方案梯度密文是所述全局方案梯度密文;
所述区块链系统将所述全局方案梯度密文下发至各客户端,所述全局方案梯度密文解密后用于客户端对本地方案进行训练。
2.如权利要求1中所述的方法,其特征在于,还包括:若所述分歧指令在所述区块链系统中对应的状态与所述分歧指令在所述第二聚合任务结果中对应的状态相同,则确定所述第二全局方案梯度密文是所述全局方案梯度密文。
3.如权利要求1或2所述的方法,其特征在于,所述聚合任务中还包含标准方案;所述聚合任务用于通过聚合规则将所述各客户端的本地方案梯度密文聚合从而获取全局方案梯度密文,包括:
根据所述标准方案和标准数据集,得到标准方案梯度密文;
针对任一客户端的本地方案梯度密文,确定所述客户端的本地方案梯度密文与所述标准方案梯度密文的余弦相似度;在所述余弦相似度满足设定条件时,根据所述客户端的本地方案梯度密文和所述余弦相似度,确定所述客户端的聚合子项,并基于所述客户端的聚合子项更新已聚合客户端的累积结果,直至各客户端均聚合结束;
通过所述客户端计算所述累积结果得到全局方案梯度密文。
4.如权利要求3中所述的方法,其特征在于,确定所述客户端的本地方案梯度密文与所述标准方案梯度密文的余弦相似度,包括:
将所述客户端的本地方案梯度密文与所述标准方案梯度密文按照相同的分片规则进行分片,分别得到
Figure FDA0003923761680000021
个梯度分量,n为方案梯度长度,k为梯度分量长度;
针对
Figure FDA0003923761680000022
个梯度分量中处于同一分量位置的第v分量,确定所述客户端的本地方案梯度密文的第v分量与所述标准方案梯度密文的第v分量的子余弦相似度;
根据
Figure FDA0003923761680000023
个梯度分量的子余弦相似度,得到所述客户端的本地方案梯度密文与所述标准方案梯度密文的余弦相似度。
5.如权利要求3中所述的方法,其特征在于,所述余弦相似度满足设定条件,包括:
基于所述余弦相似度进行变形获取第一常量和第二常量,根据密文比较规则和所述第一常量和所述第二常量确定第一变量与第二变量,所述密文比较规则用于在密文下获取所述密文的明文比较结果;
并根据所述密文比较规则确定基于所述第一变量与所述第二变量的比较结果;
确定所述比较结果不等于所述第二常量。
6.如权利要求3中所述的方法,其特征在于,根据所述客户端的本地方案梯度密文和所述客户端对应的余弦相似度,确定所述客户端的聚合子项,并基于所述客户端的聚合子项更新已聚合客户端的累积结果,包括:
将所述客户端的本地方案梯度密文和所述余弦相似度的乘积作为第一聚合子项;
将所述客户端对应的所述余弦相似度作为第二聚合子项;
将所述第一聚合子项与第一累积结果累加,更新所述第一累积结果;
将所述第二聚合子项与第二累积结果累加,更新所述第二累积结果;
通过所述客户端计算所述累积结果得到全局方案梯度密文,包括:
确定第一随机向量和第二随机向量,获取所述第一随机向量与所述第一累积结果的乘积的第一乘积,获取所述第二随机向量与所述第二累积结果的乘积的第二乘积;
将所述第一乘积和所述第二乘积发送至所述客户端;
基于所述客户端的私钥,对所述第一乘积进行解密,得到第一解密结果,并对所述第二乘积进行解密,得到第二解密结果,将所述第一解密结果/所述第二解密结果得到计算结果;
基于所述客户端的公钥对所述计算结果加密,得到加密计算结果;
根据所述第二随机向量/第一随机向量与所述加密计算结果的乘积得到全局方案梯度密文。
7.如权利要求4-6中任一项所述的方法,其特征在于,方案梯度密文为通过CKKS同态加密算法对方案梯度进行加密得到的。
8.一种基于区块链的隐私保护方案聚合装置,其特征在于,所述装置包括:
收发模块,用于接收各客户端上传的本地方案梯度密文;
所述收发模块还用于,通过智能合约将聚合任务下发至聚合服务端,所述聚合任务用于通过聚合规则将所述各客户端的本地方案梯度密文聚合从而获取全局方案梯度密文;接收所述聚合服务端上传的执行所述聚合任务的第一聚合任务结果;所述第一聚合任务结果中包含第一全局方案梯度密文;通过所述智能合约将所述第一全局方案梯度密文公开审计;接收验证服务端验证请求,通过所述智能合约将所述聚合任务下发至所述验证服务端;
处理模块,用于若未接收到所述验证服务端上传的执行所述聚合任务的第二聚合任务结果,则将所述第一全局方案梯度密文确定为所述全局方案梯度密文;
若接收到所述第二聚合任务结果,且若通过所述智能合约确定所述第一全局方案梯度密文和所述第二聚合任务结果中的第二全局方案梯度密文不同,
则获取分歧指令,所述分歧指令为所述第二聚合任务结果中各指令对应的状态中,与所述第一聚合任务结果中各指令对应的状态产生分歧的指令;
通过所述智能合约以所述分歧指令前一指令对应的状态作为初始状态,执行所述分歧指令,获取所述分歧指令在所述区块链系统中对应的状态;
若所述分歧指令在所述区块链系统中对应的状态与所述分歧指令在所述第二聚合任务结果中对应的状态不同,则确定所述第一全局方案梯度密文是所述全局方案梯度密文;
所述收发模块还用于,将所述全局方案梯度密文下发至各客户端,所述全局方案梯度密文解密后用于客户端对本地方案进行训练。
CN202111297395.2A 2021-11-03 2021-11-03 一种基于区块链的隐私保护方案聚合方法及装置 Active CN114143311B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111297395.2A CN114143311B (zh) 2021-11-03 2021-11-03 一种基于区块链的隐私保护方案聚合方法及装置
PCT/CN2021/139191 WO2023077627A1 (zh) 2021-11-03 2021-12-17 一种基于区块链的隐私保护方案聚合方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111297395.2A CN114143311B (zh) 2021-11-03 2021-11-03 一种基于区块链的隐私保护方案聚合方法及装置

Publications (2)

Publication Number Publication Date
CN114143311A CN114143311A (zh) 2022-03-04
CN114143311B true CN114143311B (zh) 2023-04-07

Family

ID=80392553

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111297395.2A Active CN114143311B (zh) 2021-11-03 2021-11-03 一种基于区块链的隐私保护方案聚合方法及装置

Country Status (2)

Country Link
CN (1) CN114143311B (zh)
WO (1) WO2023077627A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117094420B (zh) * 2023-10-20 2024-02-06 浙江大学 一种模型训练方法、装置和功率预测方法以及设备和介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111368319A (zh) * 2020-03-04 2020-07-03 西安电子科技大学 一种联邦学习环境下基于区块链的数据安全访问方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10289816B1 (en) * 2018-06-08 2019-05-14 Gsfm Llc Methods, systems, and devices for an encrypted and obfuscated algorithm in a computing environment
US20200366459A1 (en) * 2019-05-17 2020-11-19 International Business Machines Corporation Searching Over Encrypted Model and Encrypted Data Using Secure Single-and Multi-Party Learning Based on Encrypted Data
US11694110B2 (en) * 2019-06-12 2023-07-04 International Business Machines Corporation Aggregated machine learning verification for database
US11552785B2 (en) * 2020-04-02 2023-01-10 Epidaurus Health, Inc. Methods and systems for a synchronized distributed data structure for federated machine learning
CN111563265A (zh) * 2020-04-27 2020-08-21 电子科技大学 一种基于隐私保护的分布式深度学习方法
CN111552986B (zh) * 2020-07-10 2020-11-13 鹏城实验室 基于区块链的联邦建模方法、装置、设备及存储介质
CN112199702A (zh) * 2020-10-16 2021-01-08 鹏城实验室 一种基于联邦学习的隐私保护方法、存储介质及系统
CN112685783B (zh) * 2021-01-05 2024-02-27 西安电子科技大学 金融许可区块链中支持隐私保护的数据共享方法
CN113051590B (zh) * 2021-03-19 2024-03-26 华为技术有限公司 一种数据处理方法和相关设备
CN113159745B (zh) * 2021-03-23 2023-06-16 西安电子科技大学 基于全同态的区块链交易隐私保护方法
CN113111124B (zh) * 2021-03-24 2021-11-26 广州大学 一种基于区块链的联邦学习数据审计系统及方法
CN113095510B (zh) * 2021-04-14 2024-03-01 深圳前海微众银行股份有限公司 一种基于区块链的联邦学习方法及装置
CN113467927A (zh) * 2021-05-20 2021-10-01 杭州趣链科技有限公司 一种基于区块链的参与方可信任的联邦学习方法和装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111368319A (zh) * 2020-03-04 2020-07-03 西安电子科技大学 一种联邦学习环境下基于区块链的数据安全访问方法

Also Published As

Publication number Publication date
WO2023077627A1 (zh) 2023-05-11
CN114143311A (zh) 2022-03-04

Similar Documents

Publication Publication Date Title
CN113095510B (zh) 一种基于区块链的联邦学习方法及装置
Wang et al. Privacy-preserving public auditing for data storage security in cloud computing
JP6034927B1 (ja) 秘密計算システム、秘密計算装置、およびプログラム
CN112580821A (zh) 一种联邦学习方法、装置、设备及存储介质
EP3704830A1 (en) Multi-party threshold authenticated encryption
US20080133912A1 (en) Authentication System, Authentication Method, Attesting Device, Verification Device, Their Programs, and Recording Medium
CN112182644A (zh) 一种数据处理方法、装置和电子设备
US20190058580A1 (en) System and method for publication of private data using a blockchain network
JP2016512612A (ja) 部分的準同型暗号およびマスクを用いたプライバシー保護リッジ回帰
KR102601973B1 (ko) 시스템 아키텍처 및 시스템 아키텍처에서 데이터를 처리하는 방법
CN112163854B (zh) 一种层级化基于区块链公钥可搜索加密方法及系统
WO2021061833A1 (en) Lattice based signatures with uniform secrets
CN109861956B (zh) 基于状态通道的数据验证系统、方法、装置及设备
CN115037477A (zh) 一种基于区块链的联邦学习隐私保护方法
CN110175169A (zh) 一种加密数据去重方法、系统及相关装置
CN114143311B (zh) 一种基于区块链的隐私保护方案聚合方法及装置
CN111080296B (zh) 一种基于区块链系统的验证方法及装置
CN116049897A (zh) 基于线性同态哈希和签密的可验证隐私保护联邦学习方法
US20220209960A1 (en) System and method for transmitting a notification to a network
WO2013153628A1 (ja) 演算処理システムおよび演算結果認証方法
CN112668038A (zh) 一种模型训练方法、装置和电子设备
CN110570309A (zh) 用于更换区块链网络的领导者的方法和系统
CN112668016A (zh) 一种模型训练方法、装置和电子设备
CN115632777A (zh) 数据处理方法及电子设备
CN116170185A (zh) 数据的加密方法及装置、处理器和电子设备

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