基于区块链的联邦学习隐私保护方法、系统、设备和介质与流程

专利2022-05-09  114


本发明涉及联邦学习技术领域,特别是涉及一种基于区块链的联邦学习隐私保护方法、系统、计算机设备和存储介质。



背景技术:

联邦学习是一种将中心化的机器学习拆解为分布式的机器学习机器学习架构,其通过将机器学习任务分发到终端设备节点进行学习,再将所有终端设备节点学习产生的梯度结果聚合得到最终训练结果的方法,有效帮助各用户打破数据孤岛,在满足用户隐私保护、数据安全和政府法规的要求下,进行广泛而深入的机器学习研究。虽然联邦学习已在数字图像处理、自然语言处理、文本语音处理等领域得到广泛应用,但传统的联邦学习在计算和更新模型时完全依赖于中央服务器,一旦中央服务器遭到攻击,将导致整个训练过程无法正常进行的问题一直困扰着用户,也成为众多学者研究的问题。

现有的解决方案有p2p的联邦学习方法和基于区块链的联邦学习方法。虽然p2p的联邦学习方法能够解决中央服务器遭到攻击,将导致整个训练过程无法正常进行的问题,但其会增加参与方(终端设备节点)之间的通信压力,于是就有学者提出了基于区块链的联邦学习方法,该方法虽然减少了参与方之间的通信压力,也能够保证参与方的可信度和可追溯性,但其仍存在在不足:1)只能保证区块链中的数据不会被篡改,无法保护联邦学习时区块链中的数据内容的隐私;2)忽略了对联邦学习训练过程中客户端权重的保护,攻击者可以根据模型分析的结果以一定的概率间接推断出训练数据的来源;3)对于服务器来说,聚合模型的计算成本较大。

因此,亟需提供一种在保证现有基于区块链联邦学习优势的基础上,增加对客户端属性来源隐私和模型数据内容隐私的保护,降低服务提供方的计算成本,且提高联邦学习效率和模型服务质量的联邦学习方法。



技术实现要素:

本发明的目的是提供一种基于区块链的联邦学习隐私保护方法,在克服了现有基于区块链联邦学习只能保证区块链中的数据不被篡改,而无法保护联邦学习时区块链中的数据内容隐私、训练过程中忽略对客户端权重保护,以及服务器聚合模型计算成本较大的问题的同时,还能提高联邦学习效率和模型服务质量。

为了实现上述目的,有必要针对上述技术问题,提供了一种基于区块链的联邦学习隐私保护方法、系统、计算机设备及存储介质。

第一方面,本发明实施例提供了一种基于区块链的联邦学习隐私保护方法,所述方法包括以下步骤:

预先根据各节点的权重向量,由可信第三方生成主公钥、主私钥、解密密钥和各节点的加密密钥,并将所述主公钥、解密密钥和加密密钥发送至对应的各节点;所述加密密钥为各节点私有;

由主节点创建初始区块,将初始模型写入所述初始区块并发布;所述初始模型基于公共数据集训练得到;

由所述各节点下载所述初始模型,训练得到本地模型,并采用所述加密密钥对所述本地模型进行加密,得到加密模型并上传至区块链;

响应于各节点的所述加密模型全部上传至区块链,由所述各节点竞争生成聚合区块的权力,并由获得所述生成聚合区块的权力的节点根据所述主公钥和所述解密密钥,将各节点的所述加密模型聚合生成全局模型并上传至区块链;

由所述主节点下载所述全局模型,并判断所述全局模型是否为理想模型,若是理想模型,则停止迭代,反之,进入下一轮训练。

进一步地,所述预先根据各节点的权重向量,由可信第三方生成主公钥、主私钥、解密密钥和各节点的加密密钥的步骤包括:

由所述各节点将预设的权重向量发送给所述可信第三方;

由所述可信第三方根据各节点的所述权重向量生成权重矩阵,并根据所述权重矩阵生成所述主公钥和所述主私钥;

由所述可信第三方根据所述权重矩阵和所述主私钥,生成所述解密密钥和所述加密密钥。

进一步地,所述由所述各节点下载所述初始模型,训练得到本地模型,并采用所述加密密钥对所述本地模型进行加密,得到加密模型并上传至区块链的步骤包括:

由所述各节点下载所述初始区块,并获取所述初始模型;

根据本地数据对所述初始模型进行训练,得到所述本地模型;

根据所述加密密钥,对所述本地模型运行多输入函数加密的加密算法,得到所述加密模型;

根据所述区块链的共识机制竞争生成加密模型区块的权力,并将所述加密模型、聚合码和迭代次数写入所述加密模型区块,以及将所述加密模型区块上传至所述区块链;所述聚合码为第一预设值。

进一步地,所述响应于各节点的所述加密模型全部上传至区块链,由所述各节点竞争生成聚合区块的权力,并由获得所述生成聚合区块的权力的节点根据所述主公钥和所述解密密钥,将各节点的所述加密模型聚合生成全局模型并上传至区块链的步骤包括:

由所述各节点根据所述区块链的共识机制竞争生成模型聚合区块权力,并由获得所述生成模型聚合区块权力的节点下载其他节点对应的所述加密模型区块,获取其他节点对应的所述加密模型;

根据所述主公钥和所述解密密钥,对各节点的所述加密模型运行多输入函数加密的解密算法,得到所述全局模型,并向所述区块链发起上链请求,以使得所述区块链对所述全局模型进行区块打包处理和广播共识校验;

