一种基于区块链和可信执行环境的联邦学习方法及系统技术方案

技术编号:31593342 阅读:24 留言:0更新日期:2021-12-25 11:41
本发明专利技术涉及一种基于区块链和可信执行环境的联邦学习方法及系统,属于人工智能机器学习技术领域。本发明专利技术结合区块链和可信执行环境技术,在任务征集阶段,任务所有者在区块链网络广播发起众包模型训练任务。收到任务后,满足要求的节点申请加入参与者合约,任务发布者从所有申请者中随机选择满足训练要求数目的参与者并下发任务。被选中的参与者在本地对模型进行训练,同时,在自己的TEE环境中,通过对比模型更新的哈希值是否一致生成模型训练的正确性证明。当完成所有模型训练更新后,参与者将更新的模型和证明发送至聚合合约进行模型聚合和验证,验证通过后向参与节点发放相应奖励。本发明专利技术实现了高置信度验证,解决了对训练参与者的不可信问题。练参与者的不可信问题。练参与者的不可信问题。

【技术实现步骤摘要】
一种基于区块链和可信执行环境的联邦学习方法及系统


[0001]本专利技术涉及一种基于区块链和可信执行环境的联邦学习方法及系统,属于人工智能机器学习


技术介绍

[0002]机器学习作为一种极具前景的技术,已经成为计算机领域研究的热点,其理论和方法在工程应用和科学领域得到了广泛的应用。
[0003]联邦学习(Federated Learning)是一种新兴的人工智能技术,原本用于解决安卓手机终端用户在本地更新模型的问题,其设计目标是在保障大数据交换时的信息安全、保护终端数据和个人数据隐私、保证合法合规的前提下,在多参与方或多计算结点之间开展高效率的机器学习。联邦学习能够有效帮助多个机构在满足用户隐私保护、数据安全和政府法规的要求下进行数据使用和机器学习建模,可以避免非授权的数据扩散和解决数据孤岛问题,被广泛应用在金融、物流、供应链等领域。
[0004]作为一种具有隐私保护特性的机器学习框架,联邦学习为分布式合作机器学习提供了新的方法。联邦学习将训练任务进行拆分并分配给训练数据所有者进行模型更新,最后聚合所有的模型更新来完成训练任务并获得准确的联合模型。联邦学习的优势在于:1.数据隔离,数据不会泄露到外部,满足用户隐私保护和数据安全的需求。
[0005]2.能够保证模型质量无损,不会出现负迁移,保证联邦模型比割裂的独立模型效果好。
[0006]3.参与者地位对等,能够实现公平合作。
[0007]4.能够保证参与各方在保持独立性的情况下,进行信息与模型参数的加密交换,并同时获得成长。
[0008]但是,在不受信任的分布式系统环境中,如何进行安全多方合作学习,是联邦学习中一个亟待解决的问题。
[0009]由于失去了对参与者训练过程的直接控制,现有技术无法验证训练参与者是否按要求执行训练任务。如果懒惰或恶意参与者不进行模型更新,甚至使用错误数据进行更新,将会导致最终聚合模型的准确率降低。

技术实现思路

