林慶新,余 鋒,胡志強,曾凌靜
(1.福州大學至誠學院 計算機工程系,福建 福州 350002;2.福建師范大學 計算機與網絡安全學院, 福建 福州 350017;3.中國航天科工集團第二研究院 七〇六所,北京 100854; 4.福建船政交通職業學院 信息與智慧交通學院,福建 福州 350004)
聯邦學習作為一個分布式學習框架[1],可以在不泄露用戶數據的前提下完成模型訓練,但是在傳統的聯邦學習系統中,中央服務器在接收到參與方上傳的本地模型后,直接根據既定策略對其聚合更新全局模型,而沒有對本地模型的合法性進行驗證,導致后續模型不可靠,這就是模型存儲可靠性問題[2-4]。本文以聯邦學習在數據存儲過程中的模型可靠性需求為目標展開研究,并結合區塊鏈的去中心化、不可篡改、可追溯和可審計的特性[5],提出一種基于區塊鏈隱私增強的聯邦學習可驗證安全存儲方案。本文的主要貢獻如下:
(1)將聯邦學習模型的可靠性問題,轉換為區塊鏈上驗證者對于模型的驗證問題。考慮到系統可能存在試圖篡改模型的惡意節點,所以工人上傳的本地模型可能是不可信的,引入驗證者角色并提出一種新穎的驗證者投票機制。該機制讓驗證者接收到來自工人的交易后,會對它的簽名做驗證,并提取交易中的本地模型進行可靠性投票,從而提升模型可靠性。
(2)當惡意節點成為礦工后,它可能通過篡改驗證者的投票結果甚至向其開采的區塊中加入噪聲來干擾全局模型的計算,繼而影響系統模型的表現。因此,引入一種獎勵機制和角色輪換機制來避免惡意節點開采的區塊成為共識區塊,并且根據節點各自的角色分配獎勵,從而增強了系統的健壯性。
(3)為了驗證本方案的有效性,采用PyTorch框架在MNIST數據集上進行仿真實驗。結果表明,在設置一定數量的惡意節點下,仍然保持較高的模型準確性。由于模型準確性受工人和驗證者數量比例影響,在存在15%的惡意節點聯邦學習設置下,對比基線策略FedAvg和pFedMe,本方案能夠通過驗證機制剔除惡意模型,確保存儲模型的安全性與可靠性,進而保障最終模型的準確率表現。
在聯邦學習的數據存儲過程中,傳統聯邦學習通常是直接聚合參與方上傳的本地模型更新,而未做任何驗證以保證上傳模型的可靠性。McMahan等[6]提出FedAvg算法,通過聯邦平均來實現模型的全局更新,從而在不共享原始數據的情況下實現協同深度學習。Li等[7]提出FedProx算法,它在FedAvg更新策略上做了調整,在每個客戶端上引入了一個正則項,來平衡平均的全局模型與本地模型的差異。進而使得FedAvg算法更加穩健。針對FedProx缺乏形式化問題,Li等[8]提出FedLGA算法,它先將系統異構聯邦學習問題形式化,然后通過梯度近似來彌合本地模型更新的分歧。Reisizadeh等[9]提出FedPAQ算法,通過在迭代過程中,周期性地對參與方的模型進行平均,在傳輸過程中將參與方的模型參數進行量化,以減少通信量,同時保持模型精度。Zhao等[10]指出FedAvg算法在數據非獨立同分布(non-IID)場景下的性能很差,定義并指出權重差異是導致性能下降的主要原因,進一步地,提出了FedShare算法,一種共享部分共有數據集的方法,來提升non-IID場景下FedAvg算法的性能。
同時,目前有許多工作結合區塊鏈提出安全聯邦學習框架。Xu等[11]提出一種安全可驗證的聯邦學習框架VerifyNet,首先提出一個雙掩碼協議來保證聯邦學習過程中用戶本地梯度的機密性。然后,云服務器向每個用戶提供關于其聚合結果正確性的證明。Kim等[12]提出的框架實現了基于區塊鏈的設備上聯邦學習(on-device FL),該方案主要利用礦工對設備的本地模型更新的交叉驗證機制以及區塊鏈的不可篡改和可追溯審計等特性,以確保模型更新的準確性和可靠性。Jiang等[13]為數字孿生網絡提出一種模型更新鏈,利用有向無環圖區塊鏈來保護本地模型和全局模型更新。同時涉及了一種基于迭代雙拍賣的聯邦學習和本地模型驗證模型更新方案,解決了聯邦學習和本地模型驗證的最佳統一時間,以最大化社會福利。Peng等[14]提出一種基于區塊鏈系統的可驗證和可審計的聯邦學習框架VFChain。該方案通過區塊鏈選擇一個委員會來聚合模型并在區塊鏈中記錄可驗證的證據來提供可驗證性,同時,為區塊鏈提出了一種經過身份驗證的數據結構,以提高可驗證證據的搜索效率并支持委員會的安全輪換。Li等[15]提出一種抗拜占庭安全區塊鏈聯邦學習框架BytoChain。通過引入驗證者并執行繁重的驗證工作量來提高模型驗證的效率,并通過抗拜占庭共識的準確率證明來檢測拜占庭攻擊[16-18]。
然而,現有工作在數據存儲過程中缺少有效的驗證機制和獎勵機制,而聯邦學習中的客戶端或服務器可能是惡意的,往往存在數據被篡改和隱私泄露的風險,無法保證本地模型存儲的可靠性,影響最終全局模型的表現。
BFL4MVSS的系統架構如圖1所示。BFL4MVSS主要包含以下幾種角色:工人w∈W, 驗證者v∈V, 礦工m∈M, 其中 |W|+|V|+|M|=|D|,D={d1,d2,…,dn}。

