WHCSRL 技术网

A Blockchain-Based Decentralized Federated Learning Framework with Committee Consensus

本文简易框架demo源码

背景

  • 问题定义
    • 在联邦学习场景中,客户端通过交换模型梯度或更新后的模型参数,不暴露私人数据,从而合作训练一个共享的全局模型。但是容易存在恶意攻击的行为,分别是恶意客户端和中央服务器对模型或数据的攻击,导致存在安全性问题。
    • 中央服务器的稳定性、公平性和安全性对FL至关重要。简单结合区块链,利用智能合约执行聚合、存储、共享全局模型可以避免中央服务器带来的挑战,但是给维护区块链的客户端节点造成巨大的计算量和网络传输压力,从而区块链的共识效率低下,可扩展性较差。
  • 主要贡献
    • 提出一个基于区块链委员会共识机制的联邦学习框架(BFLC)
    • 从技术上讨论了BFLC的可扩展性,包括委员会节点管理,恶意节点攻击分析,存储优化
    • 在真实数据集上证明了BFLC的有效性,通过模拟恶意攻击来验证安全性。
  • 本文优势
    • 实现去中心化联邦,利用区块链上的智能合约进行全局模型存储和本地模型更新交换
    • 利用创新的委员会共识机制,减少共识计算量。提高安全性、共识效率、可扩展性
      • 安全性(链下委员会选举,交叉验证)
      • 高效性(链上委员会共识, m 2 m^{2} m2的PBFT共识)

方法

架构图

在这里插入图片描述

区块链存储

在这里插入图片描述

  • 定义区块大小:每一个区块的存储大小为一个全局模型或本地模型更新的学习信息
  • 存储流程:
    • 初始化的全局模型被放入第一个区块
    • 节点访问最新的全局模型区块并执行本地训练,上传模型更新并生成一个区块
    • 当满足一定的模型更新区块时,智能合约自动聚合模型更新,将新一轮的全局模型放入新的区块
  • 符号和元数据定义:
    • 每一轮需要的模型更新为:k
    • FL通信轮次为:t
    • 第 t 轮次的全局模型的区块为:第 t × ( k + 1 ) t imes (k+1) t×(k+1)区块
    • 其中 [ t × ( k + 1 ) + 1 , ( t + 1 ) × ( k + 1 ) − 1 ] [ t imes (k+1) +1, (t+1) imes (k+1) -1] [t×(k+1)+1,(t+1)×(k+1)1]区块包含更新信息的区块
    • 全局模型区块学习信息:
      • 块头
      • 通信轮次 t t t
      • 全局模型
    • 模型更新的区块学习信息:
      • 块头
      • 通信轮次 t t t
      • 本地更新的梯度
      • 上传者的地址
      • 更新的得分

委员会共识机制Committee Consensus Mechanism (CCM)

  • 思想
    • 委员会在区块链中通常被视为可信的、固定数量的节点,通过委员会选举机制可选举出每一轮参与共识的区块链节点,从而提高共识算法的效率。
    • 而本文提出一种安全的委员会选举机制,赋予委员会节点验证模型更新和块生成的职责,智能合约依据上一轮委员会对其他训练节点模型的评分进行模型聚合,以及从训练者中选举出下一轮委员会节点。其中同一个节点不会同时担任委员会和训练者的角色,所以委员会节点不会连任。
  • 优点
    • 高效:只需要少数的节点(委员会节点)参与共识,而不需要所有节点参与共识
    • K折交叉验证:委员会节点不作为训练节点,因此,在对训练节点模型更新进行评分时,可以将委员会的本地数据视为验证集,随着委员会的交替担任,可以实现k折交叉验证
    • 抵御恶意节点:基于委员会对模型更新的评分,智能合约将选取表现好的节点作为下一轮委员会。即:所选取的委员会节点的本地数据分布与整体数据分布相似且该节点不是恶意的。

模型训练