响应于所述上链请求,由所述区块链的全节点确定所述全局模型的区块链存储地址,并生成所述模型聚合区块,以及将所述模型聚合区块广播至所述区块链中的其他全节点进行共识校验;所述模型聚合区块记录所述全局模型和所述区块链存储地址;

响应于所述共识校验成功,由所述全节点将所述全局模型、所述聚合码和所述迭代次数保存至所述区块链存储地址,并将所述模型聚合区块广播至所述区块链的各节点进行同步;所述聚合码设为第二预设值。

进一步地,所述由获得所述生成模型聚合区块权力的节点下载其他节点对应的所述加密模型区块,获取其他节点对应的所述加密模型的步骤包括:

判断所述加密模型区块是否满足聚合要求;所述聚合要求为所述聚合码均为第一预设值,且所述迭代次数均为当前迭代次数;

若所述加密模型区块满足聚合要求,则获取所述加密模型区块对应的所述加密模型。

进一步地,所述由所述主节点下载所述全局模型,并判断所述全局模型是否为理想模型,若是理想模型,则停止迭代,反之,进入下一轮训练的步骤包括:

由所述主节点下载与当前轮数对应的所述模型聚合区块,并判断所述模型聚合区块对应的所述聚合码是否为所述第二预设值,若所述聚合码为所述第二预设值,则获取所述全局模型;

根据所述公共数据集测试所述全局模型的准确率,并根据所述准确率是否收敛判断所述全局模型是否为理想模型;

若所述全局模型不是理想模型,则发送继续训练广播消息,反之,则发送停止训练广播消息;

响应于所述继续训练广播消息,由所述各节点下载所述全局模型,并开始下一轮训练。

进一步地,所述响应于所述继续训练广播消息,由所述各节点下载所述全局模型的步骤包括:

由所述各节点下载所述模型聚合区块,判断所述聚合码是否为第二预设值;

若所述聚合码为所述第二预设值,则判断所述迭代次数是否为所述当前迭代次数;

若所述迭代次数为所述当前迭代次数,则获取所述全局模型。

第二方面,本发明实施例提供了一种基于区块链的联邦学习隐私保护系统,所述系统包括:

权重加密模块,用于预先根据各节点的权重向量,由可信第三方生成主公钥、主私钥、解密密钥和各节点的加密密钥,并将所述主公钥、解密密钥和加密密钥发送至对应的各节点;所述加密密钥为各节点私有;

初始建模模块,用于由主节点创建初始区块,将初始模型写入所述初始区块并发布;所述初始模型基于公共数据集训练得到;

本地训练模块,用于由所述各节点下载所述初始模型,训练得到本地模型,并采用所述加密密钥对所述本地模型进行加密,得到加密模型并上传至区块链;

模型聚合模块,用于响应于各节点的所述加密模型全部上传至区块链,由所述各节点竞争生成聚合区块的权力,并由获得所述生成聚合区块的权力的节点根据所述主公钥和所述解密密钥,将各节点的所述加密模型聚合生成全局模型并上传至区块链;

模型测试模块,用于由所述主节点下载所述全局模型,并判断所述全局模型是否为理想模型,若是理想模型,则停止迭代,反之,进入下一轮训练。

第三方面,本发明实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。

第四方面,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。

上述本申请提供了一种基于区块链的联邦学习隐私保护方法、系统、计算机设备及存储介质,通过所述方法,实现了通过可信第三方根据各节点预设的权重向量进行权重加密生成主公/私钥、解密密钥、以及各节点的加密密钥,并发送给对应的节点,由主节点创建初始区块写入初始模型发布后,各节点下载初始模型进行训练,并采用加密密钥加密得到加密模型,再基于区块链的工作量证明机制竞争后上传至区块链,当各节点的加密模型全部上传至区块链后,各节点基于区块链的共识机制竞争生成模型聚合区块的权力,并由获得该权力的节点下载其他各节点的加密模型,且根据主公钥和解密密钥将各节点的加密模型聚合生成全局模型后上传至区块链,再由主节点下载全局模型并进行理想模型判断,以确定是否继续迭代的技术方案。与现有技术相比,该基于区块链的联邦学习隐私保护方法,不仅克服了现有flchain在客户梯度融合中忽略权重保护的问题,达到保护客户端属性来源隐私和模型数据内容隐私的效果,而且将模型聚合操作下放到参与方,达到降低服务提供方的计算成本的效果,还将联邦学习部署在区块链上,能促进参与方积极参与到联邦学习,达到提高联邦学习效率和保障模型服务质量的效果。

附图说明

图1是本发明实施例中基于区块链的联邦学习隐私保护方法的应用场景示意图;

图2是本发明实施例基于区块链的联邦学习隐私保护方法的框架示意图;

图3是现有技术中p2p联邦学习模型的框架示意图;

图4是本发明实施例中基于区块链的联邦学习隐私保护方法的流程示意图;

图5是图4中步骤s11可信第三方基于各节点权重向量加密生成主公/私钥、解密密钥和各节点加密密钥的流程示意图;

图6是本发明实施例中设计的区块头新增聚合码和迭代次数的区块链中的区块结构示意图;

图7是图4中步骤s13各节点下载初始模型训练得到加密模型并上传至区块链的流程示意图;

图8是图4中步骤s14各节点竞争生成包含全局模型的聚合模型区块并上传区块链的流程示意图;

图9是图4中步骤s15主节点下载全局模型并进行理想模型判断的流程示意图;

图10是本发明实施例中基于区块链的联邦学习隐私保护系统的结构示意图;