圖1 系統架構



安全模型:本文考慮聯邦學習參與者對于全局模型的投毒攻擊。這種攻擊通過在本地訓練過程中通過反轉標簽等方式訓練出異常本地模型,從而最終影響聯邦學習全局模型的可靠性。這種攻擊之所以能夠成功是因為聯邦學習的本地模型的可靠性沒有可信的第三方進行評估。另一方面,區塊鏈中的惡意工人一旦被選舉為礦工會阻礙區塊鏈上的共識的達成,不但影響區塊鏈的性能,更會嚴重降低區塊鏈的安全性。此外,對于異常模型,這些礦工也很有可能采取放任的態度并讓他們進入聯邦聚合過程,這終究會影響聯邦學習的全局模型的可靠性。因此,惡意工人也是本文需要防范的安全威脅之一。
針對這些安全威脅,本文利用區塊鏈技術,提出了驗證者投票機制,驗證者先后對本地模型做評估與投票,以保證存儲模型的可靠性;同時引入了一種獎勵機制,允許系統在一定數量的惡意節點存在下正常運行。
本方案所用到的主要符號及含義見表1。
BFL4MVSS的聯邦學習過程如圖2所示。具體描述如下:

表1 主要符號說明
(1)角色分配以及初始化:根據角色隨機輪轉機制為所有節點分配角色,全局模型隨機初始化,并廣播給所有聯邦學習參與方即工人w;
(2)本地模型更新:工人w在私有數據集上進行本地訓練以生成本地模型,然后將本地模型封裝到交易并發送給驗證者v;
(3)本地模型廣播:接著,與工人w關聯的驗證者v將接收到的交易廣播給其它的驗證者;
(4)驗證者投票:所有驗證者根據投票機制對接收到的交易進行投票;
(5)模型聚合:礦工m在聚合得到全局模型后創建并廣播經過基于權益證明(proof of stake,PoS)共識后的共識區塊;
(6)區塊添加:具有最多累計獎勵的礦工生成的區塊被添加到區塊鏈中。如果未達到預設的通信輪次,那么礦工請求與之關聯的設備下載包含全局模型的公式區塊,反之,聯邦學習過程結束。
重復以上步驟直到聯邦學習過程結束。相比于基礎聯邦學習過程,本文提出的聯邦學習是建立在工人訓練模型、驗證者驗證模型、礦工聚合模型的基礎上的。因此,模型的可靠性是通過驗證者驗證過的。

