第一作者:Muhammad Shayan
不列颠哥伦比亚大学网络系统安全(NSS)实验室,主要研究方向为分布式多方系统中的隐私和安全领域。
通讯作者:Ivan Beschastnikh
不列颠哥伦比亚大学计算机科学系副教授,Systopia lab和Software Practices Lab (SPL)成员,研究方向为分布式系统与分布式多方机器学习,其主要学术出版涵盖分布式系统、区块链、机器学习等多个领域。他在顶级会议和期刊如SOSP、OSDI、ACM TOSEM、IEEE TDSC上发表了涉及诸如分布式系统模型编译、联邦学习、区块链共识、深度学习安全等前沿主题的论文。
实验室介绍:
不列颠哥伦比亚大学网络系统安全实验室(Networks, Systems and Security lab)现名为Systopia lab。实验室研究涉及操作系统、分布式系统、安全性、数据来源、程序分析等领域,在顶级系统、网络、安全和机器学习会议和期刊上共发表了127篇文章。
投毒攻击:参与方通过投喂恶意数据,致使本地训练的模型在特定数据集中受损,表现为模型精确率下降、或留有数据后门,从而影响顶层模型的效果。
女巫攻击:在对等网络中,一个恶意节点可以冒充多个用户,从而利用伪装的多个身份进行恶意攻击,影响顶层模型的梯度聚合,从而降低或损害模型性能。
信息泄露攻击:恶意节点获取受害者本地模型提交给顶层模型的梯度,通过主动的对抗性机器学习或者被动的推测攻击,从而获取关于受害者本地模型的隐私信息,如模型参数、数据集标签等。
针对投毒攻击,本文提出使用Multi-Krum算法实现参与全局模型更新的本地模型的更新是否正常,通过算法筛选,选择出所有本地模型更新中大多数的更新方向,从而可以有效排除掉模型中的恶意更新。
针对女巫攻击,本文提出POF共识机制,并利用使用随即可验证函数(VRF)来验证节点身份,实现P2P系统中的权益管理,从而排除掉针对全局模型更新没有贡献的节点,从而排除女巫攻击的可能。
针对信息泄露攻击,文章提出使用预承诺和差分隐私的方式实现Multi-Krum中的计算,并在最终聚合更新时使用秘密共享,使得任何节点无法直接得到单个模型的更新。
第二个主要贡献是将多种现有技术融入到一个 P2P 系统中,如多项式承诺、Shamir 秘密分享等,最终整合成了一个完整的具有隐私计算和安全聚合能力的联邦学习模型,并且完成了部署实验,证明了系统的可行性。
一、系统角色
Biscotti系统中的节点一共有四个角色:
1. 参与训练的节点:此类角色的节点负责读取分布式账本上最新的区块内容,获取全局模型参数,并根据本地数据集进行本地模型的训练,并将获得的本地模型的训练更新通过后续的加噪、验证、并按照一定的条件进行最终顶层模型的安全聚合策略;
2. 噪声委员会:此类角色负责给参与训练的节点的本地模型更新添加噪声,以实现后续验证委员会的计算中的隐私性;
3. 验证委员会:验证委员会负责筛选添加噪声的本地模型更新,使用Multi-Krum算法来选出最多节点更新的方向,作为最终顶层模型的更新方向,并为对应的节点的更新承诺签名;
4. 安全聚合委员会;此角色的节点
在 Biscotti 的每次迭代中,由对等权益加权的一致哈希为系统中的某些对等点指定角色(噪音者、验证者、聚合者)。一个哈希环中的面积由文章提出的每个节点POF的大小比例分配,节点权益越大,其在哈希环上所占的面积越大。如下图所示。
Biscotti系统一次迭代模型如下图所示。
系统中区块链作为分布式账本存在,其设计如下图所示。
噪声协议为了防止信息泄露攻击,节点使用差分隐私,通过添加从正态分布中采样的噪声,在验证期间隐藏其更新,确保每个步骤都是差分私有的。使用预先承诺的噪音来阻止中毒。
验证节点在接收到的更新集合上运行Multi – Krum,通过接受每轮接收到的更新中的前大多数来过滤恶意更新。每个验证者从每个节点处接收以下信息:
1. 加噪以后的本地更新;
2. 原始本地更新的预承诺;
3. K个子噪声的承诺集;
4. 证明这K个子噪声提供节点身份的VRF proof。
当一个验证者收到一个节点的掩码更新时,它可以利用承诺的同态性质来确认掩码SGD更新与未掩码更新和噪声的承诺是一致的。如果下面的等式成立,则掩码更新是合法的:
所有从验证阶段获得足够签名数量的节点就会提交其本地模型更新以聚合到全局模型中。顶层模型的更新方程可以改写为:
具体说来,每一个聚合节点会收到所有拥有足够签名数量的训练节点的以下信息:
聚合委员会中只要有节点收到了所有的秘密份额,则将它进行相加得和,将秘密份额之和使用gossip协议传播给所有的验证节点。最终,最先得到足够多验证节点的中间信息的节点就能够按照秘密共享的性质计算出顶层模型这一轮次的更新,并以此创建新的区块,并将此区块传播给Biscotti系统中的所有节点,从而达成区块链共识。
(1)比斯科蒂对中毒攻击具有鲁棒性;
(2)比斯科蒂保护了单个客户端数据的隐私;
(3)比斯科蒂具有可扩展性和容错性,可用于训练不同的ML模型。
文章为了在分布式环境中进行实验,将Biscotti部署在20台Azure A4m v2虚拟机上,拥有4个CPU核心和32 GB的RAM。文章在每个VM中部署了不同数量的节点。VM的传播遍及六个地区:美国西部、美国东部、印度中部、日本东部、澳大利亚东部和西欧。每次实验执行100次迭代,并记录全局模型的测试误差。为了评估比斯科蒂的防御机制,文章从先前的工作中运行了对联邦学习的信息泄漏和中毒攻击,并在各种攻击场景和参数下测量了它们的有效性。文章还通过在不同的委员会规模下分离系统的特定组件来评估系统设计的性能影响。下图是文章的默认实验参数与数据集。
为了评估攻击的成功与否,文章将攻击率定义为错误预测的目标标签的比例。攻击率为 1 表示攻击成功,而接近零的值表示攻击不成功。实验研究了 Biscotti 成功防御中毒攻击所需的不同参数设置,并与联邦学习基线相比,评估其在 30% 恶意节点攻击下的表现。下图显示了 Biscotti 受到不同数量的投毒者攻击时的总执行时间和最终的攻击率。虽然理论证明Biscotti能够抵御高达30%的投毒者的投毒攻击,但Biscotti甚至在对抗 35%的投毒者时也表现良好。超过35%,Multi-Krum无法阻止中毒攻击的发生,从而影响最终模型性能和总执行时间。
为了证明委员会规模对攻击下收敛的影响,文章在 MNIST 数据集上重新运行了实验,其中验证和聚合委员会规模更大,为 26 个对等点,我们分析确定该委员会规模足够大,可以针对对手提供保护系统中30%的股份。
二、性能、可扩展性和容错能力实验
文章评估Biscotti中每个阶段的开销,并研究随着对等点数量的增加而产生的影响。文章还通过扩大不同委员会的规模来衡量Biscotti的表现,并将其表现与联邦学习进行比较。最后,文章评估客户流失是否对Biscotti的收敛产生影响。
为了分解Biscotti的开销,文章在不同数量的节点上部署了Biscotti来训练MNIST softmax模型。下图捕获了算法每个主要阶段所花费的时间:从噪声客户端收集噪声、通过MultiKrum进行验证和签名收集以及安全聚合SGD更新。下图显示了在3次运行中部署40、60、80和100个节点时每个阶段的每次迭代的平均成本。
当我们改变噪声器/验证器/聚合器集的大小时,文章评估 Biscotti 的性能。为此,文章在 Azure 上部署Biscotti,其MNIST数据集固定大小为100个对等点,并且仅改变每个SGD更新所需的噪声器数量、每个验证委员会使用的验证器数量以及安全聚合中使用的聚合器数量。
最后的基线实验,文章将Biscotti与原始联邦学习基线进行比较,其中使用5个噪声器、26个验证器和26个聚合器执行。在联邦学习中,我们从每轮随机选择的 35% 节点接收更新,而在 Biscotti 中,我们在块中包含前 35% 已验证的更新。两个系统的收敛如下两个图所示,分别显示时间和迭代次数。在此部署中,Biscotti 花费的时间比联邦学习长约 13.8 倍(20.8 分钟 vs 266.7 分钟),但在相同的 100 次迭代后实现了相似的模型性能(92% 准确率)。
这篇文章也存在一定的局限性:
1. 通信开销:由于验证和聚合阶段需要大量的通信开销,Biscotti 目前无法扩展到具有数百万个参数的大型深度学习模型。
2. 顶层模型的信息泄露:由于分布式账本中的更新没有添加任何噪音,因此Biscotti容易受到利用模型本身隐私泄漏的攻击。
3. 权益限制:节点的权益在他们被选为噪音者、验证者或聚合者的机会中起着重要作用。文章假设一个大的利益相关者不会破坏这个系统,因为他们通过参与积累了更多的股份,并且他们的股份与培训结束时的金钱奖励挂钩。然而,恶意客户可能会伪装成诚实的节点来积累股份,并最终转向恶意行为来破坏系统。