1. 阅读前需要知道的重要概念

  • 边缘计算 EC:把计算资源部署在靠近终端设备的位置,例如车联网、无人驾驶、智慧医疗中的路侧单元、边缘服务器等。优点是降低通信延迟和中心服务器压力。

  • 联邦学习 FL:用户不上传原始数据,只在本地训练模型,把模型参数或梯度上传给服务器聚合。典型算法是 FedAvg,即服务器对用户模型更新求平均。

  • 模型参数隐私泄露:即使不上传原始数据,上传的梯度/模型参数也可能被用于成员推断、样本重构、属性推断等攻击。

  • 投毒攻击/拜占庭用户:恶意用户上传错误、低质量或带后门的模型更新,使全局模型精度下降或产生定向误分类。本文实验使用的是标签反转攻击。

  • Shamir (t,n) 门限秘密共享:把一个秘密拆成 n 份,至少 t 份才能恢复秘密,少于 t 份无法获得秘密信息。本文用它把用户模型参数拆成份额发给多个边缘节点。

  • 拉格朗日插值:Shamir 秘密共享的重构工具。只要获得足够份额,就可以在多项式 x=0 处恢复原秘密。

  • 双线性聚合签名:基于双线性映射的签名机制,可把多个签名聚合成一个短签名,用于批量验证身份和数据完整性。本文用它减少用户和边缘节点认证开销。

  • 区块链:提供不可篡改、去中心化、可追溯的执行环境。本文用区块链替代中心服务器,负责注册、验证、筛选恶意更新和聚合模型。

  • Multi-Krum 鲁棒聚合:一种抗拜占庭聚合算法。思想是:正常用户的模型更新彼此距离较近,恶意更新通常距离较远;因此根据更新之间的欧氏距离计算质量分数,选择分数低的更新参与聚合。

  • 半诚实模型:参与方会按协议执行,但会试图从收到的信息中推断隐私。本文假设边缘节点是半诚实的。

2. 问题场景与关键问题

论文面向的是 边缘计算场景下的联邦学习。系统由三类实体组成:终端用户、边缘节点、区块链。用户在本地训练模型,把模型参数以秘密共享份额形式上传给附近边缘节点;边缘节点辅助计算;区块链完成恶意更新筛选和全局聚合。

该场景需要解决的关键问题有:

  1. 模型参数隐私保护:用户不上传原始数据仍不够,模型参数本身也可能泄露训练数据隐私。

  2. 不可信中心服务器问题:传统 FL 依赖中心服务器聚合,服务器可能偷懒、伪造聚合结果、返回错误模型,且存在单点故障。

  3. 恶意用户投毒问题:参与训练的用户可能上传有毒更新,破坏全局模型准确率。

  4. 外部冒充与数据篡改问题:攻击者可能冒充合法用户或边缘节点上传伪造数据。

  5. 边缘节点退出或故障问题:边缘环境中节点不稳定,需要保证部分边缘节点掉线时仍可聚合。

  6. 通信与计算压力问题:终端设备资源有限,不能承担过重的加密、验证和通信负载。

3. 论文创新点

  1. 用区块链替代中心服务器做聚合:避免中心服务器作恶、返回错误结果和单点故障。

  2. 把秘密共享引入边缘联邦学习上传过程:用户模型参数不直接暴露给边缘节点,而是拆分成份额上传。

  3. 在不暴露模型参数的情况下检测投毒更新:边缘节点只计算份额之间的欧氏距离,区块链重构模型更新之间的距离,再用 Multi-Krum 筛除恶意更新。

  4. 加入身份合法性和数据完整性认证:用户和边缘节点上传数据时都带签名,区块链或边缘节点可验证来源和完整性。

  5. 使用双线性聚合签名降低验证开销:批量验证多个签名,减少认证过程的计算成本。

  6. 支持边缘节点退出容错:基于 (t,n) 门限秘密共享,只要至少 t 个边缘节点上传份额,就能完成重构;最多允许 n-t 个边缘节点退出。

  7. 兼顾隐私保护与投毒防御:实验中,当投毒用户比例为 30% 时,本文算法准确率为 94.2%,接近无投毒 FedAvg 的 97.8%,明显高于投毒场景下 FedAvg 的 68.7%。

