ABSTRACT:
联邦学习(FL)实现了机器学习模型的协作训练,而无需共享训练数据。传统的FL严重依赖于一个可信的中心化服务器。尽管去中心化的FL消除了对中心的依赖,但可能会加剧FL面临的其他问题,如中毒攻击和数据表示泄露,这是由于对参与者行为的不足限制以及沉重的通信成本,特别是在完全去中心化的情况下,即点对点(P2P)设置中。在本文中,我们提出了一种基于区块链的完全去中心化P2P框架,用于FL,称为BlockDFL。它以区块链作为基础,利用了提出的基于PBFT的投票机制和双层评分机制来在对等参与者之间协调FL,而无需相互信任,同时有效地防御中毒攻击。引入了梯度压缩以降低通信成本,并防止数据被重构出来自传输的模型更新。对两个真实数据集进行的大量实验表明,BlockDFL在准确性上与集中式FL相比具有竞争力,并且可以在实现效率和可扩展性的同时防御中毒攻击。特别是当恶意参与者的比例高达40%时,BlockDFL仍然可以保持FL的准确性,胜过基于区块链的现有完全去中心化P2P FL框架。
KEYWORDS:分散式联邦学习、点对点、区块链、可信联邦学习。(Decentralized Federated Learning, Peer-to-Peer, Blockchain, Trustworthy Federated Learning.)
1 INTRODUCTION
联邦学习(FL)使多个移动设备和物联网设备能够在保留数据的同时联合训练机器学习模型。它可以为一系列基于FL的Web应用程序做出贡献。然而,传统的FL严重依赖于一个可信的集中式服务器,在这种情况下,由于远距离传输导致的带宽限制了FL在大规模和高度复杂问题中的应用。中心依赖性可以通过去中心化的FL来解决。然而,在企业组织之间的协作中,去中心化FL所面临的主要挑战是参与者之间的信任问题。在没有相互信任的情况下,全局模型可能不可信,不同参与者的贡献难以被权威地量化。
区块链是源于去中心化货币系统的分布式账本,它提供了分布式信任,通过强制参与者诚实行事,实现了缺乏相互信任的参与者之间的合作。它还可以记录股权以获得货币奖励来激励诚实行为,因为去中心化系统解除了运营商维护集中式服务器的负担。这些特点使得区块链成为设计去中心化可信FL框架的一个有前景的基础。
不幸的是,去中心化也加剧了FL的固有问题,例如:1)易受毒化攻击的脆弱性;2)相对不足的隐私保护,因为私有训练数据可以通过模型反演攻击从中间模型更新中重建;3)由于传输模型更新的沉重通信成本而导致的低效率。现有基于区块链的FL框架通常整合了额外的保护机制来部分解决隐私和安全问题。例如,通过差分隐私(DP)、同态加密和安全聚合等方式保护隐私,并通过Krum、基于阈值的测试和审计等方式确保安全。然而,现有框架在技术选择上仍然存在一些局限性。对于隐私,尽管差分隐私提供了可证明的保护,但会降低模型的准确性。同态加密和安全聚合带来了巨大的计算和通信成本,降低了效率。对于安全性,现有方法主要将Krum应用于本地更新,忽略了全局更新可能受到污染的情况。此外,当面临非独立同分布(non-IID)数据时,Krum的表现并不理想。基于阈值的测试依赖于手动设置的阈值,不容易确定。审计只提供了可追溯性,但没有提供防御措施。此外,现有解决方案经常忽视了效率优化。其中一些依赖于挖矿来达成共识,这进一步降低了效率,因为需要进行大量的哈希计算。此外,一些现有框架并非完全去中心化,即依赖全球信任机构或受信任的服务器。因此,需要一个完全去中心化的点对点(P2P)解决方案,具有高效性,可以保护FL系统免受污染,并防止训练数据被重建。
为了解决这些问题,我们提出了基于区块链的全面去中心化P2P FL框架BlockDFL,该框架在数据表示方面保护隐私,在防止毒化攻击方面确保安全性,同时实现了高效率。为了在非独立同分布设置中有效地过滤掉毒化更新,我们提出了一个两层评分机制,其中本地更新根据权重进行过滤,并通过中值检测进行评分,全局更新则通过Krum进行评分。为了在每一轮中唯一选择一个全局更新而不产生分叉,我们设计了一个基于Practical Byzantine Fault Tolerance(PBFT)算法的高效投票机制。这两种机制共同作用来防御毒化攻击。我们引入了梯度压缩来保护训练数据不被重建,并进一步降低通信成本。本文的主要贡献有三个方面:
• 我们提出了BlockDFL,一种高效的基于区块链的分散式P2P联邦学习框架,为联邦学习提供安全和隐私保护,并实现高效性。
• 为了在每一轮联邦学习中达成对一个合适的全局更新的共识,我们提出了一种基于PBFT的投票机制,该机制不会发生分叉。它与我们提出的两层评分机制一起工作,以实现抵御毒化攻击。
• 我们实现了BlockDFL的原型,并在两个真实数据集上进行了广泛的实验,结果显示BlockDFL实现了良好的效率和可扩展性,并且在IID和非IID数据的情况下,能够抵御多达40%的恶意参与者的毒化攻击。我们还通过实验证明,存在适当的稀疏性可以保护数据表示的隐私,而不会损害BlockDFL的准确性和安全性。
2 PRELIMINARIES
2.1 Poisoning Attack
联邦学习面临着毒化攻击的风险。恶意参与者可以上传毒化的模型,以负面影响联邦学习的收敛性[22],例如在某个类别中错误标记训练数据并在篡改后的数据集上训练本地模型,导致全局模型无法区分该类别的数据。
有许多适用于集中式系统的防御方法[3, 22, 38]。例如,Krum[3]认为与其他模型更新明显不同的模型更新是毒化的。然而,在一个没有参与者之间相互信任的P2P系统中,很难确定哪个参与者应该负责检测毒化的模型更新,参与者可能不信任其他参与者的判断。BlockDFL通过一种两层评分机制解决了这些问题,即在每一轮中,通过其他几个参与者(第3节中的聚合器)进行本地推断对本地更新进行评分,形成几个全局更新,然后通过另一组参与者(第3节中的验证者)通过Krum对这些全局更新进行评分,最终选择一个全局更新。
2.2 Data Representation Leakage
现有研究表明,在联邦学习中,参与者共享的模型更新仍然包含一些对通过模型反演攻击进行数据重构有用的训练数据信息[12, 28, 43, 48]。如果模型更新泄露,攻击者可以重构私有的训练数据集[26, 34]。因此,联邦学习需要进一步的隐私保护,因为在传统的联邦学习中没有对模型更新进行保护[24],特别是在分散式系统中,模型更新在普通参与者之间传输,这些参与者可能是恶意的。
这种风险可以通过梯度压缩来进行防御,即只传输模型更新中绝对值较大的元素[48]。攻击者无法从充分稀疏的更新中重构数据[27, 28]。直观地说,过度压缩可能对Krum产生负面影响,因为它会过滤掉与大多数更新方向明显不同的模型更新。但我们通过实验证明,在不同更新中,绝对值最大的传输元素的许多索引可能仍然重叠,引入稀疏化可以在空间上区分正常和恶意的模型更新。此外,它甚至可以提高Krum的准确性,因为它有助于仅关注重要的参数,这可能会减少对逐元素距离计算中不重要参数的负面影响。关于这方面的更多细节可以参考附录A.1。
在两个数据集上,BlockDFL在传输之前分别删除了模型更新中绝对值较低的90%和85%的元素,因此,根据附录A.2的实验证明,通过模型反演攻击(如Deep Leakage from Gradients (DLG) attack [48])无法获取任何有用的信息。
3 BLOCKDFL OVERVIEW
BlockDFL是为分散式P2P联邦学习而设计的,具有以下目标:1)防止毒化攻击危害全局模型,2)防止私有训练数据泄露,3)高效进行联邦学习。如图1所示,在每一轮通信中,有四个过程:1)角色选择,2)本地训练,3)聚合,4)验证和共识,其中的一些过程包含多个步骤。
假设参与者可以获得用于验证其他人数字签名的公钥,并通过广播发送信息。在区块链上记录的权益可以与移动运营商或人工智能服务提供商的货币奖励相挂钩,因为分散式联邦学习系统减轻了它们设置和维护集中式服务器的沉重负担。因此,就像[13, 26]中所假设的那样,可以合理地假设持有大量权益的参与者更倾向于诚实地履行义务,因为他们可以从货币奖励中获得更多好处。
参与者被赋予三种不同的角色,即更新提供者、聚合器和验证者。更新提供者基于其私有训练数据训练模型,并将其本地更新共享给聚合器。它们独立工作。聚合器负责收集本地更新,并选择其中的一定数量进行全局更新的聚合。它们也是独立工作的。验证者共同主持选举一个合适的全局更新,并将其与验证者的私钥创建的数字签名、聚合器和更新提供者的身份信息一起打包成一个新添加到区块链中的区块。他们独立评分全局更新,并协作选择一个全局更新。图1中使用不同的颜色标记了独立和协作的步骤。在BlockDFL中,添加一个区块意味着所有参与者已经进行了一轮通信(相当于在联邦学习中执行FedAVG算法[24]一次)。如果区块不为空,所有参与者将根据新添加的区块中包含的全局更新来更新他们的模型。
在每一轮通信开始时,根据最后一个区块的哈希值,每个参与者都被随机分配一个角色,就像[26]中所示(过程➀)。然后,更新提供者使用随机梯度下降(SGD)算法在自己的训练集上训练本地模型,并在将其广播给聚合器之前,通过梯度压缩对本地更新进行稀疏化(过程➁)。每个聚合器继续接收本地更新,直到获取到一定数量的本地更新,然后开始独立进行聚合(过程➂)。聚合器首先根据相应提供者的权益从收到的本地更新中随机抽取一定数量的本地更新。然后,它对抽样的本地更新进行评分,并选择其中一些进行聚合,生成一个全局更新,然后将其广播给验证者。当验证者收到足够数量的全局更新(例如,来自大多数聚合器的全局更新)时,验证过程开始(过程➃)。每个验证者独立对全局更新进行评分,并根据评分对其进行投票,以选择一个批准的全局更新。最后,包含相应信息的批准的全局更新被包装在一个新的区块中,然后广播给所有参与者。
每个非空的区块包含五个组成部分:1)上一个区块的哈希值;2)批准的全局更新以及相应的聚合器和更新提供者的标识;3)验证者的签名投票;4)相关参与者的权益增加;5)创造者的身份信息以及该区块的数字签名。BlockDFL引入了区块链来实现以下目标:1)通过上一个区块的哈希值进行一致且随机的角色分配[41];2)通过新添加的区块来同步全局更新;3)通过权益来区分贡献[42]。诚实行为的参与者将继续累积权益,使恶意参与者对整个联邦学习系统的影响越来越小。
4 DETAILED PROCESSES OF BLOCKDFL
4.1 Role Selection
在BlockDFL的角色选择开始时,上一个区块的哈希值 h-1 被映射到一个哈希环上,每个参与者被分配一个与其权益成比例的空间,就像[26]中所示。对应于 h-1 部分的参与者被选为第一个聚合器。然后,哈希值被反复重新哈希以选择其他聚合器。当选择了一定数量的聚合器后,按照相同的方式选择验证者。当所有聚合器和验证者都被选择后,剩下的参与者成为更新提供者。这确保了拥有更多权益的参与者更有可能被选为重要的角色,即聚合器和验证者。验证者、聚合器和更新提供者的集合分别表示为V、A和U。验证者的数量|V|和聚合器的数量|A|在BlockDFL开始之前都是设置的超参数。正如在第5.3节中所示,BlockDFL的效率主要与聚合器和验证者的数量有关。因此,建议|V|和|A|远小于|U|。
在BlockDFL中,每一轮开始时重新分配角色,使每个参与者有机会向FL系统贡献其本地更新并防御贿赂攻击。
4.2 Local Training
在第t轮中,更新提供者𝑢𝑖根据上一轮的模型参数w𝑖(𝑡−1)和其私有训练数据,使用随机梯度下降(SGD)算法进行本地训练,具体如下:
其中,𝑥是𝑢𝑖的训练集X中包含𝑏个样本的小批量数据,L是损失函数,𝜂是学习率(图1中的步骤2-1)。令w𝑖(𝑡)为经过几个周期的本地训练后的模型参数。本地更新d𝑖可以通过以下方式获得:
为了保护本地数据的表示隐私并降低通信成本,我们采用了类似于[7]中的top-k稀疏化方法对本地更新进行处理。设𝑠为稀疏比例,即稀疏化后本地更新d𝑖中零元素的百分比,更新提供者只传输具有绝对值最大的(1-𝑠)|d𝑖|个元素给聚合器(图1中的步骤2-2)。为了避免精度损失,其余的元素被保留在本地并在参与者的下一次本地训练中进行累积,如[21]所示。稀疏的本地更新被数字签名并广播给聚合器(图1中的步骤2-3)。
4.3 Aggregation
当一个聚合器收集到一定数量的本地更新时,聚合过程开始,每个聚合器独立进行相同的过程。设D表示聚合器收到的本地更新的集合,𝑐表示全局更新必须包含的本地更新的数量。在聚合过程中有两个抽样步骤。第一步是根据相应的权益丢弃大部分模型更新,以减轻后续测试的计算成本。在这一步中,聚合器从D中抽样3 × 𝑐个本地更新,每个本地更新被选中的概率与其更新提供者的权益成正比(图1中的步骤3-1)。被抽样的本地更新构成一个集合D𝑆。为了使更多诚实的参与者有机会分享他们的本地更新,这里可以对权益进行对数缩放。
第二步是基于中值的测试,用于选择高质量的未受污染的本地更新进行聚合。每个聚合器逐个使用D𝑆中的本地更新来更新上一轮的全局模型,并对从自己的训练集中随机抽样的子集进行推理(图1中的步骤3-2)。然后,根据推理准确性,对D𝑆中的本地更新进行降序排列。设DM𝑆表示排序后的D𝑆中位数之前的本地更新,聚合的本地更新从DM𝑆中随机选择,并构成一个集合D𝐴(|D𝐴|=𝑐)。排名为𝑖的本地更新d𝑖在被选中的概率𝑝𝑖为:
其中,𝑞(d𝑖)是聚合器拥有的训练集子集上本地更新d𝑖的推理准确率。D𝐴中的本地更新被聚合成全局更新𝐺,具体如下:
(图1中的步骤3-3)。然后,聚合的全局更新𝐺被数字签名并广播给验证者,以竞争被打包到区块链上(图1中的步骤3-4)。
采用基于中值的测试而不是Krum的原因有两个:1)Krum的复杂度为O(𝑛^2),其中𝑛是要评估的模型更新数量,因此Krum可能不适合评分大量模型更新,例如验证本地更新[26],其中𝑛相对较大;2)Krum受到训练数据的非独立同分布性的影响,因为非独立同分布的数据会增加本地更新之间的距离。而对于测试而言,非独立同分布性的影响相对较小,因为训练在非独立同分布数据集上的本地模型不会导致无法区分特定两个数据类别,就像被污染的模型那样。第5.2节的实验证实了这一点。
权益过滤器使得大部分本地更新被测试来自诚实的参与者,从而确保排序中位数之前的模型更新是未被污染的。基于中值的测试通过将本地更新的得分与其他更新的得分进行比较,而不是依赖于手动阈值[40]或基线验证模型来判断更新是否恶意。因此,这个过程是可靠和适用的,可以在现实世界中使用。
4.4 Verification and Consensus
为了在每一轮中唯一选举出一个合适的全局更新,我们对去中心化的联邦学习简化了PBFT [4]并设计了一个基于投票的验证机制,该验证机制具有以下优点:1)由于验证者是一小组随机选择的参与者,因此具有高效性;2)它可以处理恶意参与者和断开连接的问题,即使对于PBFT的领导者也是如此;3)它永远不会出现分叉。
首选的验证者是验证者中的领导者,按照确定的顺序逐个启动全局更新的验证。在提议的投票机制中,每个全局更新需要经过三个阶段,即预准备、准备和提交。设G是本次通信轮中候选的全局更新集合。假设𝐺𝑖 ∈ G是要验证的第一个选定的全局更新。在对𝐺𝑖的验证中,领导者首先向其他验证者发送带有𝐺𝑖的数字签名的预准备消息。当验证者收到预准备消息时,它向所有验证者广播带有𝐺𝑖的数字签名的准备消息。当验证者收到超过2/3 |V|的准备消息时,它开始进入提交阶段。在提交阶段,验证者通过Krum [3]为每个𝐺𝑖评分,较低的分数表示更高的质量。设𝑓为恶意参与者的百分比,G𝑐𝑖 ⊆ G表示离𝐺𝑖最近的(1 − 𝑓)|G| − 2个全局更新,Krum通过计算𝐺𝑖与G𝑐𝑖中的全局更新之间的距离来评分𝐺𝑖,具体如下:
其他G中的全局更新的得分按照图1中的步骤4-1进行计算。然后,每个验证者向领导者发送包含对𝐺𝑖的投票的签名提交消息。只有𝐺𝑖的得分超过2/3的全局更新的得分,𝐺𝑖才能被肯定地投票,具体如下:
其中,1表示肯定的投票,0表示否定的投票。I为1表示条件满足,否则为0。
如果领导者收到的肯定投票的提交消息超过2/3|V|,则验证结束,𝐺𝑖成为本次通信轮的批准的全局更新(图1中的步骤4-2)。然后,领导者构建一个包含以下内容的区块:1)𝐺𝑖的元素,2)聚合器和𝐺𝑖的更新提供者的身份,以及3)投票支持的验证者的身份。该区块由领导者签名并广播给所有参与者(图1中的步骤4-3)。2)和3)中列出的参与者将平等获得权益奖励。然而,如果领导者收到的否定投票的提交消息数量超过1/3|V|,则𝐺𝑖的验证结束,领导者开始验证另一个全局更新𝐺𝑗。请注意,在验证后续全局更新时,可以直接使用在验证第一个全局更新期间获得的它们的得分。如果G中的所有全局更新都经过验证但没有获得批准,领导者将广播一个空的区块。当参与者接收到一个区块时,如果区块中包含一个批准的全局更新,它将更新本地模型。然后,下一个通信轮开始。
需要注意的是,领导者的恶意行为能力是有限的,因为只有在获得超过2/3的验证者肯定投票时,领导者才能广播一个全局更新。如果不满足这个条件,它只能选择验证下一个全局更新或结束当前的通信轮。因此,如果领导者是恶意的,它对系统造成的伤害只能是拒绝其他验证者的投票,并广播一个空的区块来延迟联邦学习的迭代。我们在验证中应用Krum而不是聚合,原因如下:1)它在相同的更新上的结果是一致的,有助于对投票结果达成共识。2)它的复杂度是O(𝑛^2),其中𝑛是要评分的更新数量,在聚合中𝑛通常比在BlockDFL的验证中大。直观地说,Krum受到模型更新稀疏性的负面影响,因为它通过元素逐个计算它们之间的距离。但我们观察到,在不同更新中具有最大绝对值的(1 − 𝑠)|d𝑖|个元素的索引可能重叠,从而能够在空间上区分稀疏正常更新和恶意更新。更多细节请参见A.1节。
5 EVALUATIONS
5.1 Experimental Setup
我们使用Python 3.8和PyTorch 1.10实现了BlockDFL,以评估其准确性、抗毒性、效率和可扩展性。实验证明:1)与普通的联邦学习相比,BlockDFL具有相当的准确性,并且能够有效抵御毒化攻击,2)BlockDFL能够抵御毒化攻击的原因,以及3)BlockDFL工作效率高,具有良好的可扩展性。
5.1.1 数据集、模型和平台。我们选择了两个广泛使用的真实世界数据集,即MNIST [8]和CIFAR-10 [18]来评估BlockDFL。对于MNIST,我们构建了一个包含1,662,752个参数的卷积神经网络,与[24]中的模型相同。对于CIFAR-10,我们构建了一个包含1,149,770个参数的CIFARNET模型1。在本地训练中,这些模型使用学习率为0.01的SGD进行训练,每轮训练后学习率衰减为0.99。除非另有说明,其他参数设置如表1所列。如表1所示,所有参与者都从10个权益开始,如果他们被授予权益,所获得的权益的量化值为5。在MNIST上,本地更新的稀疏度平均为93.75%,在CIFAR-10上为90%。
我们在Windows10平台上运行了50个参与者,使用了AMD Ryzen 5800 3.40GHz CPU和NVIDIA RTX 3070 GPU。训练集被随机分配给参与者(IID设置),或者按照Dirichlet分布进行采样,参数𝛼=1.0,以构建实际的非IID子集分配给参与者,就像[25]中描述的那样。测试集用于评估全局模型的准确性。每个参与者随机选择其训练集中的20%样本来评分本地更新(第4.3节)。
5.1.2 恶意参与者。恶意更新提供者使用标签翻转攻击(如[22, 26])来毒化本地更新。在MNIST中,他们将数字1标记为7,在CIFAR-10中将猫标记为狗,鹿标记为马,然后在毒化的训练集上进行本地训练。为了更好地评估BlockDFL的鲁棒性,我们通过进一步赋予其他角色能力来促进毒化攻击,而不仅仅是更新提供者(如[26])。例如,恶意聚合器会对接收到的具有最低准确性的𝑐个本地更新进行聚合。不会直接选择来自具有最低权益的更新提供者的𝑐个本地更新,因为这样的行为很容易被检测到,从而暴露出恶意参与者。恶意验证者将与诚实验证者相反地投票,旨在获得错误的共识结果。
5.2 Accuracy and Poisoning Tolerance
5.2.1 评估。我们通过将BlockDFL与普通的联邦学习[24](依赖于可信的集中式服务器)和Biscotti[26]进行比较来评估BlockDFL的准确性,其中Biscotti没有应用差分隐私,并且将差分隐私的强度设置为最低值,如[26]所述。实施Biscotti的原因是它与我们的工作有相似之处,并且根据我们在第5.4节的调查,它是一种基于区块链的去中心化P2P联邦学习框架,在抵御毒化攻击方面表现出强大的鲁棒性,并在近年来得到广泛认可。与更多现有框架的比较见第5.4节。
在普通的联邦学习和Biscotti中,模型更新是没有稀疏化的传输。Biscotti的相关联邦学习设置与BlockDFL相同。需要注意的是,BlockDFL的目标不是超越普通的联邦学习在准确性上,而是在一个完全去中心化的系统中获得尽可能接近普通联邦学习的准确性,同时防止恶意参与者危害联邦学习系统。
我们在MNIST上进行200轮通信的BlockDFL、普通的联邦学习和Biscotti的迭代,并在CIFAR-10上进行300轮通信的迭代,并将它们都暴露在[0%,60%]范围内的毒化攻击下。我们对每个恶意参与者比例运行五次。平均测试准确性是通过在这些运行的最后20%轮中,即MNIST的最后40轮和CIFAR-10的最后60轮,由全局模型对整个测试集进行推断准确性的平均值计算的。图2显示了这些方法的平均测试准确性及其相应的标准差。当在IID数据集上没有恶意参与者时,BlockDFL在MNIST上实现了99.29%的平均准确性,而普通的联邦学习为99.28%,在CIFAR-10上实现了87.41%的平均准确性,而普通的联邦学习为87.84%。在非IID数据集上,BlockDFL略逊于普通的联邦学习,但差距非常小。因此,BlockDFL可以与集中式方案普通的联邦学习实现可比较的准确性。
当面对恶意参与者(≤ 40%)时,BlockDFL在两个数据集上以及IID和非IID设置下的平均测试准确性保持相对稳定,而普通的联邦学习则受到严重威胁。随着恶意参与者的增加,BlockDFL与普通联邦学习之间的平均准确性差距也会增大。此外,当面对恶意参与者时,BlockDFL的收敛性比普通的联邦学习要稳定得多,显示出最后20%轮的标准差非常低。至于Biscotti,在简单的MNIST数据集上,它可以在30%的参与者是恶意的情况下抵御毒化攻击,然而,在复杂的CIFAR-10数据集上,这个比例小于20%。此外,尽管差分隐私的强度被设置为最低值,但在复杂的CIFAR-10数据集上,差分隐私可能导致准确性严重下降。需要注意的是,在CIFAR-10上,一个相对较复杂的数据集,随着恶意参与者比例的增加,BlockDFL的平均测试准确性略有下降,尽管仍然明显优于普通的联邦学习。这种现象也出现在[22]中,因为当系统能够抵御毒化攻击时,恶意参与者持有的训练数据被排除在外。因此,随着恶意参与者比例的增加,贡献给全局模型的数据量减少。
图3展示了这些框架抵御毒化攻击的能力,其中成功攻击比率(SAR)表示在最后20%轮中,包含至少一个毒化本地更新的全局更新的百分比。如图所示,当恶意参与者的比例不超过40%时,BlockDFL的SAR几乎为0%。在非IID CIFAR-10上,BlockDFL的SAR略高一些,但是模型准确性并未受到明显威胁,因为如此少量的恶意模型更新很难造成显著的负面影响。对于Biscotti和普通的联邦学习,普通联邦学习的全局更新包含一个或多个毒化本地更新的情况更容易发生。综上所述,我们得出结论,当恶意参与者比例达到40%时,BlockDFL能够抵御毒化攻击。
5.3 Time Consumption and Scalability
为了展示BlockDFL的效率和可扩展性,我们在MNIST数据集上运行它,参与者的数量范围在[20, 60]之间,并记录了聚合和验证的时间消耗。由于评分本地更新和评分全局更新是聚合和验证的重要步骤,因此我们还记录了这两个步骤的时间消耗。我们将验证者和聚合者的数量固定为4,全局更新的数量𝑐为3,并扩展参与者的数量。由于每个参与者的训练集都是从原始数据集中平均分配的,参与者的数量会影响到每个参与者上评分本地更新所使用的数据集中样本的数量,从而影响到聚合中评分本地更新的时间。为了消除这种影响,我们将每个参与者上用于评分本地更新的样本数量固定为150。
图5(a)展示了在不同参与者数量下每个过程和步骤所花费的时间。我们可以发现,聚合过程中主要花费时间在评分本地更新上,而评分全局更新所花费的时间比验证要少得多,这意味着验证的时间主要花费在合作投票上。随着参与者数量的变化,每个过程所花费的时间保持稳定,这意味着BlockDFL具有很好的可扩展性。
BlockDFL在效率上比较全面的框架Biscotti [26]表现更好。Biscotti在MNIST上评估了一个只包含7,850个参数的模型,并且在40个参与者时,聚合和验证需要超过30秒,这是根据[26]的报告。而我们的BlockDFL在MNIST上评估了一个包含1,662,752个参数的模型,并且总共只需要不到3秒的时间进行聚合和验证,与Biscotti相比非常短。这要归功于1)在一个随机选择的小组中快速达成共识,以及2)使聚合者自己负责聚合的机制,从而消除了对同态承诺和秘密分享的依赖,以进行防毒化。因此,BlockDFL的效率显著优于Biscotti。后者严重依赖同态承诺和秘密分享来确保聚合不受恶意参与者的破坏。因此,BlockDFL具有出色的效率和可扩展性。
为了阐明聚合者和验证者数量对BlockDFL的效率的影响,我们运行了具有不同聚合者和验证者数量的BlockDFL。如图5(b)所示,验证的时间消耗以及评分全局更新主要与聚合者数量有关。当聚合者数量增加时,它们都会增加,因为需要评分的全局更新和选择最终全局更新所需的平均投票数也会增加。但它们对验证者数量的影响较小。至于聚合,它在不同聚合者和验证者数量下几乎保持稳定,因为聚合者是独立工作的。
5.4 Multi-dimensional Qualitative Comparisons
由于BlockDFL是为去中心化的P2P联邦学习而设计的,我们调查了一些现有的基于区块链的去中心化联邦学习框架,这些框架不依赖于全局信任机构或可信服务器,即完全去中心化的P2P环境下的联邦学习框架,并在表2中以六个方面进行了比较:1)隐私:基于联邦学习的隐私保护。2)抵御毒化攻击:防御毒化攻击的方式。3)毒化容忍度:框架可以容忍的恶意参与者的百分比。4)效率优化:优化效率的方式。5)共识与防分叉:区块链的共识机制以及是否能够防止分叉问题。6)数据集:用于评估的数据集,以及参与者之间的数据分布情况。
正如所示,不同的P2P框架引入了不同的机制来部分解决联邦学习面临的问题,如安全性、效率和隐私性。然而,它们并没有统一解决这些问题,例如,解决了毒化攻击却忽视了隐私保护,或者保护了隐私但未能防止毒化攻击。特别是,它们经常忽视了系统效率的优化。
至于毒化容忍度的能力,现有的框架只能在恶意参与者的比例小于或等于30%时防御毒化攻击,而当40%的参与者是恶意的时,BlockDFL可以有效地防御毒化攻击。此外,现有框架的评估还需要进一步改进,即1)大多数现有框架只在简单的数据集上进行评估,如MNIST(威斯康星乳腺癌数据集甚至更简单,信用卡数据集也很简单,逻辑回归模型可以处理[26]),而BlockDFL在MNIST和相对复杂的CIFAR-10数据集上进行了评估;2)现有框架只在参与者之间的数据是IID的情况下进行评估,忽视了联邦学习中非IID数据的特性,而BlockDFL在IID和非IID数据上进行了评估。这增强了BlockDFL评估结果的说服力。从这些比较中可以看出,BlockDFL在毒化容忍度方面优于所有现有的完全去中心化P2P联邦学习框架。
6 RELATED WORK
近年来,关于基于区块链的联邦学习的研究有很多。其中一些在完全去中心化的P2P环境中不适用,原因是1)依赖于全局信任机构或可信服务器[14, 20, 37, 45],或者2)依赖于一组预设的矿工或拥有更高权威性的特殊节点来运行共识[6, 9, 16, 29],其中参与者的权力不平等。这些框架可能仍然面临高延迟问题,因为预设节点可能与参与者之间距离较远。
也有一些研究专注于基于区块链的完全去中心化P2P联邦学习,并且其中一些整合了额外的保护措施来解决隐私和安全问题。为了提供更好的隐私保护,现有的框架在本地模型上添加了一定功率的差分隐私噪声[26],或者利用同态加密[2, 34]和安全聚合[23, 26]来防止特定参与者的模型更新被攻击者拦截。为了过滤掉毒化的模型更新,现有的框架在聚合之前对接收到的本地更新进行了Krum [26] 或𝑙-最近聚合 [5],或者丢弃准确率低于预定义准确率阈值的模型更新 [39],或者利用审计来跟踪行为历史[2]。
这些框架在不同的场景中表现良好。然而,在一个完全去中心化且缺乏相互信任的场景中,现有的框架仍然需要进一步改进。首先,其中一些只解决了联邦学习的部分问题,即解决了毒化攻击但忽视了隐私保护[32, 34, 39],或者保护了隐私但未能防止毒化攻击[2, 23]。其次,一些技术选择对联邦学习带来了负面影响,例如,尽管差分隐私能够通过数学证明保护隐私,但对于复杂模型来说,它会造成显著的准确率损失[33]。同态加密带来了过多的计算开销,使得它不适用于参数较多的模型。安全聚合带来了重大的计算和通信开销,限制了基于它的联邦学习框架的效率和可扩展性。最后,现有框架对毒化攻击的抵抗能力有待提升。如表2所示,现有的框架在IID数据上只能容忍高达30%的恶意客户端,而BlockDFL在IID和非IID数据上,即使存在40%的恶意客户端,也可以有效地防御毒化攻击。
除了毒化攻击的抵抗能力,BlockDFL还具有高效性,原因如下:1)本地更新的验证速度很快,因为基于股权的过滤机制会丢弃许多本地更新;2)基于PBFT的全局更新选举投票工作效率高,因为验证委员会只由少数参与者组成;3)通过梯度压缩进一步降低了传输模型更新的通信成本。值得注意的是,提出的全局更新一致性的投票机制不需要像工作量证明(PoW)共识那样执行无意义的哈希计算,并且不会像[5, 6, 17, 26, 32]中那样出现分叉现象。