劉 煒 唐琮軻 馬 杰 田 釗 王 琦 佘 維
1(鄭州大學(xué)網(wǎng)絡(luò)空間安全學(xué)院 鄭州 450002)
2(河南省網(wǎng)絡(luò)密碼技術(shù)重點(diǎn)實(shí)驗(yàn)室(信息工程大學(xué))鄭州 450000)
3(鄭州市區(qū)塊鏈與數(shù)據(jù)智能重點(diǎn)實(shí)驗(yàn)室(鄭州大學(xué))鄭州 450000)
4(鄭州大學(xué)圖書(shū)館 鄭州 450001)
(wliu@zzu.edu.cn)
近年來(lái),數(shù)據(jù)泄露事件劇增,而作為使用個(gè)人數(shù)據(jù)極為頻繁的服務(wù)——機(jī)器學(xué)習(xí)(machine learning)備受關(guān)注.隨著我國(guó)《網(wǎng)絡(luò)安全法》《個(gè)人信息保護(hù)法》以及歐盟《通用數(shù)據(jù)保護(hù)條例》等旨在保護(hù)用戶(hù)個(gè)人隱私和數(shù)據(jù)安全法規(guī)的出臺(tái),工業(yè)界和學(xué)術(shù)界對(duì)機(jī)器學(xué)習(xí)的隱私保護(hù)越來(lái)越重視,Google 在2016 年提出了聯(lián)邦學(xué)習(xí)(federated learning)[1]解決隱私保護(hù)等問(wèn)題.聯(lián)邦學(xué)習(xí)是一種協(xié)同分布式訓(xùn)練模型.傳統(tǒng)聯(lián)邦學(xué)習(xí)分為中心服務(wù)器和參與方兩種角色,參與方在中心服務(wù)器的協(xié)調(diào)下共同訓(xùn)練機(jī)器學(xué)習(xí)模型,訓(xùn)練數(shù)據(jù)僅保存在各參與方本地,依靠參與方本地迭代和與中心服務(wù)器的通信完成模型訓(xùn)練和聚合[2].
聯(lián)邦學(xué)習(xí)作為一種新的訓(xùn)練機(jī)制,在保護(hù)隱私和解決數(shù)據(jù)孤島的同時(shí)對(duì)多方數(shù)據(jù)進(jìn)行訓(xùn)練聚合,在醫(yī)療、金融等用戶(hù)信息高度保密的行業(yè)有很好的前景.但是隨著聯(lián)邦學(xué)習(xí)的廣泛應(yīng)用,它的問(wèn)題也逐漸浮現(xiàn)出來(lái).在機(jī)器學(xué)習(xí)中,訓(xùn)練數(shù)據(jù)可以通過(guò)梯度和模型被反推出來(lái)[3-4],而在聯(lián)邦學(xué)習(xí)這種服務(wù)器和參與方每輪迭代都能看到模型梯度的情況中,用戶(hù)信息就更容易被反推出來(lái)[5-6].除了隱私泄露的問(wèn)題外,聯(lián)邦學(xué)習(xí)還面臨各種各樣的惡意攻擊,例如投毒攻擊[7-8],通過(guò)修改訓(xùn)練數(shù)據(jù),可以使經(jīng)過(guò)訓(xùn)練的模型出現(xiàn)特定的錯(cuò)誤;模型投毒攻擊[9]通過(guò)修改訓(xùn)練數(shù)據(jù)的標(biāo)簽,造成模型的判定錯(cuò)誤;成員推理攻擊[10]中攻擊者能夠通過(guò)機(jī)器學(xué)習(xí)模型和樣本來(lái)確定該樣本是否存在于建立機(jī)器學(xué)習(xí)模型的訓(xùn)練集中.除此之外,系統(tǒng)還面臨服務(wù)器的單點(diǎn)故障以及缺乏獎(jiǎng)勵(lì)導(dǎo)致的參與方不愿貢獻(xiàn)數(shù)據(jù)和算力的問(wèn)題[11].
為了解決這些問(wèn)題以及應(yīng)對(duì)聯(lián)邦學(xué)習(xí)不斷發(fā)展的需求,使用聯(lián)邦學(xué)習(xí)結(jié)合隱私保護(hù)技術(shù)、區(qū)塊鏈、邊緣計(jì)算和云計(jì)算等技術(shù),逐漸成為研究的熱門(mén)方向[12].利用區(qū)塊鏈的可追溯、去中心化、不可篡改等特性和智能合約功能,幫助聯(lián)邦學(xué)習(xí)克服單點(diǎn)故障、缺乏激勵(lì)機(jī)制、審計(jì)困難等問(wèn)題,在隱私保護(hù)和審計(jì)記錄等方面有很大的提升[13].
本文提出一種基于區(qū)塊鏈和動(dòng)態(tài)評(píng)估的隱私保護(hù)聯(lián)邦學(xué)習(xí)模型——SPFLChain(security privacy federated learning blockchain).利用區(qū)塊鏈的去中心化、不可篡改等特性,為聯(lián)邦學(xué)習(xí)建立可信、隱私安全的訓(xùn)練環(huán)境.在模型交互階段采用稀疏化和差分隱私結(jié)合的方式進(jìn)行隱私保護(hù);在本地局部模型訓(xùn)練完成后對(duì)其進(jìn)行身份驗(yàn)證和性能評(píng)估,反映參與方訓(xùn)練出的模型準(zhǔn)確率和泛化能力.最后通過(guò)使用深度梯度泄露(DLG)攻擊對(duì)局部模型和全局模型進(jìn)行攻擊實(shí)驗(yàn),證明SPFLChain 的安全性.
本文的主要貢獻(xiàn)包括3 個(gè)方面:
1)提出一種基于區(qū)塊鏈的聯(lián)邦學(xué)習(xí)隱私保護(hù)模型SPFLChain,實(shí)現(xiàn)安全的去中心化聯(lián)邦學(xué)習(xí)評(píng)估模型.
2)利用加密算法和數(shù)字簽名技術(shù)驗(yàn)證參與方身份,本地訓(xùn)練采用稀疏化保證鏈下模型交互的安全性與可信性,并在模型更新時(shí)使用差分隱私添加噪聲保證模型上鏈后的隱私安全.
3)提出三權(quán)重動(dòng)態(tài)評(píng)估方案,計(jì)算單輪模型和參與方評(píng)估值,為參與方進(jìn)行動(dòng)態(tài)評(píng)估,確保激勵(lì)機(jī)制的公平性.
聯(lián)邦學(xué)習(xí)是一種基于隱私保護(hù)的分布式機(jī)器學(xué)習(xí)框架,許多參與方在中心服務(wù)器的協(xié)調(diào)下共同訓(xùn)練模型,同時(shí)保持訓(xùn)練數(shù)據(jù)的分散性,在不暴露數(shù)據(jù)的前提下分析和學(xué)習(xí)多個(gè)數(shù)據(jù)擁有者的數(shù)據(jù),做到數(shù)據(jù)的可用不可見(jiàn).將區(qū)塊鏈網(wǎng)絡(luò)應(yīng)用于聯(lián)邦學(xué)習(xí)系統(tǒng)中,在發(fā)揮聯(lián)邦學(xué)習(xí)優(yōu)勢(shì)的同時(shí),還能夠解決聯(lián)邦學(xué)習(xí)面臨的單點(diǎn)故障、隱私安全和缺乏激勵(lì)等問(wèn)題[14].
Kim 等人提出名為BlockFL[15]的區(qū)塊鏈與聯(lián)邦學(xué)習(xí)系統(tǒng)框架,詳細(xì)描述了從局部模型更新到上鏈再到全局模型更新的全過(guò)程,其中礦工使用區(qū)塊鏈智能合約實(shí)現(xiàn)模型的交換和驗(yàn)證,并通過(guò)記錄為礦工和關(guān)聯(lián)設(shè)備分配獎(jiǎng)勵(lì).Liu 等人[16]提出名為FedCoin的支付系統(tǒng),該系統(tǒng)中包含區(qū)塊鏈網(wǎng)絡(luò)和聯(lián)邦學(xué)習(xí),聯(lián)邦學(xué)習(xí)完成本地訓(xùn)練和模型聚合,區(qū)塊鏈共識(shí)節(jié)點(diǎn)協(xié)同計(jì)算貢獻(xiàn)值,為聯(lián)邦學(xué)習(xí)提供去中心化無(wú)第三方的支付方案.Peng 等人[17]提出了一種基于區(qū)塊鏈實(shí)現(xiàn)的可驗(yàn)證和審計(jì)的聯(lián)邦學(xué)習(xí)系統(tǒng)框架VFChain,將可驗(yàn)證的記錄證明存儲(chǔ)在區(qū)塊鏈中并設(shè)計(jì)了一種安全輪換委員會(huì)的方案,提出了支持多模型學(xué)習(xí)任務(wù)的方案以?xún)?yōu)化搜索效率,為區(qū)塊鏈結(jié)合聯(lián)邦學(xué)習(xí)提供了審計(jì)和驗(yàn)證的新思路.Li 等人[18]提出了一種基于區(qū)塊鏈的去中心化委員會(huì)共識(shí)的聯(lián)邦學(xué)習(xí)框架BFLC,其設(shè)計(jì)的創(chuàng)新型委員會(huì)共識(shí)機(jī)制能夠有效減少共識(shí)的計(jì)算量,降低中心服務(wù)器和節(jié)點(diǎn)惡意攻擊的可能性.但文獻(xiàn)[15-18]的研究工作解決的大多是聯(lián)邦學(xué)習(xí)的中心化問(wèn)題以及區(qū)塊鏈結(jié)合聯(lián)邦學(xué)習(xí)架構(gòu)中缺乏激勵(lì)機(jī)制的問(wèn)題,沒(méi)有考慮模型參數(shù)交換和更新帶來(lái)的隱私泄露問(wèn)題.
為了解決上述問(wèn)題,高勝等人[19]提出了一種基于區(qū)塊鏈的隱私保護(hù)異步聯(lián)邦學(xué)習(xí),利用區(qū)塊鏈解決聯(lián)邦學(xué)習(xí)的中心化問(wèn)題,并結(jié)合差分隱私的指數(shù)機(jī)制選擇高貢獻(xiàn)率的模型,分配隱私預(yù)算保證全局模型的隱私,使用雙因子調(diào)整機(jī)制提高全局模型的效用.Wainakh 等人[20]為了增強(qiáng)聯(lián)邦學(xué)習(xí)的隱私安全,設(shè)計(jì)了一種分層的聯(lián)邦學(xué)習(xí)架構(gòu),即在傳統(tǒng)的聯(lián)邦學(xué)習(xí)的基礎(chǔ)上加入組服務(wù)器,將組服務(wù)器插入到服務(wù)器與參與方之間當(dāng)作保護(hù)層,對(duì)有問(wèn)題的模型進(jìn)行篩選,同時(shí)可以降低用戶(hù)噪聲,提高模型質(zhì)量.Shayan 等人[21]提出了一種隱私安全的區(qū)塊鏈系統(tǒng)Biscotti,這是一個(gè)去中心化的提供安全私密的多方機(jī)器學(xué)習(xí)系統(tǒng),提出聯(lián)邦證明(proof of federation)共識(shí),并結(jié)合了防御手段,有很好的擴(kuò)展性和安全性.Zhao 等人[22]提出了一種基于區(qū)塊鏈的物聯(lián)網(wǎng)設(shè)備聯(lián)邦學(xué)習(xí)系統(tǒng),利用邊緣計(jì)算服務(wù)器制造初始模型,將局部模型發(fā)送到區(qū)塊鏈進(jìn)行聚合,使用差分隱私結(jié)合歸一化進(jìn)行特征提取來(lái)保護(hù)隱私,并設(shè)計(jì)了激勵(lì)機(jī)制鼓勵(lì)參與方訓(xùn)練.周煒等人[23]提出了一種基于區(qū)塊鏈的聯(lián)邦學(xué)習(xí)模型PPFLChain,使用同態(tài)加密對(duì)交互的模型進(jìn)行加密,通過(guò)秘密共享方案對(duì)密鑰進(jìn)行安全管理,同時(shí)使用信譽(yù)值機(jī)制保證公平.
區(qū)塊鏈技術(shù)已經(jīng)廣泛成為解決聯(lián)邦學(xué)習(xí)應(yīng)用中安全問(wèn)題的工具.通過(guò)聯(lián)盟鏈的身份認(rèn)證和權(quán)限設(shè)置對(duì)參與方進(jìn)行一定條件的限制,提高系統(tǒng)的安全性.但是現(xiàn)有研究大多針對(duì)鏈下模型交互時(shí)的安全性,對(duì)鏈上存儲(chǔ)的安全保障有所欠缺,并且在對(duì)局部模型驗(yàn)證評(píng)估和參與方貢獻(xiàn)評(píng)估方面缺乏研究.
區(qū)塊鏈這一概念隨著2009 年比特幣的誕生而產(chǎn)生,其本質(zhì)上是由P2P、密碼學(xué)、共識(shí)機(jī)制、智能合約等一系列技術(shù)組合而成的去中心化分布式賬本[24].它的優(yōu)勢(shì)在于使用密碼學(xué)方式保證了不可篡改和偽造的特性,利用鏈?zhǔn)浇Y(jié)構(gòu)驗(yàn)證存儲(chǔ)數(shù)據(jù),利用共識(shí)算法在各個(gè)分布式的節(jié)點(diǎn)之間生成和更新數(shù)據(jù),利用智能合約的設(shè)計(jì)完成對(duì)數(shù)據(jù)的操作.
區(qū)塊鏈可以分為公有鏈、私有鏈和聯(lián)盟鏈.公有鏈對(duì)任何人都開(kāi)放,并且能被參與區(qū)塊鏈的任何人維護(hù)和讀取.私有鏈由單個(gè)組織或機(jī)構(gòu)單獨(dú)控制,只有授權(quán)用戶(hù)才能訪問(wèn)鏈上數(shù)據(jù),有著更高的隱私性與效率.而聯(lián)盟鏈由多個(gè)組織或機(jī)構(gòu)控制,兼顧了去中心化和隱私安全性.
稀疏化[25]本質(zhì)上屬于梯度壓縮的一種,通過(guò)構(gòu)建d維的掩碼矩陣m∈{0,1}d,將梯度g的d維向量稀疏表示為,g=m?g,?表示元素相乘,能夠減少其通信傳遞量減輕負(fù)載和保護(hù)隱私,稀疏比prop定義為:
在聯(lián)邦學(xué)習(xí)中,常見(jiàn)的有2 種稀疏化方法:Top-K和Rand-K稀疏化.
Top-K的思想是基于每個(gè)客戶(hù)端根據(jù)絕對(duì)值最大的K個(gè)梯度進(jìn)行掩碼矩陣的構(gòu)建,但是對(duì)于規(guī)模大的神經(jīng)網(wǎng)絡(luò)時(shí),需要進(jìn)行計(jì)算量很大的排序操作.
而Rand-K稀疏化則是構(gòu)建隨機(jī)的掩碼矩陣,與Top-K相比,Rand-K在復(fù)雜度和效率上更好.但是因?yàn)槠潆S機(jī)性,誤差概率也更大,在很高的稀疏比例中表現(xiàn)不佳.
差分隱私[26-27]由Dwork 提出,它是一種隱私保護(hù)方法,通過(guò)對(duì)數(shù)據(jù)添加干擾噪聲,使得攻擊者無(wú)法通過(guò)已知的發(fā)布信息推斷出其他有用的信息,保護(hù)了數(shù)據(jù)中的用戶(hù)隱私.
相鄰數(shù)據(jù)集.相鄰數(shù)據(jù)集指2 個(gè)數(shù)據(jù)集D與D′中最多只有一個(gè)數(shù)據(jù)或元素不同,即 ||D-D′||1≤1.
敏感度.敏感度衡量了相鄰數(shù)據(jù)集查詢(xún)結(jié)果之間的最大差異,定義為 Δf=
ε-差分隱私.拉普拉斯機(jī)制定義為M(D)=f(D)+Y(Y1,Y2,…,Yk),f為查詢(xún)函數(shù),M為隨機(jī)函數(shù),Y為服從拉普拉斯分布的隨機(jī)噪聲.當(dāng)拉普拉斯概率分布時(shí),拉普拉斯機(jī)制就滿足 ε-差分隱私:Pr[M(D)∈S]≤eε·Pr[M(D′)∈S],ε 為隱私預(yù)算.當(dāng) ε越小時(shí),表明2 個(gè)數(shù)據(jù)集經(jīng)過(guò)隨機(jī)化以后輸出結(jié)果的概率分布越接近,隱私保證的級(jí)別就越高.嚴(yán)格差分隱私對(duì)機(jī)制有很高的要求,但是又不能添加過(guò)多的噪聲以免造成信息的損失,因此就引出了(ε,δ )-差分隱私,其敏感度定義為:
其中 δ為松弛項(xiàng),表示有1-δ 的概率滿足差分隱私,σ為噪聲尺度.
數(shù)字簽名是基于非對(duì)稱(chēng)加密的驗(yàn)證文檔或信息真實(shí)性和完整性的技術(shù),通過(guò)對(duì)信息進(jìn)行加密和簽名生成數(shù)字簽名,接收方使用其公鑰對(duì)簽名進(jìn)行解密驗(yàn)證,確保數(shù)據(jù)沒(méi)有被篡改,具體流程為:
密鑰生成KeyGen():用戶(hù)隨機(jī)選擇大素?cái)?shù)p和q,計(jì)算N=p×q,以及φ(N)=(p-1)×(q-1),隨機(jī)選擇r滿足0 簽名Sign():首先對(duì)要發(fā)送的信息m進(jìn)行Hash運(yùn)算,h=hash(m),然后對(duì)其哈希值進(jìn)行加密簽名,生成密文C=Sign(hash(m))=hdmodN. 驗(yàn)證簽名VerifySign():接收者需要對(duì)發(fā)送方的簽名進(jìn)行驗(yàn)證時(shí),按照2 個(gè)流程進(jìn)行驗(yàn)證: 1)使用發(fā)送方公鑰pk對(duì)簽名進(jìn)行解密,h′=CrmodN. 2)對(duì)消息m進(jìn)行Hash 運(yùn)算,若h=h′,簽名有效,否則驗(yàn)證簽名無(wú)效. 聯(lián)邦學(xué)習(xí)中,中心服務(wù)器面臨單點(diǎn)故障、梯度參數(shù)收集和更新中可能出現(xiàn)的隱私泄露風(fēng)險(xiǎn).針對(duì)此問(wèn)題,本文提出了一種基于區(qū)塊鏈的聯(lián)邦學(xué)習(xí)模型SPFLChain,將多個(gè)互不信任的參與方整合到一起協(xié)同管理,符合聯(lián)盟鏈的應(yīng)用場(chǎng)景,其中包括任務(wù)發(fā)布方、區(qū)塊鏈、礦工、參與方和共識(shí)委員會(huì). 在執(zhí)行各自任務(wù)之前,需要在區(qū)塊鏈上進(jìn)行注冊(cè)并進(jìn)行身份驗(yàn)證.區(qū)塊鏈為聯(lián)邦學(xué)習(xí)的參與方和礦工提供可信身份認(rèn)證,只有被成功授權(quán)的節(jié)點(diǎn)才能加入到區(qū)塊鏈網(wǎng)絡(luò)中. 1)任務(wù)發(fā)布方P0.聯(lián)邦學(xué)習(xí)訓(xùn)練模型的需求方,當(dāng)任務(wù)發(fā)布方想要訓(xùn)練機(jī)器學(xué)習(xí)模型,但是設(shè)備或數(shù)據(jù)儲(chǔ)備不完善時(shí),可以委托共識(shí)委員會(huì)進(jìn)行有償代訓(xùn)練. 2)礦工g.沒(méi)有關(guān)聯(lián)訓(xùn)練設(shè)備,達(dá)不到訓(xùn)練條件或拒絕參與訓(xùn)練的參與方,僅作為區(qū)塊鏈中的礦工去生成區(qū)塊和驗(yàn)證參與方的模型. 3)參與方Pi(i=1,2,…,n).數(shù)據(jù)擁有者,有關(guān)聯(lián)設(shè)備能夠參與訓(xùn)練,并且能夠作為礦工對(duì)其它參與方進(jìn)行模型的驗(yàn)證和生成區(qū)塊. 4)共識(shí)委員會(huì)C.共識(shí)委員會(huì)由全節(jié)點(diǎn)隨機(jī)組成,成員總數(shù)要根據(jù)實(shí)際情況控制在一個(gè)范圍內(nèi),避免因?yàn)槌蓡T人數(shù)過(guò)多造成資源浪費(fèi),或者又因?yàn)槌蓡T人數(shù)過(guò)少造成模型誤差過(guò)大.主要完成對(duì)驗(yàn)證通過(guò)的局部模型進(jìn)行聚合操作,在聚合后把收斂的全局模型上傳給任務(wù)發(fā)布方. 在SPFLChain 中,假設(shè)參與方、礦工、共識(shí)委員會(huì)是半誠(chéng)實(shí)的,嚴(yán)格按照聯(lián)邦學(xué)習(xí)中的協(xié)議執(zhí)行,會(huì)為了自身利益正確履行訓(xùn)練模型和聚合模型的職責(zé),但是有興趣推斷其他參與方訓(xùn)練數(shù)據(jù)或者有意義的標(biāo)簽信息.參與方完成本地訓(xùn)練后,聚合模型交給區(qū)塊鏈網(wǎng)絡(luò)中委員會(huì)節(jié)點(diǎn),由區(qū)塊鏈網(wǎng)絡(luò)礦工節(jié)點(diǎn)進(jìn)行局部模型驗(yàn)證.如圖1 所示,具體流程如下: Fig.1 SPFLChain training process圖1 SPFLChain 訓(xùn)練流程 1)訓(xùn)練需求發(fā)布.作為聯(lián)邦學(xué)習(xí)訓(xùn)練模型的需求方,在身份驗(yàn)證完成后,任務(wù)發(fā)布方P0根據(jù)自己的不同需求將訓(xùn)練任務(wù)請(qǐng)求廣播到區(qū)塊鏈上,其中包括要訓(xùn)練的數(shù)據(jù)集D、初始全局模型w0、支付預(yù)算BP0和要求達(dá)到的準(zhǔn)確率等. 2)記錄查詢(xún).共識(shí)委員會(huì)相當(dāng)于區(qū)塊鏈網(wǎng)絡(luò)中的全節(jié)點(diǎn),存有區(qū)塊鏈中的所有歷史信息.任務(wù)發(fā)布方P0廣播請(qǐng)求后,由共識(shí)委員會(huì)C檢索記錄中是否存在要求相同的訓(xùn)練模型.如果共識(shí)委員會(huì)C在本地記錄中查詢(xún)到有符合訓(xùn)練請(qǐng)求的模型,根據(jù)本地記錄中的Hash 值,通過(guò)getBlockByHash()在鏈上獲取到模型,并發(fā)送給任務(wù)發(fā)布方P0,如圖2 所示,除了模型的基本信息以外,全局模型包括聚合所用的局部模型序號(hào)(sub_model),用于模型出現(xiàn)問(wèn)題后的溯源工作. Fig.2 Consensus committee local storage record structure圖2 共識(shí)委員會(huì)本地存儲(chǔ)記錄結(jié)構(gòu) 3)局部模型訓(xùn)練.如果查詢(xún)不到記錄,由共識(shí)委員會(huì)廣播任務(wù),參與方Pi(i=1,2,…,n)監(jiān)聽(tīng)廣播.參與方接收到訓(xùn)練請(qǐng)求后,根據(jù)需求選擇是否參與此任務(wù)發(fā)布方的訓(xùn)練.由參與方P1,P2,…,Pn計(jì)算局部損失本地模型梯度 ?L(θ;b),并進(jìn)行本地模型更新. 4)模型發(fā)送.參與方進(jìn)行本地的迭代訓(xùn)練,利用初始模型和本地?cái)?shù)據(jù)訓(xùn)練局部模型,完成后用私鑰ski以及礦工公鑰pkg將局部模型簽名加密發(fā)送給礦工. 5)模型驗(yàn)證.礦工通過(guò)解密與雙重Hash 對(duì)比后驗(yàn)證參與方提交模型的所有權(quán). 6)局部模型發(fā)送.局部模型通過(guò)驗(yàn)證,由礦工發(fā)送給共識(shí)委員會(huì)C進(jìn)行聚合. 7)全局模型聚合.只有當(dāng)共識(shí)委員會(huì)C收集的模型達(dá)到一定數(shù)量或者超過(guò)一定的時(shí)間上限,才能觸發(fā)智能合約,通過(guò)智能合約完成模型聚合,并加入高斯噪聲: 其中,Δt為t輪聚合后的全局模型差值,N(0,σ2)為服從高斯分布的噪聲. 8)模型評(píng)估.完成驗(yàn)證并在聚合完成后的局部模型要通過(guò)智能合約評(píng)估,通過(guò)其準(zhǔn)確率acc、全局模型w與局部模型wk的歐氏距離等因素來(lái)為其計(jì)算出一個(gè)評(píng)估值Eval. 9)生成區(qū)塊并上鏈.評(píng)估完成后將本輪次的全局模型打包生成區(qū)塊并執(zhí)行共識(shí)上傳到區(qū)塊鏈上.參與方從鏈上獲取全局模型作為初始模型進(jìn)行下一輪的迭代訓(xùn)練,直至全局模型的收斂. 共識(shí)委員會(huì)C計(jì)算的全局模型收斂或者達(dá)到迭代輪次上限,將全局模型交付給任務(wù)發(fā)布方,并把獎(jiǎng)勵(lì)分發(fā)給參與方Pi(i=1,2,…,n)、礦工g和共識(shí)委員會(huì)C.評(píng)估和獎(jiǎng)勵(lì)分發(fā)過(guò)程如圖3 所示. Fig.3 Reward distribution process圖3 獎(jiǎng)勵(lì)分發(fā)過(guò)程 任務(wù)發(fā)布方P0需要根據(jù)參與方Pi(i=1,2,…,n)、礦工g、共識(shí)委員會(huì)C等做出的貢獻(xiàn)進(jìn)行轉(zhuǎn)賬,其中包括參與方Pi(i=1,2,…,n)的訓(xùn)練獎(jiǎng)勵(lì)、數(shù)據(jù)貢獻(xiàn)獎(jiǎng)勵(lì)、礦工的驗(yàn)證評(píng)估獎(jiǎng)勵(lì)、共識(shí)委員會(huì)C的模型聚合獎(jiǎng)勵(lì)以及區(qū)塊生成獎(jiǎng)勵(lì). 在整個(gè)流程中,一旦模型進(jìn)入?yún)^(qū)塊鏈網(wǎng)絡(luò),后續(xù)所有驗(yàn)證和聚合操作都會(huì)被系統(tǒng)記錄在鏈上.最終訓(xùn)練結(jié)束后為參與方Pi(i=1,2,…,n)生成一個(gè)評(píng)估值Score,這為系統(tǒng)數(shù)據(jù)流轉(zhuǎn)的溯源和激勵(lì)機(jī)制的公平分配提供了保障.如果出現(xiàn)問(wèn)題,可以通過(guò)查詢(xún)記錄來(lái)鎖定問(wèn)題源頭,變相降低了參與方、礦工和共識(shí)委員會(huì)作惡的可能性. 針對(duì)半誠(chéng)實(shí)參與方造成的隱私威脅,SPFLChain用區(qū)塊鏈網(wǎng)絡(luò)替代傳統(tǒng)的中心服務(wù)器,解決聯(lián)邦學(xué)習(xí)的單點(diǎn)故障問(wèn)題.訓(xùn)練過(guò)程分為本地訓(xùn)練和模型聚合,本地訓(xùn)練使用稀疏化,模型聚合使用差分隱私添加噪聲來(lái)保護(hù)隱私. 在本地訓(xùn)練階段,采用隨機(jī)稀疏化構(gòu)建一個(gè)服從伯努利分布的d維隨機(jī)矩陣m={0,1}d,設(shè)置其中的稀疏程度字段prop,prop值越大,掩碼矩陣中的“1”值越多,在本地訓(xùn)練完成后,將梯度和掩碼矩陣相乘,計(jì)算模型參數(shù),再將參數(shù)差值傳遞給礦工. 具體過(guò)程如算法1 所示. 算法1.本地稀疏化算法. 接收到局部模型進(jìn)行聚合后,采用添加服從高斯分布的噪聲進(jìn)行模型更新.具體過(guò)程如算法2 所示. 算法2.模型聚合算法. 通過(guò)迭代直到模型收斂或者達(dá)到訓(xùn)練輪次,由共識(shí)委員會(huì)將聚合后的最終模型交付給任務(wù)發(fā)布方. 局部模型的驗(yàn)證評(píng)估對(duì)全局模型精度和隱私安全都至關(guān)重要,模型評(píng)估也可以作為最終激勵(lì)機(jī)制獎(jiǎng)勵(lì)發(fā)放的重要依據(jù).通過(guò)對(duì)模型準(zhǔn)確率、訓(xùn)練時(shí)長(zhǎng)、數(shù)據(jù)集大小等多種因素綜合考慮,本節(jié)提出一種模型驗(yàn)證評(píng)估方法,由礦工正確驗(yàn)證參與方模型的身份和所有權(quán)后,在全局模型聚合后對(duì)參與方提交的局部模型進(jìn)行基于多權(quán)重的質(zhì)量評(píng)估.保證聯(lián)邦學(xué)習(xí)安全性的同時(shí),為后續(xù)的激勵(lì)機(jī)制提供證明,提高參與方訓(xùn)練積極性. 為了驗(yàn)證參與方身份,礦工對(duì)參與方所發(fā)送模型進(jìn)行驗(yàn)證,參與方隨機(jī)挑選一個(gè)礦工,將本地訓(xùn)練的局部模型提交,由礦工進(jìn)行驗(yàn)證,驗(yàn)證流程如下. 1)模型加密.被選中礦工g通過(guò)KeyGen()得到公私鑰對(duì):公鑰pkg=(Ng,rg),私鑰skg=(pg,qg,dg).參與方Pi使用pkg對(duì)其模型m進(jìn)行加密,然后將加密后的密文Cm提交礦工. 2)模型簽名.參與方Pi計(jì)算得出公私鑰對(duì):公鑰pki=(Ni,ri),私鑰ski=(pi,qi,di).首先使用Hash 算法對(duì)模型進(jìn)行加密,h=hash(m),使用私鑰ski對(duì)h簽名生成密文Ch=hdmodNi. 3)Hash 對(duì)比.礦工使用自己的私鑰skg對(duì)Cm進(jìn)行解密得到模型m,使用相同的Hash 運(yùn)算對(duì)m加密得到h0,再用參與方Pi的公鑰pki對(duì)Ch解密得到h1,對(duì)比h0和h1,如果相等,則簽名有效,否則簽名無(wú)效. 4)二次Hash 對(duì)比.在當(dāng)前訓(xùn)練任務(wù)中,為了防止模型上鏈后被懶惰參與方直接取用,礦工需要承擔(dān)在本地存儲(chǔ)局部模型及全局模型的Hash 值.礦工完成第一次Hash 對(duì)比后,使用hash(m)檢索本地模型Hash 值記錄,完成對(duì)記錄的遍歷后無(wú)擊中即可證明模型有效. 局部模型的評(píng)估需要考慮多種因素,為了保證模型準(zhǔn)確率的同時(shí)防止過(guò)擬合,通過(guò)多個(gè)因素分配不同權(quán)重值來(lái)完成評(píng)估值的計(jì)算.提出一種三權(quán)重評(píng)估方法,三權(quán)重的值分別為ρ,ξ,ω,分別為準(zhǔn)確率、歐氏距離、參與方本地訓(xùn)練數(shù)據(jù)集大小賦予權(quán)重,滿足ρ,ξ,ω∈[0,1]且ρ+ξ+ω=1,共同計(jì)算模型評(píng)估值Eval. 1)準(zhǔn)確率.在聯(lián)邦學(xué)習(xí),最終目的是向任務(wù)發(fā)布方交付一個(gè)高性能的模型,準(zhǔn)確率是衡量模型的重要指標(biāo),準(zhǔn)確率定義函數(shù)為 式(5)表示單輪結(jié)束后樣本分類(lèi)結(jié)果與真實(shí)值進(jìn)行對(duì)比,統(tǒng)計(jì)正確分類(lèi)樣本數(shù),將其除以總樣本數(shù)得到準(zhǔn)確率.僅考慮準(zhǔn)確率可能會(huì)忽略過(guò)擬合的情況,所以需要結(jié)合其他因素來(lái)綜合考慮. 2)歐氏距離.歐氏距離反映模型在預(yù)測(cè)時(shí)的泛化能力,本文定義歐氏距離的函數(shù)為 其中,x和y分別表示局部模型和聚合后全局模型對(duì)礦工擁有的同一測(cè)試樣本的預(yù)測(cè)輸出. 3)數(shù)據(jù)量.參與方訓(xùn)練數(shù)據(jù)集D過(guò)小會(huì)導(dǎo)致訓(xùn)練模型過(guò)擬合,即使在訓(xùn)練數(shù)據(jù)上表現(xiàn)很好,但是也會(huì)在新數(shù)據(jù)的表現(xiàn)不佳.本地訓(xùn)練數(shù)據(jù)集的大小也是衡量參與方貢獻(xiàn)以及模型質(zhì)量的一個(gè)重要指標(biāo). 4)單輪模型評(píng)估值計(jì)算.評(píng)估值計(jì)算需要考慮1)~3)三種因素的綜合表現(xiàn),參與方Pi在第k輪的模型評(píng)估值函數(shù)定義為 5)參與方評(píng)估分計(jì)算.評(píng)估分依據(jù)前面每輪評(píng)估值的計(jì)算,每輪評(píng)估值都被賦予權(quán)重q,權(quán)重值遞增,滿足且qj-qj-1=qj-1-qj-2,E為總迭代輪次,參與方Pi在E輪迭代結(jié)束后的評(píng)估分計(jì)算公式為: 評(píng)估方案賦予后期迭代更高的權(quán)重值,當(dāng)參與方前面因?yàn)楦鞣N因素導(dǎo)致訓(xùn)練效果不佳時(shí),能夠依靠后期訓(xùn)練提升評(píng)估分.參與方的評(píng)估分Score將作為激勵(lì)機(jī)制獎(jiǎng)勵(lì)分配的重要依據(jù),以保證獎(jiǎng)勵(lì)分配的公平性. 聯(lián)邦學(xué)習(xí)允許各個(gè)參與方在不貢獻(xiàn)本地訓(xùn)練數(shù)據(jù)前提下,協(xié)同訓(xùn)練共享全局模型,因此本地的原始數(shù)據(jù)得到保護(hù)[28].但是聯(lián)邦學(xué)習(xí)訓(xùn)練過(guò)程中會(huì)遭受深度梯度泄露等隱私攻擊.SPFLChain 引入差分隱私技術(shù)實(shí)現(xiàn)全局模型鏈上安全存儲(chǔ)、鏈下局部模型加密傳輸以及稀疏化保證隱私安全,通過(guò)采用高斯機(jī)制的差分隱私實(shí)現(xiàn)在保障安全的情況下均衡模型性能,構(gòu)建安全的訓(xùn)練過(guò)程. 本文實(shí)驗(yàn)使用ResNet18 訓(xùn)練CIFAR10 數(shù)據(jù)集,損失函數(shù)定義為交叉熵?fù)p失函數(shù).實(shí)驗(yàn)中設(shè)置10 個(gè)參與方,每次參與訓(xùn)練的參與方有3 個(gè),設(shè)置batch_size為32,學(xué)習(xí)率α為0.005,本地迭代次數(shù)為3,全局迭代200 輪. 實(shí)驗(yàn)采用CIFAR10 數(shù)據(jù)集.CIFAR10 為尺寸32×32 的10 分類(lèi)RGB 彩色圖片,數(shù)據(jù)集中一共包含50 000 張訓(xùn)練圖和10 000 張測(cè)試圖. 實(shí)驗(yàn)所用的開(kāi)發(fā)工具為Jupyter Notebook 和PyCharm.編程語(yǔ)言為Python3.8,智能合約由Solidity語(yǔ)言編寫(xiě).配備Intel?CoreTMi5-10500 CPU @ 3.10 GHz 處理器、16 GB 運(yùn)行內(nèi)存以及NVIDIA GeForce RTX 3 060 顯卡,操作系統(tǒng)為Windows 10. 實(shí)驗(yàn)先通過(guò)局部訓(xùn)練找出稀疏程度prop,以固定的稀疏程度prop訓(xùn)練局部模型,全局模型更新時(shí)添加噪聲,再通過(guò)不同的噪聲參數(shù)σ進(jìn)行實(shí)驗(yàn)對(duì)比.通過(guò)DLG 攻擊實(shí)驗(yàn)證明,SPFLChain 不論是在局部模型傳輸還是全局模型上鏈,都能在實(shí)現(xiàn)隱私保護(hù)的同時(shí)保證模型效用. 如圖4 所示,使用了0.2,0.4,0.6,0.8 和1.0 的稀疏程度進(jìn)行聯(lián)邦學(xué)習(xí),對(duì)比不同稀疏程度對(duì)聯(lián)邦學(xué)習(xí)模型準(zhǔn)確率的影響.實(shí)驗(yàn)結(jié)果證明,在隨機(jī)稀疏程度為0.8 時(shí),模型準(zhǔn)確率下降僅為0.3%. Fig.4 Comparison of model training under different sparsity levels圖4 不同稀疏程度下的模型訓(xùn)練對(duì)比 本地訓(xùn)練進(jìn)行稀疏化和全局模型使用差分隱私添加噪聲.實(shí)驗(yàn)結(jié)果如圖5 所示,采用0.8 的稀疏度和0.003 的隱私噪聲,在損失1.5%準(zhǔn)確率的情況下,保證了局部模型和全局模型的隱私. Fig.5 Comparison of model training with different noise added by differential privacy圖5 差分隱私添加不同噪聲的模型訓(xùn)練對(duì)比 DLG 作為一種能夠利用梯度還原數(shù)據(jù)的攻擊方法,在聯(lián)邦學(xué)習(xí)圖像分類(lèi)這種需要多次交互的模型中更能很好地發(fā)揮作用,所以本節(jié)采用具有代表性的DLG 攻擊證明隱私安全實(shí)驗(yàn)的可行性. 實(shí)驗(yàn)對(duì)使用稀疏化和差分隱私方法后的模型梯度進(jìn)行DLG 攻擊,對(duì)CIFAR10,CIFAR100,MNIST,Fashion-MNIST 多個(gè)數(shù)據(jù)集進(jìn)行抽樣攻擊表明本文方案對(duì)模型保護(hù)的泛化能力. 如圖6 所示,說(shuō)明了稀疏程度在0.7,0.8,0.9 和1時(shí)對(duì)恢復(fù)圖片的效果對(duì)比.在稀疏程度為0.8 時(shí),DLG 攻擊已經(jīng)造成對(duì)絕大多數(shù)的圖像像素點(diǎn)無(wú)法復(fù)原,能夠很好地保護(hù)原始數(shù)據(jù)集的隱私.如圖7 所示,顯示全局模型聚合時(shí)使用差分隱私添加噪聲對(duì)DLG攻擊的影響對(duì)比,在噪聲參數(shù)為0.003 時(shí),能夠保護(hù)大部分像素不被復(fù)原. Fig.6 Comparison of the effect of different degrees of sparsity on the recovery of DLG attack images圖6 不同稀疏度程度對(duì)DLG 攻擊圖片恢復(fù)影響對(duì)比 Fig.7 Comparison of the effect of different differential privacy noise values on the recovery of DLG attack images圖7 不同差分隱私噪聲值對(duì)DLG 攻擊圖片恢復(fù)影響對(duì)比 模型評(píng)估值設(shè)置3 個(gè)參與方,其中1 個(gè)為惡意參與方,在訓(xùn)練期間對(duì)本地?cái)?shù)據(jù)集進(jìn)行毒化訓(xùn)練.測(cè)試使用CIFAR10 中測(cè)試集的圖片182_bird.jpg,分別使用參與方1、參與方2 和惡意參與方的局部模型與聚合的全局模型對(duì)該圖片進(jìn)行預(yù)測(cè)識(shí)別,計(jì)算局部模型和全局模型的差值作為模型評(píng)估的一個(gè)標(biāo)準(zhǔn).在權(quán)重值ρ=0.7,ξ=0.2,ω=0.1 時(shí)分別對(duì)比它們?cè)谇?0輪中的評(píng)估值. 如圖8 所示,顯示3 個(gè)參與方在前50 輪的評(píng)估值變化對(duì)比.實(shí)驗(yàn)結(jié)果表明,本文方案能夠有效識(shí)別和辨別惡意參與方使用本地毒化數(shù)據(jù)對(duì)局部模型造成的影響. Fig.8 Comparison of evaluation values among different participants圖8 不同的參與方評(píng)估值對(duì)比 本文提出了一種基于區(qū)塊鏈的隱私保護(hù)聯(lián)邦學(xué)習(xí)模型SPFLChain.該模型使用區(qū)塊鏈網(wǎng)絡(luò)替代中心服務(wù)器,實(shí)現(xiàn)了分布式協(xié)同解決計(jì)算問(wèn)題,同時(shí)避免了數(shù)據(jù)泄露風(fēng)險(xiǎn).為了提高模型的隱私保護(hù)性能,在局部訓(xùn)練過(guò)程中采用稀疏化,模型聚合更新采用基于高斯機(jī)制噪聲的差分隱私.經(jīng)實(shí)驗(yàn)證明,提出的模型實(shí)現(xiàn)了鏈下局部模型和鏈上全局模型的隱私保護(hù),在略損失訓(xùn)練準(zhǔn)確率的前提下,保證了模型的隱私安全.此外,本文還提出了模型驗(yàn)證和三權(quán)重模型評(píng)估方法,用于動(dòng)態(tài)評(píng)估參與方的訓(xùn)練效果,識(shí)別檢測(cè)參與方的惡意行為.下一步將優(yōu)化區(qū)塊鏈結(jié)合聯(lián)邦學(xué)習(xí)的效率,并深入探討激勵(lì)機(jī)制的公平分配. 作者貢獻(xiàn)聲明:劉煒、唐琮軻提出了算法思路和實(shí)驗(yàn)方案;唐琮軻、馬杰負(fù)責(zé)完成實(shí)驗(yàn)并撰寫(xiě)論文;田釗、王琦、佘維提出指導(dǎo)意見(jiàn)并修改論文.3 系統(tǒng)模型
3.1 模型概述
3.2 系統(tǒng)流程
4 基于稀疏化的差分隱私
5 模型驗(yàn)證評(píng)估方案
5.1 模型驗(yàn)證
5.2 模型評(píng)估
6 實(shí)驗(yàn)
6.1 實(shí)驗(yàn)設(shè)置
6.2 性能評(píng)估
6.3 隱私安全評(píng)估
6.4 模型評(píng)估
7 總結(jié)