图11是本发明实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案和有益效果更加清楚明白,下面结合附图及实施例,对本发明作进一步详细说明,显然,以下所描述的实施例是本发明实施例的一部分,仅用于说明本发明,但不用来限制本发明的范围。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供的基于区块链的联邦学习隐私保护方法,可以应用于如图1所示的终端或服务器上。其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。如图2所示的基于区块链的联邦学习隐私保护方法的框架,可将服务器部署为区块链的主节点,多个终端设备按需部署为区块链的参与节点,在服务器主节点创建初始区块并写入初始模型,供各终端设备参与训练节点下载并使用本地数据训练得到本地模型,且使用加密密钥加密得到加密模型后上传至区块链,并在所有终端设备上传加密模型完成后,由所有节点竞争获取生成聚合全局模型的权利,在节点设备聚合生成全局模型后上传至区块链,由服务器主节点下载全局模型,计算该模型的准确率判断是否进行下轮训练,在全局模型准确率收敛时停止迭代,将此时的全局模型作为联邦学习的理想模型进行相应的应用。该基于区块链的联邦学习隐私保护方法的框架有效解决了如图3所示的p2p联邦学习模型中各参与方之间的通信压力的问题,同时,在基于区块链的特性,保证了联邦学习中参与方的可信度和可追溯性的基础上,还实现了保护客户端属性来源隐私和模型数据内容隐私,降低服务提供方的计算成本的效果,提高联邦学习效率和保障模型服务质量的技术效果。

区块链包括多个简称为节点的区块链终端设备,且区块链根据其组成节点的准入形式分为公有链、联盟链和私有链。本发明为了真正使用区块链的去中心化特性,基于联盟链的应用场景进行相应的设计,区块链中的节点分为全节点和轻节点两种类型,其中全节点通过对区块打包数据的共识验证来保证区块链上数据的安全性和准确性,而轻节点不参与数据的共识验证,仅负责同步共识验证后的数据信息,且每一个轻节点都需要连接到一个全节点,以便同步区块链的当前状态并能够参与整个区块链的运行管理。

在一个实施例中,如图4所示,提供了一种基于区块链的联邦学习隐私保护方法,包括以下步骤:

s11、预先根据各节点的权重向量,由可信第三方生成主公钥、主私钥、解密密钥和各节点的加密密钥,并将所述主公钥、解密密钥和加密密钥发送至对应的各节点;所述加密密钥为各节点私有;

其中,可信第三方可根据实际情况选取,如可以选择证书颁发机构ca,且参与训练的各节点的权重一般只用作后续对各节点训练生成的加密模型进行聚合生成满足主节点使用需求的全局模型,本实施例基于保护训练数据来源方面的考虑,对现有技术中忽略的各参与节点权重,采用多输入函数加密方法进行保护,由第可信第三方根据各节点设置的权重向量,生成对应的主公/私钥、解密密钥和各节点的加密密钥,如图5所示,所述预先根据各节点的权重向量,由可信第三方生成主公钥、主私钥、解密密钥和各节点的加密密钥的步骤s11包括:

s111、由所述各节点将预设的权重向量发送给所述可信第三方;

其中,权重向量yi,i=1,…,n为n维的列向量,且该向量的第i个元素代表第i个节点的权重值,权重值的范围为(0,1),该向量的其他所有位置的元素值均为0。具体权重向量yi的第i个元素的取值可根据实际应用需求设定,如各节点根据实际贡献度或者参与训练的本地数据量的大小等因素确定并发送给可信第三方,由可信第三方管理和使用,避免直接将各节点的权重暴露给模型聚合节点,造成潜在的数据来源泄密风险。

s112、由所述可信第三方根据各节点的所述权重向量生成权重矩阵,并根据所述权重矩阵生成所述主公钥和所述主私钥;

其中,权重矩阵是由可信第三方根据各节点发送的权重向量yi,i=1,…,n,直接按节点序号组合而成得到n*n维矩阵y=(y1,…,yn)。可信第三方得到权重矩阵后,基于能够实现函数加密的函数加密算法,如伪随机数生成器prng(线性同余、bbs、ansix9.17、rc4等方法)随机生成主公钥mpk和主私钥msk。

s113、由所述可信第三方根据所述权重矩阵和所述主私钥,生成所述解密密钥和所述加密密钥。

其中,解密密钥skf是用于后续对各节点训练得到的模型聚合使用,其是采用密钥生成算法,以权重矩阵y和主私钥为输入,通过向量、矩阵的乘法和线性组合生成的,且具体的密钥生成算法可根据实际需求选取,此处不作限制,如可采用如表1所示的算法公式进行函数加密得到。同时,各节点的加密密钥mski,i=1,…,n,为上述主私钥msk的分量,可通过运行多输入函数加密的密钥生成算法得到。可信第三方生成各节点的加密密钥mski,i=1,…,n和模型聚合使用的解密密钥skf后,再将主公钥mpk、解密密钥skf和加密密钥mski发送给对应的各节点,有效地避免了因主节点对参与训练节点权重的感知而造成主节点侧出现训练模型及数据等信息的泄露风险,为联邦学习的隐私提供了更深层的保护。

表1多输入函数加密-密钥生成算法示例

s12、由主节点创建初始区块,将初始模型写入所述初始区块并发布;所述初始模型基于公共数据集训练得到;

其中,主节点可以根据实际训练需求从加入区块链的节点中指定,其主要用于基于公共数据集训练得到初始模型,并创建和发布存放首轮训练使用的初始模型的初始区块以供参与训练节点下载使用,以及后续基于公共数据对每轮训练得到的全局模型进行准确率测试,以得到可以应用的理想模型。