4. 论文算法步骤

下面以一个区域 r1 为例。设用户为 u1...um,边缘节点为 e1...en,秘密共享门限为 t,当前全局模型为 \Delta w_G^T

阶段一:注册阶段

  1. 边缘节点 e_k选择身份 EID_k,生成私钥 esk_k 和公钥 epk_k = g_1^{esk_k}

  2. 边缘节点获取时间戳 et_k,对身份和时间戳签名:e\sigma_k = h(EID_k \Vert et_k)^{esk_k}

  3. 边缘节点向区块链发送 \{EID_k, et_k, e\sigma_k, epk_k\}

  4. 区块链验证时间戳有效性,并验证签名;通过则注册边缘节点。

  5. 用户 u_i选择身份 UID_i,生成私钥 sk_i 和公钥 pk_i = g_1^{sk_i}

  6. 用户获取时间戳 ut_i,生成签名 \sigma_i = h(UID_i \Vert ut_i)^{sk_i}

  7. 用户向区块链发送 \{UID_i, ut_i, \sigma_i, pk_i\}

  8. 区块链验证时间戳和签名;通过则注册用户。

  9. 注册成功的用户向区块链缴纳押金。

  10. 区块链保存合法用户和边缘节点信息;边缘节点下载固定序列 a_1,\ldots,a_n 和当前全局模型 \Delta w_i^{T+1},并下发给本区域用户。

阶段二:用户本地训练与上传,算法 1

  1. 每轮训练开始,用户u_i 下载当前全局模型 Δw_G^T

  2. 用户在本地数据集上训练,得到本地模型更新 \Delta w_i^{T+1}

  3. 用户构造 t-1 阶秘密共享多项式: f_i(x) = \Delta w_i^{T+1} + \sum_{j=1}^{t-1} b_{ij}x^j,其中秘密是 f_i(0) = \Delta w_i^{T+1}

  4. 对每个边缘节点 e_k,用户计算份额f_i(a_k)

  5. 用户对份额签名:\sigma_i^k = h(UID_i \Vert f_i(a_k) \Vert ut_i^k)^{sk_i}

  6. 用户向边缘节点 e_k 发送 \{UID_i, ut_i^k, f_i(a_k), \sigma_i^k\}

  7. 重复上述过程直到达到训练轮数或模型收敛。

阶段三:边缘节点辅助计算

  1. 边缘节点 e_k 接收所有用户上传的份额消息。

  2. 边缘节点验证用户身份 UID_i 和时间戳 ut_i^k

  3. 边缘节点使用聚合签名等式批量验证所有用户签名。

  4. 如果批量验证失败,则逐个验证签名,找出非法消息。

  5. 对通过验证的用户,边缘节点计算用户份额之间的欧氏距离: d_{ij} = \left\| \Delta w_i^{T+1} - \Delta w_j^{T+1} \right\|_2

  6. 边缘节点对距离结果签名:\sigma_{ij}^k = h\left(EID_k \,\|\, d_{ij}^k \,\|\, et_{ij}^k\right)^{esk_k}

  7. 边缘节点向区块链上传 \{ EID_k,\, d_{ij}^k,\, et_{ij}^k,\, \sigma_{ij}^k \}

阶段四:区块链聚合,算法 2

  1. 区块链接收边缘节点上传的距离份额。

  2. 区块链验证边缘节点身份 EID_k 和时间戳 et_ij^k

  3. 区块链批量验证边缘节点签名;验证失败时可逐个定位异常消息。

  4. 区块链收集至少 K ≥ t 个边缘节点上传的d_ij^k

  5. 区块链用拉格朗日插值重构用户模型更新之间的距离 d_{ij} = \left\| \Delta w_i^{(T+1)} - \Delta w_j^{(T+1)} \right\|_2

  6. 区块链运行 Multi-Krum:

    • 对每个用户更新 i,找出距离它最近的 m-z-2 个更新。

    • 把这些距离求和作为质量评分 s(i)

    • 选择质量评分最低的 m-z 个用户作为合法更新列表 L

  7. 区块链扣除被判定为投毒用户的押金,并把押金分给诚实用户。

  8. 边缘节点从区块链下载合法用户列表 L

  9. 每个边缘节点在本地计算合法用户份额和:\mathrm{sum}_k = \sum_{i \in L} f_i(a_k)

  10. 边缘节点对 sum_k 签名,并上传给区块链。

  11. 区块链验证 sum_k 的签名。

  12. 区块链收集至少 t 个合法 sum_k 后,用拉格朗日插值在 x=0 处恢复聚合结果,即新的全局模型 \Delta w_G^{(T+1)}

  13. 边缘节点从区块链下载新全局模型,并下发给本区域用户。

  14. 用户进入下一轮训练,直到模型收敛或达到最大轮数。

