Advertisement

【论文阅读】 Privacy-Preserving Byzantine-Robust Federated Learning via Blockchain Systems

阅读量:

该文章发布于2022年IEEE transactions on information forensics and security期刊(简称TIFS)。

目录

  • 摘要
    • 主要研究贡献
      • II. 相关工作综述

      • B. 基于区块链的联邦学习技术发展现状与分析框架研究

      • III. 预备知识介绍

      • A) 分布式学习框架概述

        • B) 数据安全威胁分析——即通过恶意攻击干扰模型训练过程以达到数据泄露或功能破坏的目的。
          Cheon-Kim-Kim-Song 水平(基于同态加密方案的基本框架)
      • 智能合约

      • IV. PROBLEM FORMULATION

        • B.问题定义
        • C.威胁模型
        • D.设计目标

方案规划
* B. 构建PBFL体系
* 本地计算环节
归一化处理
模型集成
最大值确定

abstract

传统的联邦学习往往面临来自恶意客户端及服务器的安全威胁。为了提高系统的安全性,在本文中提出了一种基于区块链平台的隐私保护拜占庭鲁棒联合学习方案。通过计算参与方上传数据向量间的余弦相似度值来识别可能存在的恶意梯度信息。随后,在数据聚合阶段采用了全同态加密技术以确保数据的安全性。最后,在整个过程中采用了区块链技术以实现数据处理流程的高度透明化。

主要贡献

1、我们利用基于完全同态加密(CKKS)的技术构建了一种隐私保护的训练机制,并显著减少了计算与通信成本的同时确保客户端本地数据的安全性不受第三方窥视威胁
2、我们通过余弦相似性过滤恶意梯度以生成一个可信赖的整体模型该模型能够有效抵御 Byzantine 攻击
3、借助区块链技术实现流程透明化并促进法规执行服务器负责进行链外计算并将结果上传至区块链系统从而实现了系统的高效性和安全性
4、实验对比表明

B. Blockchain-Based Federated Learning

18

III. PRELIMINARIES

A.Federated Learning

在联邦学习的标准框架下,各个客户端\{C_1,C_2,...,C_n\}各自拥有本地数据集D_j,j=1,2,3,...,n;联合数据集表示为D=\{D_1,D_2,...,D_n\}。在第i轮中,客户端C_j基于本地数据集和从中央服务器接收的模型参数w_{i-1}进行模型训练,并基于公式(1)所示的目标函数进行优化。

在这里插入图片描述

训练数据被表示为x , 标签被标记为 y , 经验损失函数由 L(x,w,y) 表示 。 中心聚合接收的客户端发送过来的关键参数包括等式 (2) 所示的内容 , 其中 \zeta_i^j = \frac{|D_j|}{|D|}

B. Poisoning Attacks

这一现象在机器学习领域已引起广泛关注。
在网络安全威胁中,
通过操控少量关键节点,
对手能够显著影响系统性能。
具体而言,
此类威胁可分为两种主要类型:
一种是定向破坏性行为(如缩放攻击),
其目标是针对特定数据类别进行干扰;
另一种是非定向防御机制(如Krum和Trim attacks)旨在削弱所有数据类别的准确性。

为了削弱全局模型w的准确性起见, 一般认为对手会发起数据污染攻击以及模型污染攻击. 在数据污染攻击(即标签反转攻谋)中, 参与者会通过污染设备本地数据从而间接影响全球模快. 在模式污染攻谋中, 参与者可以直接操控设备与服务器之间的通信以更新本地模快参数, 这会对全球模快准确性造成直接影响. 因此, 模型污染攻谋往往会对联邦学习的影响范围产生更大的影响

Cheon-Kim-Kim-Song (A FHE sheme)

CKKS支持在浮点数和向量上实现加密,并具备独特的编码-解码过程以及重新缩放机制。

在这里插入图片描述
在这里插入图片描述

智能合约

智能合约是一段存储于区块链中的程序代码,在特定事件触发智能合约协议条款时会自动触发执行。换句话说,在满足特定条件的情况下无需人工干预操作流程即可完成任务。 blockchain与 smart contracts完美契合这一特点源于blockchain技术本身的诸多优势如去中心化不可篡改性等特性能够有效缓解了各方之间的信任顾虑。

IV. PROBLEM FORMULATION