本实施例对初始模型的类型不作限定,其适用于各类机器学习和深度学习模型的联邦学习训练,如,线性回归,神经网络,卷积神经网络,决策树,支持向量机,贝叶斯分类器等,具体初始模型的确定可根据实际应用需求选择需要各参与节点完成本地训练的模型。需要说明的是,由于实际的联邦学习训练需要很多轮才能够得到满足服务需求的理想模型,此处的初始模型仅为第一轮训练时由主节点根据公共数据集训练得到模型,其并不是严格意义上的按照预设规则聚合后的全局模型,后续迭代训练中使用的训练模型都是上轮训练中根据参与训练节点的权重向量聚合得到,且已在区块链上发布的全局模型。

初始区块的创建以及如何将初始模型写入初始区块后在区块链上发布均采用现有的区块链中的相应方法得到,此处不再赘述。需要注意的是,初始区块还是采用传统的区块头结构,而本发明的后续打包的加密模型区块和聚合模型区块都是采用如图6所示的新设计的区块结构,即区块包括区块头和区块体,区块头在传统的区块头结构基础上增加了存在第一预设值和第二预设值两种可能性的聚合码aggregationflag和迭代次数integernum,区块体用于存储加密模型/全局模型。其中,区块头中的聚合码为第一预设值时标识该区别打包的是节点训练的本地加密模型,聚合码为第二预设值时标识该区别打包的是聚合后的全局模型,如聚合码值为0表示该区块包含本地加密模型,聚合码值为1表示该区块包含全局模型;迭代次数表示该区块包含的加密模型/全局模型处在第几轮训练的,用于对迭代训练次数的记录,保证后续迭代训练中下载模型的正确性,进而提高联邦学习训练的效率。

s13、由所述各节点下载所述初始模型,训练得到本地模型,并采用所述加密密钥对所述本地模型进行加密,得到加密模型并上传至区块链;

其中,本地数据指的是参与训练的各节点的私有数据。各节点在本地使用自有的本地数据获取得到的初始模型分别进行一轮迭代训练得到对应的本地模型,并采用多输入函数加密得到加密模型后上传至区块链,如图7所示,所述由所述各节点下载所述初始模型,训练得到本地模型,并采用所述加密密钥对所述本地模型进行加密,得到加密模型并上传至区块链的步骤包括:

s131、由所述各节点下载所述初始区块,并获取所述初始模型;

其中,初始区块如上所述区块头中没有作相应的改进,即区块头中没有聚合码和迭代次数的相关记录,各节点只需根据同步得到的信息下载对应的区块,得到区块体中保存的初始模型即可。

s132、根据本地数据对所述初始模型进行训练,得到所述本地模型;

其中,对初始模型的训练方法,与初始模型的类型有关,只需按照初始模型对应的训练方法训练即可,此处不作详述。

s133、根据所述加密密钥,对所述本地模型运行多输入函数加密的加密算法,得到所述加密模型;

其中,多输入函数加密是指一种多个拥有加密密钥用户参与,拥有解密密钥的用户可以获得的秘密数据的函数值而不会获得其他有关明文任何信息的方案的加密方案。加密密钥为上述由可信第三方基于各节点的权重向量采用函数加密算法生成的,各节点在本地对上述训练得到的本地模型使用加密密钥进行加密,再将加密得到的加密模型上传区块链发布,很好地保证区块发布中模型的私密性。

s134、根据所述区块链的共识机制竞争生成加密模型区块的权力,并将所述加密模型、聚合码和迭代次数写入所述加密模型区块,以及将所述加密模型区块上传至所述区块链;所述聚合码为第一预设值。

其中,共识机制可以根据实际应用需求进行择优选择,如可选用工作量证明机制、权益证明机制、股权授权证明机制或pool验证池中的任一种用于管理所有参与训练节点竞争生成加密模型区块的权力。其中,工作量证明机制是一种区块链常用的共识机制,其就是对于节点工作量的证明,是生成要加入到区块链中的一笔新的交易信息(即新区块)时必须满足的要求,区块链节点通过计算随机哈希散列的数值解争夺记账权,求得正确的数值解以竞争生成区块的能力是节点算力的具体表现,工作量证明机制具有完全去中心化的优点,在以工作量证明机制为共识的区块链中,节点可以自由进出。本实施例中参与训练的各节点可以优选采用工作量证明机制竞争获取生成加密模型区块并将其上传至区块链的权利,能促进参与方节点积极参与到联邦学习,在达到保障模型服务质量的同时,还进一步提高联邦学习的效率。

各节点获得加密模型区块的权利后,生成加密模型区块,将如上所述的加密模型、聚合码和迭代次数等信息写入该加密模型区块上传即可,将加密模型写入该区块的区块体,将设为第一预设值的聚合码,及记录当前迭代轮数的迭代次数分别写入区块头对应的位置。此处只对本发明关心的区块字段进行说明,对于区块中其他的信息写入参照现有技术实现即可,此处不再赘述。

s14、响应于各节点的所述加密模型全部上传至区块链,由所述各节点竞争生成聚合区块的权力,并由获得所述生成聚合区块的权力的节点根据所述主公钥和所述解密密钥,将各节点的所述加密模型聚合生成全局模型并上传至区块链;

