1.本发明属于数据安全领域,具体涉及一种面向联邦学习的能源回收的区块 链绿色共识方法及系统。
背景技术:2.区块链作为一种颠覆性的去中心化范式,具有防篡改、免信任、可追溯、 全留痕等特点,是构建未来价值互联网和信任互联网的关键支撑技术。在区块 链系统中,共识协议是决定其可扩展性、安全性和一致性的核心。工作量证明 作为代表性的共识协议在各种区块链中被广泛采用,其中矿工通过暴力破解(即 挖矿)解决密码难题来争夺记账权和区块奖励。但是,该过程需要消耗大量计 算和电力资源,违反了当前可持续和环保的技术发展趋势。由于区块链挖矿过 程能源消耗和碳排放量大,因此,开发新型能源回收的区块链共识机制,构建 绿色区块链系统,对于推动节能减排、实现双碳目标具有重要意义。
3.近年来随着机器学习和人工智能的兴起,一些学者开始尝试将区块链的算 力用于训练机器学习特别是联邦学习模型。一方面,训练一个高质量的机器学 习需要大量的训练数据,而单个区块链节点一般缺少足够的本地训练样本用于 模型训练;另一方面,训练高质量的联邦学习模型通常需要消耗大量的算力和 时间,而其验证过程则相对容易得多,因此可以回收区块链挖矿过程浪费的能 量用于训练有价值的联邦学习模型并使用训练好的模型作为完成共识的证明。 然而,当前面向联邦学习的区块链共识机制一般基于中心化平台进行联邦学习 任务的分发和任务奖励的分发,同时基于现有矿池结构进行联邦学习任务的训 练,存在单点失败和中心化平台作恶的隐患,并且训练效率较低。
技术实现要素:4.针对现有技术中存在的问题,本发明提供了一种面向联邦学习的能源回收 的区块链绿色共识方法及系统,其目的在于开发能源回收的新型区块链共识机 制,以完全去中心化的方式将区块链共识挖矿中浪费的能量用来执行联邦学习 任务且保护用户隐私,从而训练有价值的人工智能模型,实现区块链系统的可 持续性。
5.为了解决上述技术问题,本发明通过以下技术方案予以实现:
6.一种面向联邦学习的能源回收的区块链绿色共识方法,包括:
7.区块链网络接收任务发布者发布的联邦学习任务,所述联邦学习任务分为 训练阶段和测试阶段;
8.区块链网络的每个共识节点对所述联邦学习任务进行验证,并根据验证结 果生成未完成任务序列;
9.区块链网络的每个矿工节点选择所述未完成任务序列中优先级最高的未完 成任务;
10.将选择了相同未完成任务的所有矿工节点以最大化整体效益为目标组成若 干联盟;
11.每个联盟通过联邦学习对选择的未完成任务进行协作训练,得到模型并生 成对应的模型事务;
12.每个联盟将对应的模型事务发布至区块链网络,直至选择的未完成任务进 入测试阶段后,将模型上传至链下数据仓库;
13.区块链网络的每个共识节点选择最优任务,从链下数据仓库中获取每个联 盟的模型事务对应的模型,所述最优任务为当前进入测试阶段的所有未完成任 务中有效模型数量最多的任务;
14.区块链网络的每个共识节点独立运行模型排序智能合约和区块奖励智能合 约,分别对最优任务相关的模型进行排序和奖励分发,同时更新最优任务的完 成状态。
15.进一步地,所述联邦学习任务包括任务id、任务指定的初始模型、任务奖 励、任务托管费、模型性能评测指标、释放测试数据集的区块高度、任务指定 的测试数据集的哈希指针、任务发布时间戳以及任务发布者签名。
16.进一步地,所述区块链网络的每个共识节点对所述联邦学习任务进行验证, 并根据验证结果生成未完成任务序列,包括:
17.区块链网络的每个共识节点验证所述联邦学习任务的发布者是否有预设额 度的存款用于支付任务托管费和任务奖励,并验证当前区块高度与预设的释放 测试数据集的区块高度之差是否大于预设的最小值;
18.若有预设额度的存款,同时大于预设的最小值,则将所述联邦学习任务顺 序地添加进未完成任务序列。
19.进一步地,所述整体效益为选择了相同未完成任务的所有联盟的效益之和, 其中,每个联盟j的效益为:
[0020][0021]
其中,γs为大于零的调节参数;γd>0为控制衰减速度的衰减系数;λc为 大于零的成本参数;表示加入联盟j中的矿工节点的数量;表示联 盟j中只有一个成员,即该成员选择独自对待完成任务进行训练;表示联盟 j中所有成员的本地训练样本的平均非独立同分布程度;ε(.)为相对精度损失函 数;α
m,j
={0,1}为二进制变量,其中α
m,j
=1表示节点m为联盟j的成员,否 则α
m,j
=0;sm表示节点m的本地训练数据大小;τ表示优先级最高的未完成 任务;表示任务τ的全局通信迭代轮数;表示任务τ的最大本地训 练迭代次数。
[0022]
进一步地,所述将选择了相同未完成任务的所有矿工节点以最大化整体效 益为目标组成若干联盟,包括:
[0023]
选择了相同未完成任务的所有矿工节点选择向能够最大化整体效益的某个 联盟或空集发送加入联盟申请;
[0024]
若某个矿工节点向空集发送加入联盟申请,则该矿工节点自动形成一个只 包含
自身的联盟,若某个矿工节点不向任何联盟发送加入联盟申请,则仍留在 当前联盟内;
[0025]
当前每个联盟对所有收到加入联盟申请的矿工节点按照加入后联盟的效益 由高到低进行排序,并接受排名第一的矿工节点的加入联盟申请同时拒绝其他 矿工节点的加入联盟申请;
[0026]
执行联盟分裂与合并操作更新当前联盟结构;
[0027]
重复上述操作,直至没有任何矿工节点向某个联盟或空集发送加入联盟申 请。
[0028]
进一步地,所述每个联盟通过联邦学习对选择的未完成任务进行协作训练, 得到模型并生成对应的模型事务,包括:
[0029]
每个联盟的所有参与者节点从区块链网络上获取所选择的未完成任务所指 定的初始模型,并利用本地训练数据对所选择的未完成任务所指定的初始模型 进行训练,得到相应的更新的本地模型;
[0030]
每个联盟的所有参与者节点将相应的更新的本地模型传输给联盟协调节点, 所述联盟协调节点为每个联盟内的所有参与者节点中的一个节点;
[0031]
每个联盟的联盟协调节点对收到的联盟内所有参与者节点的更新的本地模 型执行加权聚合操作得到更新的全局模型,并添加用户级别差分隐私扰动得到 扰动的全局模型;
[0032]
每个联盟的所有参与者节点根据所述联盟协调节点反馈的扰动的全局模型 进行新一轮模型训练,直至联邦学习训练完成。
[0033]
进一步地,所述模型事务包括模型指针、参与费、联盟内所有成员的聚合 公钥、事务的时间戳以及联盟内所有成员的多签名。
[0034]
进一步地,所述模型指针为该训练完成的全局模型的哈希值。
[0035]
进一步地,所述区块链网络的每个共识节点选择最优任务,从链下数据仓 库中获取每个联盟的模型事务对应的模型,包括:
[0036]
每个共识节点对当前进入测试阶段的每个待完成任务的所有相关的模型事 务进行验证,得到当前进入测试阶段的所有未完成任务中有效模型数量最多的 任务;
[0037]
若在当前进入测试阶段,有多个未完成任务具有相同的最多的有效模型数 量,则按照相应的任务发布时间戳选择最先发布的任务为最优任务;
[0038]
每个共识节点对最优任务中每个通过验证的模型事务,根据模型事务中的 模型指针从链下数据仓库中下载相应的训练完成的模型,并同时根据相应的联 邦学习任务中指定的测试数据集的哈希指针从链下数据仓库中下载相应的测试 数据集。
[0039]
进一步地,区块链网络的每个共识节点独立运行模型排序智能合约,对最 优任务相关的模型进行排序,包括:
[0040]
每个共识节点对所述最优任务中每个通过验证的模型事务,计算模型性能 指标并根据指标优劣降序生成模型排序向量,对未完成测试的模型,其指标值 设置为未评估字段;
[0041]
每个共识节点通过运行一致性协议,得到对所述最优任务的共识排序向量;
[0042]
区块链网络的每个共识节点独立运行区块奖励智能合约,对最优任务相关 的模型进行奖励分发,包括:
[0043]
每个共识节点从托管地址向共识排序向量中表现最优的联盟发放一笔任务 完成
奖励;
[0044]
每个共识节点对共识排序向量中性能表现在预设阈值之下的联盟没收任务 参与费,并从托管地址向所有表现诚实的共识节点发放一笔任务托管费用;
[0045]
每个共识节点从托管地址向共识排序向量中性能表现在预设阈值之上的联 盟退回任务参与费;
[0046]
每个共识节点对表现诚实的共识节点、表现最优的联盟中的成员以及性能 表现在预设阈值之上的联盟的成员进行积分奖励;
[0047]
每个共识节点将所述最优任务从未完成任务序列中删除;
[0048]
每个共识节点通过运行一致性协议,得到对所有参与者的最终奖励、最终 惩罚以及共识的未完成任务序列。
[0049]
进一步地,所述一致性协议为基于积分的algorand拜占庭一致性协议,其 中每个区块链节点的权重由其积分值决定。
[0050]
一种面向联邦学习的能源回收的区块链绿色共识系统,包括区块链网络上 的共识节点和矿工节点;
[0051]
所述共识节点用于验证发布在区块链网络上的联邦学习任务,并根据验证 结果生成未完成任务序列;选择最优任务,从链下数据仓库中获取每个联盟的 模型事务对应的模型;运行模型排序智能合约和区块奖励智能合约,分别对最 优任务相关的模型进行排序和奖励分发,同时更新最优任务的完成状态;
[0052]
所述矿工节点用于选择所述未完成任务序列中优先级最高的未完成任务; 将其他选择了相同未完成任务的所有矿工节点以最大化整体效益为目标组成若 干联盟;在所参与的联盟内通过联邦学习对选择的未完成任务进行协作训练, 得到模型并生成对应的模型事务;将对应的所参与联盟的模型事务发布至区块 链网络,直至选择的未完成任务进入测试阶段后,将模型上传至链下数据仓库。
[0053]
与现有技术相比,本发明至少具有以下有益效果:
[0054]
本发明提供的一种面向联邦学习的能源回收的区块链绿色共识方法,与现 有主流的区块链共识方法相比,本发明面向联邦学习设计了一种完全去中心化 的绿色的区块链共识方法,通过回收区块链挖矿过程中浪费的能量来训练有价 值的联邦学习模型,可以实现区块链共识过程的算力回收,提高区块链系统的 鲁棒性和可持续性,并保护用户的隐私数据和防止隐私泄露,解决了现有基于 工作量证明的区块链共识方法的高能耗和低价值的问题。作为现有工作量证明 共识算法的替代,本发明提出了通过完全去除中心化平台,可以以完全去中心 化的方式实现人工智能模型训练任务的外包、训练和奖励分配等全流程的高效 运行,防止单点失败,从而最大化地利用现有算力基础设施,可进一步推动人 工智能即服务的部署与应用。本发明考虑矿工在不同联邦学习任务中差异化的 训练数据样本量和样本分布的影响,从而实现针对不同联邦学习任务的面向区 块链节点的分布式自适应的联盟结构划分,以优化联盟内的联邦学习过程和学 习效率。在每个联盟内的联邦学习过程中,本发明的模型训练方法具备用户级 别差分隐私,可以防止在联邦学习过程中泄露联盟中任意区块链节点的全部数 据记录,从而增强系统的隐私保护能力。本发明在完全分布式和自治的区块链 系统中,对于自私自利的区块链节点设计了精准高效的基于积分的激励机制, 从而促进区块链节点的参与度,构建良性健康的共识系统并提高共识效率
以优 化共识过程。
[0055]
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例, 并配合所附附图,作详细说明如下。
附图说明
[0056]
为了更清楚地说明本发明具体实施方式中的技术方案,下面将对具体实施 方式描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图 是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳 动的前提下,还可以根据这些附图获得其他的附图。
[0057]
图1为面向联邦学习的能源回收的区块链绿色共识中实体交互关系图;
[0058]
图2为面向联邦学习的能源回收的区块链绿色共识系统模型图;
[0059]
图3为面向联邦学习的能源回收的区块链绿色共识流程图;
[0060]
图4为每个联邦学习任务的两个阶段示意图;
[0061]
图5为每个联盟内基于用户级差分隐私的联邦学习流程图;
[0062]
图6为所提区块链中一个区块的结构示意图。
具体实施方式
[0063]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对 本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一 部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术 人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保 护的范围。
[0064]
本发明提供了一种面向联邦学习的能源回收的区块链绿色共识方法,如图 1所示,具体包括以下实体:
[0065]
1)联邦学习任务发布者。区块链网络中的每个节点都可以充当任务发布者, 将所需的联邦学习任务(例如语义分析和生物医学图像识别)发布到区块链网 络。每个联邦学习都具有特定的完成期限和性能要求,以及相应的任务奖励。 区块链中已发布任务和未完成任务的集合分别记为和 [0066]
2)联邦学习模型训练者。基于工作量证明的区块链中的矿池化挖矿,本发 明中的一组模型训练者可以形成联盟结构,并具有联盟内协作和联盟间竞争的 特点。在区块链网络中形成一系列联盟,其集合定义为每 个联盟由相应的联盟协调节点φj管理,一组矿工节点(记为 )针对一个未完成的任务合作训练一个合格的联邦 学习模型,并与中的其他联盟竞争获得任务奖励。
[0067]
3)区块链共识节点。共识节点委员会由一组共识节点组成,记为负责交易验证和新区块构建。共识节点共同维护一个未完 成任务的有序队列,表示为并在区块高度增长之前更新。共 识节点对已发布的不同联盟训练完成的联邦学习模型执行模型评估和模型排序 操作。
[0068]
本发明的区块链网络中,一个节点可以同时执行所有上述三个角色或其中 两个角色。区块链网络中所有节点的集合记为更为具体地, 系统模型图如图2所示。主要流程包括:首先,区块链网络接收任务发布者发 布的带有奖励的联邦学习任
务,同时共识节点集体在区块链上维护一个未完成 任务序列;然后,每个矿工节点依照任务优先级选择一个未完成的任务,并动 态形成优化的联盟结构;接着,每个联盟中的所有成员利用本地数据协同训练 请求的联邦学习模型,并且每个联盟使用协同训练完成的模型作为工作量证明; 接着,区块链网络中的共识节点对当前进入测试阶段的最优的未完成的任务进 行模型验证和排序;最后,共识节点通过运行一致性协议,性能最高的联邦学 习模型被交付给其发布者,产生该模型的联盟将获得区块奖励。
[0069]
作为本发明的某一具体实施方式,如图3所示,本发明提供了一种面向联 邦学习的能源回收的区块链绿色共识方法,具体包括以下步骤:
[0070]
步骤1、区块链网络初始化。
[0071]
具体地说,区块链注册中心(certificate authority,ca)首先选择一个双 线性对其中和是素数阶q的乘法群,和的生 成器分别为g1和g2。两个哈希函数和被选为随机 预言机。给定安全参数输入双线性对生成器输出系统参数 其中,参数和params均被记录在区块链创 世块中。
[0072]
基于这些公开信息,每个参与者通过在区块链网络中设置自 身私钥,并通过生成自身公钥,其中,表示随机抽样。每个节点n 的钱包地址可以计算为wan←
h2(pkn)。每个区块链节点n将(skn,pkn,wan)存储 到其本地防篡改设备中。区块链节点可一次性地生成一组公私钥和相应钱包地 址,并在不同交易中使用不同公私钥进行签名以防止身份的可链接,同时可以 周期性地生成新的一组公私钥和钱包地址。
[0073]
步骤2、区块链网络接收任务发布者发布的联邦学习任务。
[0074]
任务发布者产生特定的机器学习问题(例如情感分析和图像分类等)以及 相应的任务要求和奖励。具体来说,每个任务发布者r可随时向区块链网络发 送一条包含机器学习任务的任务事务tasktx,具体事务格式如下:
[0075]
输入:
[0076]
‑‑
任务t的任务奖励p
t
和任务托管费ξ1;
[0077]
‑‑
初始联邦学习模型θ
t
(0);
[0078]
‑‑
性能评测指标ψ用于评估模型性能(例如准确性);
[0079]
‑‑
释放测试数据集的区块高度i
t
(以区块高度进行衡量);
[0080]
‑‑
测试数据集的哈希指针。
[0081]
输出:任务发布事务tasktx:
[0082][0083]
式中,是唯一事务标识符,即事务tx
t
的哈希值;t
stamp
是交易生成的时 间戳;是任务发布者r对事务的数字签名;小额任务 托管费ξ1用于奖励共识节点将tx
t
打包到区块中,并防止恶意发布者发送多个无 意义的任务导致拒绝服务攻击。
[0084]
如图4所示,每个联邦学习任务分为训练阶段和测试阶段。为了防止恶意 训练者使用发布的测试数据集训练模型,若模型事务信息是在任务测试阶段产 生的(即当前区块高度大于发布测试数据集的区块高度),则认为该模型事务无 效。
[0085]
任务发布事务tx
t
还包含一条支付事务,任务发布者将任务奖励p
t
和任务托 管费
ξ1转移到公共监督下的托管地址esadd,支付事务格式如下:
[0086]
输入:任务标识符和用户标识符pkr。
[0087]
输出:支付事务paytx:
[0088][0089]
式中,是支付事务的标识符(即哈希值)。若任务发布者在释放测试数 据集的区块高度i
t
之后未能及时发布任务t的测试数据集,它将失去这些加密货 币。
[0090]
步骤3、区块链网络的每个共识节点对所述联邦学习任务进行验证,并根 据验证结果生成未完成任务序列。
[0091]
作为优选的实施方式,该步骤具体包括:
[0092]
步骤3.1、区块链网络的每个共识节点验证联邦学习任务的发布者r是否有 预设额度(足额)的存款用于支付任务奖励p
t
和任务托管费ξ1;
[0093]
步骤3.2、区块链网络的每个共识节点验证当前区块高度j与预设的释放测 试数据集的区块高度i
t
之差是否大于预设的最小值;
[0094]
步骤3.3、若有预设额度的存款,同时大于预设的最小值(即验证成功), 则将所述联邦学习任务顺序地添加进未完成任务序列,否则,所述联邦学习任 务对应的任务发布事务为无效事务并被丢弃。
[0095]
本发明进一步实现了软切换机制,若未完成任务序列为空,则回滚至传 统工作量证明共识协议。
[0096]
步骤4、区块链网络的每个矿工节点选择所述未完成任务序列中优先级最 高的未完成任务。
[0097]
一般来说,任务奖励反映了机器学习任务的重要性和紧迫性。这里,由于 区块链网络的节点是自私和理性的,因此可以合理地假设每个未完成任务t在 任务测试阶段的优先级由相应的任务奖励p
t
决定。也就是说,在当前区块高度, 模型训练者(即区块链矿工节点)更倾向于考虑具有更高奖励的且可供训练时 长越长的联邦学习任务。对每个矿工节点m,其对每个未完成的联邦任务t的 优先级可表示为vm=λmp
t
+μ(1-λm)(i
t-i)。其中,μ为大于零的调节参数, 使得任务奖励与可供训练时长在同一个量级上。λm∈[0,1]为矿工节点m的私 有偏好参数,λm=1表示矿工节点m只在乎任务奖励,λm=0表示矿工节点m 只在乎更长的训练时间。i表示当前区块高度,i
t
表示联邦学习任务t中发布测 试数据集的区块高度,i
t-i表示可供训练任务所需的模型的剩余时长。每个矿 工节点按照优先级对当前所有未完成任务进行排序,并选择未完成任务序列中 优先级最高的未完成任务。对于多个任务具有相同优先级的情况,这些任务的 优先级将按其发布时间戳排序,即较早到达的任务获得更好的排名。
[0098]
步骤5、将选择了相同未完成任务的所有矿工节点以最大化整体效益为目 标组成若干联盟。
[0099]
作为优选的实施方式,所述整体效益具体为选择了相同未完成任务的所有 联盟的效益之和,每个联盟j的效益可表述为联盟满意度与联盟成本之差。对 联盟j,联盟满意度可表示为指数衰减函数的形式:
[0100]
s(πj)=γsexp(-γd·
πj)
[0101]
其中,γs为大于零的调节参数;γd>0为控制衰减速度的衰减系数;πj表 示联盟j
的预期模型精度损失,与数据的非独立同分布程度和训练数据样本量 等因素相关,可表述为
[0102][0103]
其中,表示联盟j中的矿工节点数量;表示联盟j中只有一个 成员,即该成员选择独自对待完成任务进行训练;表示联盟j中所有成员的 本地训练样本的平均非独立同分布程度;ε(.)为相对精度损失函数; α
m,j
={0,1}为二进制变量,其中α
m,j
=1表示节点m为联盟j的成员,否则 α
m,j
=0。sm表示节点m的本地训练数据大小;τ表示所述当前奖励最高的未 完成任务;表示任务τ的全局通信迭代轮数;表示任务τ的最大本 地训练迭代次数。
[0104]
联盟成本由不同联邦规模下的通信成本来衡量,可表述为
[0105][0106]
其中,λc为大于零的成本参数。
[0107]
因此,每个联盟j的效益可表述为:
[0108][0109]
优选地,选择了相同未完成任务的所有矿工节点以最大化整体效益为目标 组成若干联盟,具体包括如下步骤:
[0110]
步骤5.1、选择了相同未完成任务的所有矿工节点选择向可最大化整体效 益的某个联盟或空集发送加入联盟申请;
[0111]
步骤5.2、若某个矿工节点向空集发送加入联盟申请,则该矿工节点自动形 成一个只包含自身的联盟,若某个矿工节点不向任何联盟发送加入联盟申请, 则仍留在当前联盟内;
[0112]
步骤5.3、当前每个联盟对所有收到加入联盟申请的矿工节点按照加入后 联盟的效益进行排序,并接受排名第一的矿工节点的加入联盟申请同时拒绝其 他矿工节点的加入联盟申请;
[0113]
步骤5.4、执行联盟分裂与合并操作更新当前联盟结构;
[0114]
步骤5.5、重复上述操作,直至没有任何矿工节点向某个联盟或空集发送加 入联盟申请。
[0115]
步骤6、每个联盟通过联邦学习对选择的未完成任务进行协作训练,得到 模型并生成对应的模型事务,具体如下:
[0116]
每个联盟的所有参与者节点从区块链网络上获取所选择的未完成任务所指 定的初始模型,并利用本地训练数据对所选择的未完成任务所指定的初始模型 进行训练,得到相应的更新的本地模型;
[0117]
每个联盟的所有参与者节点将相应的更新的本地模型传输给联盟协调节点, 所述联盟协调节点为每个联盟内的所有参与者节点中的一个节点;
[0118]
每个联盟的联盟协调节点对收到的联盟内所有参与者节点的更新的本地模 型执行加权聚合操作得到更新的全局模型,并添加用户级别差分隐私扰动得到 扰动的全局模型;
[0119]
每个联盟的所有参与者节点根据所述联盟协调节点反馈的扰动的全局模型 进行新一轮模型训练,直至联邦学习训练完成。
[0120]
作为优选的实施方式,更加具体地说,该步骤具体包括以下步骤:
[0121]
步骤6.1、初始化联盟配置;
[0122]
令为参与训练联邦学习任务τ的训练者的集合。集合中的所 有模型训练者根据步骤5中的联盟形成方法以分布式的方式动态形成稳定的联 盟结构对于每个联盟联盟中的每个模型训练者使用本地私有数据通 过联邦学习协作地训练完成一个联邦学习模型。此外,在每个联盟中,从 网络延迟体验小于预设阈值d
th
的所有成员中随机选择一个成员作为联盟协调 节点φj。
[0123]
步骤6.2、联盟内具备用户级差分隐私的联邦学习模型训练;
[0124]
如图5所示,在本发明中,每个联盟成员(即矿工节点)在其本地数据集 上计算当前全局模型的中间梯度(即本地模型更新)并上传到联盟协调节点进 行周期性地全局聚合(即全局模型更新)。令为联邦学习下训练任务τ中 的通信轮数。
[0125]
初始地,联盟中的每个矿工节点将其本地模型参数初始化为从事务tx
τ
下 载的初始模型参数θ
t
(0)。
[0126]
在第k个轮通信它包括一个并行的矿工节点侧的本地 模型训练步骤和联盟协调节点侧的全局聚合及扰动添加步骤。
[0127]
步骤6.2.1、矿工节点侧的本地模型训练;
[0128]
在接收到上一轮的全局模型后,每个矿工节点使用学习率为 η的小批量随机梯度下降算法对其本地数据集训练得到本地模型θm(k),即,
[0129][0130]
式中,表示损失函数在小批量样本上的梯度。然后,矿工节点m通 过下式计算本地模型更新:
[0131][0132]
并上传δθm(k)至联盟协调节点φj。
[0133]
步骤6.2.2、联盟协调节点侧的全局聚合及扰动添加;
[0134]
联盟协调节点φj将接收到的更新的本地模型聚合成一个全局模型θ(k)。此 外,为确保联邦学习下的用户级别隐私保护,联盟协调节点应用随机函数将 用户级差分隐
私(user-level differential privacy,udp)噪声添加到缩放的本 地模型更新的总和中。相比于传统记录级别的差分隐私,本发明设计了用户级 别差分隐私机制来保护矿工在联邦学习训练过程中的全部数据样本,而非保 护矿工的单个数据样本。并且,任何观察到已发布的最终模型的敌手都不能以 大的概率推断出任何特定矿工节点的参与以及任何特定数据样本在模型训练中 的使用情况,从而提供更强的用户隐私保护能力。
[0135]
更加具体的,采用高斯机制来设计该udp函数通过对所有更新的总和 进行扰动,同时保障低的模型效用损失。为了实现本地更新的有界敏感性,联 盟协调节点φj将每个本地模型更新缩放为:
[0136][0137]
因此,可以保证并且所有缩放更新的求和操作的灵敏度上 限为a,选择
[0138]
联盟协调节点φj将均值为零的高斯噪声缩放至敏感度a,即添 加到缩放更新的总和中,以防止用户隐私泄露,即
[0139][0140]
式中,参数σ控制高斯噪声的尺度。之后,联盟协调节点φj将扰动的全局模 型发送至联盟中的所有矿工节点。
[0141]
为分析所提udp机制的查询敏感度,在每个一轮通信轮中定义估计器则查询函数的敏感度可表示为:
[0142][0143]
本发明中,若则敏感度函数是有界的且满足 另外,给定通信轮数和采样率λs,和 若则所提方法满足(∈,δ)-udp。
[0144]
步骤6.3、重复上述训练过程,直到获得所需的全局模型精度或通信轮次达 到最大值。
[0145]
步骤7、每个联盟将对应的模型事务发布至区块链网络,直至选择的未完 成任务进入测试阶段后,将模型上传至链下数据仓库。
[0146]
作为优选的实施方式,一旦联盟完成联邦学习模型过程,联盟协调节点 φj生成一条模型事务并将训练好的最终联邦学习模型θ
j,τ
包含进其中,具体格 式如下。
[0147]
输入:
[0148]
‑‑
训练完成的模型的哈希指针θ
j,τ
,即mid
←
hash(θ
j,τ
);
[0149]
‑‑
参与费ξ2;
[0150]
‑‑
联盟中模型训练者(即矿工节点)的聚合公钥apkj;
[0151]
‑‑
联盟中模型训练者的多重签名
[0152]
输出:联邦学习模型事务modeltx:
[0153][0154]
式中,是事务标识符。
[0155]
本发明中,每个联盟在该阶段只提交训练完成的联邦学习模型的哈希指针 (即mid),以防止被其他竞争对手抄袭。一旦测试数据集发布,所有参与的联 盟都将其训练完成的模型上传到链下数据仓库。此外,模型事务modeltx中包 含一定的参与费ξ2,用于防止联邦学习模型训练期间或训练完成后恶意训练者 或恶意联盟进行女巫攻击。参与费ξ2由每个联盟内所有成员平均分配。对于模 型性能在共识模型排名中超过一定阈值的训练者,参与费ξ2将被退还。
[0156]
类似地,联邦学习模型事务中涉及一条支付事务,即
[0157][0158]
对于联盟中的矿工节点,其聚合公钥为:
[0159][0160]
定义对于联盟中每个成员其签名为在联盟中,通过聚合所有成员的签名来生 成多重签名,即
[0161][0162]
若通过检查则该多重签名被验证 为正确。
[0163]
一旦任务τ的训练阶段结束(即当前块高度i≥i
τ
),任务发布者将提交由之 前发布至链下仓库的哈希值did所标识的测试数据集之后,所有参与该任 务训练的联盟将由之前发布至链下仓库的哈希值mid所标识的联邦学习模型上 传到链下仓库。
[0164]
步骤8、区块链网络的每个共识节点选择最优任务,从链下数据仓库中获 取每个联盟的模型事务信息对应的模型,所述最优任务为当前进入测试阶段的 所有未完成任务中有效模型数量最多的任务。
[0165]
作为优选的实施方式,该步骤具体包括:
[0166]
步骤8.1、每个共识节点对当前进入测试阶段的每个待完成任务的所有相 关的模型事务进行验证,得到当前进入测试阶段的所有未完成任务中有效模型 数量最多的任务,即为最优任务;
[0167]
具体验证过程包括:
[0168]
步骤8.1.1、每个共识节点独立地将与每个待完成任务相关的任务发布事务 tasktx、所有模型事务modeltx及支付事务paytx添加至本地内存池;
[0169]
步骤8.1.2、对于每个参与任务训练的联盟每个共识节点独立地验证联 盟的质押存款depositj是否不少于其参与费ξ2,并且检查模型事务发布时的区块 高度im是否不大于释放测试数据的区块高度i
t*
;
[0170]
优选地,对于所有进入测试阶段的待完成的有效任务,每个共识节点独立地按优先级降序排列这些任务。对每个共识节点,若每个待完成的联邦学 习任务相关的训练模型越多,则共识节点获得更多参与费的机会就越大,该任 务的优先级也越高。因此,可以合理地假设共识节点更倾向于选择当前进入测 试阶段的所有未完成任务中有效模型数量
最多的任务为最优任务t*。
[0171]
若有多个当前进入测试阶段的未完成任务具有相同的最多的有效模型数量, 则按照相应的任务发布时间戳选择最先发布的任务为最优任务。
[0172]
步骤8.2、一旦最优任务t*结束其训练阶段并进入测试阶段(即 i
t*
≤i≤i
t*
+δi),每个共识节点对最优任务相关的每个通过验证的模型事务,根 据模型事务modeltx中的模型哈希指针mid从链下数据仓库中下载相应的训 练完成的模型θ
j,t*
,并同时根据相应的联邦学习任务事务tasktx中指定的测试 数据集的哈希指针did从链下数据仓库中下载相应的测试数据集其中, δi表示测试阶段时长(由区块高度来衡量)。
[0173]
步骤9、区块链网络的每个共识节点独立运行模型排序智能合约和区块奖 励智能合约,分别对最优任务相关的模型进行排序和奖励分发,同时更新最优 任务的完成状态。
[0174]
作为优选的实施方式,每个共识节点运行模型排序智能合约来完成对该最 优任务相关的所有模型的排序,具体流程为:
[0175]
对每个下载完成的通过验证的模型θ
j,t*
,每个共识节点计算模型在测试数 据集上的性能指标ts
j,t*
并根据指标优劣降序生成模型排序向量mrlist
t*
,即模型
ꢀ‑
分数对的有序列表。由于网络延迟,对未能在测试阶段δi内完成测试的模型, 其指标值设置为特殊的“未评估”字段。共识节点通过一致性协议生成共识的 模型排序向量mrlist
t*
。
[0176]
作为优选的实施方式,每个共识节点运行区块奖励智能合约来完成奖励分 发,具体如下:
[0177]
每个共识节点从托管地址esadd向共识排序向量mrlist
t*
中表现最优的联盟 发放一笔任务完成奖励p
t*
;
[0178]
每个共识节点对共识排序向量mrlist
t*
中性能表现在预设阈值之下的所有 联盟没收任务参与费ξ2,并从托管地址esadd向所有中表现诚实的共识节 点发放任务托管费用,其中平均分配给所有诚实的共识节点,即 [0179]
每个共识节点从托管地址esadd向共识排序向量mrlist
t*
中性能表现在预设 阈值之上的所有联盟退回任务参与费ξ2;
[0180]
除了经济奖励外,积分(作为虚拟代币)还可以为区块链节点提供激励。 区块链节点的积分值可以反映其诚实的积极参与状态。对表现诚实的共识节点、 表现最优的联盟中的成员、以及性能表现在预设阈值之上的联盟的成员进行积 分奖励,即积分值分别增加δ1、δ2、和δ3;
[0181]
每个共识节点将所述最优任务t*从未完成任务序列中删除;
[0182]
每个共识节点通过运行一致性协议,得到对所有参与者的最终奖励、最终 惩罚以及共识的未完成任务序列。
[0183]
优选的,共识节点独立运行基于积分的algorand拜占庭一致性协议,完成 新区块的建造与上链操作。
[0184]
在传统的algorand拜占庭一致性协议中,节点权重设置为其账户余额,因 此只能用于加密货币等应用。本发明中,每个节点的权重为其拥有的积分值。 因此,本发明适用于非加密货币的应用,并可鼓励节点的参与度和诚实参与。
[0185]
作为优选的实施方式,基于积分的algorand拜占庭一致性协议具体流程包 括:
[0186]
①
共识节点委员会形成;
[0187]
具体来说,共识节点委员会的成员是通过可验证随机函数(verifiable
ꢀꢀ
random function,vrf)实现的加密抽签方法,根据节点的权重进行随机选择 得到。更为具体地,采用数字签名和散列函数来实现vrf。在开始阶段s=1, 每个节点通过检查
[0188][0189]
来独立验证它是否是委员会式中,seedi是区块高度为j时的公共随机种子, 它包含在前一个高度为i-1的区块中。是节点n的当前积分值。表示区块链节点的总信用。#pk(i-k)表示高度i-k和i之间共识过程中涉及的 公钥数量。签名表示节点n的凭证,通过揭示其pkn来证明 其在中扮演共识节点的角色。是一个随机的256位长字符串,由 skn和i唯一确定,对于任何不知道skn的节点该值与随机值没有区别。符号“.
”ꢀ
表示将哈希值转换为(0,1]中的小数。
[0190]
②
候选区块构建与传播;
[0191]
具体来说,集合中的所有成员都负责构建候选块并将其传播到全网进行 验证。共识节点将所有与待共识的未完成的联邦学习任务相关联的 所有有效事务按时间戳顺序排列,并压缩成默克尔树的形式,然后构造一个候 选区块区块结构如图6所示。
[0192]
③
多阶段交叉验证;
[0193]
具体来说,委员会中的所有成员在区块高度为i的每个共识阶段s中被 替换,以防止被敌手追踪。在高度i的s>1的共识阶段,对于节点n∈pk(i-k), 若不等式成立,则它是委员会的成 员。
[0194]
为减轻区块传播延迟,委员会中的共识节点独立对候选区块的哈希值 进行投票,而非对整个区块提案进行投票。中的所有共识节点都运行(n,f)
ꢀ‑
分级共识(graded consensus,gc)协议以确定相应的值-等级对(μv,rhov)。 其中,f<n是恶意区块链节点的数量。每个共识节点将其签名投票消息 μv=votemsgv通过流言(gossiping)协议传递给其他共识节点进行相互验证, 即
[0195][0196]
式中,是其投票的候选区块。
[0197]
对于每个共识节点当且仅当时,它发送投票消 息votemsg给其他共识节点。此外,它将值-等级对设置为(μv=votemsg,ρv=2)。 若则设置(μv=votemsg,ρv=1)。否则,设置(μv=
⊥
,ρv=0)。 其中,表示共识节点v在阶段s中收到来自其他不同共识节点的消息 msg的数量。
[0198]
委员会中的每个共识节点都执行改进的二进制拜占庭一致性 (improved binary byzantine agreement,bba*)协议来确定最终的共识区块和 模型排序。其中,若ρ
υ
=2,则初始输入为0,否则为1。若bba*算法的结果 是outv=0,则网络对μv所投票的候选区块达成共识。否则,该共识区块设置为 一个空区块。
[0199]
④
共识区块确认与添加;
[0200]
具体来说,达成共识后,新构建的候选区块将被区块链确认并顺序地添 加到区
块链中,该区块通过哈希指针线性链接到前一个高度为i-1的区块。如 图6所示,新区块中的元数据metai包含已完成联邦学习任务的识别符、共识 的模型排序、vrf中的随机种子seedi,以及一个脚本script,该脚本聚合了在 模型排序和共识建立的多阶段投票期间所有共识节点的签名投票信息。每个区 块的脚本script由共识过程达成一致,它允许新的区块链节点通过处理这些投 票来赶上区块的验证过程。此外,script可作为证书允许任何区块链节点证明该 区块的安全性,并有效地验证模型排名和积分更新过程。
[0201]
本发明公开了一种面向联邦学习的能源回收的区块链绿色共识系统,包括 区块链网络上的共识节点和矿工节点;
[0202]
所述共识节点用于验证发布在区块链网络上的联邦学习任务,并根据验证 结果生成未完成任务序列;选择最优任务,从链下数据仓库中获取每个联盟的 模型事务对应的模型;运行模型排序智能合约和区块奖励智能合约,分别对最 优任务相关的模型进行排序和奖励分发,同时更新最优任务的完成状态;
[0203]
所述矿工节点用于选择所述未完成任务序列中优先级最高的未完成任务; 将其他选择了相同未完成任务的所有矿工节点以最大化整体效益为目标组成若 干联盟;在所参与的联盟内通过联邦学习对选择的未完成任务进行协作训练, 得到模型并生成对应的模型事务;将对应的所参与联盟的模型事务发布至区块 链网络,直至选择的未完成任务进入测试阶段后,将模型上传至链下数据仓库。
[0204]
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说 明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管 参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解: 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前 述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术 特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质 脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。 因此,本发明的保护范围应以所述权利要求的保护范围为准。
技术特征:1.一种面向联邦学习的能源回收的区块链绿色共识方法,其特征在于,包括:区块链网络接收任务发布者发布的联邦学习任务,所述联邦学习任务分为训练阶段和测试阶段;区块链网络的每个共识节点对所述联邦学习任务进行验证,并根据验证结果生成未完成任务序列;区块链网络的每个矿工节点选择所述未完成任务序列中优先级最高的未完成任务;将选择了相同未完成任务的所有矿工节点以最大化整体效益为目标组成若干联盟;每个联盟通过联邦学习对选择的未完成任务进行协作训练,得到模型并生成对应的模型事务;每个联盟将对应的模型事务发布至区块链网络,直至选择的未完成任务进入测试阶段后,将模型上传至链下数据仓库;区块链网络的每个共识节点选择最优任务,从链下数据仓库中获取每个联盟的模型事务对应的模型,所述最优任务为当前进入测试阶段的所有未完成任务中有效模型数量最多的任务;区块链网络的每个共识节点独立运行模型排序智能合约和区块奖励智能合约,分别对最优任务相关的模型进行排序和奖励分发,同时更新最优任务的完成状态。2.根据权利要求1所述的一种面向联邦学习的能源回收的区块链绿色共识方法,其特征在于,所述区块链网络的每个共识节点对所述联邦学习任务进行验证,并根据验证结果生成未完成任务序列,包括:区块链网络的每个共识节点验证所述联邦学习任务的发布者是否有预设额度的存款用于支付任务托管费和任务奖励,并验证当前区块高度与预设的释放测试数据集的区块高度之差是否大于预设的最小值;若有预设额度的存款,同时大于预设的最小值,则将所述联邦学习任务顺序地添加进未完成任务序列。3.根据权利要求1所述的一种面向联邦学习的能源回收的区块链绿色共识方法,其特征在于,所述整体效益为选择了相同未完成任务的所有联盟的效益之和,其中,每个联盟j的效益为:其中,γ
s
为大于零的调节参数;γ
d
>0为控制衰减速度的衰减系数;λ
c
为大于零的成本参数;表示加入联盟j中的矿工节点的数量;表示联盟j中只有一个成员,即该成员选择独自对待完成任务进行训练;表示联盟j中所有成员的本地训练样本的平均非独立同分布程度;ε(.)为相对精度损失函数;α
m,j
={0,1}为二进制变量,其中α
m,j
=1表示节点m为联盟j的成员,否则a
m,j
=0;s
m
表示节点m的本地训练数据大小;τ表示优先级最高的未完成任务;表示任务τ的全局通信迭代轮数;表示任务τ的最大本地训练迭代次数。
4.根据权利要求3所述的一种面向联邦学习的能源回收的区块链绿色共识方法,其特征在于,所述将选择了相同未完成任务的所有矿工节点以最大化整体效益为目标组成若干联盟,包括:选择了相同未完成任务的所有矿工节点选择向能够最大化整体效益的某个联盟或空集发送加入联盟申请;若某个矿工节点向空集发送加入联盟申请,则该矿工节点自动形成一个只包含自身的联盟,若某个矿工节点不向任何联盟发送加入联盟申请,则仍留在当前联盟内;当前每个联盟对所有收到加入联盟申请的矿工节点按照加入后联盟的效益由高到低进行排序,并接受排名第一的矿工节点的加入联盟申请同时拒绝其他矿工节点的加入联盟申请;执行联盟分裂与合并操作更新当前联盟结构;重复上述操作,直至没有任何矿工节点向某个联盟或空集发送加入联盟申请。5.根据权利要求1所述的一种面向联邦学习的能源回收的区块链绿色共识方法,其特征在于,所述每个联盟通过联邦学习对选择的未完成任务进行协作训练,得到模型并生成对应的模型事务,包括:每个联盟的所有参与者节点从区块链网络上获取所选择的未完成任务所指定的初始模型,并利用本地训练数据对所选择的未完成任务所指定的初始模型进行训练,得到相应的更新的本地模型;每个联盟的所有参与者节点将相应的更新的本地模型传输给联盟协调节点,所述联盟协调节点为每个联盟内的所有参与者节点中的一个节点;每个联盟的联盟协调节点对收到的联盟内所有参与者节点的更新的本地模型执行加权聚合操作得到更新的全局模型,并添加用户级别差分隐私扰动得到扰动的全局模型;每个联盟的所有参与者节点根据所述联盟协调节点反馈的扰动的全局模型进行新一轮模型训练,直至联邦学习训练完成。6.根据权利要求1所述的一种面向联邦学习的能源回收的区块链绿色共识方法,其特征在于,所述模型事务包括模型指针、参与费、联盟内所有成员的聚合公钥、事务的时间戳以及联盟内所有成员的多签名。7.根据权利要求1所述的一种面向联邦学习的能源回收的区块链绿色共识方法,其特征在于,所述区块链网络的每个共识节点选择最优任务,从链下数据仓库中获取每个联盟的模型事务对应的模型,包括:每个共识节点对当前进入测试阶段的每个待完成任务的所有相关的模型事务进行验证,得到当前进入测试阶段的所有未完成任务中有效模型数量最多的任务;若在当前进入测试阶段,有多个未完成任务具有相同的最多的有效模型数量,则按照相应的任务发布时间戳选择最先发布的任务为最优任务;每个共识节点对最优任务中每个通过验证的模型事务,根据模型事务中的模型指针从链下数据仓库中下载相应的训练完成的模型,并同时根据相应的联邦学习任务中指定的测试数据集的哈希指针从链下数据仓库中下载相应的测试数据集。8.根据权利要求1所述的一种面向联邦学习的能源回收的区块链绿色共识方法,其特征在于,区块链网络的每个共识节点独立运行模型排序智能合约,对最优任务相关的模型
进行排序,包括:每个共识节点对所述最优任务中每个通过验证的模型事务,计算模型性能指标并根据指标优劣降序生成模型排序向量,对未完成测试的模型,其指标值设置为未评估字段;每个共识节点通过运行一致性协议,得到对所述最优任务的共识排序向量;区块链网络的每个共识节点独立运行区块奖励智能合约,对最优任务相关的模型进行奖励分发,包括:每个共识节点从托管地址向共识排序向量中表现最优的联盟发放一笔任务完成奖励;每个共识节点对共识排序向量中性能表现在预设阈值之下的联盟没收任务参与费,并从托管地址向所有表现诚实的共识节点发放一笔任务托管费用;每个共识节点从托管地址向共识排序向量中性能表现在预设阈值之上的联盟退回任务参与费;每个共识节点对表现诚实的共识节点、表现最优的联盟中的成员以及性能表现在预设阈值之上的联盟的成员进行积分奖励;每个共识节点将所述最优任务从未完成任务序列中删除;每个共识节点通过运行一致性协议,得到对所有参与者的最终奖励、最终惩罚以及共识的未完成任务序列。9.根据权利要求8所述的一种面向联邦学习的能源回收的区块链绿色共识方法,其特征在于,所述一致性协议为基于积分的algorand拜占庭一致性协议,其中每个区块链节点的权重值由其积分值决定。10.一种面向联邦学习的能源回收的区块链绿色共识系统,其特征在于,包括区块链网络上的共识节点和矿工节点;所述共识节点用于验证发布在区块链网络上的联邦学习任务,并根据验证结果生成未完成任务序列;选择最优任务,从链下数据仓库中获取每个联盟的模型事务对应的模型;运行模型排序智能合约和区块奖励智能合约,分别对最优任务相关的模型进行排序和奖励分发,同时更新最优任务的完成状态;所述矿工节点用于选择所述未完成任务序列中优先级最高的未完成任务;将其他选择了相同未完成任务的所有矿工节点以最大化整体效益为目标组成若干联盟;在所参与的联盟内通过联邦学习对选择的未完成任务进行协作训练,得到模型并生成对应的模型事务;将对应的所参与联盟的模型事务发布至区块链网络,直至选择的未完成任务进入测试阶段后,将模型上传至链下数据仓库。
技术总结本发明公开了面向联邦学习的能源回收的区块链绿色共识方法及系统,区块链网络的每个共识节点选择最优任务,从链下数据仓库中获取每个联盟的模型事务对应的模型,最优任务为当前进入测试阶段的所有未完成任务中有效模型数量最多的任务;区块链网络的每个共识节点独立运行模型排序智能合约和区块奖励智能合约,分别对最优任务相关的模型进行排序和奖励分发,同时更新最优任务的完成状态。本发明以完全去中心化的方式将区块链共识挖矿中浪费的能量用来执行联邦学习任务且保护用户隐私,从而训练有价值的人工智能模型,实现区块链系统的可持续性。的可持续性。的可持续性。
技术研发人员:王云涛 苏洲
受保护的技术使用者:西安交通大学
技术研发日:2022.07.21
技术公布日:2022/11/1