系统模型包括五个实体:密钥分发中心,客户端、求解者、验证者、区块链中心系统。
Key Generation Center (KGC) :可信的权威中心,为客户端和验证者产生公钥私钥对;
Clients :数据拥有者,客户端拥有KGC提供的(pk_k,sk_k),目的是在公共的全局模型中收益。
Solver :拥有一个小而干净的数据集D_0的中央服务器,求解器,负责聚合客户端提交的所有梯度。
Verifier :一个非串通的中央服务器,与求解器合作,也拥有一对由KGC产生的公钥私钥对(pk_v,sk_v)
Blockchain System:为了避免自私行为,中央服务器需要在SC(智能合约)上放置存款以获得潜在的惩罚。此外,结果需要上传到区块链,以实现透明的计算过程
整个系统实体的流程是:
首先,客户端进行归一化,使用pk_v对本地梯度进行加密,求解器(Solver)和验证器(Verifie)进行多轮通信,以在不泄露隐私的情况下建立用户列表,其中客户端诚实地归一化梯度。通信过程在区块链中进行记录,求解器聚合用户列表中客户端的梯度,得到一个用pk_x加密的全局模型,保存在区块链中。 求解器,验证器客户端都需要向智能合约支付押金。

在这里插入图片描述

B.问题定义

在联合学习的情境下,在传统安全聚合场景的基础上有所创新,在n个参与方中存在k个恶意参与者的情况下进行研究

在这里插入图片描述

一个恶意的客户端也能影响全局模型的准确性。

C.威胁模型

KGC作为一位诚实的第三方角色,在系统运行期间与求解器与验证器之间保持了高度的安全性。尽管他们均具备诚信属性的同时也展现出强烈的好奇心特质,在执行既定协议时会秉持诚信态度;然而由于存在好奇心理的影响因素,在某些情况下他们可能会推测并获取敏感信息。本研究主要针对两种类型的客户端展开研究:第一类客户端能够通过真实地分享本地数据集来提升全局模型性能;第二类客户端则通过恶意手段向系统提供虚假梯度信息。此外,在当前环境下潜在威胁包括但不限于以下几种情况:

中毒攻击

数据泄露

推断攻击

D.设计目标

我们致力于设计一个基于区块链的、具备隐私保护机制的联邦学习(FL)方案。该方案能够抵御恶意节点攻击,在计算资源消耗上具有优化效果,并确保数据隐私。同时,我们的方案在保持性能优势的同时,必须能够达到与现有的FedAvg或FedSGD方案相当甚至更高的精度水平。其主要目标是实现系统的鲁棒性、高效性和可靠性,并全面保障数据安全性和模型收敛性。

方案设计

本方案采用CKKS同态加密技术,并经过实验对比发现其相比Pillier加密方案展现出更高的效率。此外,在实际应用中需考虑攻击者可能会释放带有恶意梯度的数据以干扰训练过程;而一个坦诚却好奇的中央服务器则可能推测出客户端的一些敏感信息。

在这里插入图片描述

\mathcal{C} 被定义为按照我们所遵循的标准挑选出诚实规范化客户端的群体,并且 |\mathcal{C}| 表示其规模。

图4示出了我们的方案的概览。

各个客户端通过加密方式对本地更新进行标准化处理,并将归一化的梯度放入集合\mathcal{C}中以利用余弦相似性算法区分诚实客户端与恶意客户端的梯度差异。具体而言,在Solver内预先维护了一个干净的基础数据集D_0(根数据集),并基于此数据集维持一个全局模型参数集合\mathcal{W}_0 = \{w_0\}。每当存在第i轮迭代时,在该轮次中若发现某客户端j的基础梯度与全局模型参数之间的余弦相似度低于阈值(此处阈值设定为负数),则判定该客户端j为恶意行为。
在这一过程中,在线学习器需要将经过标准化处理后的更新信息传递给求解器进行分析处理,并根据计算结果生成新的训练样本用于后续学习阶段。
为了确保求解过程的安全性和可靠性,在每次迭代阶段都需要对中间结果进行严格验证:一方面通过求解器与验证器之间的通信机制获取规范化的更新信息;另一方面则将所有关键中间结果记录到可追溯性的区块链存储系统中。
此外,在每次训练迭代阶段还需要对中间结果和加密后的全局模型参数进行区块认证存储操作:一方面将所有关键中间结果记录到可追溯性的区块链存储系统中;另一方面也需要对加密后的全局模型参数执行区块认证操作以便于后续出现系统故障时能够快速定位问题根源并恢复系统正常运行状态。

B. Construction of PBFL

PBFL三个过程:本地计算、归一化判断、模型聚合。

本地计算