其中,全局模型的聚合是采用多输入函数加密对应的解密算法实现的,即以主公钥mpk、解密密钥skf、以及各节点的加密模型为输入,计算输出全局模型(联邦平均模型)。本实施例基于解决现有联邦学习将聚合得到全局模型的任务放在服务器(主节点)处理,将会导致加重服务提供方的计算成本问题的考虑,完全利用区块链的去中心化特性,并没有将聚合得到全局模型的任务放在固定的主节点处理,而是由所有参与训练的节点竞争聚合模型及对全局模型进行打包上传至区块链的权利。如图8所示,所述响应于各节点的所述加密模型全部上传至区块链,由所述各节点竞争生成聚合区块的权力,并由获得所述生成聚合区块的权力的节点根据所述主公钥和所述解密密钥,将各节点的所述加密模型聚合生成全局模型并上传至区块链的步骤包括s14包括:

s141、由所述各节点根据所述区块链的共识机制竞争生成模型聚合区块权力,并由获得所述生成模型聚合区块权力的节点下载其他节点对应的所述加密模型区块,获取其他节点对应的所述加密模型;

其中,共识机制如上所述,同样可以根据实际应用需求进行择优选择,如可选用工作量证明机制、权益证明机制、股权授权证明机制或pool验证池中的任一种用于管理所有参与训练节点竞争生成模型聚合区块的权利,只需与上述加密模型上传采用的机制保持一直即可,具体方法此处不再赘述。

按照上述竞争机制获得生成模型聚合区块权力的节点,会按照已同步的区块信息下载其他节点对应的加密模型区块,并判断加密模型区块是否满足聚合要求,即在确认该加密模型区块中的聚合码为第一预设值,迭代次数为当前迭代轮数后,获取加密模型区块对应的加密模型,来保证用于当前轮数聚合的加密模型的正确性,在提高训练效率的同时,保证了聚合得到全局模型的准确性。

s142、根据所述主公钥和所述解密密钥,对各节点的所述加密模型运行多输入函数加密的解密算法,得到所述全局模型,并向所述区块链发起上链请求,以使得所述区块链对所述全局模型进行区块打包处理和广播共识校验。

其中,主公钥和解密密钥为按照上述采用多输入函数加密的加密算法生成,由解密密钥和各节点的加密模型得到全局模型是函数加密方案的固有特性,即在解密完成就直接可以获聚合后的联邦平均模型,此处不再详述。获得生成模型聚合区块权力的节点,使用主公钥和解密密钥对各节点加密模型聚合得到全局模型后,要主动调用区块链开放的上链接口,向区块链中的全节点发起上链请求,该上链请求中携带全局模型,以保证该全局模型能够在区块链上共享,利于后续主节点对其进行正确性判断,及进行是否需要继续训练的管控使用。

s143、响应于所述上链请求,由所述区块链的全节点确定所述全局模型的区块链存储地址,并生成所述模型聚合区块,以及将所述模型聚合区块广播至所述区块链中的其他全节点进行共识校验;

其中,区块链中的全节点收到上述的上链请求后,先确定该全局模型对应的区块链存储地址,生成记录该全局模型以及对应的区块链存储地址的模型聚合区块后,再将该模型聚合区块广播至区块链的其他全节点进行相应的共识校验。

s144、响应于所述共识校验成功,由所述全节点将所述全局模型、所述聚合码和所述迭代次数保存至所述区块链存储地址,并将所述模型聚合区块广播至所述区块链的各节点进行同步。

其中,共识校验成功后,会将模型聚合区块广播至区块链的全部节点(所有全节点和轻节点)进行同步,由全节点将全局模型保存至上述的区块链存储地址,并将该区块链存储地址作为模型聚合区块的地址。

本实施例将参与训练节点的加密模型聚合得到全局模型的操作,通过共识机制下放到参与训练节点完成,在保证联邦学习服务质量和学习效率的同时,还达到了降低服务提供方的计算成本的效果。

s15、由所述主节点下载所述全局模型,并判断所述全局模型是否为理想模型,若是理想模型,则停止迭代,反之,进入下一轮训练;

其中,上述训练得到的全局模型并不一定是满足应用需求的理想模型,为了保证联邦学习模型的精度和服务质量,在每轮训练完成后,都会有主节点对当前训练得到的全局模型的准确率进行检验,判断其准确率是否收敛来决定是否需要通知参与训练的节点继续进行迭代训练,直至得到理想模型,如图9所示,所述由所述主节点下载所述全局模型,并判断所述全局模型是否为理想模型,若是理想模型,则停止迭代,反之,进入下一轮训练的步骤s15包括:

s151、由所述主节点下载与当前轮数对应的所述模型聚合区块,并判断所述模型聚合区块对应的所述聚合码是否为所述第二预设值,若所述聚合码为所述第二预设值,则获取所述全局模型;

其中,与当前轮数对应的模型聚合区块,原则上是整个区块链上最新生成的区块,主节点可以根据已获得的同步信息对其进行下载,在结合区块头中的聚合码是否为第二预设值进行辅助判断下载的模型聚合区块是否正确,在确保模型聚合区块正确性的基础上,再获取该区块体中存储的全局模型。

s152、根据所述公共数据集测试所述全局模型的准确率,并根据所述准确率是否收敛判断所述全局模型是否为理想模型;

其中,理想模型的具体评判标准可根据实际应用需求设定,本实施例中根据主节点上存储的公共数据集对当前迭代得到全局模型进行准确率测试,并将当前得到的准确率结果与之前得到的结果进行比对,若连续若干次(如三次)的准确率之差都不超过预设阈值(比如1%),则就判定为准确率收敛,且将准确率最高的全局模型作为最终的理想模型,反之,则需要继续迭代训练。需要说明的是,本实施例中判定理想模型的方法,以及判定全局模型的准确率是否收敛的标准仅为示例性说明,实际应用中可根据需求进行调整。

