CN111552986B - 基于区块链的联邦建模方法、装置、设备及存储介质 - Google Patents

基于区块链的联邦建模方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111552986B
CN111552986B CN202010660583.6A CN202010660583A CN111552986B CN 111552986 B CN111552986 B CN 111552986B CN 202010660583 A CN202010660583 A CN 202010660583A CN 111552986 B CN111552986 B CN 111552986B
Authority
CN
China
Prior art keywords
training
gradient
model
trained
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010660583.6A
Other languages
English (en)
Other versions
CN111552986A (zh
Inventor
张琰
吴宇
段经璞
武鑫
李清
李伟超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southwest University of Science and Technology
Peng Cheng Laboratory
Original Assignee
Southwest University of Science and Technology
Peng Cheng Laboratory
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Southwest University of Science and Technology, Peng Cheng Laboratory filed Critical Southwest University of Science and Technology
Priority to CN202010660583.6A priority Critical patent/CN111552986B/zh
Publication of CN111552986A publication Critical patent/CN111552986A/zh
Application granted granted Critical
Publication of CN111552986B publication Critical patent/CN111552986B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioethics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于区块链的联邦建模方法、装置、设备及存储介质,其方法包括:在监测到训练客户端的数量达到预设数量时,训练发起者基于所述训练客户端对应的客户端信息发布配置信息至各个训练客户端;所述训练发起者将待训练模型上传至主链;所述训练发起者基于所述聚合梯度以及所述待训练模型,确定目标模型。本发明通过区块链实现联邦学习的建模,在保护联邦学习数据隐私的前提下,对联邦学习的准确性无任何影响,提高了联邦学习的训练效果以及模型精度,无需对传输中的梯度等模型参数进行修改,实现了梯度等模型参数的隐私保护与模型收敛或模型精度之间的均衡;能够完全阻止信息泄漏,提高联邦学习中数据样本的安全性。

Description

基于区块链的联邦建模方法、装置、设备及存储介质
技术领域
本发明涉及联邦学习技术领域,尤其涉及一种基于区块链的联邦建模方法、装置、设备及存储介质。
背景技术
联邦学习将中心化的机器学习拆解为分布式的机器学习,通过将机器学习任务分发到终端设备进行学习,再通过将机器学习产生的梯度结果聚合,以达到保护终端设备隐私的目的。
然而,由于机器学习产生的梯度结果的不可读性以及该结果可能会隐藏隐私信息等问题,导致了联邦学习机制存在隐私泄漏的问题。例如,在很多训练场景中,训练网络有上百层,上千层之多,在无机器学习背景下的客户端用户很难了解每层训练网络的具体作用。尤其是,原始数据可能经过多层神经网络处理,对恶意行为进行进一步的掩盖。因此,训练网络很可能将原始数据隐藏在梯度结果当中,当攻击者获取到梯度后,可以推断另一用户的训练数据,进而通过梯度反推出用户原始数据。同时,由于机器学习的梯度信息不可读,所以很难通过梯度信息找到与训练样本的关系,即通过训练结果评估训练效果,因此,客户端可能会使用不当的训练样本进行训练,影响模型训练效果,导致模型不能收敛。
为了解决联邦学习中的数据隐私问题,目前常用的解决方案包括:基于梯度聚合的解决方案和基于安全算法的解决方案。
其中,基于梯度聚合的解决方案是通过对于客户端上传的梯度信息进行加权、去掉最大值/最小值、随机梯度下降等方法对梯度进行处理或将节点进行群组划分,利用类似边缘计算的方式进行预处理后再提交到模型训练发起者。例如,通过将客户端节点划分为k组进行训练,在各组中先将梯度结果进行聚合及求均值计算后,将各组的梯度均值提交到模型更新训练发起者。最终将各组的梯度均值进行几何求平均的运算得到最终梯度并进行模型更新。但是,这种解决方案并不能防止客户端隐私在边缘节点的泄漏,进而存在通过梯度信息泄漏数据隐私的风险。
基于安全多方计算的解决方案通过差分隐私,同态加密,秘密分享等方法,对梯度信息进行安全聚合以防止模型更新训练发起者窃取过多的客户端隐私,
在不影响训练效果的前提下,对客户端梯度信息进行安全的聚合。例如通过差分隐私的方式对客户端梯度信息添加噪声达到保护数据隐私的效果,但是噪声参数的设置会影响到训练效果,如果噪声参数的扰动过大则会影响模型的收敛效果,导致模型无法收敛或最终模型的精度较低,如果噪声参数的扰动不足则无法有效保护梯度。并且,针对不同的训练模型需要设置不同的噪声参数,使得噪声参数很难适用于所有的训练模型。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供一种基于区块链的联邦建模方法、装置、设备及存储介质,旨在解决现有联邦学习中难以实现梯度的隐私保护,与模型收敛或模型精度之间的均衡的技术问题。
为实现上述目的,本发明提供一种基于区块链的联邦建模方法,所述基于区块链的联邦建模方法包括以下步骤:
在监测到待训练任务对应的训练客户端的数量达到预设数量时,训练发起者基于所述训练客户端对应的客户端信息发布配置信息至各个训练客户端,以供所述训练客户端基于所述配置信息构建区块链的侧链,并将所述侧链锚定至区块链的主链中;
所述训练发起者将待训练模型上传至主链,其中,各个所述训练客户端通过主链获取所述待训练模型,基于所述待训练模型进行模型训练,以获得梯度,通过同态加密密钥中的第一密钥对梯度进行加密得到加密梯度,并反馈所述加密述梯度至所述侧链;所述侧链基于各个所述训练客户端反馈的加密梯度确定聚合梯度,并发送所述聚合梯度至所述训练发起者;
所述训练发起者基于所述聚合梯度以及所述待训练模型,确定目标模型。
进一步地,所述基于所述聚合梯度以及所述待训练模型,确定目标模型的步骤包括:
所述训练发起者通过同态加密密钥中的第二密钥对聚合梯度进行解密,以获得目标梯度;
所述训练发起者基于所述目标梯度更新所述待训练模型,并确定更新后的待训练模型是否满足预设条件;
若更新后的待训练模型满足预设条件,则所述训练发起者将更新后的待训练模型作为所述目标模型;
若更新后的待训练模型未满足预设条件,则所述训练发起者将更新后的待训练模型作为所述待训练模型,并返回执行所述训练发起者通过所述侧链分发待训练模型至各个所述训练客户端的步骤。
进一步地,所述训练发起者基于所述目标梯度更新所述待训练模型,并确定更新后的待训练模型是否满足预设条件的步骤包括:
所述训练发起者基于所述目标梯度更新所述待训练模型,并确定更新后的待训练模型是否收敛,其中,若更新后的待训练模型收敛,则判定更新后的待训练模型满足预设条件;或者,
所述训练发起者基于所述目标梯度更新所述待训练模型,并累计所述待训练模型的更新次数,确定所述更新次数是否达到预设次数,其中,若所述更新次数达到预设次数,则判定更新后的待训练模型满足预设条件。
进一步地,所述训练发起者通过所述侧链分发待训练模型至各个所述训练客户端,其中,各个所述训练客户端基于所述待训练模型进行模型训练,以获得梯度,通过同态加密密钥中的第一密钥对梯度进行加密得到加密梯度,并反馈所述加密述梯度至所述侧链;所述侧链基于各个所述训练客户端反馈的加密梯度确定聚合梯度,并发送所述聚合梯度至所述训练发起者的步骤包括:
所述训练发起者将所述待训练模型上传至主链对应的预设存储区域;
各个所述训练客户端通过待训练任务的训练任务信息对应的交易信息,在所述预设存储区域获取所述待训练模型;
各个所述训练客户端基于所述待训练模型进行模型训练,以获得梯度,并通过所述第一密钥得到加密梯度;
各个所述训练客户端将加密梯度上传至预设存储区域,并将加密梯度对应的梯度哈希值上传至侧链中;
在接收到训练客户端上传的梯度哈希值时,若梯度哈希值的数量大于预设值,则侧链在预设存储区域获取各个所述梯度哈希值对应的加密梯度;
侧链通过安全聚合算法对加密梯度进行聚合,以获得聚合梯度,将该聚合梯度上传至预设存储区域,并将聚合梯度对应的索引信息通过主链发送至训练发起者。
进一步地,所述所述训练发起者基于所述聚合梯度以及所述待训练模型,确定目标模型的步骤之前,所述基于区块链的联邦建模方法还包括:
训练发起者获取训练客户端中待审计客户端对应的累加值以及见证值,其中,在各个训练客户端获得梯度时,各个训练客户端分别确定所述梯度对应的各个训练样本的样本哈希值,并基于所述样本哈希值通过RSA累加算法确定各个训练客户端对应的累加值,基于所述样本哈希值以及所述累加值,分别确定各个训练客户端中的各个训练样本对应的见证值,并将所述累加值以及所述见证值上传至所述侧链;
所述训练发起者发送审计请求至训练客户端中的目标客户端,以使所述目标客户端通过所述侧链,发送所述审计请求对应的目标训练样本的目标哈希值至所述训练发起者;
所述训练发起者基于所述目标哈希值、所述累加值以及所述见证值,验证所述目标训练样本。
进一步地,所述在监测到待训练任务对应的训练客户端的数量达到预设数量时,训练发起者基于所述训练客户端对应的客户端信息发布配置信息至各个训练客户端的步骤之前,所述基于区块链的联邦建模方法还包括:
训练发起者上传训练任务信息至所述主链对应的预设存储区域,以生成所述训练任务信息对应的交易信息;
所述主链通过智能合约验证所述交易信息是否有效以及验证所述训练发起者对应的账户信息;
在所述交易信息有效且所述账户信息验证通过时,所述主链通过智能合约将所述训练任务信息对应的训练任务设置为可访问状态,并将所述账户信息对应的资源信息转移至所述主链对应的合约账户。
进一步地,所述在所述交易信息有效且所述账户信息验证通过时,所述主链通过智能合约将所述训练任务信息对应的训练任务设置为可访问状态,并将所述账户信息对应的资源信息转移至所述主链对应的合约账户的步骤之后,还包括:
在接收到所述训练任务对应的加入请求时,所述主链通过智能合约获取所述加入请求对应的请求客户端的客户端信息;
所述主链通过智能合约验证所述客户端信息,并在验证通过时,将所述请求客户端添加至所述训练任务对应的训练客户端中。
此外,为实现上述目的,本发明还提供一种基于区块链的联邦建模装置,所述基于区块链的联邦建模装置包括:
发布模块,用于在监测到待训练任务对应的训练客户端的数量达到预设数量时,基于所述训练客户端对应的客户端信息发布配置信息至各个训练客户端,以供所述训练客户端基于所述配置信息构建区块链的侧链,并将所述侧链锚定至区块链的主链中;
分发模块,用于将待训练模型上传至主链,其中,各个所述训练客户端通过主链获取所述待训练模型,基于所述待训练模型进行模型训练,以获得梯度,通过同态加密密钥中的第一密钥对梯度进行加密得到加密梯度,并反馈所述加密述梯度至所述侧链;所述侧链基于各个所述训练客户端反馈的加密梯度确定聚合梯度,并发送所述聚合梯度至所述训练发起者;
确定模块,用于基于所述聚合梯度以及所述待训练模型,确定目标模型。
此外,为实现上述目的,本发明还提供一种基于区块链的联邦建模设备,所述基于区块链的联邦建模设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于区块链的联邦建模程序,所述基于区块链的联邦建模程序被所述处理器执行时实现前述的基于区块链的联邦建模方法的步骤。
此外,为实现上述目的,本发明还提供一种存储介质,所述存储介质上存储有基于区块链的联邦建模程序,所述基于区块链的联邦建模程序被处理器执行时实现前述的基于区块链的联邦建模方法的步骤。
本发明通过在监测到待训练任务对应的训练客户端的数量达到预设数量时,训练发起者基于所述训练客户端对应的客户端信息发布配置信息至各个训练客户端,以供所述训练客户端基于所述配置信息构建区块链的侧链,并将所述侧链锚定至区块链的主链中;接着所述训练发起者将待训练模型上传至主链,其中,各个所述训练客户端通过主链获取所述待训练模型,基于所述待训练模型进行模型训练,以获得梯度,通过同态加密密钥中的第一密钥对梯度进行加密得到加密梯度,并反馈所述加密述梯度至所述侧链;所述侧链基于各个所述训练客户端反馈的加密梯度确定聚合梯度,并发送所述聚合梯度至所述训练发起者;而后所述训练发起者基于所述聚合梯度以及所述待训练模型,确定目标模型;通过区块链实现联邦学习的建模,在保护联邦学习数据隐私的前提下,对联邦学习的准确性无任何影响,提高了联邦学习的训练效果以及模型精度,无需对传输中的梯度等模型参数进行修改,避免了噪声不足导致的隐私泄露以及噪声过高造成的模型训练精度较低,实现了梯度等模型参数的隐私保护与模型收敛或模型精度之间的均衡;由于采用同态加密算法以及区块链中安全聚合算法,保证了训练无需获取训练客户端的数据就能够达到训练的目的,同时确保任何第三方无法获取到续联客户端通过模型训练产生的梯度,避免通过梯度信息泄漏数据样本,进而能够完全阻止信息泄漏,提高联邦学习中数据样本的安全性。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的基于区块链中联邦建模设备的结构示意图;
图2为本发明基于区块链的联邦建模方法第一实施例的流程示意图;
图3为本发明基于区块链的联邦建模装置一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的基于区块链中联邦建模设备的结构示意图。
本发明实施例基于区块链中联邦建模设备可以是PC,也可以是智能手机、平板电脑、电子书阅读器、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、便携计算机等具有显示功能的可移动式终端设备。
如图1所示,该基于区块链中联邦建模设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,基于区块链中联邦建模设备还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。当然,基于区块链中联邦建模设备还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
本领域技术人员可以理解,图1中示出的结构并不构成对基于区块链中联邦建模设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于区块链的联邦建模程序。
在图1所示的基于区块链中联邦建模设备中,网络接口1004主要用于连接后台训练发起者,与后台训练发起者进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的基于区块链的联邦建模程序。
在本实施例中,基于区块链的联邦建模设备包括:存储器1005、处理器1001及存储在所述存储器1005上并可在所述处理器1001上运行的基于区块链的联邦建模程序,其中,处理器1001调用存储器1005中存储的基于区块链的联邦建模程序时,并执行以下操作:
在监测到待训练任务对应的训练客户端的数量达到预设数量时,训练发起者基于所述训练客户端对应的客户端信息发布配置信息至各个训练客户端,以供所述训练客户端基于所述配置信息构建区块链的侧链,并将所述侧链锚定至区块链的主链中;
所述训练发起者将待训练模型上传至主链,其中,各个所述训练客户端通过主链获取所述待训练模型,基于所述待训练模型进行模型训练,以获得梯度,通过同态加密密钥中的第一密钥对梯度进行加密得到加密梯度,并反馈所述加密述梯度至所述侧链;所述侧链基于各个所述训练客户端反馈的加密梯度确定聚合梯度,并发送所述聚合梯度至所述训练发起者;
所述训练发起者基于所述聚合梯度以及所述待训练模型,确定目标模型。
进一步地,处理器1001可以调用存储器1005中存储的基于区块链的联邦建模程序,还执行以下操作:
所述训练发起者通过同态加密密钥中的第二密钥对聚合梯度进行解密,以获得目标梯度;
所述训练发起者基于所述目标梯度更新所述待训练模型,并确定更新后的待训练模型是否满足预设条件;
若更新后的待训练模型满足预设条件,则所述训练发起者将更新后的待训练模型作为所述目标模型;
若更新后的待训练模型未满足预设条件,则所述训练发起者将更新后的待训练模型作为所述待训练模型,并返回执行所述训练发起者通过所述侧链分发待训练模型至各个所述训练客户端的步骤。
进一步地,处理器1001可以调用存储器1005中存储的基于区块链的联邦建模程序,还执行以下操作:
所述训练发起者基于所述目标梯度更新所述待训练模型,并确定更新后的待训练模型是否收敛,其中,若更新后的待训练模型收敛,则判定更新后的待训练模型满足预设条件;或者,
所述训练发起者基于所述目标梯度更新所述待训练模型,并累计所述待训练模型的更新次数,确定所述更新次数是否达到预设次数,其中,若所述更新次数达到预设次数,则判定更新后的待训练模型满足预设条件。
进一步地,处理器1001可以调用存储器1005中存储的基于区块链的联邦建模程序,还执行以下操作:
所述训练发起者将所述待训练模型上传至主链对应的预设存储区域;
各个所述训练客户端通过待训练任务的训练任务信息对应的交易信息,在所述预设存储区域获取所述待训练模型;
各个所述训练客户端基于所述待训练模型进行模型训练,以获得梯度,并通过所述第一密钥得到加密梯度;
各个所述训练客户端将加密梯度上传至预设存储区域,并将加密梯度对应的梯度哈希值上传至侧链中;
在接收到训练客户端上传的梯度哈希值时,若梯度哈希值的数量大于预设值,则侧链在预设存储区域获取各个所述梯度哈希值对应的加密梯度;
侧链通过安全聚合算法对加密梯度进行聚合,以获得聚合梯度,将该聚合梯度上传至预设存储区域,并将聚合梯度对应的索引信息通过主链发送至训练发起者。
进一步地,处理器1001可以调用存储器1005中存储的基于区块链的联邦建模程序,还执行以下操作:
训练发起者获取训练客户端中待审计客户端对应的累加值以及见证值,其中,在各个训练客户端获得梯度时,各个训练客户端分别确定所述梯度对应的各个训练样本的样本哈希值,并基于所述样本哈希值通过RSA累加算法确定各个训练客户端对应的累加值,基于所述样本哈希值以及所述累加值,分别确定各个训练客户端中的各个训练样本对应的见证值,并将所述累加值以及所述见证值上传至所述侧链;
所述训练发起者发送审计请求至训练客户端中的目标客户端,以使所述目标客户端通过所述侧链,发送所述审计请求对应的目标训练样本的目标哈希值至所述训练发起者;
所述训练发起者基于所述目标哈希值、所述累加值以及所述见证值,验证所述目标训练样本。
进一步地,处理器1001可以调用存储器1005中存储的基于区块链的联邦建模程序,还执行以下操作:
训练发起者上传训练任务信息至所述主链对应的预设存储区域,以生成所述训练任务信息对应的交易信息;
所述主链通过智能合约验证所述交易信息是否有效以及验证所述训练发起者对应的账户信息;
在所述交易信息有效且所述账户信息验证通过时,所述主链通过智能合约将所述训练任务信息对应的训练任务设置为可访问状态,并将所述账户信息对应的资源信息转移至所述主链对应的合约账户。
进一步地,处理器1001可以调用存储器1005中存储的基于区块链的联邦建模程序,还执行以下操作:
在接收到所述训练任务对应的加入请求时,所述主链通过智能合约获取所述加入请求对应的请求客户端的客户端信息;
所述主链通过智能合约验证所述客户端信息,并在验证通过时,将所述请求客户端添加至所述训练任务对应的训练客户端中。
本发明还提供一种基于区块链的联邦建模方法,参照图2,图2为本发明基于区块链的联邦建模方法第一实施例的流程示意图。
本实施例中,该基于区块链的联邦建模方法包括以下步骤:
步骤S100,在监测到待训练任务对应的训练客户端的数量达到预设数量时,训练发起者基于所述训练客户端对应的客户端信息发布配置信息至各个训练客户端,以供所述训练客户端基于所述配置信息构建区块链的侧链,并将所述侧链锚定至区块链的主链中;
需要说明的是,在进行模型训练之前,先在主链中部署用以联邦学习的专用的智能合约以便后续调用。
本实施例中,训练发起者先将待训练任务的训练任务信息上传至主链,以使任一训练客户端均可通过主链访问该训练任务信息,进而选择是否加入该待训练任务,训练发起者实时监测待训练任务对应的训练客户端的数量,并判断待训练任务对应的训练客户端的数量是否达到预设数量。
在待训练任务对应的训练客户端的数量达到预设数量时,训练发起者基于所述训练客户端对应的客户端信息发布配置信息至各个训练客户端,具体地,训练发起者通过主链获取训练客户端的对应的客户端信息,即基于训练客户端在加入该待训练任务时所提交的sidenodehash边节点哈希值获取客户端信息,根据该客户端信息生成侧链组网所必须的组网信息,例如,组网信息包括genesis block创世区块(即侧链的第一个区块)、chaincode智能合约等,并将组网信息上传至主链对应的预设存储区域(链外存储介质例如ipfs),得到sidechainhash侧链哈希值,并根据sidechainhash以及各个客户端信息中的taskid任务标识生成配置信息tx(taskid, sidechainhash)以调用主链的StopRegister停止参与功能,主链通过智能合约调用emit方法将配置信息通过组播的方式发布至各个训练客户端。
其中,主链的StopRegister功能仅由当前训练任务的发起者(训练发起者)调用,用以关闭该待训练任务的参与,进而标志着该待训练任务由主链进行Secure Training安全训练,待训练任务将通过待训练任务对应的训练客户端进行模型训练,同时,也标志着该待训练任务正式开始,参与者(训练客户端)开始构建侧链并开始联邦学习训练,侧链的起始点与主链进行锚定。
训练客户端基于所述配置信息构建侧链,并将所述侧链锚定至区块链的主链中,具体地,训练客户端根据sidechainhash对应的侧链配置启动区块链网络和机器学习功能,以构建区块链的侧链,并将侧链锚定至区块链的主链中,其中,主链可以为公有链或者混合链,侧链可以为联盟链等。
步骤S200,所述训练发起者将待训练模型上传至主链,其中,各个所述训练客户端通过主链获取所述待训练模型,基于所述待训练模型进行模型训练,以获得梯度,通过同态加密密钥中的第一密钥对梯度进行加密得到加密梯度,并反馈所述加密述梯度至所述侧链;所述侧链基于各个所述训练客户端反馈的加密梯度确定聚合梯度,并发送所述聚合梯度至所述训练发起者;
本实施例中,训练发起者将待训练模型上传至主链,各个训练客户端通过主链将待训练模型下载至本地,并根据本地的训练样本进行模型训练,获得梯度,而后各个训练客户端分别通过第一密钥对梯度进行加密得到加密梯度,并反馈所述加密述梯度至所述侧链,其中,各个训练客户端可在加入该待训练任务时,通过主链获得待训练任务的训练任务信息对应的交易信息,该交易信息包括第一密钥,训练发起者在生成该待训练任务时,生成同态加密密钥,该同态加密密钥包括第一密钥以及第二密钥,第一密钥用以各个训练客户端中梯度的加密。
具体地,当各个训练客户端完成侧链的搭建后,训练发起者将该待训练模型上传至主链对应的预设存储区域,各个训练客户端通过交易信息中的训练任务哈希值inithash从预设存储区域ipfs获取该待训练模型,接着各个训练客户端采用自身的训练样本(本地训练数据)通过该带训练模型进行模型训练,根据训练结果得到梯度,而后各个训练客户端分别通过第一密钥对梯度进行加密得到加密梯度,以使处理训练客户端之外的其他任何第三方均无法获得训练客户端的梯度,每一个训练客户端也无法获得其他训练客户端的梯度,一般情况下,机器学习所得到的梯度,其数据类型为float32,需要将梯度进行数据类型转换至int64后才能进行加密,该转换/逆转换过程可以保证数据精度不丢失且不影响训练效果。例如,训练结果(梯度)为长度为i的float32集合,即:梯度为{e1,e2,…,ei},训练客户端基于PKps通过同态加密算法逐个加密梯度,得到加密梯度,其中,PKps为第一密钥。在加密完成后,训练客户端将加密后的加密梯度上传至预设存储区域,并将加密梯度对应的gradhash梯度哈希值上传至侧链中。
而后,侧链基于各个训练客户端反馈的加密梯度确定聚合梯度,并发送聚合梯度至所述训练发起者。具体地,侧链在接收到训练客户端上传的gradhash时,统计当前接收到的gradhash的数量,若gradhash的数量达到预设值,则侧链基于各个gradhash获取对应的加密梯度,其中,预设值为训练客户端的数量乘以预设比例,预设比例可进行合理设置,例如,预设比例为2/3。
需要说明的是,由于联邦学习中的训练客户端存在不稳定等特性,因此,通过在gradhash的数量达到预设值,侧链对加密梯度进行安全聚合得到聚合梯度,使得侧链可容忍训练客户端中预设比例的拜占庭节点存在,即可保证梯度安全聚合具有一定容错性,以使侧链具备一定的拜占庭容错能力。例如,预设比例为2/3时,侧链的拜占庭容错能力为1/3,即当不超过1/3的训练客户端放生故障时,仍可以正常运行,以确保待训练模型的训练效率。
而后,将各个训练客户端的加密梯度进行安全聚合得到聚合梯度,即采用安全聚合算法对加密梯度进行聚合得到聚合梯度,例如,对于n个训练客户端的加密梯度,聚合梯度的公式为:
Figure 37437DEST_PATH_IMAGE001
其中,
Figure 879491DEST_PATH_IMAGE002
为n个加密梯度中第一个加密梯度之和。
进而聚合梯度中的第一个密文梯度为n个加密梯度中第一个加密梯度的均值。也就是说,聚合梯度为n个加密梯度按照与权重相乘后再进行相加(向量加法)得到聚合体度,其中权重为1/n,即聚合梯度为n个加密梯度的均值。
而后,侧链将该聚合梯度上传至预设存储区域ipfs,并将聚合梯度对应的索引信息通过主链发送至训练发起者,以使训练发起者通过该索引信息调用与预设存储区域内的聚合梯度。
步骤S300,所述训练发起者基于所述聚合梯度以及所述待训练模型,确定目标模型。
本实施例中,训练发起者先获取聚合梯度,具体地,训练发起者在通过主链接收到侧链发送的该待训练任务对应的索引信息时,根据该索引信息在预设存储区域ipfs中获取聚合梯度。
在获取到聚合梯度之后,通过同态加密密钥中的第二密钥对聚合梯度进行解密,得到目标梯度,并根据目标梯度更新待训练模型,根据更新后的待训练模型,确定目标模型,具体地,若更新后的待训练模型收敛,则将该更新后的待训练模型作为目标模型,或者,在更新待训练模型时,累计该待训练模型的更新次数,若该更新次数达到预设训练次数,则将该更新后的待训练模型作为目标模型。
本实施例提出的基于区块链的联邦建模方法,通过在监测到待训练任务对应的训练客户端的数量达到预设数量时,训练发起者基于所述训练客户端对应的客户端信息发布配置信息至各个训练客户端,以供所述训练客户端基于所述配置信息构建区块链的侧链,并将所述侧链锚定至区块链的主链中;接着所述训练发起者将待训练模型上传至主链,其中,各个所述训练客户端通过主链获取所述待训练模型,基于所述待训练模型进行模型训练,以获得梯度,通过同态加密密钥中的第一密钥对梯度进行加密得到加密梯度,并反馈所述加密述梯度至所述侧链;所述侧链基于各个所述训练客户端反馈的加密梯度确定聚合梯度,并发送所述聚合梯度至所述训练发起者;而后所述训练发起者基于所述聚合梯度以及所述待训练模型,确定目标模型;通过区块链实现联邦学习的建模,在保护联邦学习数据隐私的前提下,对联邦学习的准确性无任何影响,提高了联邦学习的训练效果以及模型精度,无需对传输中的梯度等模型参数进行修改,避免了噪声不足导致的隐私泄露以及噪声过高造成的模型训练精度较低,实现了梯度等模型参数的隐私保护与模型收敛或模型精度之间的均衡;由于采用同态加密算法以及区块链中安全聚合算法,保证了训练无需获取训练客户端的数据就能够达到训练的目的,同时确保任何第三方无法获取到续联客户端通过模型训练产生的梯度,避免通过梯度信息泄漏数据样本,进而能够完全阻止信息泄漏,提高联邦学习中数据样本的安全性。
本实施例中,通过主链帮助找到联邦学习中的两方参与到训练当中,并帮助训练客户端完成侧链的组建,侧链提供可信与可审计的计算帮助完成梯度的安全聚合,同时,在训练的开始与结束,侧链都将锚定回归至主链将信息公示,进而实现无信任场景下进行联邦学习训练。此外,本实施例通过在区块链中进行模型训练,保证了多个训练任务并行,每个训练任务只在自行维护的侧链中进行,如果出现错误既不会影响到其他训练任务的正常运行也不会影响到主链的正确运行。
基于第一实施例,提出本发明基于区块链的联邦建模方法的第二实施例,在本实施例中,步骤S300包括:
步骤S310,所述训练发起者通过同态加密密钥中的第二密钥对聚合梯度进行解密,以获得目标梯度;
步骤S320,所述训练发起者基于所述目标梯度更新所述待训练模型,并确定更新后的待训练模型是否满足预设条件;
步骤S330,若更新后的待训练模型满足预设条件,则将更新后的待训练模型作为所述目标模型;
步骤S340,若更新后的待训练模型未满足预设条件,则将更新后的待训练模型作为所述待训练模型,并返回执行所述训练发起者通过所述侧链分发待训练模型至各个所述训练客户端的步骤。
本实施例中,获取到聚合梯度后,训练发起者同态加密密钥中的第二密钥对聚合梯度进行解密,以获得目标梯度,并根据目标梯度更新待训练模型,得到更新后的待训练模型,而后判断更新后的待训练模型是否满足预设条件,若满足,则将更新后的待训练模型作为所述目标模型,否则训练发起者将更新后的待训练模型作为所述待训练模型,并返回执行所述训练发起者通过所述侧链分发待训练模型至各个所述训练客户端的步骤。
进一步地,在一实施例中,步骤S320包括:
所述训练发起者基于所述目标梯度更新所述待训练模型,并确定更新后的待训练模型是否收敛,其中,若更新后的待训练模型收敛,则判定更新后的待训练模型满足预设条件;或者,
所述训练发起者基于所述目标梯度更新所述待训练模型,并累计所述待训练模型的更新次数,确定所述更新次数是否达到预设次数,其中,若所述更新次数达到预设次数,则判定更新后的待训练模型满足预设条件。
本实施例中,训练发起者基于目标梯度更新待训练模型,获得更新后的待训练模型之后,判断更新后的待训练模型是否收敛,若收敛,则判定更新后的待训练模型满足预设条件,否则判定更新后的待训练模型未满足预设条件,例如,将测试样本数据输入更新后的待训练模型进行模型训练,得到一损失函数值,若该损失函数值小于预设损失函数值,则判定待训练模型收敛,否则判定待训练模型未收敛。其中,该预设损失函数值为训练任务信息中的准确率。
或者,训练发起者在更新待训练模型时,累计该待训练模型的更新次数,确定所述更新次数是否达到预设次数,若该更新次数达到预设训练次数,则判定更新后的待训练模型满足预设条件,否则判定更新后的待训练模型未满足预设条件。其中,该预设训练次数为训练任务信息中的目标训练轮数。
需要说明的是,在将更新后的待训练模型作为所述目标模型之后,即当前已达到训练目标后,训练发起者将不在分发新的训练模型,并调用stopMission停止任务功能结束当前训练任务进行奖励分发。其中,StopMission功能仅由训练发起者进行调用,当联邦学习过程迭代到一定轮数后,训练发起者可以调用主链中stopMission功能结束训练,同时主链将根据智能合约中的奖励分配规则对奖励进行自动分发,同时也是侧链锚定到公有链的结束节点。
具体地,在将更新后的待训练模型作为所述目标模型之后,训练发起者调用主链的stopMission功能,主链检测到stopMission功能的调用后,按照智能合约中的奖励分配规则,将合约账户中该训练发起者对应的资源信息分配至各个训练客户端对应的账户,同时结束侧链与主链之间的锚定。
本实施例提出的基于区块链的联邦建模方法,通过所述训练发起者通过同态加密密钥中的第二密钥对聚合梯度进行解密,以获得目标梯度;接着所述训练发起者基于所述目标梯度更新所述待训练模型,并确定更新后的待训练模型是否满足预设条件;而后若更新后的待训练模型满足预设条件,则所述训练发起者将更新后的待训练模型作为所述目标模型;若更新后的待训练模型未满足预设条件,则所述训练发起者将更新后的待训练模型作为所述待训练模型,并返回执行所述训练发起者通过所述侧链分发待训练模型至各个所述训练客户端的步骤,能够通过同态加密密钥准确得到目标梯度,通过同态加密算法确保任何第三方无法获取到训练客户端通过模型训练产生的梯度,避免通过梯度信息泄漏数据样本,进而能够完全阻止信息泄漏,进一步提高联邦学习中数据样本的安全性以及训练效率。
基于第一实施例,提出本发明基于区块链的联邦建模方法的第三实施例,在本实施例中,步骤S200包括:
步骤S210,所述训练发起者将所述待训练模型上传至主链对应的预设存储区域;
步骤S220,各个所述训练客户端通过待训练任务的训练任务信息对应的交易信息,在所述预设存储区域获取所述待训练模型;
步骤S230,各个所述训练客户端基于所述待训练模型进行模型训练,以获得梯度,并通过所述第一密钥得到加密梯度;
步骤S240,各个所述训练客户端将加密梯度上传至预设存储区域,并将加密梯度对应的梯度哈希值上传至侧链中;
步骤S250,在接收到训练客户端上传的梯度哈希值时,若梯度哈希值的数量大于预设值,则侧链在预设存储区域获取各个所述梯度哈希值对应的加密梯度;
步骤S260,侧链通过安全聚合算法对加密梯度进行聚合,以获得聚合梯度,将该聚合梯度上传至预设存储区域,并将聚合梯度对应的索引信息通过主链发送至训练发起者。
本实施例中,当各个训练客户端完成侧链的搭建后,训练发起者将该待训练模型上传至主链对应的预设存储区域,各个训练客户端通过交易信息中的训练任务哈希值inithash从预设存储区域ipfs获取该待训练模型,接着各个训练客户端采用自身的训练样本(本地训练数据)通过该带训练模型进行模型训练,根据训练结果得到梯度,而后各个训练客户端分别通过第一密钥对梯度进行加密得到加密梯度,以使处理训练客户端之外的其他任何第三方均无法获得训练客户端的梯度。在加密完成后,训练客户端将加密后的加密梯度上传至预设存储区域,并将加密梯度对应的梯度哈希值gradhash上传至侧链中。
而后,侧链在接收到训练客户端上传的gradhash时,统计当前接收到的gradhash的数量,若gradhash的数量达到预设值,则侧链基于各个gradhash获取对应的加密梯度,其中,预设值为训练客户端的数量乘以预设比例,预设比例可进行合理设置,例如,预设比例为2/3。
需要说明的是,由于联邦学习中的训练客户端存在不稳定等特性,因此,通过在gradhash的数量达到预设值,侧链对加密梯度进行安全聚合得到聚合梯度,使得侧链可容忍训练客户端中预设比例的拜占庭节点存在,即可保证梯度安全聚合具有一定容错性,以使侧链具备一定的拜占庭容错能力。例如,预设比例为2/3时,侧链的拜占庭容错能力为1/3,即当不超过1/3的训练客户端放生故障时,仍可以正常运行,以确保待训练模型的训练效率。
而后,侧链将各个训练客户端的加密梯度进行安全聚合得到聚合梯度,即采用安全聚合算法对加密梯度进行聚合得到聚合梯度,侧链将该聚合梯度上传至预设存储区域ipfs,并将聚合梯度对应的索引信息通过主链发送至训练发起者,以使训练发起者通过该索引信息调用与预设存储区域内的聚合梯度。
本实施例提出的基于区块链的联邦建模方法,通过所述训练发起者将所述待训练模型上传至主链对应的预设存储区域;接着各个所述训练客户端通过待训练任务的训练任务信息对应的交易信息,在所述预设存储区域获取所述待训练模型;而后各个所述训练客户端基于所述待训练模型进行模型训练,以获得梯度,并通过所述第一密钥得到加密梯度;然后各个所述训练客户端将加密梯度上传至预设存储区域,并将加密梯度对应的梯度哈希值上传至侧链中;再者在接收到训练客户端上传的梯度哈希值时,若梯度哈希值的数量大于预设值,则侧链在预设存储区域获取各个所述梯度哈希值对应的加密梯度;最后侧链通过安全聚合算法对加密梯度进行聚合,以获得聚合梯度,将该聚合梯度上传至预设存储区域,并将聚合梯度对应的索引信息通过主链发送至训练发起者,由于采用同态加密算法以及区块链中安全聚合算法,保证了训练无需获取训练客户端的数据就能够达到训练的目的,同时确保任何第三方无法获取到续联客户端通过模型训练产生的梯度,避免通过梯度信息泄漏数据样本,进而能够完全阻止信息泄漏,进而提高联邦学习中数据样本的安全性。
基于第一实施例,提出本发明基于区块链的联邦建模方法的第四实施例,在本实施例中,步骤S300之前,该基于区块链的联邦建模方法还包括:
步骤S410,训练发起者获取训练客户端中待审计客户端对应的累加值以及见证值,其中,在各个训练客户端获得梯度时,各个训练客户端分别确定所述梯度对应的各个训练样本的样本哈希值,并基于所述样本哈希值通过RSA累加算法确定各个训练客户端对应的累加值,基于所述样本哈希值以及所述累加值,分别确定各个训练客户端中的各个训练样本对应的见证值,并将所述累加值以及所述见证值上传至所述侧链;
步骤S420,所述训练发起者发送审计请求至训练客户端中的目标客户端,以使所述目标客户端通过所述侧链,发送所述审计请求对应的目标训练样本的目标哈希值至所述训练发起者;
步骤S430,所述训练发起者基于所述目标哈希值、所述累加值以及所述见证值,验证所述目标训练样本。
需要说明的是,训练发起者可随时发起对之前任意一轮训练数据的审计,例如,每一轮模的型训练中,训练发起者随机选择训练客户端中的待审计客户端。
本实施例中,在各个训练客户端获得梯度时,各个训练客户端分别确定所述梯度对应的各个训练样本的样本哈希值,并基于所述样本哈希值通过RSA累加算法确定各个训练客户端对应的累加值,基于所述样本哈希值以及所述累加值,分别确定各个训练客户端中的各个训练样本对应的见证值,并将所述累加值以及所述见证值上传至所述侧链;具体地,训练客户端对本次训练的本地数据集合(训练样本集合){d1,d2,…,dn}进行哈希操作得到样本哈希值{m1,m2,…,mn},通过RSA累加算法得到累加值acc=ACC(m1,m2,…,m3)。而后,根据样本哈希值以及累加值确定见证值witi,具体地,通过现有的witGen(acc,mi)算法生成见证值witi,并将累加值以及所述见证值上传至所述侧链。
在对目标客户端对应的目标训练样本进行审计时,训练发起者发送审计请求至训练客户端中的目标客户端,以使所述目标客户端通过所述侧链,发送所述审计请求对应的目标训练样本的目标哈希值至所述训练发起者;该目标哈希值为本次训练的本地数据集合对应的样本哈希值中,该目标训练样本的哈希值。
而后,训练发起者基于所述目标哈希值、所述累加值以及所述见证值,验证所述目标训练样本。具体地,训练发起者通过目标哈希值、所述累加值以及所述见证值验证该数据是否应用于之前的训练过程当中,可以有效检测审计目标客户端所提交的数据是否与训练时的一致,包括数据顺序的验证。需要强调的是,RSA累加器所提供的验证方案,不仅可以有效的校验是否存在于累加结果中,而且还可以对验证数据对应的顺序进行验证。当数据的存在性验证通过后,训练发起者通过目标客户端请求目标训练样本以验证数据质量,而后训练发起者确定该目标训练样本的样本哈希值,若该目标训练样本的样本哈希值与目标哈希值一致,则目标训练样本验证成功。
需要说明的是,在目标训练样本验证成功后,执行步骤S300,若目标训练样本验证失败,则可在各个训练客户端中剔除该目标客户端,并继续执行步骤S200,同时,发送验证失败信息至侧链,以使侧链在后续的梯度聚合时剔除该目标客户端的加密梯度。
本实施例中,利用RSA累加器算法,在不泄漏原始数据的前提下,对原始数据是否用于审计进行校验,防止恶意客户端使用恶意数据样本危害模型训练以至于模型无法收敛,在保护数据隐私的前提下提高模型训练的准确性。
本实施例提出的基于区块链的联邦建模方法,通过训练发起者获取训练客户端中待审计客户端对应的累加值以及见证值,其中,在各个训练客户端获得梯度时,各个训练客户端分别确定所述梯度对应的各个训练样本的哈希值,并基于所述哈希值确定各个训练客户端对应的累加值,基于所述哈希值以及所述累加值,分别确定各个训练客户端中的各个训练样本对应的见证值,并将所述累加值以及所述见证值上传至所述侧链;接着所述训练发起者发送审计请求至训练客户端中的目标客户端,以使所述目标客户端通过所述侧链发送所述审计请求对应的目标训练样本的目标哈希值至所述训练发起者;而后所述训练发起者基于所述目标哈希值、所述累加值以及所述见证值,验证所述目标训练样本,能够在不泄漏原始数据的前提下,对原始数据是否用于审计进行校验,防止恶意客户端使用恶意数据样本危害模型训练以至于模型无法收敛,在保护数据隐私的前提下提高模型训练的准确性。
基于上述各个实施例,提出本发明基于区块链的联邦建模方法的第五实施例,在本实施例中,步骤S100之前,该基于区块链的联邦建模方法还包括:
步骤S510,训练发起者上传训练任务信息至所述主链对应的预设存储区域,以生成所述训练任务信息对应的交易信息;
步骤S520,所述主链通过智能合约验证所述交易信息是否有效以及验证所述训练发起者对应的账户信息;
步骤S530,在所述交易信息有效且所述账户信息验证通过时,所述主链通过智能合约将所述训练任务信息对应的训练任务设置为可访问状态,并将所述账户信息对应的资源信息转移至所述主链对应的合约账户。
需要说明的是,当训练发起者需要发起模型训练任务时,需要调用主链initMission功能,InitMission功能是指初始化训练任务的功能,该功能由任务发起者调用,在主链中不对用户身份进行认证,任何人在提供了相应信息后均可以调用。
当训练发起者调用主链initMission功能时,训练发起者需要预先在本地生成同态加密密钥,该同态加密密钥包括第一密钥以及第二密钥。训练发起者获取模型训练对应的训练任务信息,训练任务信息包括:训练样本格式、目标训练轮数、准确率、token奖励数量、初始模型等相关信息。
训练发起者上传训练任务信息至所述主链对应的预设存储区域,以生成所述训练任务信息对应的交易信息,主链通过智能合约验证交易信息是否有效以及验证所述训练发起者对应的账户信息,以确保交易信息有效且账户信息对于的账户余额充足;在交易信息有效且所述账户信息验证通过时,主链通过智能合约将训练任务信息对应的训练任务设置为可访问状态,并将所述账户信息对应的资源信息转移至所述主链对应的合约账户。
具体地,训练发起者通过相应的用户接口将训练任务信息上传至主链对应的预设存储区域(例如链外存储介质ipfs)得到训练任务哈希值inithash。根据inithash、第二密钥生成相应的交易信息tx(inithash,PKps,rewards)以调用主链中initMission功能,其中,PKps为第一密钥,主链通过智能合约将自动检查tx的有效性(验签)以及对应账户的账户余额。在验证通过,主链通过智能合约将训练任务信息对应的训练任务设置为可访问状态,并将所述账户信息对应的资源信息转移至所述主链对应的合约账户。
本实施例提出的基于区块链的联邦建模方法,通过训练发起者上传训练任务信息至所述主链对应的预设存储区域,以生成所述训练任务信息对应的交易信息;接着所述主链通过智能合约验证所述交易信息是否有效以及验证所述训练发起者对应的账户信息;而后在所述交易信息有效且所述账户信息验证通过时,所述主链通过智能合约将所述训练任务信息对应的训练任务设置为可访问状态,并将所述账户信息对应的资源信息转移至所述主链对应的合约账户,实现了通过区块链的主链发起联邦学习的模型训练任务,进一步提高了模型训练的效率。
基于第五实施例,提出本发明基于区块链的联邦建模方法的第六实施例,在本实施例中,步骤S530之后,还包括:
步骤S540,在接收到所述训练任务对应的加入请求时,所述主链通过智能合约获取所述加入请求对应的请求客户端的客户端信息;
步骤S550,所述主链通过智能合约验证所述客户端信息,并在验证通过时,将所述请求客户端添加至所述训练任务对应的训练客户端中。
本实施例中,在主链通过智能合约将训练任务信息对应的训练任务设置为可访问状态之后,任一客户端均可访问该训练任务信息,即训练客户端用户可以通过相应用户接口浏览训练任务,同时,可以通过调用主链的joinMission功能加入到该训练任务。其中,JoinMission功能仅能由非任务发起者调用,以防止Sybil攻击。
本实施例中,训练客户端上传该训练任务对应的加入请求,在接收到所述训练任务对应的加入请求时,所述主链通过智能合约获取所述加入请求对应的请求客户端的客户端信息;具体地,训练客户端将自身公网ip信息、开放端口信息、操作信息版本、自签名证书等上传至预设存储区域ipfs进行存储并获得节点哈希值sidenodehash。训练客户端根据节点哈希值生成节点信息tx(sidenodehash,taskid)调用joinMission功能,在检测到训练客户端调用joinMission功能时,确定接收到训练任务对应的加入请求,主链通过智能合约获取所述加入请求对应的请求客户端的客户端信息。
主链通过智能合约验证所述客户端信息,并在验证通过时,将所述请求客户端添加至所述训练任务对应的训练客户端中。主链通过节点信息中的节点哈希值在预设存储区域获取客户端信息,通过智能合约对客户端信息进行验证,以验证训练客户端的身份,以实现任何校验通过的非任务发起者用户均可加入到训练中,同时是防止sybil攻击。
本实施例提出的基于区块链的联邦建模方法,通过在接收到所述训练任务对应的加入请求时,所述主链通过智能合约获取所述加入请求对应的请求客户端的客户端信息;接着所述主链通过智能合约验证所述客户端信息,并在验证通过时,将所述请求客户端添加至所述训练任务对应的训练客户端中,能够实现任一非任务发起者加入该待训练任务,提高了联邦学习进行建模的效率以及准确性。
本发明实施例还提供一种基于区块链的联邦建模装置,参照图3,所述基于区块链的联邦建模装置包括:
发布模块100,用于在监测到待训练任务对应的训练客户端的数量达到预设数量时,基于所述训练客户端对应的客户端信息发布配置信息至各个训练客户端,以供所述训练客户端基于所述配置信息构建区块链的侧链,并将所述侧链锚定至区块链的主链中;
分发模块200,用于将待训练模型上传至主链,其中,各个所述训练客户端通过主链获取所述待训练模型,基于所述待训练模型进行模型训练,以获得梯度,通过同态加密密钥中的第一密钥对梯度进行加密得到加密梯度,并反馈所述加密述梯度至所述侧链;所述侧链基于各个所述训练客户端反馈的加密梯度确定聚合梯度,并发送所述聚合梯度至所述训练发起者;
确定模块300,用于基于所述聚合梯度以及所述待训练模型,确定目标模型。
需要说明的是,本实施例中,基于区块链的联邦建模装置中各个模块的功能可参照本发明联邦建模方法各个实施例,此处不再赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有基于区块链的联邦建模程序,所述基于区块链的联邦建模程序被处理器执行时实现如上所述的基于区块链的联邦建模方法的步骤。
其中,在所述处理器上运行的基于区块链的联邦建模程序被执行时所实现的方法可参照本发明联邦建模方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,训练发起者,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种基于区块链的联邦建模方法,其特征在于,所述基于区块链的联邦建模方法包括以下步骤:
在监测到待训练任务对应的训练客户端的数量达到预设数量时,训练发起者基于所述训练客户端对应的客户端信息发布配置信息至各个训练客户端,以供所述训练客户端基于所述配置信息构建区块链的侧链,并将所述侧链锚定至区块链的主链中;
所述训练发起者将待训练模型上传至主链,其中,各个所述训练客户端通过主链获取所述待训练模型,基于所述待训练模型进行模型训练,以获得梯度,通过同态加密密钥中的第一密钥对梯度进行加密得到加密梯度,并反馈所述加密梯度至所述侧链;所述侧链基于各个所述训练客户端反馈的加密梯度确定聚合梯度,并发送所述聚合梯度至所述训练发起者;其中,各个所述训练客户端将加密梯度上传至主链对应的预设存储区域,并将加密梯度对应的梯度哈希值上传至侧链中;在接收到训练客户端上传的梯度哈希值时,若梯度哈希值的数量大于预设值,则侧链在预设存储区域获取各个所述梯度哈希值对应的加密梯度;侧链通过安全聚合算法对加密梯度进行聚合,以获得聚合梯度,将该聚合梯度上传至预设存储区域,并将聚合梯度对应的索引信息通过主链发送至训练发起者;
所述训练发起者基于所述聚合梯度以及所述待训练模型,确定目标模型。
2.如权利要求1所述的基于区块链的联邦建模方法,其特征在于,所述基于所述聚合梯度以及所述待训练模型,确定目标模型的步骤包括:
所述训练发起者通过同态加密密钥中的第二密钥对聚合梯度进行解密,以获得目标梯度;
所述训练发起者基于所述目标梯度更新所述待训练模型,并确定更新后的待训练模型是否满足预设条件;
若更新后的待训练模型满足预设条件,则所述训练发起者将更新后的待训练模型作为所述目标模型;
若更新后的待训练模型未满足预设条件,则所述训练发起者将更新后的待训练模型作为所述待训练模型,并返回执行所述训练发起者通过所述侧链分发待训练模型至各个所述训练客户端的步骤。
3.如权利要求2所述的基于区块链的联邦建模方法,其特征在于,所述训练发起者基于所述目标梯度更新所述待训练模型,并确定更新后的待训练模型是否满足预设条件的步骤包括:
所述训练发起者基于所述目标梯度更新所述待训练模型,并确定更新后的待训练模型是否收敛,其中,若更新后的待训练模型收敛,则判定更新后的待训练模型满足预设条件;或者,
所述训练发起者基于所述目标梯度更新所述待训练模型,并累计所述待训练模型的更新次数,确定所述更新次数是否达到预设次数,其中,若所述更新次数达到预设次数,则判定更新后的待训练模型满足预设条件。
4.如权利要求1所述的基于区块链的联邦建模方法,其特征在于,所述各个所述训练客户端通过主链获取所述待训练模型的步骤包括:
各个所述训练客户端通过待训练任务的训练任务信息对应的交易信息,在所述预设存储区域获取所述待训练模型。
5.如权利要求1所述的基于区块链的联邦建模方法,其特征在于,所述训练发起者基于所述聚合梯度以及所述待训练模型,确定目标模型的步骤之前,所述基于区块链的联邦建模方法还包括:
训练发起者获取训练客户端中待审计客户端对应的累加值以及见证值,其中,在各个训练客户端获得梯度时,各个训练客户端分别确定所述梯度对应的各个训练样本的样本哈希值,并基于所述样本哈希值通过RSA累加算法确定各个训练客户端对应的累加值,基于所述样本哈希值以及所述累加值,分别确定各个训练客户端中的各个训练样本对应的见证值,并将所述累加值以及所述见证值上传至所述侧链;
所述训练发起者发送审计请求至训练客户端中的目标客户端,以使所述目标客户端通过所述侧链,发送所述审计请求对应的目标训练样本的目标哈希值至所述训练发起者;
所述训练发起者基于所述目标哈希值、所述累加值以及所述见证值,验证所述目标训练样本。
6.如权利要求1至5任一项所述的基于区块链的联邦建模方法,其特征在于,所述在监测到待训练任务对应的训练客户端的数量达到预设数量时,训练发起者基于所述训练客户端对应的客户端信息发布配置信息至各个训练客户端的步骤之前,所述基于区块链的联邦建模方法还包括:
训练发起者上传训练任务信息至所述主链对应的预设存储区域,以生成所述训练任务信息对应的交易信息;
所述主链通过智能合约验证所述交易信息是否有效以及验证所述训练发起者对应的账户信息;
在所述交易信息有效且所述账户信息验证通过时,所述主链通过智能合约将所述训练任务信息对应的训练任务设置为可访问状态,并将所述账户信息对应的资源信息转移至所述主链对应的合约账户。
7.如权利要求6所述的基于区块链的联邦建模方法,其特征在于,所述在所述交易信息有效且所述账户信息验证通过时,所述主链通过智能合约将所述训练任务信息对应的训练任务设置为可访问状态,并将所述账户信息对应的资源信息转移至所述主链对应的合约账户的步骤之后,还包括:
在接收到所述训练任务对应的加入请求时,所述主链通过智能合约获取所述加入请求对应的请求客户端的客户端信息;
所述主链通过智能合约验证所述客户端信息,并在验证通过时,将所述请求客户端添加至所述训练任务对应的训练客户端中。
8.一种基于区块链的联邦建模装置,其特征在于,所述基于区块链的联邦建模装置包括:
发布模块,用于在监测到待训练任务对应的训练客户端的数量达到预设数量时,基于所述训练客户端对应的客户端信息发布配置信息至各个训练客户端,以供所述训练客户端基于所述配置信息构建区块链的侧链,并将所述侧链锚定至区块链的主链中;
分发模块,用于将待训练模型上传至主链,其中,各个所述训练客户端通过主链获取所述待训练模型,基于所述待训练模型进行模型训练,以获得梯度,通过同态加密密钥中的第一密钥对梯度进行加密得到加密梯度,并反馈所述加密梯度至所述侧链;所述侧链基于各个所述训练客户端反馈的加密梯度确定聚合梯度,并发送所述聚合梯度至训练发起者,其中,各个所述训练客户端将加密梯度上传至主链对应的预设存储区域,并将加密梯度对应的梯度哈希值上传至侧链中;在接收到训练客户端上传的梯度哈希值时,若梯度哈希值的数量大于预设值,则侧链在预设存储区域获取各个所述梯度哈希值对应的加密梯度;侧链通过安全聚合算法对加密梯度进行聚合,以获得聚合梯度,将该聚合梯度上传至预设存储区域,并将聚合梯度对应的索引信息通过主链发送至训练发起者;
确定模块,用于基于所述聚合梯度以及所述待训练模型,确定目标模型。
9.一种基于区块链的联邦建模设备,其特征在于,所述基于区块链的联邦建模设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于区块链的联邦建模程序,所述基于区块链的联邦建模程序被所述处理器执行时实现如权利要求1至7中任一项所述的基于区块链的联邦建模方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有基于区块链的联邦建模程序,所述基于区块链的联邦建模程序被处理器执行时实现如权利要求1至7中任一项所述的基于区块链的联邦建模方法的步骤。
CN202010660583.6A 2020-07-10 2020-07-10 基于区块链的联邦建模方法、装置、设备及存储介质 Active CN111552986B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010660583.6A CN111552986B (zh) 2020-07-10 2020-07-10 基于区块链的联邦建模方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010660583.6A CN111552986B (zh) 2020-07-10 2020-07-10 基于区块链的联邦建模方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN111552986A CN111552986A (zh) 2020-08-18
CN111552986B true CN111552986B (zh) 2020-11-13

Family

ID=72001250

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010660583.6A Active CN111552986B (zh) 2020-07-10 2020-07-10 基于区块链的联邦建模方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111552986B (zh)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111970304A (zh) * 2020-08-28 2020-11-20 光大科技有限公司 消息处理方法和装置
CN112100659B (zh) * 2020-09-14 2023-04-07 电子科技大学 一种区块链联邦学习系统及拜占庭攻击检测方法
CN112232527B (zh) * 2020-09-21 2024-01-23 北京邮电大学 安全的分布式联邦深度学习方法
CN112182102A (zh) * 2020-09-23 2021-01-05 西安纸贵互联网科技有限公司 联邦学习中数据的处理方法、装置、电子设备及存储介质
CN112199702A (zh) * 2020-10-16 2021-01-08 鹏城实验室 一种基于联邦学习的隐私保护方法、存储介质及系统
CN112231495A (zh) * 2020-10-28 2021-01-15 刘娴 一种个人和家庭的建模方法及装置
CN112598132A (zh) * 2020-12-04 2021-04-02 光大科技有限公司 模型训练方法及装置、存储介质、电子装置
CN112560088B (zh) * 2020-12-11 2024-05-28 同盾控股有限公司 基于知识联邦的数据安全交换方法、装置及存储介质
CN112738035B (zh) * 2020-12-17 2022-04-29 杭州趣链科技有限公司 一种基于区块链技术的垂直联邦下模型窃取防御方法
CN112738034B (zh) * 2020-12-17 2022-04-29 杭州趣链科技有限公司 一种基于垂直联邦学习的区块链钓鱼节点检测方法
CN113052331A (zh) * 2021-02-19 2021-06-29 北京航空航天大学 一种基于区块链的物联网个性化联邦学习方法
CN112860800A (zh) * 2021-02-22 2021-05-28 深圳市星网储区块链有限公司 基于区块链和联邦学习的可信网络应用方法和装置
CN113822436A (zh) * 2021-03-12 2021-12-21 京东科技控股股份有限公司 联邦学习模型训练的通信方法、装置和电子设备
CN113065866B (zh) * 2021-03-23 2022-07-22 北京邮电大学 基于区块链的物联网边缘计算系统及方法
CN113111124B (zh) * 2021-03-24 2021-11-26 广州大学 一种基于区块链的联邦学习数据审计系统及方法
CN113159333B (zh) * 2021-03-27 2022-10-11 北京邮电大学 一种基于分层分片区块链的联邦学习方法、系统及装置
CN112966832B (zh) * 2021-03-31 2022-10-11 上海嗨普智能信息科技股份有限公司 基于多服务器的联邦学习系统
CN112801307B (zh) * 2021-04-13 2021-07-06 深圳索信达数据技术有限公司 基于区块链的联邦学习方法、装置和计算机设备
CN113095510B (zh) * 2021-04-14 2024-03-01 深圳前海微众银行股份有限公司 一种基于区块链的联邦学习方法及装置
CN113194126B (zh) * 2021-04-21 2023-10-27 泉州华中科技大学智能制造研究院 一种基于区块链的横向联邦学习模型构建方法
CN113094761B (zh) * 2021-04-25 2022-02-08 中山大学 一种联邦学习数据防篡改监测方法及相关装置
CN113204787B (zh) * 2021-05-06 2022-05-31 广州大学 基于区块链的联邦学习隐私保护方法、系统、设备和介质
CN113157399B (zh) * 2021-05-17 2022-11-11 北京冲量在线科技有限公司 基于arm架构芯片的非监督联合建模方法
CN113569275B (zh) * 2021-06-11 2023-07-25 电子科技大学 一种基于区块链的证明材料隐私数据处理方法
CN113449319B (zh) * 2021-06-23 2022-08-19 华东师范大学 一种面向跨筒仓联邦学习的保护本地隐私的梯度下降方法
CN113537509A (zh) * 2021-06-28 2021-10-22 南方科技大学 协作式的模型训练方法及装置
CN113361658B (zh) * 2021-07-15 2022-06-14 支付宝(杭州)信息技术有限公司 一种基于隐私保护的图模型训练方法、装置及设备
CN113657609B (zh) * 2021-08-18 2024-05-03 深圳技术大学 基于区块链与联邦迁移学习的数据管理方法及系统
CN113591060B (zh) * 2021-08-24 2024-01-23 杭州电力设备制造有限公司 一种电网数据的应用方法、装置及系统
CN113806800B (zh) * 2021-09-14 2023-07-11 东莞理工学院 一种提高通信效率和合理分配奖励的隐私保护方法及系统
CN113778966B (zh) * 2021-09-15 2024-03-26 深圳技术大学 高校教学与课程成绩的跨学校信息共享方法及相关装置
CN114143311B (zh) * 2021-11-03 2023-04-07 深圳前海微众银行股份有限公司 一种基于区块链的隐私保护方案聚合方法及装置
CN114239070B (zh) * 2021-12-23 2023-07-21 电子科技大学 在联邦学习中移除非规则用户的隐私保护方法
CN114338045B (zh) * 2022-01-14 2023-06-23 中国人民解放军战略支援部队信息工程大学 基于区块链和联邦学习的情报数据安全共享方法及系统
CN114418134A (zh) * 2022-01-20 2022-04-29 广州广电运通金融电子股份有限公司 一种基于区块链的联邦学习方法和系统
WO2023141809A1 (zh) * 2022-01-26 2023-08-03 深圳技术大学 一种基于元宇宙的共享信息隐私保护方法及相关装置
CN114186213B (zh) * 2022-02-16 2022-07-05 深圳致星科技有限公司 基于联邦学习的数据传输方法及装置、设备和介质
CN114596102B (zh) * 2022-03-08 2022-12-13 深圳元气玛特互联网科技有限公司 一种基于区块链的防伪溯源联邦学习训练方法、装置
CN114707663B (zh) * 2022-04-15 2024-02-23 中国电信股份有限公司 分布式机器学习方法、装置、电子设备及存储介质
CN114760023A (zh) * 2022-04-19 2022-07-15 光大科技有限公司 基于联邦学习的模型训练方法、装置及存储介质
CN114996733B (zh) * 2022-06-07 2023-10-20 光大科技有限公司 一种聚合模型更新处理方法及装置
CN116402169B (zh) * 2023-06-09 2023-08-15 山东浪潮科学研究院有限公司 一种联邦建模验证方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107464106A (zh) * 2017-07-25 2017-12-12 北京果仁宝科技有限公司 区块链主链与侧链间交易的方法及系统
CN110827147A (zh) * 2019-10-31 2020-02-21 山东浪潮人工智能研究院有限公司 一种基于联盟链的联邦学习激励方法及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111327648B (zh) * 2018-12-13 2022-04-12 北京果仁宝软件技术有限责任公司 基于区块链智能合约的处理方法和系统
CN110378697B (zh) * 2019-07-22 2023-03-31 南京信息工程大学 一种基于rsa累加器的区块链轻节点utxo交易验证方法及其装置
CN110490330A (zh) * 2019-08-16 2019-11-22 安徽航天信息有限公司 一种基于区块链的分布式机器学习系统
CN111212110B (zh) * 2019-12-13 2022-06-03 清华大学深圳国际研究生院 一种基于区块链的联邦学习系统及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107464106A (zh) * 2017-07-25 2017-12-12 北京果仁宝科技有限公司 区块链主链与侧链间交易的方法及系统
CN110827147A (zh) * 2019-10-31 2020-02-21 山东浪潮人工智能研究院有限公司 一种基于联盟链的联邦学习激励方法及系统

Also Published As

Publication number Publication date
CN111552986A (zh) 2020-08-18

Similar Documents

Publication Publication Date Title
CN111552986B (zh) 基于区块链的联邦建模方法、装置、设备及存储介质
US11651109B2 (en) Permission management method, permission verification method, and related apparatus
Gong et al. A remote attestation mechanism for the sensing layer nodes of the Internet of Things
CN108769230B (zh) 交易数据存储方法、装置、服务器及存储介质
US20090300348A1 (en) Preventing abuse of services in trusted computing environments
CN112765684B (zh) 区块链节点终端管理方法、装置、设备及存储介质
CN112152778B (zh) 一种节点管理方法、装置、及电子设备
Chow et al. Server-aided signatures verification secure against collusion attack
CN113225324B (zh) 区块链匿名账户创建方法、系统、设备及存储介质
US20210241270A1 (en) System and method of blockchain transaction verification
WO2018112482A1 (en) Method and system for distributing attestation key and certificate in trusted computing
Zhang et al. BTNC: A blockchain based trusted network connection protocol in IoT
CN114679332A (zh) 一种分布式系统的apt检测方法
CN110990790B (zh) 一种数据处理方法及设备
CN115277010A (zh) 身份认证方法、系统、计算机设备和存储介质
CN112753031A (zh) 媒体内容控制
Keoh et al. Peace: A policy-based establishment of ad-hoc communities
CN112422516B (zh) 基于电力边缘计算的可信连接方法、装置和计算机设备
CN116170144A (zh) 智能电网匿名认证方法、电子设备及存储介质
CN114401091B (zh) 基于区块链的设备跨域认证管理方法及装置
Huang et al. A method for trusted usage control over digital contents based on cloud computing
CN109639695A (zh) 基于互信架构的动态身份认证方法、电子设备及存储介质
CN114329424A (zh) 权限确定方法、装置、计算机设备和计算机可读存储介质
Zoppelt et al. UnCle SAM: modeling cloud attacks with the automotive security abstraction model
CN116933334B (zh) 基于数据运营项目的计算要素认证方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant