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