圖2 BFL4MVSS的聯邦學習過程

算法1:驗證者投票機制

(5)else

基于PoS的共識機制的保護會保護合法學習所得的本地模型和記錄在區塊鏈上的模型,以用來更新全局模型。而在本方案中,礦工負責投票結果的匯總和記錄。因此,當惡意節點成為礦工后,它可能通過篡改驗證者的投票結果甚至向其開采的區塊中加入噪聲來干擾全局模型的計算,繼而影響系統模型的表現。因此,我們采用一種獎勵機制和角色輪換機制來避免惡意節點開采的區塊成為共識區塊[16],獎勵根據節點各自的角色分配,這在一定程度上增強了系統的健壯性。
本方案的節點分為工人、驗證者、礦工3種角色,對應的獎勵亦分為3類:工人獎勵、驗證者獎勵和礦工獎勵。定義r為一個單位獎勵。
(1)


(2)


(3)
BFL4MVSS采用前述的驗證者投票機制和獎勵機制,能夠抵抗惡意節點發起的噪聲攻擊,保障了區塊中存儲本地模型的可靠性。因此,本方案使用類似FedAvg[5]的聚合策略來聚合本地模型就可以保障全局模型可靠性,描述如下
(4)

本方案的仿真實驗設備采用20臺虛擬機,CPU 8核2.10 GHz、16 G內存、300 G硬盤,采用Python 3.8和PyTorch框架實現本方案的基線算法FedAvg[5]、pFedMe[17]和BFL4MVSS。方案采用MNIST數據集[18]進行驗證。MNIST是一個手寫體數字的圖片數據集,該數據集來由美國國家標準與技術研究所發起整理,一共統計了來自250個不同的人手寫數字圖片,其中50%是高中生,50%來自人口普查局的工作人員。其中,訓練集train一共包含了60 000張圖像和標簽,而測試集一共包含了10 000張圖像和標簽。為了處理該數據集,本方案使用的CNN模型,它由帶有ReLU激活函數的兩個5×5的卷積層,兩個2×2的池化層,以及兩個全連接層組成。
我們假設FedAvg、pFedMe和BFL4MVSS包括20臺設備且均參與聯邦學習過程,將整個MNIST數據集隨機不重疊等分并分配給每個參與方。為了簡化,假設所有簽名都是驗證通過的。本實驗相關超參數設置見表2。

表2 超參數設置
3.2.1 BFL4MVSS健壯性分析

圖3 12w,5v,3m設置下的準確率變化情況

圖4 8w,9v,3m設置下的準確率變化情況

