导读隐私聚合技术是专用于解决MPC安全多方求和问题的一种特殊协议。能够解决该问题的协议有很多种,包括基于加法同态加密的协议,线性秘密分享的协议等等。本文中的隐私聚合是指基于Google在CCS2017上提出的用于解决联邦学习中梯度安全聚合问题的协议在联邦场景下的优化。
初识
在联邦学习领域中,我们遇到的一个主要问题是,如何保证在分布式训练中梯度聚合时各客户端梯度的数据安全性。服务器若是直接拿到明文梯度进行聚合,虽然是对梯度进行操作,没有直接操作原数据并不会直接泄露隐私数据,但是对于攻击者来说,由于梯度本身就包含原数据的一些信息,通过梯度进行攻击,还是很容易攻击到客户端的隐私数据。
因此,保证各客户端在梯度聚合阶段自己梯度的安全就非常重要。
Google在CCS2017上提出了一种协议用来解决梯度聚合的安全问题,其核心思想是对于每一个客户端的梯度加上混淆项,由于混淆项是和其他客户端共同协商特殊构造的且只有自己知道,在聚合时,每个客户端传给服务器的梯度中的混淆项都可以消除掉,使得服务器可以在拿到真实的梯度聚合结果的前提下无法攻击到各客户端的真实梯度值。由于每一个客户端发来的都是混淆过的梯度,且梯度中的混淆项只有客户端自己知道,在其他客户端和服务器不合谋的前提下,可以保证各客户端梯度的隐私性。
TRON数字钱包科普资料《波场钱包的现在过去与未来》已上线:据最新消息显示,由TokenPocket联合波场TRON官方,以及 TokenPocket 社区志愿者共同撰写的《波场钱包的现在过去与未来》已正式上线。《波场钱包的现在过去与未来》又称为波场钱包小白书,详细介绍了当前TRON钱包与TRON生态密切结合的实例,是目前市面上最为详细的TRON数字钱包科普资料。波场钱包作为波场公链生态中极为重要的入口,是波场生态的重要构成要素。波场钱包从一开始只提供权限管理、转账收款、节点投票等基础功能,到如今不仅可以为用户提供法币交易、闪兑和去中心化交易所等方便快捷的交易服务,还能让用户直接在钱包上体验波场上DApp,挖矿、DeFi、Staking等资产增值服务。详情见原文链接。[2020/8/20]
隐私聚合协议
想要站在巨人的肩膀上,首先要学会攀爬。我们需要先学习一下Google是如何做的,概括学习《PracticalSecureAggregationforPrivacy-PreservingMachineLearning》这篇会议论文。
动态 | 链客社区联合北京交通广播推出区块链技术科普节目:12月11日15:15—16:00,区块链技术社区——链客区块链技术社区将联合北京交通广播FM103.9从零开始为大众科普解码区块链技术,蜻蜓FM及北京广播网同期进行全球直播。首期做客嘉宾为链客区块链技术社区创始人郄建军和百度区块链产品负责人于雅楠。[2019/12/11]
▲?相关概念
混淆公式:
聚合公式:
动态 | 新浪财经:官媒针对区块链的报道从科普宣传转向打假监管:据新浪财经今日消息,“1025新政”满月,一个月间,官媒对区块链的态度风向已转。据11月初的一项统计,七家党媒在新政一周内发布了65篇直接相关报道,当时文章中的关键词是数据、产业、安全、创新等,大量文章偏向于科普区块链的概念以及应用介绍,提醒警惕虚拟货币炒作的仅有3篇。近期,官媒的批评焦点则纷纷指向借区块链之名进行的虚拟货币发行和炒作行为。据统计,新华网、人民网收录转载的,以打击虚拟货币或揭露假借区块链行为主题的文章,自10月25日到11月25日午间,共28篇;其中,11月19日至11月25日的一周内就高达15篇。这些文章主要围绕三个观点展开:厘清区块链和虚拟货币的关系,说明二者概念不等;打击伪“区块链”局,或是虚拟货币局揭露;提醒民众,区块链不能成为炒作的噱头,更不是行的招牌,需警惕此类活动,理性投资。[2019/11/26]
阈值秘密分享:
秘密分享是指数据拆散成多个无意义的数,并将这些数分发到多个参与方那里。每个参与方拿到的都是原始数据的一部分,一个或少数几个参与方无法还原出原始数据,只有全部参与方的数据凑在一起时才能还原出原本数据。阈值秘密分享则是将还原的条件放宽,参数方个数达到阈值时数据就可以还原。
动态 | 币安科普MimbleWimble算法:币安官方推特今日发布隐私算法Mimblewimble的科普贴,在下方留言区大量网友留言猜测是否是基于 Mimblewimble算法的隐私币Grin或者Beam即将登陆币安交易所,其中猜测Grin的呼声更高。[2019/9/2]
▲?协议流程
第0轮:客户端初始化相关安全参数,生成公私钥对用于后续流程,并发送公钥给服务器。服务器收集足够客户端的公钥数据,并记录这一阶段的存活客户端为u1。
第1轮:服务器广播收到的公钥给所有客户端。客户端拿到其他客户端的公钥,并随机生成生成混淆项bu;将自己的私钥su以及bu通过秘密分享生成客户端总数量的碎片,并使用碎片对应客户端的的公钥cu加密,返回给服务器。服务器收集足够客户端加密的碎片数据,并记录这一阶段的存活客户端为u2。
动态 | 央行官微旧文重发“再科普”:范一飞详解数字货币:据中国经济网消息,今日,央行官微公众号头条重新发布央行副行长范一飞在2018年1月25日题为《关于央行数字货币的几点考虑》的文章,对央行数字货币再次进行科普。同时,微信公众号第二条发布支付司副司长穆长春8月10日在第三届中国金融四十人伊春论坛上的演讲。近年来,各主要国家和地区央行及货币当局均在对发行央行数字货币开展研究,新加坡央行和瑞典央行等已经开始进行相关试验,人民银行也在组织进行积极探索和研究。[2019/8/21]
第2轮:服务器将收集到的客户端加密的碎片数据转发到对应的客户端。客户端收到后根据混淆公式对自己的数据进行混淆,并将混淆后的数据发送给服务器。服务器将u3广播给每个客户端,并记录这一阶段的存活客户端为u3。
第3轮:客户端收到u3,检查客户端个数是否大于等于安全参数t,小于则终止协议。若大于等于t则对u3进行签名将签名发送给服务器。服务器收集到足够客户端的签名,并记录这一阶段的存活客户端为u4。
第4轮:服务器向客户端广播收集到的签名列表。客户端收到签名列表,验证签名列表大于等于安全参数t,否则中止协议。如果大于等于安全参数t则进行验签。验签出错则中止协议。验签结束后,对于u2和u3的差集中的客户端,即离线客户端,向服务器发送离线客户端的私钥su的碎片,对于u2中的客户端,即在线客户端,向服务器发送在线客户端bu的碎片。服务器将收集到每个客户端的bu碎片进行还原,将收集到的离线客户端的su碎片进行还原,然后将收到的所有混淆数据根据聚合公式进行聚合,并使用恢复su减去离线客户端的混淆项,最终消去所有混淆项获得真实的聚合结果。具体的方式可参看原论文的详细协议流程。
Google这篇论文的背景是移动端作为客户端提供数据参与联邦学习的训练,因此每个客户端都是有很大的可能性随时离线的。由于每个客户端的梯度都在聚合之前进行了混淆,如果有客户端在梯度混淆后还未发给服务器就离线了,会导致在聚合阶段,其他客户端梯度中的混淆项无法被消除,服务器拿到的梯度聚合值是错误的,影响最终训练的结果。
为解决这个问题,协议引入了阈值秘密分享技术在聚合前,将自己混淆项的一部分分享给其他客户端,这样服务器可以在客户端离线后从其他在线客户端恢复离线客户端的混淆项。但如果服务器可以随意恢复任意客户端的混淆项从而拿到梯度的真实值,这样即使解决了离线客户端的问题,也失去了隐私保护的特性。为了防止服务器随意还原客户端梯度的混淆项,协议中引入了另一个随机生成的混淆项,并同样将新引入的混淆项通过秘密分享技术分享给其他客户端。
每个客户端在第4轮被请求某个客户端的碎片时,如果该客户端离线则只提供su的碎片,如果该客户端在线则只提供bu的碎片,对于离线客户端中会影响聚合结果的混淆项可以通过该客户端的su恢复出来,而对于在线客户端发来梯度中的两个混淆项无法都还原出来。通过设置秘密分享时的阈值大小为安全参数之上,使得就算服务器向一批客户端获取某个客户端的su,向另一批客户端获取这一客户端的bu,客户端的总数量使得服务器也无法同时获取su和bu,保证客户端真实梯度的安全性。
阈值的安全参数根据不同的敌手模型如下图所示。
优化和扩展
该协议主要是面向移动端联邦学习中的梯度聚合,因此在联邦场景下可以将解决离线客户端问题的第二个混淆项bu,秘密分享和还原的阶段去除,可以省去大幅的开销,并且更适合于联邦场景下的隐私计算。
由于该协议中的混淆项,是客户端与其他所有参与协议的客户端一起协商计算产生的,对于参与协议客户端较多的情况下整个协议的性能会大幅下降,针对于这种情况,KalikinkarMandal等人提出了新的方案进行改进,方案引入了正则图和邻居用户的概念,每个客户端之和在他邻居中的客户端协商秘钥产生掩码以解决该问题。
基于上述协议解决了MPC中的多方加减法运算,但其实借鉴上述协议思路,可以改造出适用于乘法和除法运算的协议,即项协议中的混淆公式和聚合公式中的加减依次替换为乘除就可以解决MPC中的多方乘除运算,但由于对多个混淆项交替进行了乘除运算,在最终聚合时会产生一定的精度损失,针对精度损失的问题则可以修改混淆公式,避免直接做除法运算,而在最终聚合时进行除法计算抵消混淆项。
作者简介
刘敬
数据网格实验室算法工程师
致力于研究MPC通用和专用算法
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。