[0010]本专利技术的目的是为了解决联邦学习在不受信任的分布式环境中如何实现安全多方合作学习的技术问题,创造性地提出一种基于区块链和可信执行环境的联邦学习方法及系统。
[0011]本专利技术基于分布式区块链架构,其中,实体用户作为区块链节点参与,包括两类节点:任务发布节点:节点在区块链网络中进行广播,从而发起众包学习任务,并给予激励。节点通过发布智能合约来征集符合条件的训练参与者,并指定训练算法、奖励和其它要
求说明。当训练完成后,节点通过聚合合约收集模型更新并验证训练模型的正确性。
[0012]参与者节点:作为拥有训练数据资源的参与者,通过接受任务发布节点公布的模型训练任务获得相应奖励(例如,获得奖金报酬)。为满足发布者节点的模型训练结果验证需要,参与者节点本地要具有TEE(Trusted Execution Environment,可信执行环境,常用于数字版权管理、移动支付、敏感数据保护等)的硬件可信环境(例如SGX)来生成验证消息。
[0013]在联邦学习中,任务发布节点和参与者节点通过智能合约,能够自执行完成众包学习任务并进行模型聚合。其中,智能合约包括任务征集合约和模型聚合合约。
[0014]任务征集合约:由任务发布节点进行制定,任务是发起众包学习任务,设置符合的参与者条件和参与人数阈值。申请加入众包任务的参与者节点,通过向合约发送加入申请注册,从而获得资格。
[0015]模型聚合合约:任务发布节点从任务征集合约中注册的节点中进行随机选择,选出完成训练任务所需要的节点数目后发放训练任务。节点在本地完成模型训练后,模型聚合负责对各节点提交的正确性证明进行验证。验证通过后,对更新模型进行聚合,从而完成模型训练任务。
[0016]如图1所示,本专利技术所述方法包括任务征集、加入申请、参与者选择、本地模型训练、证明生成、训练结果提交、模型验证聚合、激励分配等步骤。
[0017]在任务征集阶段,希望获得准确模型的任务所有者在区块链网络广播发起众包模型训练任务。
[0018]当收到任务后,满足要求的节点申请加入参与者合约,任务发布者从所有申请者中随机选择满足训练要求数目的实际参与者并下发任务。
[0019]被选中的参与者在本地使用自己的数据集对模型进行训练,同时,在自己的TEE环境中,通过对比模型更新的哈希值是否一致,生成模型训练的正确性证明。此处,保留哈希摘要而非直接保存原始的模型训练参数,是因为训练参数数据量过大会占用很大的存储空间。
[0020]当完成所有模型训练更新后,参与者将更新的模型和证明发送至聚合合约进行模型聚合和验证,验证通过后向参与节点发放相应奖励。
[0021]有益效果本专利技术,对比现有技术,具有以下优点:本专利技术结合区块链和可信执行环境TEE技术,实现了高置信度验证,防止非诚实参与者模型训练,解决了对训练参与者的不可信问题。
附图说明
[0022]图1为本专利技术所述联邦学习过程示意图。
[0023]图2为本专利技术方法的流程图。
[0024]图3为本专利技术实施例的系统组成图。
具体实施方式
[0025]下面结合附图对本专利技术方法做进一步详细说明。
[0026]如图2所示,一种基于区块链和可信执行环境的联邦学习方法,包括以下步骤:
environment)内的程序,生成证明。
[0043]具体地,参与节点在本地的TEE环境中运行算法,算法随机选择训练轮次,验证这些轮次的模型更新训练执行正确性。
[0044]参与者在每轮训练结束时,对所有模型参数进行哈希运算得到消息,并在所有训练轮结束时向TEE提交消息。
[0045]当TEE随机请求检查一轮训练结果时,首先输入模型参数、哈希值和相应训练数据。然后,TEE检查这些参数是否与承诺一致,并使用相应数据和输入参数执行训练,将其输出模型参数的哈希值与传入的哈希值进行比较。
[0046]如果,则验证通过,TEE给出正确性证明。如果所有随机选择的训练轮次均验证成功,则认为参与者诚实地执行了所有训练轮次,否则判定训练参与者未诚实进行训练,生成模型不可信,不能用于模型聚合。
[0047]最后,节点进行最后一轮模型参数验证,检查承诺消息,计算模型更新(即,最后一个输出模型和全局模型之间所有参数变化的向量)。
[0048]其中,在生成证明过程中,TEE生成随机函数集以生成检查点,以代表要检查的训练轮次,为本地训练数据,为训练模型,,表示模型训练输入函数,表示前一轮训练的结果,哈希函数。当获得轮次的、和后,TEE环境用训练数据对模型进行训练,得到模型更新。之后,判断是否成立,表示在TEE中进行学习时的模型输入,也就是需要进行更新的前一轮模型。若成立,则验证成功,否则验证失败。最后,TEE验证最后的模型更新,其中表示最后一轮的模型更新、表示开始学习时的输入模型,并对验证信息进行签名步骤6:提交训练结果。
[0049]任务发布节点通过部署模型聚合合约,收集参本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于区块链和可信执行环境的联邦学习方法,其特征在于,包括以下步骤:步骤1:征集任务;在任务开始前,任务发布节点首先拟定任务征集合约,并设置对合格参与者的具体要求;之后,任务发布节点发布合约征集参与者;步骤2:参与节点申请加入;步骤3:任务发布节点选择参与者;步骤4:训练本地模型,生成模型更新,方法如下;参与节点下载获取最新的全局模型,在当前模型上采用深度神经网络模型和训练数据data,在本地执行局部训练;通过迭代运算和模型更新,最终完成模型训练,生成模型更新,t表示学习的轮数;步骤5:参与节点调用可信执行环境TEE内的程序,生成证明,方法如下:参与节点在本地TEE环境中运行算法,算法随机选择训练轮次,验证这些轮次的模型更新训练执行正确性;其中,表示 TEE的私钥秘密保存;参与者在每轮训练结束时,对所有模型参数进行哈希运算得到消息,并在所有训练轮结束时向TEE提交消息;当TEE随机请求检查一轮训练结果时,首先输入模型参数、哈希值和训练数据;然后TEE检查这些参数是否与承诺一致,并使用相应数据和输入参数执行训练,将其输出模型参数的哈希值与传入的哈希值进行比较;如果,则验证通过,TEE给出正确性证明;如果所有随机选择的训练轮次均验证成功,则认为参与者诚实地执行了所有训练轮次,否则判定训练参与者未诚实进行训练,生成模型不可信,不能用于模型聚合;最后,节点进行最后一轮模型参数验证,检查承诺消息,计算模型更新,即,最后一个输出模型和全局模型之间所有参数变化的向量;步骤6:提交训练结果;任务发布节点通过部署模型聚合合约,收集参与者在本地训练完成更新的模型参数;参与者将训练得到的模型和TEE环境给出的证明一起发送至合约,执行合约内容将模型和正确性证明σ存储在合约中;步骤7:聚合模型验证;当聚合合约完成模型参数和可信证明模型更新时,合约执行函数,其中,表示TEE对承诺进行的签名,以确认参与者是否诚实地进行了预期的训练;如果函数返回1,则聚合合约将汇总这些更新聚合成为新的全局模型,否则表示TEE验证承诺和参与者发送的聚合模型不符,验证失败,认为参与者存在不诚实行为,模型更新将不再作为正确结果被聚合;
若验证通过,则认为所有参与节点都诚实地进行了模型训练并得到了正确的模型参数;之后,聚合合约对所有参与者提交的局部模型进行聚合,收敛生成最终的训练模型;步骤9:当完成所有的模型聚合后,合约执行最后一步,按照约定给众包训练的所有节点发放奖励。2.如权利要求1所述的一种基于区块链和可信执行环境的联邦学习方法,其特征在于,步骤2中,首先,参与节点启动本地可信执行环境并生成证明报告,以证明正确的执行环境设置;之后,参与节点将验证信息提交至合约触发合约执行,通过合约执行来验证提交信息的正确性;在合规定执行时间内,设列表中参与节点数量为m,满足条件的参与者节点将通过验证加入列表。3.如权利要求1所述的一种基于区块链和可信执行环境的联邦学习方法,其特征在于,步骤3中,当有训练任务产生,首先确定联邦学习任务需要众包学习的参与节点数目n;之后,任务发布节点调用任务征集合约,采用随机算法从参与节点列表的m个节点中随机选择能够参加学习的n个节点,;当参与节点确定后,参与者将接受训练任务,使用持有的相关数据集开始在本地进行训练与更新。4.如权利要求1所述的一种基于区块链和可信执行环境的联邦学习方法,其特征在于,步骤5在生成证明过程中,TEE生成随机函数集以生成检查点,以代表要检查的训练轮次,为本地训练数据,为训练模型,,表示模型训练输入函数,表示前一轮训练的结果,哈希函数;当获得轮次的、和 后,TEE环境用训练数据对模型进行训练,得到模型更新;之后,判断 是否成立,表示在TEE中进行学习时的模型输入;若成立,则验证成功,否则验证失败;最后,TEE验证最后的模型更新,其中表示最后一轮的模型更新、表示开始学习时的输入模型,并对验证信息进行签名。5.如权利要求1所述的一种基于区块链和可信执行环境的联邦学习方法,其特征在于,步骤6中,设合约设置阈值为N,从N=1开始一直循环收取参数模型,直到收到第N=n个参与者后合约执行完毕,收到所有n个参与众包学习的结果。6.如权利要求1所述的一种基于区块链和可信执行环境的联邦学习方法,其特征在于,步骤8中,为获得收敛的全局模型,要进行反复迭代训练,最终的全局模型表示为 ,其中,表示参与人第t+1轮模型更新,表示参与人第t+1轮模型更新;对于所有收到的更新,合约通过执行加权平均,得...

【专利技术属性】
技术研发人员:徐蕾陆鑫肖尧张子剑祝烈煌
申请(专利权)人:北京理工大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1