圖5 8w,9v,3m設置下的BFL4MVSS有效性
本實驗中,為了探究BFL4MVSS的健壯性,我們將惡意節點的數量設置為不同的值(即3,4,6,8,10,12,14,16),工人w數量和驗證者v數量為12和5,礦工m數量為3,然后分別記錄系統模型的準確率,其結果如圖3所示。我們觀察到,當存在少于10個注入高斯噪聲的惡意節點時,BFL4MVSS仍然能夠維持較高的準確率,尤其是4個惡意節點時,對應的準確率達到90%。這表明在此設置中,BFL4MVSS能夠利用驗證者投票機制,減小惡意模型被存儲的可能性,進而抵制惡意節點數量占比為40%的高斯噪聲攻擊。進一步地,為了探究不同工人數量和驗證者數量的情況下BFL4MVSS的健壯性,我們將工人w數量和驗證者v數量調整為8和9,其它設置保持不變。其實驗結果如圖4、圖5所示。當且僅當惡意節點數量不多于4個的設置下,BFL4MVSS的準確率能夠維持在較高水平,即存在3個惡意節點時,模型準確率為95%,存在4個惡意節點時,模型準確率為80%。這同樣驗證了本系統一定程度的健壯性,且系統的健壯能力是受工人和驗證者數量比例影響的。這是因為本策略通過獎勵激勵工人的非惡意行為,這樣更多的非惡意工人能夠成為礦工,而一旦成為礦工,他將獲得更多的獎勵。此外,工人晉升為礦工是存在競爭的,因為只有累計獎勵最高的工人才有晉升的機會。這意味著工人會因為獎勵從而不進行惡意行為。另一方面,由于驗證者的存在,通過比對前后輪模型的準確性,本地模型的可靠性得到顯著的提升。然而,驗證者是一個團體而非個人,因此驗證者對于模型的驗證也是一個團體行為,即對于模型可靠性的驗證最終需要通過團體投票決定,而這一決定又和驗證者的獎勵有直接關系。這意味著驗證者因為獎勵的存在所以對模型的可靠性進行真實驗證,以保證各驗證者對于模型的可靠性的決定接近一致,從而保障了模型的可靠性。以上的分析驗證了工人和驗證者數量的比例對于模型可靠性存在一定的影響。
3.2.2 BFL4MVSS有效性分析
為了驗證BFL4MVSS的有效性,我們根據以下設置進行對比實驗。20臺設備均合法設置下的FedAvg算法(用FedAvg_0/20表示),存在3個惡意節點的FedAvg算法(用FedAvg_3/20表示),本方案中存在3個惡意節點的設置(用OurScheme_3/20表示)。我們對以上每個設置進行3次實驗,并記錄所有設備的模型準確率變化情況。實驗結果如圖5所示,其中實線代表3次實驗準確率的平均值。觀察圖中的兩個不同設置的FedAvg算法,FedAvg在無惡意節點設置下的準確率為96%,然而,在存在15%的惡意節點設置下,其準確率驟降至12%。觀察圖中均為15%惡意節點設置下的FedAvg和本方案表現,盡管相比于Fed-Avg,本方案的準確率下降了10%,但本方案的準確率仍然能夠達到86%。這表明了在存在15%比例的惡意節點聯邦學習設置下,本方案能夠通過驗證機制剔除惡意模型,確保存儲模型的安全性與可靠性,進而保障最終模型的準確率表現。
接著,在惡意節點比例占15%,以及12個工人、5個驗證者和3個礦工,8個工人、9個驗證者和3個礦工兩種不同角色比例的設置下,我們對比了FedAvg、pFedMe和本方案的準確率表現,相應的實驗結果見表3。我們很容易觀察到本方案的準確率遠高于前兩個對比算法的準確率。這又進一步驗證了:在惡意節點占比15%的設置下,相比其它兩種對比算法,本方案能夠有效保證存儲模型的可靠性,進而維持模型準確率表現。上述實驗結果符合預期,這是因為作為基線策略FedAvg和pFedMe無法有效驗證惡意模型,這使得全局模型的準確率低。而本方案利用驗證者先后對本地模型做評估與投票從而保證存儲模型的可靠性,并引入了獎勵機制,這使得無論在12個工人、5個驗證者和3個礦工還是8個工人、9個驗證者和3個礦工兩種不同角色比例設置下,對于存在15%的惡意節點,本方案模型的準確性都更高。

表3 不同角色比例設置下的算法準確率對比/%
針對聯邦學習系統中的模型存儲可靠性問題,本文將區塊鏈技術引入到聯邦學習中,提出了一種基于區塊鏈隱私增強的聯邦學習可驗證安全存儲方案BFL4MVSS。本方案首先引入驗證者角色,提出了一種驗證者投票機制來剔除系統中可能存在的惡意模型,確保最終模型的可靠性。然后,為了維持系統正常運行,引入了獎勵機制來激勵節點,其中擁有最高獎勵的礦工具有存儲全局模型的權利,以維持本系統的正常運作。仿真實驗表明,BFL4MVSS能夠有效保護用戶數據隱私,同時保持了較高的模型準確率。與現有方案相比,由于驗證者投票機制,惡意模型的存儲比例更低,全局模型的可靠性更高,相應的模型準確率更高。本方案解決聯邦學習系統中存在惡意節點時的模型存儲的可靠性問題,為健壯的聯邦學習系統提供了一種解決思路。此外,如何將合理的獎勵機制融入高效可靠的共識機制的設計也是我們未來的研究方向。