本地计算: 包括局部训练、归一化、加密和模型更新。
局部训练

在这里插入图片描述
在这里插入图片描述

标准化处理
我们采用余弦相似度作为基础来设计聚合规则。为了确保该聚合规则能在密文中正常运行,在加密前对局部梯度进行归一化处理。在这里,我们将梯度定义为方向向量。其中针对每个客户端C_j的归一化过程由以下公式具体实现:

在这里插入图片描述

每个客户端都需要在加密前标准化局部梯度。首先,规范化操作允许我们的聚合规则直接应用于密文,而无需任何更改。因为我们由于归一化把余弦相似度转换成向量的内积。第二,向量的大小相同,这减轻了恶意梯度的影响。这是基于这样一种直觉,即恶意客户端倾向于上传具有较大幅度的局部梯度,以便放大它们的影响。
加密
客户端C_j使用公钥pk_v来加密\tilde{g}_i^j(CKKS),梯度通常是有符号浮点数。如果使用另一种加密方案,如Paillier,我们首先需要量化和剪辑梯度值,然后单独加密每个值,这无疑会产生很高的计算开销。因此,我们使用CKKS来加密本地梯度。
将每一层的\tilde{g}_i^j视作向量,具体的是每一个客户端使用Verifier的公钥pk_v直接加密不同层的梯度。如果向量的长度过长,我们就多次加密,对于其余的向量我们加密一次
模型更新
客户端C_j从区块链下载最新的全局模型,使用私钥sk_x获取明文全局模型w_{i-1} 本地模型更新如下:

在这里插入图片描述

\alpha 是学习率

归一化判断

Solver需要在从客户端接收梯度后确定梯度是否真正归一化。
在接收到加密的梯度 [\![\tilde{g}_i^j]\!]_{pk_v} Solver 会计算 [\![\tilde{g}_i^j]\!]_{pk_v}\odot[\![\tilde{g}_i^j]\!]_{pk_v} 发送给 Verifier ,\odot代表内积
具体来说,CKKS使用多项式,因为与向量的标准计算相比,它在安全性和效率之间提供了良好的权衡。一旦消息被加密成几个多项式,CKKS提供了几个可以对其执行的操作,如加法、乘法和旋转。具体细节如下
假设n^* 维度的向量 [\![\tilde{g}_i^j]\!]_{pk_v} 表示为[\![p_1,p_2...p_{n^*}]\!]_{pk_v},通过相乘获取内积[\![p_1^2,p_2^2...p_{n^*}^2]\!]_{pk_v} 旋转 获得[\![p_2^2,p_3^2...p_{n^*}^2,p_1^2]\!]_{pk_v} 然后将这两个向量进行相加。重复旋转和相加的操作(n^*-1次), 获得[\![r_1,r_2...r_{n^*}]\!]_{pk_v} 显然r_1=p_1^2+p_2^2+p_3^2+...p_{n^*}^2 然后 将[\![r_1,r_2...r_{n^*}]\!]_{pk_v}[1,0,0,...0]相乘获得[\![r_1]\!]_{pk_v}=[\![\tilde{g}_i^j]\!]_{pk_v}\odot[\![\tilde{g}_i^j]\!]_{pk_v}

在这里插入图片描述
模型聚合

当Verifier接收到了用户列表C之后,在其处理完毕后时

具体而言

求解器与Verifier首先安全地执行了一个协议

该协议使得Solver能够获取中间结果以及通过使用密钥 pk_x 加密后的本地模型更新

然后

Solver依据预先定义好的聚合规则获取加密后的全局模型,并将其发送至区块链。

两方计算: Sover首先会计算[\![\tilde{g}_i^0]\!]_{pk_v}[\![\tilde{g}_i^j]\!]_{pk_v} 的余弦相似度,然后与Verifier进行通信。我们的聚合规则依赖诚实的根节点D_0 和相关的模型w^0,这也是用来决策全局模型的期望更新方向,所以与g_i^0更相似的方向在聚合的时候会有更大的权重
D_0 数据集的可以通过手动标记来实现,收集可信的根数据集D_0和手动标记成本通常是solver可以承受的

在这里插入图片描述

