文章目录
- INTRODUCTION
- THE FRAMEWORK OF BFLSP
- A.Working Flow of BFLSP
- B. Block Division and Storage Structure
- C. Scoring Mechanism
- D. Node Election Mechanism
- CONCLUSION
论文地址:https://www.researchgate.net/profile/Endong-Tong/publication/360966550_Blockchain-based_decentralized_federated_learning_A_secure_and_privacy-preserving_system/links/6394567c484e65005bfa82d9/Blockchain-based-decentralized-federated-learning-A-secure-and-privacy-preserving-system.pdf
INTRODUCTION
文章提出了一种基于区块链的联邦学习安全与隐私保护框架(blockchain-based federated learning security and privacy protection framework, BFLSP),设计了区块链上的模型存储方案,并添加节点评分机制以及节点选举方案来保证在保证模型准确性的同时,保证训练过程中模型和数据的安全。
THE FRAMEWORK OF BFLSP
使用区块链代替中心服务器,将全局模型上传至区块链上,避免服务器作恶以及单点故障。BFLSP中包含两种不同的节点类型:训练节点和验证节点。训练节点负责使用自己的本地数据进行模型的训练,并将训练完毕的模型更新上传至验证节点。验证节点使用自己的本地数据对接收到的模型更新进行验证,并选择部分模型更新参与全局模型聚合。撒谎给你书角色在每个训练轮次中均会发生变化。
A.Working Flow of BFLSP
BFLSP工作流程 F i g . 1Fig.1Fig.1所示,主要包含以下步骤:
- Step 1: Download the global model. 在每一轮开始前,智能合约会根据每个节点的分数将其划分为训练节点和验证节点,训练节点从区块链中下载全局模型,基于自己的本地数据进行本地训练。
- Step 2: Upload local updates. 训练节点将其本地更新发送至与之通信的验证节点,该验证节点将本地更新广播给其他验证节点。
- Step 3: Upload aggregation model. 验证节点使用自己的本地数据进行模型更新的验证,并将准确率作为训练节点当前轮的分数。在接收到一定数量的模型更新后,根据准确性选择一部分模型更新参与全局模型聚合。另外,验证节点会记录本轮参与模型训练的所有节点的得分,然后根据本轮训练节点的性能得分和历史表现,选择下一轮的验证节点替代列表每个节点的分数记录在区块链上。最后,聚合模型、每个节点的分数以及验证节点的替代列表将被上传到区块链。
- Step 4: Verify the aggregation model. 智能合约对上传到区块链上的模型一致性进行判断,此外需根据新的准确性以及历史记录计算新的分数。
- Step 5: Upload global model and node score. 若智能合约验证本轮的模型聚合有效,则上传至区块链中作为新一轮的初始模型,否则继续上传当前轮使用的全局模型。
B. Block Division and Storage Structure
根据存储内容的不同将区块分为全局模型区块(global model blocks)、聚合模型区块(aggregation model blocks)和分数区块(fractional blocks),如图 F i g . 2Fig. 2Fig.2所示。全局模型区块存储下一轮迭代使用的全局模型、全局模型的上传者、模型的准确率。上传者均为上传全局模型的验证节点,以便在全局模型损坏时进行恶意验证节点的追踪。聚合模型区块存储上传该聚合模型的验证节点、聚合模型、聚合模型的准确率、训练节点的得分以及下一轮验证节点的替代列表。将训练节点上传本地模型更新的准确率作为该轮训练的节点得分。得分区块存储每个节点在前几轮训练中的平均得分、得分方差、以及作为训练节点上传本地本地更新的次数。
C. Scoring Mechanism
记录了每个节点参与模型训练时的平均得分,并用方差来评估每个节点在每轮训练中的性能得分波动,以避免单次作恶情况。假设节点参与了 nnn轮训练,各轮获得的得分用 x = { x1, x2, x3. . . , xn}x = \{x_1,x_2,x_3…,x_n \}x={x1,x2,x3…,xn}表示。 nnn轮训练的平均性能分数可以表示为 A V Gn( x ) =x1+ x2+ x3+ . . . + xn n AVG_n(x)= \frac{x_1+x_2+x_3+…+x_n}{n}AVGn(x)=nx1+x2+x3+…+xn,平方均值可表示为 A V Gn( x ) = x 12+x 22+x 32+ . . . +x n2n 2 AVG_n(x)= \frac{{x_1}^2+{x_2}^2+{x_3}^2+…+{x_n}^2}{n^2}AVGn(x)=n2x12+x22+x32+…+xn2,如果第 n + 1n+1n+1轮训练的得分为 x n + 1 x_{n+1}xn+1,则 n + 1n+1n+1轮后的平均性能为 A V G n + 1( x ) =x ∗ A V Gn( x ) + x n + 1n + 1 AVG_{n+1}(x)=\frac{x*AVG_n(x)+x_{n+1}}{n+1}AVGn+1(x)=n+1x∗AVGn(x)+xn+1,平方均值表示为 A V G n + 1( x2) =n ∗ A V Gn( x2) + x n + 12n + 1 AVG_{n+1}(x^2)=\frac{n*AVG_n(x^2)+x_{n+1}^2}{n+1}AVGn+1(x2)=n+1n∗AVGn(x2)+xn+12。方差可以表示为 V A Rn( x ) = A V Gn( x2) − A V Gn2( x )VAR_n(x)=AVG_n(x^2)-AVG_n^2(x)VARn(x)=AVGn(x2)−AVGn2(x)。
依据上述内容,智能合约能够在每轮聚合完成后重新计算每个节点的累计性能分数以及分数的方差。在分数区块中仅需记录每个节点得分的均值、平方均值和方差,而无需记录每轮的得分,从而减少存储和计算开销。
D. Node Election Mechanism
为了防止训练节点之间串通,文章设计了节点选举方案。当验证节点在本地完成模型聚合后,根据每个训练节点当前轮的性能以及历史性能选出一个候选列表,这个列表将会和聚合模型一起上传至区块链。候选节点的选择受到以下限制:
- Constraint 1: 上一轮的验证节点不能继续作为验证节点
- Constraint 2: 历史性能得分和方差需满足一定的要求
- Constraint 3: 只有诚实节点提交的候选列表才有效
然后,智能合约从验证节点上传的候选列表中随机选择下一轮的验证节点。这样保证了每一轮都是从分数较高且性能没有明显波动的节点中选择验证节点,同时在每一轮训练中,上一轮的验证节点不会知道下一轮的验证节点,以避免验证节点之间的合谋,提高验证节点的可信度。
CONCLUSION
本文重点关注基于区块链的联邦学习框架中的数据和模型安全性,解决两个主要挑战:(1)如何在基于区块链的联邦学习架构中平衡中毒攻击和推理攻击的保护,(2)如何衡量每个参与节点的可信度以提高架构的安全性。为了应对这些挑战,提出了基于区块链的联邦学习安全和隐私保护框(BFLSP)。在该框架中,区块链上仅存储全局模型和每个节点的性能得分,并且模型训练期间的中间梯度仅可供少数节点使用。这使得能够验证中间梯度,同时降低推理攻击的风险。设计了节点分数机制和节点选择机制来提高节点的可信度,避免节点之间的合谋。最后,设计了实验来验证框架下训练的全局模型的准确性,并添加恶意节点进行投毒和推理攻击来验证框架的安全性。实验结果表明,框架可以抵抗投毒攻击,在保证模型准确性的同时,减少推理攻击对原始数据安全性的损害。