基于区块链的联邦学习:使用同态加密和信誉增强隐私和安全性
介绍:联邦学习
AI 最重要的就是 数据集
随着工业设备和数据量的快速增长,机器学习出现了从集中式到分布式训练的范式转变。然而,工业数据往往包含有价值和敏感的信息。这种敏感性对工厂在数据共享和协作方面提出了重大挑战,导致无法充分挖掘数据的潜在价值
联邦学习:分布式的训练AI模型,把训练得出的模型通过参数的迭代聚合,获得有效的全局学习模型。而数据集仍然保留在各自内部,将计算资源和存储资源从中心转移到网络边缘,节省了计算性能
- 相关工作:为了保证传递参数的安全
- 基于密码学的加密方法:表现出更强的鲁棒性。安全多方计算允许多方在其私有输入上执行特定的函数,并通过秘密共享和加密产生期望的输出。然而,它需要很高的计算复杂度和苛刻的要求。
- 差分隐私:通过在交换的参数中引入噪声来保护真实信息,但这不可避免地损害了训练的质量。
- 相比之下,在加密数据上进行计算的同态加密提供了更多的灵活性和实际意义(可以进行密文计算)
- 但是数据端的安全不能完全保证
- 逃避攻击:(时间:推理后)攻击者会故意构造一些特殊的输入样本,这些样本在模型的决策边界附近,能够让模型做出错误的预测。
- 投毒攻击:(时间:训练前)攻击者可能在训练数据集中插入带有错误标签的数据,或者修改现有数据点的特征值,使得模型学习到错误的模式。
- 提出
- 信誉值机制:根据同伴的反馈和经验来评估节点行为的质量和可靠性
- 区块链已经成为对抗安全攻击的有效技术。其分布式共识和链式数据结构提供了防篡改和可追溯的特性。
同态加密
同态加密算法包括全同态(FHE)、部分同态(SWHE)和半同态(PHE)三种。
- 全同态FHE支持无限次的乘法和加法运算,算法复杂度高,实际使用较少。
- 部分同态SWHE支持有限次的加法和乘法运算。
- PHE只支持加法或乘法运算中的一种。
- 加法同态的算法有Paillier算法、DGK算法、OU算法、基于格密码的方案等。
- 乘法同态有我们常见的RSA算法、ElGamal算法、Paillier等。
注:我们说的加法同态(或乘法同态、全同态)是由明文空间的运算种类决定的(和密文空间如何实现这个运算无关)。密文空间可能对应的乘法都是有可能的,具体看如何实现
创新点
- 提出了一种融合隐私和安全保护的联邦学习方法。该方法使用同态加密技术实现对加密数据的分布式训练,并使用区块链技术保证过程的可靠性和完整性。
- 设计了一种用于分布式学习的信誉机制,通过数据验证对模型进行相互评估。这导致累积的有助于全球聚合的声誉价值和激励机制中相应的奖励。该策略有效地减少了攻击者在模型训练过程中操纵局部数据所造成的损失
系统模型
安全模型说明
- 隐私威胁:从边缘节点的角度来看,IIoT实体拥有的本地工业数据往往包含敏感和隐私信息。攻击者,包括外部实体和恶意边缘节点,可能试图通过截获或监视广播信息从参与者中获取本地模型,从而通过推理方法间接获取本地数据。
- 安全威胁:
- 我们主要关注信任和数据中毒的威胁。
- 在IIoT的分布式环境中,参与者依靠相互信任和可靠的信息交换来有效地训练模型。然而,恶意参与者可能会从事诸如提供虚假或误导信息、截留信息或与其他参与者合谋破坏系统完整性等行为。
- 此外,攻击者可能获得部分或全部训练数据的访问权限,并在保持原始数据分布的同时对其进行更改。这可能会导致局部模型较差,数据被破坏,最终影响全局聚合的质量。
架构图
- 网络层(Network Layer):考虑使用边缘计算的IIoT网络,边缘计算服务器通过稳定可靠的无线局域网与附近设备通信。
- 学习层(Learning Layer):负责使用网络层的边缘节点以分布式、点对点的方式训练模型参数。
- 采用Paillier同态加密算法对模型参数进行加密。这使得本地模型参数可以以加密的形式进行训练和通信,提供了隐私保护。
- 声誉层(Reputation Layer):负责计算和更新执行器的声誉值,通过所有参与的边缘节点协作完成。
- 区块链层(Blockchain Layer):负责维护一个公开、可追溯且不可篡改的信息记录,这些信息来自网络层、声誉层和激励层。
- 激励层(Incentive Layer):负责评估执行边缘节点的整体性能,并对表现良好的节点提供额外奖励。
- 应用层(Application Layer):该联邦学习系统支持各种IIoT场景中的应用,如智能工厂、智能电网和供应链管理。
分布式机器学习的算法基础
分布式梯度下降是一种优化算法,用于在多个节点上协同训练模型,同时保持数据的本地性。在联邦学习环境中,每个边缘节点(Edge Node)独立地对其本地数据集(Local Dataset)进行计算,以更新模型参数。然后进行分布式梯度下降
模型训练:
假设有$N$个边缘节点,记为$E = \{E_1, E_2, …, E_N\}$,每个边缘节点$E_i$拥有一个本地数据子集$D_i$,整个数据集记为$D = \{D_1, D_2, …, D_N\}$。每个数据样本$(x_{ij}, y_{ij})$在数据集$D_i$中,其中$x_{ij}$是输入向量,$y_{ij}$是相应的输出。
损失函数:
对于每个数据样本,损失函数可以表示为:
其中,$w_i$表示边缘节点$E_i$训练的本地模型参数。
本地损失函数:
边缘节点$E_i$的本地损失函数,针对其数据集$D_i$,可以表达为:
这里,$|D_i|$表示数据集$D_i$的大小。
全局损失函数:
全局损失函数定义为:
其中,$\upsilon_i$是权重,可能随时间变化。
梯度下降更新:
在训练过程中,每个边缘节点根据其本地数据集独立更新本地模型参数。对于第$t$次迭代,边缘节点$E_i$的本地模型$w_i(t)$根据前一次迭代的模型,遵循梯度下降规则更新:
这里,$\eta > 0$是学习率,$\tilde{w}_i(t)$表示更新后的本地模型,可能因全局聚合而改变。
全局聚合:
在一轮本地更新后,任务发布者执行全局聚合,更新全局模型为所有本地模型的加权和:
权重$\upsilon_i(t)$可能随时间变化。
这个分布式梯度下降的过程不断重复,直到模型在全局上收敛到一个较优解。通过这种方式,联邦学习能够在保护数据隐私的同时,利用分布式数据训练出高质量的模型。
同态加密下的分布式机器学习
通过使用Paillier同态加密算法来保护模型参数在训练、传递过程中的隐私。模型参数的加密状态下,边缘节点和总结点也能进行梯度计算和更新、进行全局聚合,而无需解密参数。
本部分对应论文的 “SECURE AND PRIVATE TRAINING USING REPUTATION” 部分
模型初始化(Model Initialization):
在训练开始之前,需要在区块链网络上达成共识,确定公钥 $Pk$,这是用于加密和在本地更新模型的密钥。私钥 $Sk$ 由任务发布者保留,用于解密。
本地更新(Local Updates):
每个边缘节点 $i$ 使用其本地数据集 $D_i$ 来更新自己的模型参数 $w_i(t)$。更新过程是在密文状态下进行的,使用同态加密的性质,公式如下:
其中:
- $[[w_{i,k}(t)]]$ 是节点 $i$ 在时间 $t$ 的第 $k$ 个模型参数的密文。
- $[[\tilde{w}_{i,k}(t - 1)]]$ 是上一次迭代中计算的密文模型参数。
- $\eta$ 是学习率。
- $[[\nabla_{i,k} t]]$ 是针对模型参数 $w_{i,k}$ 的梯度的密文形式。
全局聚合(Global Aggregation):
任务发布者使用声誉机制来加权每个节点的局部模型更新,然后聚合以形成全局模型。这个过程包括以下步骤:
- 计算密文矩阵:任务发布者收集所有局部模型的密文,并计算一个密文矩阵 $[[W(t)]]$。
- 计算互相评估值:每个节点使用其本地数据集来评估其他节点的局部模型的性能,通过计算均方误差(MSE)来完成。
- 声誉更新:任务发布者根据互相评估值和历史声誉来更新每个节点的声誉值 $R^t_i$。
- 模型聚合:任务发布者根据更新后的声誉值来加权聚合局部模型,形成全局模型 $w(t)$。
声誉机制
声誉机制的工作流程:
- 同行评估(Peer Evaluation):每个执行器(边缘节点)使用其本地数据集作为测试集,来评估其他节点的本地模型的质量。这通常通过计算损失函数(如均方误差MSE)来完成。
- 整体评估值(Overall Evaluation Value):任务发布者(Task Publisher)根据所有同行的评估值来计算每个节点的整体评估值。
- 声誉更新(Reputation Update):任务发布者使用同行评估值、整体评估值和历史声誉来更新每个执行节点的当前声誉值。
- 全局模型更新(Global Model Update):基于本地模型和它们的声誉,确定权重,任务发布者更新全局模型。
在论文中提出的声誉机制是用来评估和更新联邦学习系统中各个节点的信誉或声誉值。这个机制能够量化每个节点对全局模型训练的贡献,并帮助减轻恶意节点对整体系统性能的负面影响。声誉值的更新公式是该机制的核心部分,下面我将详细解释这些公式:
声誉值更新公式:基于损失函数
- 整体评估值 $U^t_i$ 的计算:其中,$u_{ij}^t$是节点$i$对节点$j$在时间$t$的同行评估值(用自己的数据集评测别人的参数损失函数得到的损失值,损失越小越好),$N$是节点总数。
因为我们使用损失函数代表这个声誉指标,损失越小,那么模型越有效,所以这里的RU越小,模型越有效
临时声誉值 :
如果$R^U_i$(一个中间变量)是非负的(正数代表学习效果不好),$R^{tmp}_i$与$R^t_i$(上一轮的信誉值)成反比;如果$R^U_i$是负数(负数代表学习效果好),则$R^{tmp}_i$与$R^t_i$成正比,最后再取负号。
声誉值 $R^t_i$ 的更新:
这个公式结合了前一次迭代的声誉值$R^{t-1}_i$和当前迭代的临时声誉值$R^{tmp}_i$,通过一个缩放因子$\kappa$来调整更新的幅度。更新后的声誉值被限制在0和1之间,其中0代表完全不可信,1代表完全可信。
激励机制
激励机制的目的:
- 由于参与联邦学习需要边缘节点使用自己的计算、存储和通信资源,并且存在数据泄露的风险,因此需要一种机制来激励节点的积极参与。
- 激励机制旨在通过奖励那些提供高质量数据和有效训练模型的节点,来促进节点贡献资源。
激励机制的组成:
- 基本奖励:作为参与模型训练的补偿,任务发布者为所有节点提供基本奖励,以弥补它们在模型训练过程中消耗的资源。
- 性能评估:激励机制根据边缘节点贡献的数据量和训练模型的质量来评估节点的性能,并据此分配额外的奖励。
- 奖励分配:基于节点的评估性能,表现良好的节点将获得额外的奖励。高等级的边缘节点将获得更多的奖励。
激励机制的公式:
节点贡献的计算:
其中,$c_i(t)$ 是节点 $i$ 在时间 $t$ 的贡献度量
数据贡献量:$\left|D_i\right|$ 是节点 $i$ 的数据量,$\left|D\right|$ 是整个数据集的大小,
模型训练质量:$R^t_i$ 是节点 $i$ 在时间 $t$ 的信誉值,
$\omega_D$ 和 $\omega_R$ 是权重系数,满足 $\omega_D + \omega_R = 1$。节点奖励的分配:
其中,$E^i$ 是节点 $i$ 的奖励,$B_i$ 是覆盖节点资源成本的基本奖励,$TH$ 是一个阈值,用于区分“卓越节点”和“一般节点”,$\text{Reward}_{E^1_i}$ 是基于节点贡献的额外奖励。
$TH$如果取值过大,可能会造成评价标准过于严格,降低边缘节点参与培训的动力。如果过小,可能会导致对不合格节点的误判,降低训练模型的质量。
任务发布者可以根据自己的安全预期设定阈值,允许不同范围的模型训练需求
- 额外奖励的计算:
对于一般结点,激励将覆盖他缩消耗的资源(根绝CPU占用情况分配)
对于卓越节点,额外奖励可以基于它们的贡献排名和等级来分配,确保排名靠前的节点获得更多的奖励。
资源调度算法
边缘结点计算—>参数聚合与共识—->边缘结点下载参数—>边缘结点继续计算…..
每个步骤的资源分配和合适的聚合周期对联邦学习至关重要
资源利用率
共识角度
在区块链中,共识过程是确保所有节点对数据(如交易或模型更新)达成一致的过程。在联邦学习中,这可以类比为确保所有参与节点对模型更新达成一致。共识步骤通常涉及以下角色:
- 主节点(Primary Node):负责提议新的数据块或模型更新。
- 副本节点(Replica Nodes):负责验证主节点的提议并在验证通过后达成共识。
训练角度
本地更新(Local Updates):
- 每个边缘节点 $E_i’$ 使用其本地数据集 $D_i’$ 来更新其局部模型 $w_i$。
- 时间复杂度为 $O(|w|(2|D_i’|) + 1)$,其中 $|w|$ 是模型参数的大小,$|D_i’|$ 是数据集的大小。
- 2是因为一次用于计算预测值,另一次用于计算损失函数关于参数的梯度
计算密文矩阵(Calculate the Ciphertext Matrix):
- 2是因为一次用于计算预测值,另一次用于计算损失函数关于参数的梯度
- 任务发布者需要计算所有局部模型参数的加权和,时间复杂度为 $O(|w|^3)$。
计算互相评估值(Calculate the Mutual Evaluation Value): - 边缘节点使用其本地数据集来评估其他节点的局部模型,时间复杂度为 $O((|w| + 2)|D_i’| + |w|^2|D_i’|)$。
声誉更新(Reputation Update): - 任务发布者更新所有边缘节点的声誉分数,时间复杂度为 $O(2N)$,其中 $N$ 是边缘节点的总数。
模型聚合(Model Aggregation): - 任务发布者聚合所有局部模型以形成全局模型,时间复杂度为 $O(N|w|)$。
能量消耗模型
首先,定义了两种能量消耗模型:一种用于训练过程 $F_L$,另一种用于共识过程 $F_S$。
训练过程的能量消耗 $F_L$:
其中,$\delta_L^{σ_Li}$ 表示节点 $i$ 参与训练步骤 $σ_L$,$\Delta L^{σ_Li}$ 是该步骤的计算成本(与数据集相关),$\gamma$ 是与硬件架构相关的常数,$f_L^{σ_Li}$ 是CPU周期频率。
本地更新的能量消耗 $F_J$:
其中,$\delta_L^{σ_Li}$ 表示节点 $i$ 参与训练步骤 $σ_L$,$\Delta L^{σ_Li}$ 是该步骤的计算成本(与数据集相关),$f_L^{σ_Li}$ 是CPU周期频率。(因为共识,只涉及到结点验证,很快,所以和硬件架构无关)
共识过程的能量消耗 $F_S$:
其中,$\delta_P^i$ 表示节点 $i$ 是否是主节点,$\delta_R^i$ 表示节点 $i$ 是否是副本节点,$\delta_S^i$ 表示节点在共识步骤的参与情况。
参与步骤,例如[1,0,1,1]表示在第1、3、4步参与训练内容,其步骤与“整个工作流程”图的步骤对应
总能量消耗
节点 $i$ 的总能量消耗 $F_{ei}$ 由训练和共识过程的能量消耗组成:
这里,$T$ 是总时间,$\tau$ 是聚合周期。
各自除以 𝜏 时,我们实际上是在计算每个聚合周期内节点在本地更新和共识阶段的平均能量消耗。因为每个T周期,只更新一次。
优化目标
优化的目标是在固定的时间内最小化全局损失函数 $F(w(T, \tau))$ 与理想损失函数 $F(w^*)$ 之间的差距,并同时考虑能量消耗:
约束条件 $C1 - C5$ 限制了能量消耗、计算资源、训练和共识过程的时间等。
实验
理论分析
- 隐私和安全分析:
- 隐私:使用Paillier同态加密算法执行密文的本地更新过程,确保了模型和私有数据的机密性。
- 安全:利用区块链技术来抵御边缘节点之间的信任威胁,并实施PBFT(实用拜占庭容错)共识机制,结合声誉机制来对抗数据投毒攻击。
实验指标
- 性能分析:
- 不同节点数量下的损失函数MSE:
- 在不同数量的执行节点下,系统的损失函数均方误差(MSE)如何变化。
- 在恶意行为发生时,不同节点的MSE与节点数量的关系。
- 训练迭代次数:迭代次数表示模型训练达到收敛所需的迭代轮数。实验中观察了投毒率增加时,模型收敛所需迭代次数的变化。
- 不同节点数量下的损失函数MSE:
- 最优化指标分析
- 不同的聚合频率对模型性能(MSE)的影响,并确定了最优的聚合频率。
- 实验中分析了不同κ值(声誉值缩放因子)对模型性能(MSE)的影响。
AI 最重要的就是“数据集”,随着工业设备和数据量的快速增长,机器学习出现了从集中式到分布式训练的范式转变。然而,工业数据往往包含有价值和敏感的信息。这种敏感性对工厂在数据共享和协作方面提出了重大挑战,导致无法充分挖掘数据的潜在价值.|分布式机器学校往往存在两个问题——隐私数据交换以及恶意结点攻击。
1. 传统的基于密码学的隐私数据交换性能开销过大;使用差分隐私又需要进行噪声添加导致训练效果不如意;在加密数据上进行计算的同态加密提供了更多的灵活性和实际意义(可以进行密文计算)
2. 恶意结点方面,往往可能产生投毒攻击(恶意结点在训练数据时,为数据集添加恶意标签)和逃避攻击(在分布式模型进行聚合时,恶意节点可能在聚合时篡改,导致输出异常)。可以利用信誉值方案来解决
3. 分布式机器学习各个结点的性能有差异,需要进行合理的资源调度和激励才能维持一种相对公平、高效的训练状态。
1.提出了一种融合隐私和安全保护的联邦学习方法。该方法使用同态加密技术实现对加密数据的分布式训练,并使用区块链技术保证过程的可靠性和完整性。全同态加密能在密文状态运算,防止节点之间进行信息窃取。同时,所有的记录都会上链存储,防止篡改。
2. 设计了一种用于分布式学习的信誉机制和激励机制,通过数据验证对模型进行相互评估。其将“损失函数”作为信誉值评判的第一指标,分布式模型之间会使用本地数据集和对方参数相互评估信誉值大小,以最终确定信誉值和模型聚合时的参数权重。
3. 提出一种“激励机制”,用来达成更公平的分布式训练。各个结点会根据训练的数据集大小和训练质量(用信誉值代替)评判出这是一个一般节点还是卓越结点。卓越节点会获得更高的激励,以促使其能最大化其效率。
4. 基于CPU周期频率,计算每个结点的资源开销,通过一个最优化方程求解出全局最优化的训练分配方案。