在第i轮迭代的时候,Solver 在数据集D_0上训练,获得梯度更新g_i^0 然后使用\tilde{g}_i^0=g_i^0/||g^0_i|| 归一化。Solver加密获得[\![\tilde{g}_i^0]\!]_{pk_v},接着由上述算式计算余弦相似度。其中C_j获得\tilde{g}_i^j=[p_1,p_2,...p_{n^*}],Solver获得\tilde{g}_i^0=[q_1,q_2,...q_{n^*}] 加密后 梯度是[\![p_1,p_2,...p_{n^*}]\!]_{pk_v}[\![q_1,q_2,...q_{n^*}]\!]_{pk_v},因为进行了归一化的操作,两个向量的余弦相似度的计算变成内积的计算。

在这里插入图片描述

cs_i^j 衡量了[\![\tilde{g}_i^0]\!]_{pk_v}[\![\tilde{g}_i^j]\!]_{pk_v}的相似度,负值代表方向与跟数据集的梯度方向相反,会对全局模型产生负面影响
所以这里使用Relu函数用于限制列表C中的梯度

max函数理解

Numerical method for comparison on homomorphically encrypted numbers
使用ReLu函数需要同态下的密文比较,文章中选择了来自2019亚密的论文 《Numerical method for comparison on homomorphically encrypted numbers> 中的算法。 经过组会老师的提醒,我会后也去找了论文的相关部分的算法看。这里面其实首先涉及到对正实数的平方根的计算,原论文先提出Sqrt(x;d)算法:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ydBrsOzr-1679397343958)(./pic/20230321_sqrt.png)]
论文中指出上述算法的输出即Sqrt(x;d)相对于\sqrt{x} 有界于(1-\frac{x}{4})^{2d+1} 通常这个误差是负的,也就是说Sqrt(x;d)通常小于\sqrt{x}.
证明: 因为-1\leq b_0\leq0 对所有的n\in \mathbb{N}可以得到-1\leq b_n\leq0 所以有|b_{n+1}|=|b_n|·|\frac{b_n(b_n-3)}{4}|\leq|b_n| 所以 |b_{n+1}|\leq |b_n|^2·(1-\frac{x}{4}) 得到|b_n||b_{n+1}|的递推关系式,递推可得:
|b_d|\leq |b_0|^{2^d}·(1-\frac{x}{4})^{2^d-1}<(1-\frac{x}{4})^{2^d-1},
b_na_n的定义可以得到等式x(1+b_n)=a_n^2 进一步得到关系:
|\frac{a_n-\sqrt{x}}{\sqrt{x}}|=1-\sqrt{1+b_n}<|b_n|
所以取一个大整数d,误差就会很小,所以算法\sqrt{x}的正确性可以得到验证。
max算法
这一部分也比较好理解,对于求min(a,b)max(a,b) 由下列的关系:
min(a,b)=\frac{a+b}{2}-\frac{|a-b|}{2}=\frac{a+b}{2}-\frac{\sqrt{(a-b)^2}}{2}
max(a,b)=\frac{a+b}{2}+\frac{|a-b|}{2}=\frac{a+b}{2}+\frac{\sqrt{(a-b)^2}}{2}
正确性验证,也比较好得到,对于max的条件下,分a>=ba的情况讨论下,分别可以得到max(a,b)分别等于\frac{a}{2}+\frac{a}{2}\frac{b}{2}+\frac{b}{2}
所以最终可以得到:

在这里插入图片描述

最终的算法如论文中给出

在这里插入图片描述

研究方向:本设计可以从顶会(亚密)上的同态密文比较算法入手进行研究,并且适用于该算法所需的技术条件。

在这里插入图片描述

有在[0,1]范围内同态密文的数值比较方法,但是余弦相似度是落在[-1,1] ,可以加上[\![1]\!] 然后乘1/2,于是0就是变成了1/2 ,更改 ReLU函数为ReLU’

在这里插入图片描述

在收集客户端全部分数之后,在不泄露隐私的情况下, Solver与Verifier协同工作以提供模型聚合所需的值.

在这里插入图片描述

在以往的研究中, 双服务器架构被用于对密文进行层次比较. 同样可以在该系统中得以实现两种功能: (1) 架构可能会推断出 cj_i^j的具体符号, 这对客户端的安全性不利; (2) 这种操作可能导致通信开销增加. 先前的研究已经较为便捷地实现了对密文层面的操作. 采用该方案后采用 Max 算法来模拟 ReLU 函数不仅可以有效保护客户端隐私还可以显著降低总的通信开销.
采用该方案后采用 Max 算法来模拟 ReLU 函数不仅可以有效保护客户端隐私还可以显著降低总的通信开销.

聚合:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

改写说明

关于上述过程的数据流:

在这里插入图片描述

总结:

在这里插入图片描述

全部评论 (0)

还没有任何评论哟~