s153、若所述全局模型不是理想模型,则发送继续训练广播消息,反之,则发送停止训练广播消息;

其中,继续训练广播消息和停止训练广播消息,都是由主节点完成上述全局模型的准确率测试,得到当前全局模型是否为理想模型的评判结果之后,主节点会根据实际的评判结果,将测试结果(如准确率等)和是否需要进行下一轮训练的训练指令以广播消息的形式发送给整个区块链的所有节点,用于参与训练的节点根据主节点的训练指令判断是否需要继续下载全局模型进行本地训练。需要说明的是广播消息中的训练指令可按需设置不同的指令,比如,训练指令为1表示需要继续训练,训练指令为0表示需要停止训练,只要事先将主节点和参与训练节点的通信机制确定清楚,并实现通过主节点控制参与训练节点的训练任务是否继续的功能,都在本发明的保护范围内。

s154、响应于所述继续训练广播消息,由所述各节点下载所述全局模型,并开始下一轮训练。

其中,继续训练广播消息为上述主节点对当前训练得到的全局模型进行准确率测试后,发现不满足准确率收敛要求时广播的消息。当参与训练的节点接收该广播消息且识别出训练指令为继续训练时,参与训练的各节点都会下载最新的全局模型,并开始新一轮的迭代训练。需要注意的是,参与训练的各节点非首次下载训练模型与首次下载训练模型的区别在于,首次下载主节点创建的初始区块获得初始模型,而非首次下载的是最新一次发布的聚合模型区块,完成对聚合模型区块的准确性校验后,再获取最新的全局模型,与之对应的具体下载全局模型的步骤包括:由所述各节点下载所述模型聚合区块,判断所述聚合码是否为第二预设值;若所述聚合码为所述第二预设值,则判断所述迭代次数是否为所述当前迭代次数;若所述迭代次数为所述当前迭代次数,则获取所述全局模型。

本申请实施例设计了一种基于区块链的联邦学习隐私保护方法的框架,利用区块链的优良特性(如去中心化、不可篡改性、可追溯性等),通过预先根据各节点的权重向量,由可信第三方生成主公/私钥、加密密钥和解密密钥,由主节点创造初始区块将其训练得到的初始模型发布在区块链,由各节点下载并根据本地数据进行训练得到加密模型上传区块链,且由参与训练各节点通过共识机制聚合生成全局模型并上传区块链后,再由主节点对全局模型进行准确率评判以控制参与训练节点是否需要继续训练直至得到理想模型的技术方案,实现了降低联邦学习中服务提供方的计算成本,有效保障联邦学习模型的服务质量,以及提升联邦学习效率同时,还通过引入函数隐藏的多输入函数加密算法,有效解决了对各参与方(客户端/节点)的权重和数据内容进行保护的问题,有效避免隐私泄露风险的发生的技术效果。

需要说明的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。

在一个实施例中,如图10所示,提供了一种基于区块链的联邦学习隐私保护系统,所述系统包括:

权重加密模块1,用于预先根据各节点的权重向量,由可信第三方生成主公钥、主私钥、解密密钥和各节点的加密密钥,并将所述主公钥、解密密钥和加密密钥发送至对应的各节点;所述加密密钥为各节点私有;

初始建模模块2,用于由主节点创建初始区块,将初始模型写入所述初始区块并发布;所述初始模型基于公共数据集训练得到;

本地训练模块3,用于由所述各节点下载所述初始模型,训练得到本地模型,并采用所述加密密钥对所述本地模型进行加密,得到加密模型并上传至区块链;

模型聚合模块4,用于响应于各节点的所述加密模型全部上传至区块链,由所述各节点竞争生成聚合区块的权力,并由获得所述生成聚合区块的权力的节点根据所述主公钥和所述解密密钥,将各节点的所述加密模型聚合生成全局模型并上传至区块链;

模型测试模块5,用于由所述主节点下载所述全局模型,并判断所述全局模型是否为理想模型,若是理想模型,则停止迭代,反之,进入下一轮训练。

关于一种基于区块链的联邦学习隐私保护系统的具体限定可以参见上文中对于一种基于区块链的联邦学习隐私保护方法的限定,在此不再赘述。上述一种基于区块链的联邦学习隐私保护系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