上述机制可以解决以下两个挑战:

  • 本地数据可能不是独立同分布的:
    • 模型更新在所有委员会本地数据上进行验证评分,选取表现较好的模型聚合,提高全局模型的泛化性
  • 设备可能不是总是可用的
    • 每一轮仅挑选部分节点的模型聚合,设备可以在可用时主动获取全局模型进行本地训练,从而参与到任意一轮的联邦学习中

委员会选举策略

  • 随机选举:从训练节点中随机选取委员会节点,提高了模型的泛化性,减少了过拟合。但对恶意攻击的抵抗力较弱
  • 基于评分选举:选举评分较高的训练节点作为下一轮的委员会节点,但是由于可能选取的委员会节点在下一轮会不参与,因此也会增加验证集的不均匀性,但会带来更多的安全性和稳定性,给恶意节点攻击带来较大成本
  • 多因素的优化:考虑设备的多个因素(如:网路带宽)以及模型验证评分,但是多个因素考虑带来计算成本

恶意节点分析

假设所有节点数量为 N N N,委员会节点数量为 M M M,剩余节点 N − M N-M NM为训练节点

  • 第一种情况:恶意更新只有当超过 M 2 frac{M}{2} 2M的委员会节点共谋同意才会接受,也就意味着这些恶意的委员会节点也是通过上一轮超过 M 2 frac{M}{2} 2M的恶意委员会节点共谋选举出来,因此只要在第一轮委员会中存在超过 M 2 frac{M}{2} 2M的诚实节点,则不会有恶意节点危害全局模型
  • 第二种情况:假设恶意节点占领委员会节点一般之前都不会进行恶意攻击,因此,每个节点被选举的概率相同,定义节点数量为 A A A,则委员会的比例为 p p p,恶意节点的比例为 q q q,从而将恶意节点攻击成功的概率定义为恶意节点占据委员会节点数量的一半的概率,如下:
    P ( 攻 击 成 功 ) = ∑ i = ⌈ A × p 2 ⌉ A × q ( A × q i ) ( A × ( 1 − q ) ) i ) ( A A × p )
    P()=i=A×p2A×q(A×qi)(A×(1q))i)(AA×p)
    P()=(A×pA)i=2A×pA×q(iA×q)(iA×(1q)))

    其中 ⌈ ⋅ ⌉ left lceil cdot ight ceil 为向上取整, ( X Y ) inom{X}{Y} (YX)为从X中取Y个的组合数。当 q < 0.5 q<0.5 q<0.5时,随委员会节点 p p p的增大,恶意攻击的成功率几乎减少为0。并且,当 q > 0.5 q>0.5 q>0.5时,恶意攻击成功率才会显著上升,因此,共谋攻击者需要付出巨大的算力代价,才能对模型造成影响。
    在这里插入图片描述

实验

数据集和实验设置

  • 数据集
    • FEMNIST
    • 805263个样本和3550个用户的手写体字符
    • 包含62个类别
  • 客户端
    • 数量:900个
    • 每一轮参与的节点比例:k%%%%
    • 其中设置委员会节点比例为40%%%%
    • 本地数据集数量不平衡并且是non-iid
  • 模型设置
    • AlexNet模型
  • 对比基线
    • 基准的FedAvg
    • 集中训练
    • CwMed

无恶意攻击下准确率

在这里插入图片描述

  • 结论:BFLC的性能接近基准的FL,并且仅比集中训练的准确率稍微下降了一点。

恶意攻击下的准确率

在这里插入图片描述

  • 场景设置:在训练的过程中存在恶意攻击的节点,一旦全局模型聚合了恶意节点上传的模型,则全局模型的性能将降低
  • 设置每一轮中参与训练节点中恶意节点的比例
  • 结论:BFLC框架对恶意节点攻击具有鲁棒性

传输成本

在这里插入图片描述

  • 结论:分布式的联邦学习自然明显增加网络传输的成本,但是在存在恶意节点的场景下,BFLC相比其他基于区块链的基准FL、CwMed可以用较少的网络传输成本达到较高的准确率。因此,BFLC具有较高的性能和具有较好的稳定性。
推荐阅读