5. 可能的改进创新点,结合隐私保护

  1. 保护“距离信息”本身的隐私 论文认为模型更新之间的欧氏距离不会泄露具体模型参数,但在小规模群体或高维几何信息充足时,距离矩阵可能暴露用户相似性、数据分布、异常身份等信息。 场景:跨医院罕见病诊断。即使不泄露模型参数,距离信息也可能暴露某医院数据分布特殊。 改进:只在安全多方计算中完成 Multi-Krum,不公开距离;或对距离加入可控差分隐私噪声;或只公开最终合法列表,不公开完整距离矩阵。

  2. 从半诚实边缘节点扩展到恶意边缘节点 本文假设边缘节点诚实计算距离和份额和,但现实中边缘服务器可能被攻陷。 场景:车联网路侧边缘节点被攻击者控制,上传伪造距离,使恶意车辆更新被选中。 改进:加入可验证计算、零知识证明、承诺机制,要求边缘节点证明 d_ij^ksum_k是由收到的份额正确计算得到的。

  3. 增强抗投毒能力,特别是非独立同分布和后门攻击 Multi-Krum 对数据非 IID、协同投毒、后门攻击和高比例恶意用户并不总是稳健;论文实验中投毒比例 50% 时算法不能收敛。 场景:智能交通中不同区域车辆数据分布天然不同,正常更新也可能彼此距离较远,容易被误判。 改进:结合 Bulyan、Trimmed Mean、Median、FLTrust、聚类式鲁棒聚合、后门检测或信誉权重机制,区分“正常异质性”和“恶意异常”。

  4. 引入差分隐私防御推断攻击 秘密共享保护传输和聚合过程,但最终全局模型仍可能遭受成员推断、属性推断。 场景:医疗、金融、移动输入法模型发布后,攻击者通过查询模型判断某用户是否参与训练。 改进:在聚合后的全局更新上加入中心化差分隐私噪声,并做隐私预算跟踪;也可以结合个性化 DP,对敏感用户或小样本机构使用更强保护。

  5. 设计更完整的隐私保护激励机制 论文只提到扣除投毒用户押金并分配给诚实用户,但结语也指出奖惩机制还不充分。 场景:移动众包感知中,用户可能搭便车、低质量训练或频繁退出。 改进:引入链上信誉、贡献度评估、隐私保护积分、零知识信誉证明,既奖励高质量贡献,又不公开用户真实身份和数据分布。

  6. 降低区块链开销与链上隐私风险 把距离、签名和聚合过程大量放到链上,可能带来延迟、吞吐瓶颈和公开账本隐私问题。 场景:工业物联网或车联网需要秒级模型更新,链上计算过慢。 改进:链下执行距离计算和鲁棒筛选,链上只保存哈希、承诺、证明和最终结果;可结合 Layer 2、状态通道、联盟链或可信执行环境。

  7. 支持动态用户退出和异步训练 论文主要考虑边缘节点退出,对移动用户掉线、异步上传、迟到更新讨论较少。 场景:手机、车载设备、无人机网络连接不稳定。 改进:加入用户级 dropout-resilient secure aggregation、异步 FL、迟到更新衰减权重和隐私保护重连机制。

  8. 面向个性化联邦学习的隐私保护扩展 全局单一模型不一定适合强异质数据。 场景:不同医院、不同城市交通、不同工厂设备状态差异明显。 改进:在秘密共享和区块链框架下加入个性化 FL、聚类 FL、FedProx/SCAFFOLD 等方法,同时隐藏用户所属簇或机构特征,避免通过聚类结果泄露隐私。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