需要说明的是,本发明实施例中的基于区块链的联邦学习隐私保护方法和系统,可以应用在包括若干个电力公司的区域用电预测和电力供应调整规划,以实现电力供应的合理分配的电力数据计算场景。采用该方法或系统完成各个电力公司间训练用电量预测模型的安全的联邦学习,以实现电量合理分配的具体应用为:参与训练的各个电力公司将自己预设的权重向量发送给包括证书颁发机构(ca)的可信第三方,用于生成对应的权重矩阵,及对各电力公司的权重进行函数加密生成的主公/私钥、解密密钥和各节点的加密密钥,并将主公钥、解密密钥,和各电力公司的加密密钥发送给对应的各电力公司;电力部门创建初始区块,利用公共数据集训练出初始模型,将初始模型写入初始区块并发布;各电力公司下载初始区块,利用初始区块记载的初始模型和本地用电数据训练得到本地模型,再利用各自的加密密钥运行多输入函数加密的加密算法对本地模型进行加密,得到对应的加密模型后,通过区块链的工作量证明机制(pow)竞争生成新区块(加密模型区块)的权力,将加密模型、标识为加密模型的聚合码aggregationflag、记录当前迭代轮数的迭代次数integernum写入新区块(加密模型区块)并上传链上;待所有电力公司上传了含加密模型的新区块(聚合码值为第一预设值的加密模型区块)后,各电力公司通过区块链的共识机制竞争生成模型聚合区块的权力,由获得生成模型聚合区块权力的电力公司下载所有含其他电力公司的加密模型的加密模型区块(聚合码值为第一预设值,迭代次数为当前迭代轮数),利用主公钥和解密密钥运行多输入函数加密的解密算法,得到全局模型(联邦平均模型),将全局模型、标识为全局模型的聚合码、以及记录当前迭代轮数的迭代次数写入模型聚合区块并上传链上;电力部门下载含有全局模型的模型聚合区块(聚合码值为第二预设值,迭代次数为当前迭代轮数),利用公共数据集测试出该全局模型的准确率,并根据准确率是否收敛判断其是否为理想模型,若不是理想模型,则发送继续训练广播消息,反之,则发送停止训练广播消息;所有电力公司在收到继续训练广播消息后,下载最新的全局模型,并开始下一轮训练,反之,在收到停止训练广播消息后,则停止训练;电力部门在发送停止训练广播消息后,就可以将当前训练得到的全局模型(联邦评价模型)作为最终的用电量预测模型提供服务,分析各地全年的用电量,并以此来合理规划电力公司每月的电力资源供应和电力公司在各地的分配。

图11示出一个实施例中计算机设备的内部结构图,该计算机设备具体可以是终端或服务器。如图11所示,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示器和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于区块链的联邦学习隐私保护方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域普通技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述方法的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法的步骤。

综上,本发明实施例提供的一种基于区块链的联邦学习隐私保护方法、系统、计算机设备及存储介质,其基于区块链的联邦学习隐私保护方法通过可信第三方根据各节点预设的权重向量进行权重加密生成主公/私钥、解密密钥、以及各节点的加密密钥,并发送给对应的节点,由主节点创建初始区块写入初始模型发布后,各节点下载初始模型进行训练,并采用加密密钥加密得到加密模型,再基于区块链的工作量证明机制竞争后上传至区块链,当各节点的加密模型全部上传至区块链后,各节点基于区块链的共识机制竞争生成模型聚合区块的权力,并由获得该权力的节点下载其他各节点的加密模型,且根据主公钥和解密密钥将各节点的加密模型聚合生成全局模型后上传至区块链,再由主节点下载全局模型并进行理想模型判断,以确定是否继续迭代的技术方案。与现有技术相比,该基于区块链的联邦学习隐私保护方法,不仅克服了现有flchain在客户梯度融合中忽略权重保护的问题,达到保护客户端属性来源隐私和模型数据内容隐私的效果,而且将模型聚合操作下放到参与方,达到降低服务提供方的计算成本的效果,还将联邦学习部署在区块链上,能促进参与方积极参与到联邦学习,达到提高联邦学习效率和保障模型服务质量的技术效果。

本说明书中的各个实施例均采用递进的方式描述,各个实施例直接相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。需要说明的是,上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种优选实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和替换,这些改进和替换也应视为本申请的保护范围。因此,本申请专利的保护范围应以所述权利要求的保护范围为准。


技术特征:

1.一种基于区块链的联邦学习隐私保护方法,其特征在于,所述方法包括以下步骤:

预先根据各节点的权重向量,由可信第三方生成主公钥、主私钥、解密密钥和各节点的加密密钥,并将所述主公钥、解密密钥和加密密钥发送至对应的各节点;所述加密密钥为各节点私有;

由主节点创建初始区块,将初始模型写入所述初始区块并发布;所述初始模型基于公共数据集训练得到;

由所述各节点下载所述初始模型,训练得到本地模型,并采用所述加密密钥对所述本地模型进行加密,得到加密模型并上传至区块链;

响应于各节点的所述加密模型全部上传至区块链,由所述各节点竞争生成聚合区块的权力,并由获得所述生成聚合区块的权力的节点根据所述主公钥和所述解密密钥,将各节点的所述加密模型聚合生成全局模型并上传至区块链;

由所述主节点下载所述全局模型,并判断所述全局模型是否为理想模型,若是理想模型,则停止迭代,反之,进入下一轮训练。

2.如权利要求1所述的联邦学习隐私保护方法,其特征在于,所述预先根据各节点的权重向量,由可信第三方生成主公钥、主私钥、解密密钥和各节点的加密密钥的步骤包括:

由所述各节点将预设的权重向量发送给所述可信第三方;

由所述可信第三方根据各节点的所述权重向量生成权重矩阵,并根据所述权重矩阵生成所述主公钥和所述主私钥;

由所述可信第三方根据所述权重矩阵和所述主私钥,生成所述解密密钥和所述加密密钥。

3.如权利要求1所述的联邦学习隐私保护方法,其特征在于,所述由所述各节点下载所述初始模型,训练得到本地模型,并采用所述加密密钥对所述本地模型进行加密,得到加密模型并上传至区块链的步骤包括:

由所述各节点下载所述初始区块,并获取所述初始模型;

根据本地数据对所述初始模型进行训练,得到所述本地模型;

根据所述加密密钥,对所述本地模型运行多输入函数加密的加密算法,得到所述加密模型;

