论文笔记:Privacy-Preserving Byzantine-Robust Federated Learning via Blockchain Systems
文章:Privacy-Preserving Byzantine-Robust Federated Learning via Blockchain Systems
- 背景原因
- 解决方案
- 工作贡献成果
- 预备知识
- 联邦学习
- 投毒攻击
- 投毒攻击分类
- 数据投毒和模型投毒攻击
- 同态加密
- 系统模型
- 威胁模型
- 核心系统算法
- 局部计算
- 局部梯度
- 归一化判断
- 梯度权重
- 聚合算法
会议来源:IEEE TRANSACTIONS ON INFORMA TION FORENSICS AND SECURITY , VOL. 17, 2022
背景原因
1.分布式机器学习在海量数据上实现了更大模型的训练,但仍然容易受到安全和隐私泄露的影响
2.保护隐私的联邦学习方案之一是使用同态加密方案(如Paillier),对局部梯度进行加密,但局部梯度难以计算和传输,开销大(由于Paillier只能对整数进行加密,支持对单个数据进行加密,因此需要先对梯度进行量化,然后逐个加密,这大大增加了计算和通信开销)
3.保护隐私的FL(联邦学习)方案仍然容易受到中毒攻击
4.保护隐私的FL(联邦学习)方案遭受恶意服务器聚合和单点故障威胁
解决方案
我们提出了一个基于区块链的隐私保护拜占庭鲁棒联邦学习(PBFL)方案。具体来说,我们采用余弦相似度作为惩罚恶意客户端的方法。与之前使用余弦相似度机制的方案不同,我们的方案要求服务器收集一个小而干净的根数据集,并为数据集维护一个模型。在确定恶意梯度之前,服务器会考虑本地更新和服务器模型更新,这依赖于可信根,而不是像前面的工作那样只依赖本地更新。与FLTrust一致。在此基础上,采用同态加密技术,在此基础上增加了隐私保护机制。此外,我们使用区块链来促进透明的流程。
工作贡献成果
我们采用全同态加密(FHE)方案CKKS提供了一种隐私保护训练机制,不仅大大减少了计算和通信开销,还防止了攻击者窥探客户端的本地数据。
1.我们提供了一个可信的全局模型,通过余弦相似度去除恶意梯度,从而抵抗中毒攻击。
2.我们使用区块链促进透明的流程和法规的执行。服务器进行链下计算,并将结果上传到区块链,实现了效率和可信度。
3.我们使用两个著名的数据集演示了广泛的实验,并将我们的方案与以前最先进的方案进行了比较。结果表明,该方案具有良好的鲁棒性和效率。
预备知识
联邦学习
在标准的联邦学习设置中,假设我们有一个中央服务器和n个客户端{C1, C2,……Cn},本地数据集D j , j = 1, 2, 3, . . . , n, D = {D1, D2,…Dn}表示联合数据集, 客户的目标是在不泄露本地数据的情况下合作训练一个全局模型。
投毒攻击
投毒攻击: 在投毒攻击中,攻击者通过控制κ客户端来操纵局部模型,最终影响全局模型的准确性
投毒攻击分类
投毒攻击分类:定向攻击,非定向攻击
1.定向攻击: 有针对性的攻击,如缩放攻击,只针对数据集中的一个或多个数据类别,而保持其他类别数据的准确性
2.非定向攻击: 无目标攻击,如Krum攻击、Trim攻击,是一种无差别攻击,目的是降低所有数据类别的准确性。
数据投毒和模型投毒攻击
1.在数据毒害攻击(即标签翻转攻击)中,攻击者通过毒害设备的本地数据间接地毒害全局模型
标签反转攻击:改变样本的标签(给样本使用我们规定的)
标签干净标签攻击:改变样本的输入(将样本的内容修改,标签不变)
2.模型投毒攻击: 在模型投毒攻击中,攻击者可以直接操纵和控制设备与服务器之间通信的模型更新, 直接影响全局模型的准确性
同态加密
同态加密是一种基于数学计算的加密技术。HE满足对明文的加法或乘法等价于对密文的相应运算的性质。完全同态加密是一个既满足加性同态又满足乘性同态的加密函数,可以进行任意次的加法和乘法运算。
本文应用的全同态加密技术ckks(Homomorphic Encryption for Arithmetic of Approximate Numbers),因为该文其中一个实验结果表明,CKKS算法更有效,更适合处理大尺度向量和多参数网络模型
系统模型
请注意,求解器、计算器和客户需要向智能合约支付定金,我们省略了图中的过程
模型设计:
1.KGC (Key Generation Center):为客户端和服务器生成和分发公私钥对的可信机构。
2.客户端:作为数据所有者,客户端拥有KGC提供的公钥/私钥对(pkx, skx),并旨在从通用的全球模型中受益。
3.求解器:一个拥有小型干净数据集D0的中央服务器负责聚合客户端提交的所有梯度。
4.Verifier:一个非合谋的中央服务器,并与求解器合作执行计算。Verifier有一对KGC生成的公钥/私钥(pkv, skv)。
5.区块链系统:为了避免自私行为,中心服务器需要在SC上存入押金以获得潜在的惩罚。此外,还需要将结果上传到区块链,以便进行透明的计算过程。
威胁模型
1.投毒攻击:恶意客户端的目标是在不被检测的情况下影响全局模型的性能。恶意客户端可以通过多种方式发起投毒攻击。例如,他/她改变了数据的标签,并上传了在有毒数据上训练的梯度。
2.数据泄露:由于梯度是客户端本地数据的映射,如果客户端直接上传明文梯度,攻击者可以在一定程度上推断或获取诚实客户端的原始信息,从而导致客户端数据泄露。
3.推理攻击:在我们的方案中,Solver和Ve交换一些中间结果进行协作,以完成本地更新的聚合。因此,他们可能试图从中间结果中推断敏感信息
核心系统算法
PBFL由局部计算、归一化判断和模型聚合三个过程组成
局部计算
局部梯度
归一化判断
我们的聚合规则基于余弦相似度策略。为了使聚合规则适用于密文,在加密前对局部梯度进行归一化处理
因为用ckks加密所以本文向量内积:
向量 [ [ g ~ i j ] ] p k v = [ [ p 1 , p 2 , . . . . . , p n ∗ ] ] p k v 向量 [[ \widetilde g^{j}_{i}]]_{pk_{v}} = [[p_{1},p_{2},.....,p_{n^{*}}]]_{pk_{v}} 向量[[g ij]]pkv=[[p1,p2,.....,pn∗]]pkv
首先将两个加密向量相乘 : [ [ p 1 2 , p 2 2 , . . . . . , p n ∗ 2 ] ] p k v 首先将两个加密向量相乘 : [[p^{2}_{1},p^{2}_{2},.....,p^{2}_{n^{*}}]]_{pk_{v}} 首先将两个加密向量相乘:[[p12,p22,.....,pn∗2]]pkv
旋转向量 [ [ p 1 2 , p 2 2 , . . . . . , p n ∗ 2 ] ] p k v − > [ [ p 2 2 , p 3 2 , . . . . p n ∗ 2 , p 1 2 ] ] p k v 旋转向量 [[p^{2}_{1},p^{2}_{2},.....,p^{2}_{n^{*}}]]_{pk_{v}}->[[p^{2}_{2},p^{2}_{3},....p^{2}_{n^{*}},p^{2}_{1}]]_{pk_{v}} 旋转向量[[p12,p22,.....,pn∗2]]pkv−>[[p22,p32,....pn∗2,p12]]pkv
重复( n ∗ − 1 )次 重复(n^{*}-1)次 重复(n∗−1)次
可以得到 [ [ r 1 , r 2 , r 3 , . . . . r n ∗ ] ] p k v r 1 = p 1 2 + p 2 2 + , . . . . . , + p n ∗ 2 可以得到 [[r_{1},r_{2},r_{3},....r_{n^{*}}]]_{pk_{v}} \quad\quad r1=p^{2}_{1}+p^{2}_{2}+,.....,+p^{2}_{n^{*}} 可以得到[[r1,r2,r3,....rn∗]]pkvr1=p12+p22+,.....,+pn∗2
最后我们两个向量相乘 [ [ r 1 ] ] p k v = [ [ r 1 , r 2 , r 3 , . . . . r n ∗ ] ] p k v 乘 [ 1 , 0 , 0 , . . . . , 0 ] 最后我们两个向量相乘 [[r_{1}]]_{pk_{v}}= [[r_{1},r_{2},r_{3},....r_{n^{*}}]]_{pk_{v}} 乘[1,0,0,....,0] 最后我们两个向量相乘[[r1]]pkv=[[r1,r2,r3,....rn∗]]pkv乘[1,0,0,....,0]
[ [ r 1 ] ] p k v = [ [ g ~ i j ] ] p k v ⊙ [ [ g ~ i j ] ] p k v [[r_{1}]]_{pk_{v}}= [[ \widetilde g^{j}_{i}]]_{pk_{v}} \odot [[ \widetilde g^{j}_{i}]]_{pk_{v}} [[r1]]pkv=[[g ij]]pkv⊙[[g ij]]pkv
梯度权重
具体来说,我们的聚合规则依赖于可信根数据集D0及其对应的模型w0,它们用于确定全局模型更新的更“有希望”的方向。局部模型更新,更类似于g的方向,有更高的权重,而被聚合。与前面的工作一样,Solver可以通过手动标记收集可信的根数据集D0。例如,谷歌可以招募其员工输入Gboard在下一个单词预测的联邦任务中创建根数据集。在第VII节中,我们展示了我们只需要一个小的根数据集D0(例如200个数据点),并且数据集的分布可以与客户端的分布不同。因此,对于Solver来说,收集可信根数据集D0和手动标记的成本通常是负担得起的。
方法:余弦相似度
Solver在数据集D0上训练得到梯度更新 g i 0 g^{0}_{i} gi0,然后使用
g ~ i 0 = g i 0 / ∣ ∣ g i 0 ∣ ∣ \widetilde g^{0}_{i} = g^{0}_{i} /|| g^{0}_{i}|| g i0=gi0/∣∣gi0∣∣
对 g i 0 g^{0}_{i} gi0进行归一化。求解器加密它得到梯度 [ [ g ~ i 0 ] ] p k v [[ \widetilde g^{0}_{i}]]_{pk_{v}} [[g i0]]pkv 然后我们计算这两个向量之间的余弦相似度,其中客户端 C j C_{j} Cj得到 g ~ i j = [ p 1 , p 2 , . . . . . , p n ∗ ] \widetilde g^{j}_{i}=[p_{1},p_{2},.....,p_{n^{*}}] g ij=[p1,p2,.....,pn∗], g i 0 = [ q 1 , q 2 , . . . . . , q n ∗ ] g^{0}_{i} =[q_{1},q_{2},.....,q_{n^{*}}] gi0=[q1,q2,.....,qn∗]加密后的梯度为
[ [ g ~ i j ] ] p k v = [ [ p 1 , p 2 , . . . . . , p n ∗ ] ] p k v , [ [ g ~ i 0 ] ] p k v = [ [ q 1 , q 2 , . . . . . , q n ∗ ] ] p k v [[ \widetilde g^{j}_{i}]]_{pk_{v}}=[[p_{1},p_{2},.....,p_{n^{*}}]]_{pk_{v}}, [[ \widetilde g^{0}_{i}]]_{pk_{v}}=[[q_{1},q_{2},.....,q_{n^{*}}]]_{pk_{v}} [[g ij]]pkv=[[p1,p2,.....,pn∗]]pkv,[[g i0]]pkv=[[q1,q2,.....,qn∗]]pkv
[ [ c s i j ] ] p k v = [ [ g ~ i 0 ] ] p k v ⊙ [ [ g ~ i j ] ] p k v = [ [ p 1 q 1 + p 2 q 2 + . . . . + p n ∗ q n ∗ ] ] p k v [[cs^{j}_{i}]]_{pk_{v}}= [[ \widetilde g^{0}_{i}]]_{pk_{v}} \odot [[ \widetilde g^{j}_{i}]]_{pk_{v}}=[[p_{1}q_{1}+p_{2}q_{2}+....+p_{n^*}q_{n^*}]]_{pk_{v}} [[csij]]pkv=[[g i0]]pkv⊙[[g ij]]pkv=[[p1q1+p2q2+....+pn∗qn∗]]pkv
s . t . , ∣ ∣ g ~ i 0 ∣ ∣ = ∣ ∣ g ~ i j ∣ ∣ = 1 s.t., || \widetilde g^{0}_{i}||=|| \widetilde g^{j}_{i}||=1 s.t.,∣∣g i0∣∣=∣∣g ij∣∣=1
由于归一化,两个向量之间的余弦相似度可以转化为内积。
c s i j cs^j_{i} csij的负值意味着局部梯度 g ~ i j \widetilde g^{j}_{i} g ij的方向与 g ~ i 0 \widetilde g^{0}_{i} g i0的方向相反,这对全局模型产生了负面影响。一个典型的解决方案是在聚合期间丢弃恶意梯度,从而尽可能减少这些梯度的影响。因此,在第i次迭代中,客户端 C j C _{j} Cj的评分 S i j S ^j_{i} Sij由如下定义:
S i j = R e L U ( c s i j ) S ^j_{i}=ReLU(cs^j_{i}) Sij=ReLU(csij)
R e L U = { x , i f x > 0 0 , i f x < 0 ReLU = \begin{cases} x, ifx>0 \\ 0 , ifx<0 \end{cases} ReLU={x,ifx>00,ifx<0
ReLU函数是明文情况下使用的,在密文情况下不适用
下列算法给出了在[0,1]范围内同态密码比较的一种数值方法。两个向量的余弦相似度为[−1,1],这使得我们不能直接将比较方法应用于 [ [ c s i j ] ] 和 [ [ 0 ] ] [[cs^j_{i}]]和[[0]] [[csij]]和[[0]] 。解决方法之一是将余弦相似度转换为允许的范围。要做到这一点,我们首先加 [ [ 1 ] ] 到 [ [ c s i j ] ] [[1]]到[[cs^j_{i}]] [[1]]到[[csij]],使结果的明文落在[0,2]上,然后我们将结果乘以 1 2 \frac{1}{2} 21。因此,最终结果满足要求。请注意,通过我们的转换,值0对应于值 1 2 \frac{1}{2} 21。因此,我们将ReLU函数转换为ReLU’。我们在算法4中调用Max来描述同态比较方法。
R e L U ′ ( [ [ c s i j ] ] ) = { 1 2 ( [ [ c s i j ] ] + [ [ 1 ] ] ) , i f 1 2 ( [ [ c s i j ] ] + [ [ 1 ] ] ) > [ [ 1 2 ] ] [ [ 1 2 ] ] , i f 1 2 ( [ [ c s i j ] ] + [ [ 1 ] ] ) < [ [ 1 2 ] ] ReLU' ([[cs^j_{i}]])= \begin{cases} \frac{1}{2}([[cs^j_{i}]]+[[1]]), if \quad \frac{1}{2}([[cs^j_{i}]]+[[1]])>[[\frac{1}{2}]] \\ [[\frac{1}{2}]] , \quad \quad \quad \quad \quad if \quad \frac{1}{2}([[cs^j_{i}]]+[[1]])<[[\frac{1}{2}]] \end{cases} ReLU′([[csij]])={21([[csij]]+[[1]]),if21([[csij]]+[[1]])>[[21]][[21]],if21([[csij]]+[[1]])<[[21]]
聚合算法
在获得客户端的所有分数后,Solver与Verifier一起工作,以获得模型聚合所需的值,而不会泄露隐私。具体来说,为了获得分数的原始值,求解器设置 [ [ S i j ] ] p k v ′ = 2 ⋅ [ [ S i j ] ] p k v − [ [ 1 ] ] p k v [[S^j_{i}]]_{pk_{v}}' = 2·[[S^j_{i}]]_{pk_{v}}−[[1]]_{pk_{v}} [[Sij]]pkv′=2⋅[[Sij]]pkv−[[1]]pkv。求解器计算 [ [ s u m ] ] p k v = ∑ f = 1 ∣ C ∣ [ [ S i j ] ] p k v ′ [[sum]]_{pk_{v}}=\sum_{f=1}^{|C|}{[[S^j_{i}]]_{pk_{v}}' } [[sum]]pkv=∑f=1∣C∣[[Sij]]pkv′ ,然后Solver随机选择一个 n ∗ {n^*} n∗维向量 V n ∗ 和 V ~ V^{n^*}和\widetilde V Vn∗和V ,得到 V n ∗ ⋅ [ [ g ~ i j ] ] p k v 和 V ~ ⋅ [ [ S i j ] ] p k v ′ V^{n^*}· [[ \widetilde g^{j}_{i}]]_{pk_{v}}和\widetilde V·[[S ^j_{i}]]'_{pk_{v}} Vn∗⋅[[g ij]]pkv和V ⋅[[Sij]]pkv′。最后,求解器发送 [ [ s u m ] ] p k v , V n ∗ ⋅ [ [ g ~ i j ] ] p k v 和 V ~ ⋅ [ [ S i j ] ] p k v ′ [[sum]]_{pk_{v}} ,V^{n^*}· [[ \widetilde g^{j}_{i}]]_{pk_{v}}和\widetilde V·[[S ^j_{i}]]'_{pk_{v}} [[sum]]pkv,Vn∗⋅[[g ij]]pkv和V ⋅[[Sij]]pkv′到区块链。Veifier得到它们并用skv解密,然后Veifier用pkx加密 V n ∗ ⋅ g ~ i j 和 V ~ ⋅ S i j ′ V^{n^*}· { \widetilde g^{j}_{i}}和\widetilde V·{S ^j_{i}}' Vn∗⋅g ij和V ⋅Sij′ ,并发送求和(sum), [ [ V n ∗ ⋅ g ~ i j ] ] p k x 和 [ [ V ~ ⋅ S i j ′ ] ] p k x [[V^{n^*}· { \widetilde g^{j}_{i}}]]_{pk_{x}}和[[\widetilde V·{S ^j_{i}}']]_{pk_{x}} [[Vn∗⋅g ij]]pkx和[[V ⋅Sij′]]pkx到区块链。
该文章大概内容就是这样
其他以后有时间再补
论文笔记:Privacy-Preserving Byzantine-Robust Federated Learning via Blockchain Systems相关推荐
- 最新论文笔记(+21):Privacy-Preserving Byzantine-Robust Federated Learning via Blockchain Systems/ TIFS2022
Privacy-Preserving Byzantine-Robust Federated Learning via Blockchain Systems 可译为"利用区块链实现隐私保护的拜 ...
- 论文笔记——Fair Resource Allocation in Federated Learning
论文笔记--Fair Resource Allocation in Federated Learning 原文论文链接--http://www.360doc.com/content/20/0501/1 ...
- 【论文】【BLADE-FL 】When Federated Learning Meets Blockchain: A New Distributed Learning Paradig
When Federated Learning Meets Blockchain: A New Distributed Learning Paradigm 贡献 BLADE-FL(LearningCh ...
- 【论文笔记】A Survey on Federated Learning: The Journey From Centralized to Distributed On-Site...(综述)
我的博客园:https://www.cnblogs.com/MaplesWCT/ A Survey on Federated Learning: The Journey From Centralize ...
- 【论文阅读】 Privacy-Preserving Byzantine-Robust Federated Learning via Blockchain Systems
这是发表在2022 IEEE TRANSACTIONS ON INFORMATION FORENSICS AND SECURITY(TIFS)上的一篇文章 目录 abstract 主要贡献 II. R ...
- 【论文笔记】Towards Universal Sequence Representation Learning for Recommender Systems
论文详细信息 题目:Towards Universal Sequence Representation Learning for Recommender Systems 作者:Yupeng Hou a ...
- 【论文笔记】《Blockchained On-Device Federated Learning》精读笔记
论文基本信息: DOI: 10.1109/LCOMM.2019.2921755 目录 1.INTRODUCTION 2. ARCHITECTURE AND OPERATION 2.1 one-Epoc ...
- 【论文笔记】A Survey on Federated Learning: The Journey From Centralized to Distributed On-Site Learning a
- 【论文阅读笔记】Efficient and Secure Federated Learning With Verifiable Weighted Average Aggregation
个人阅读笔记,若有错误欢迎指正 期刊:2023 TNSE 论文链接: Efficient and Secure Federated Learning With Verifiable Weighted ...
最新文章
- vue从入门到进阶:Vuex状态管理(十)
- PHP文件头部(header)解释
- TensorFlow配置日志等级
- 阻带窗函数[数字信号处理]使用窗函数设计FIR滤波器
- 解决tensorflow报错:AttributeError: module ‘tensorflow.keras.backend‘ has no attribute ‘get_session‘ 问题
- 转圈显示的Java程序和两矩阵相乘
- 【线上分享】沉浸式视频传输
- 重新学习web后端开发-001-写在前面的话
- java日志——基本日志+高级日志
- 编写下载服务器。 第四部分:有效地实现HEAD操作
- 怎样查找html概念,HTML一般概念_html
- 天网防火墙V2.61学习教程
- 经典书籍《打开量化投资的黑箱》阅读心得
- 听说你要找前端工作,写一个酷炫的动画的简历呀
- 2018.10.27 bzoj1984: 月下“毛景树”(树链剖分)
- Flyme patchrom项目笔记
- Error attempting to get column 'state' from result set
- 深度学习的趣味app简单优化(适合新手)
- 【图示化】SQL Server概念:超键(码)、候选键(候选码)、主键(主码)、主属性与非主属性、外键
- C语言指针与指针变量