根据所述区块链的共识机制竞争生成加密模型区块的权力,并将所述加密模型、聚合码和迭代次数写入所述加密模型区块,以及将所述加密模型区块上传至所述区块链;所述聚合码为第一预设值。

4.如权利要求3所述的联邦学习隐私保护方法,其特征在于,所述响应于各节点的所述加密模型全部上传至区块链,由所述各节点竞争生成聚合区块的权力,并由获得所述生成聚合区块的权力的节点根据所述主公钥和所述解密密钥,将各节点的所述加密模型聚合生成全局模型并上传至区块链的步骤包括:

由所述各节点根据所述区块链的共识机制竞争生成模型聚合区块权力,并由获得所述生成模型聚合区块权力的节点下载其他节点对应的所述加密模型区块,获取其他节点对应的所述加密模型;

根据所述主公钥和所述解密密钥,对各节点的所述加密模型运行多输入函数加密的解密算法,得到所述全局模型,并向所述区块链发起上链请求,以使得所述区块链对所述全局模型进行区块打包处理和广播共识校验;

响应于所述上链请求,由所述区块链的全节点确定所述全局模型的区块链存储地址,并生成所述模型聚合区块,以及将所述模型聚合区块广播至所述区块链中的其他全节点进行共识校验;所述模型聚合区块记录所述全局模型和所述区块链存储地址;

响应于所述共识校验成功,由所述全节点将所述全局模型、所述聚合码和所述迭代次数保存至所述区块链存储地址,并将所述模型聚合区块广播至所述区块链的各节点进行同步;所述聚合码设为第二预设值。

5.如权利要求4所述的联邦学习隐私保护方法,其特征在于,所述由获得所述生成模型聚合区块权力的节点下载其他节点对应的所述加密模型区块,获取其他节点对应的所述加密模型的步骤包括:

判断所述加密模型区块是否满足聚合要求;所述聚合要求为所述聚合码均为第一预设值,且所述迭代次数均为当前迭代次数;

若所述加密模型区块满足聚合要求,则获取所述加密模型区块对应的所述加密模型。

6.如权利要求5所述的联邦学习隐私保护方法,其特征在于,所述由所述主节点下载所述全局模型,并判断所述全局模型是否为理想模型,若是理想模型,则停止迭代,反之,进入下一轮训练的步骤包括:

由所述主节点下载与当前轮数对应的所述模型聚合区块,并判断所述模型聚合区块对应的所述聚合码是否为所述第二预设值,若所述聚合码为所述第二预设值,则获取所述全局模型;

根据所述公共数据集测试所述全局模型的准确率,并根据所述准确率是否收敛判断所述全局模型是否为理想模型;

若所述全局模型不是理想模型,则发送继续训练广播消息,反之,则发送停止训练广播消息;

响应于所述继续训练广播消息,由所述各节点下载所述全局模型,并开始下一轮训练。

7.如权利要求6所述的联邦学习隐私保护方法,其特征在于,所述响应于所述继续训练广播消息,由所述各节点下载所述全局模型的步骤包括:

由所述各节点下载所述模型聚合区块,判断所述聚合码是否为第二预设值;

若所述聚合码为所述第二预设值,则判断所述迭代次数是否为所述当前迭代次数;

若所述迭代次数为所述当前迭代次数,则获取所述全局模型。

8.一种基于区块链的联邦学习隐私保护系统,其特征在于,所述系统包括:

权重加密模块,用于预先根据各节点的权重向量,由可信第三方生成主公钥、主私钥、解密密钥和各节点的加密密钥,并将所述主公钥、解密密钥和加密密钥发送至对应的各节点;所述加密密钥为各节点私有;

初始建模模块,用于由主节点创建初始区块,将初始模型写入所述初始区块并发布;所述初始模型基于公共数据集训练得到;

本地训练模块,用于由所述各节点下载所述初始模型,训练得到本地模型,并采用所述加密密钥对所述本地模型进行加密,得到加密模型并上传至区块链;

模型聚合模块,用于响应于各节点的所述加密模型全部上传至区块链,由所述各节点竞争生成聚合区块的权力,并由获得所述生成聚合区块的权力的节点根据所述主公钥和所述解密密钥,将各节点的所述加密模型聚合生成全局模型并上传至区块链;

模型测试模块,用于由所述主节点下载所述全局模型,并判断所述全局模型是否为理想模型,若是理想模型,则停止迭代,反之,进入下一轮训练。

9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一所述方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一所述方法的步骤。

技术总结
本发明提供了一种基于区块链的联邦学习隐私保护方法、系统、设备和介质,通过根据各节点权重向量,由可信第三方生成主公/私钥、解密密钥和各节点加密密钥,并将主公钥、解密密钥和加密密钥发送至各节点,由主节点创建初始区块写入初始模型发布后,各节点下载初始模型进行训练,并采用加密密钥加密得到加密模型后上传至区块链,当各节点的加密模型全部上传至区块链后,各节点竞争生成模型聚合区块的权力,并由获得该权力的节点根据主公钥和解密密钥,将各节点的加密模型聚合生成全局模型后上传至区块链,再由主节点下载全局模型并进行理想模型判断的方法,增加了对节点来源和模型内容隐私的保护,降低了服务计算成本,提高了学习效率和服务质量。

技术研发人员:殷丽华;孙哲;冯纪元;操志强;李超;李然
受保护的技术使用者:广州大学
技术研发日:2021.05.06
技术公布日:2021.08.03

转载请注明原文地址:https://doc.8miu.com/read-8364.html

最新回复(0)