?

基于區塊鏈的隱私保護去中心化聯邦學習模型

2022-11-12 11:27胡克勇王金龍
計算機研究與發展 2022年11期
關鍵詞:參與方信譽解密

周 煒 王 超 徐 劍 胡克勇 王金龍

1(青島理工大學信息與控制工程學院 山東青島 266520) 2(大規模個性化定制系統與技術全國重點實驗室(海爾集團公司) 山東青島 266100) 3(東北大學軟件學院 沈陽 110169)

機器學習為各行各業帶來了新的發展動力,其在語音識別、圖像識別和分類、藥物發現、流感患病率預測等方面的應用取得了顯著進步[1-4].為了獲得高質量的模型,傳統機器學習方案需要收集大量數據到中央服務器,這帶來了過高的計算開銷和隱私泄露的風險.在諸如醫療保健、物聯網等領域,大量敏感數據廣泛分布在不同位置,有多個數據實體聯合建模的需求,但出于隱私保護的考慮,數據源之間存在難以打破的壁壘,對于數據的隱私性和安全性有著更高的要求.

隨著美國《健康保險攜帶和責任法案》(health insurance portability and accountability act, HIPAA)[5]以及歐盟《通用數據保護條例》(general data protection regulation, GDPR)[6]的頒布實施,數據訪問進一步受到限制.業界和學術界開始更加注重在應用機器學習時的隱私保護問題,私有數據不應公開上傳到中央服務器.谷歌在2016年首次提出聯邦學習的概念[7-9],建立了基于多個設備上數據集的分布式訓練模型.訓練過程包含一個中央服務器(即參數服務器)和多個設備節點,節點從服務器下載現有模型,利用本地數據進行模型訓練,僅上傳本地模型更新(即學習模型的權值和梯度參數).服務器則聚合所有的本地模型更新,從而形成一個全局模型更新.之后每個設備從中央服務器下載全局模型更新,進入下一輪本地訓練,直至全局模型訓練完成.由于這種隱私特性,聯邦學習受到越來越多的研究和關注[10].

傳統聯邦學習依賴一個可信的中心化參數服務器,由多個參與方在保證各自數據不出本地的情況下協同訓練一個全局模型.服務器負責收集局部模型更新,執行更新聚合,維護全局模型更新等集中式操作,整個訓練過程易受服務器故障的影響.惡意的參數服務器甚至會毒害模型,產生不準確的全局更新,進而扭曲所有的局部更新,從而使整個協同訓練過程出錯.此外,部分研究已經表明,未加密的中間參數可以用來推斷訓練數據中的重要信息,參與方的私有數據面臨著暴露的風險[11-12].因此,在模型訓練過程中,對局部模型更新采取合適的加密方案以及在分布式節點上維護全局模型顯得尤為重要.

區塊鏈作為一種時間有序、去中心化、不可篡改、可追溯、高可信、多方共同維護的分布式賬本,可以用于代替聯邦學習中的參數服務器,存儲模型訓練過程中的相關信息.本文提出了一種基于區塊鏈的去中心化、安全、公平的聯邦學習模型——PPFLChain,使用區塊鏈存儲和維護模型信息,不要求參與方之間相互信任或信任任何第三方.為了保證參與方的隱私安全和模型的高性能表現,PPFLChain沒有采用以犧牲訓練模型性能來換取隱私保障的差分隱私技術[13],而是采用同態加密技術來保證準確性和機密性,并通過秘密共享方案為解密過程實現安全的密鑰管理.同時為了保證解密過程的順利,檢測錯誤的秘密份額,雙線性映射累加器被用來生成秘密份額的證據,提供驗證手段.

為增強聯邦學習過程的可靠性,PPFLChain引入信譽值作為評估參與方可靠性的指標,信譽值較高的參與方意味著為模型訓練過程做出了更多積極的貢獻.信譽計算利用主觀邏輯模型實現,根據參與方的歷史交互行為計算信譽值,并據此擇優選出參與方組成聯邦學習委員會,進行模型聚合和協同解密.信譽值還作為激勵機制的參考,依據各參與方對訓練過程的貢獻大小發放不等的獎勵,懲罰惡意的參與方,補償積極的參與方,以保障協同訓練的公平性.值得注意的是,委員會成員不是一成不變的,而是每隔一段時間重新選舉一次,這有利于激發參與方的積極性,不斷改進全局模型.

本文的貢獻主要有3個方面:

1) 提出一種基于區塊鏈的隱私保護聯邦學習模型——PPFLChain,實現去中心化、安全、公平的聯邦學習.

2) 利用雙線性映射累加器生成秘密份額的證據,為秘密共享方案提供可驗證性,并從理論上分析該累加器方案的安全性.

3) 引入信譽值作為評估參與方可靠性的指標,利用主觀邏輯模型實現不信任增強的信譽計算作為聯邦學習委員會的選舉依據.信譽值還作為激勵機制的參考,保障協同訓練的公平性.

1 相關工作

Yang等人[14]進一步討論了聯邦學習的概念、體系結構和潛在的應用,根據數據集的分布特點,將聯邦學習分為橫向聯邦學習、縱向聯邦學習、聯邦遷移學習3類.第1類針對不同數據集之間,特征重合較多而樣本重合較少的情形;第2類針對樣本重合較多而特征重合較少的情形;第3類針對特征和樣本均重合較少的情形.同時指出聯邦學習應當采取合適的技術手段提供有效的隱私保護.

為給聯邦學習過程的中間結果提供有力的隱私保障,Aono等人[15]采用加法同態加密機制由任一終端生成密鑰對并分享給其他終端.各終端在本地訓練完成后,上傳用公鑰加密后的中間參數.中央服務器直接對收集的密文進行盲計算,返回加法同態后的結果,各終端利用私鑰解密得到全局模型更新.但是這種方案由于所有終端都掌握著私鑰,一旦某個終端竊取到其他終端發送的密文信息,則能夠立刻解密得到明文參數.更加值得注意的是,這種密鑰管理方案幾乎不能容忍入侵,對于終端的安全性要求較高.Zhang等人[16]將解密工作轉移到中央服務器上,由服務器聚合上傳的密文參數后解密.為防止局部參數泄露,采用秘密共享技術確保至少k個用戶上傳參數之后,服務器才能夠解密.Heikkil?等人[17]設計了由多個服務器組成的安全聚合方案.終端將本地更新參數隨機分割,加密后分別發送給多個服務器,單獨的服務器無法獲知原始數據,僅能在收集完所有用戶的參數碎片后共同聚合并解密,得到聚合結果.

但是這種依賴一個或多個服務器的隱私保護聯邦學習方案仍面臨三大挑戰:

1) 訓練場景復雜多樣,聯邦學習中參與方的可信度低,并且完全依賴服務器的可靠性來存儲和計算模型更新,訓練過程易受服務器故障和惡意攻擊的影響.

2) 聯邦學習具有增量特性,在訓練過程中會產生大量信息,而聯邦學習缺乏對相關信息進行驗證的手段.

3) 聯邦學習缺少對參與方貢獻大小的考量,缺乏激勵手段來吸引更多的訓練數據和計算資源,保障公平性.

區塊鏈作為一種去中心化的分布式賬本技術,可以記錄歷史事務并防止篡改,是替換中心化服務器的有效解決方案.針對以上三大挑戰,當前區塊鏈也被作為改善聯邦學習的平臺進行研究.Dillenberger等人[18]分析了聯邦學習與區塊鏈融合的可行性問題.指出區塊鏈為聯邦學習過程提供了一種安全的交換學習模型參數的方法,其在存儲模型參數的同時允許對聯邦學習中迭代的模型進行審計.此外,基于區塊鏈的聯邦學習的性能幾乎可以與獨立的聯邦學習相媲美.

Kim等人[19]提出了BlockFL,在區塊鏈網絡環境下進行設備上的聯邦學習.用戶設備在本地訓練數據并上傳模型更新,礦工負責在預定時間內收集足夠多的本地模型更新并打包成塊記入區塊鏈.BlockFL根據本地訓練時長來分配數據獎勵給設備節點,以及分配挖礦獎勵給礦工,并通過調整塊生成率,即POW難度,使延遲最小化.然而由于設備節點的間歇性和可用性的問題,更加動態的網絡環境間接導致了部分參與設備在預定時間內訓練完本地模型并上傳更新是不可靠的.

Li等人[20]提出了BFLC,為聯邦學習選擇可靠的參與者.系統詳細定義了模型在區塊鏈上的存儲模式、訓練過程和一個新的委員會共識.委員會成員不參與本次迭代的訓練過程,而將本地數據集作為驗證集來驗證參與者的局部更新是否可靠,并給出驗證得分,以達到交叉驗證的效果.智能合約則在一段時間后選出性能較好的節點,組成下一輪訓練的新委員會.通過這種方式,BFLC選出了可靠的聯邦學習參與者,實現了在投毒攻擊的情況下仍能保持良好的模型性能,同時提高了共識效率.但是由于難以在保持模型可用性的同時提供有力的隱私保護,該系統傳輸的是明文的中間參數,并未考慮參數的機密性.

Weng等人[21]提出了DeepChain,為深度學習提供安全的訓練環境.具體做法是利用同態加密保證局部更新的機密性,結合秘密共享實現協同解密全局模型,并基于普遍可驗證的CDN(UVCDN)協議來實現加密梯度和解密份額的可審計性.采用的blockwise-BA共識協議通過加密抽簽選擇一個工作者來創建區塊,并由該區塊內交易的參與者所組成的委員會驗證.DeepChain還實現了一種基于區塊鏈的激勵機制,利用名為deepcoin的數字貨幣作為資產來獎勵誠實的參與者,懲罰惡意的參與者.然而該方案假定選舉的全體委員會成員都是誠實的,并且隨機算法是接近完美隨機的.

現有基于區塊鏈的聯邦學習方案可以有效記錄節點的性能、減少惡意攻擊、提高模型訓練的準確性;但在隱私保護、增加驗證手段、衡量參與方貢獻大小及保障公平性方面還有所欠缺.同時,采取合適的方案選擇誠實可靠的參與方對于聯邦學習任務來說也是至關重要的.

2 預備知識

本節對系統設計中需要用到的關鍵技術給出一些初步的介紹,包括區塊鏈、秘密共享、同態加密、雙線性映射累加器.

2.1 區塊鏈

區塊鏈是一種點對點、時間有序的去中心化分布式賬本技術,具有密碼學保證的不可篡改、不可偽造的特點[22].事務信息存儲在包含時間戳和上一個塊引用的區塊中,并以鏈的形式增長,由所有參與方共同維護,并通過共識算法來保證賬本的一致性[23].根據準入規則,區塊鏈可以分為公有鏈和聯盟鏈.對于公有鏈,參與方可以自由加入和退出,參與方的數量不是固定的,如比特幣[24];對于聯盟鏈,只有得到授權的用戶才能加入,參與方集合通常是預先定義好的[25],如IBM的Hyperledger fabric.

區塊鏈以其透明、可追溯、健壯的特點,可在互不了解的多方間建立起可靠的信任,是在不安全的環境下替換易受攻擊的中央服務器的一種有效解決方案.聯盟鏈作為具備準入控制的區塊鏈,適用于需要預先審核用戶和具有相對穩定參與方集合的聯邦學習.亟需一種合適的方法將區塊鏈和隱私保護聯邦學習結合起來,以解決中央服務器的安全問題,增強多方參與模型訓練的安全性.

2.2 秘密共享

秘密共享是在多個參與方之間共享秘密的密碼學技術,保證信息不會被破壞、篡改和丟失.秘密共享通過特定運算將秘密分成若干份額,分配給多個參與方,秘密恢復需要根據協議由多個參與方聯合進行,單獨的秘密份額沒有用處.目前的秘密共享方案主要包括Shamir方案[26]、Blakley方案[27]、中國剩余定理方案[28]等.Shamir方案作為一種(k,N)門限方案,將秘密S分為N個秘密碎片并分配給N個參與方,要求至少k個參與方合作才能恢復出秘密,而少于k個參與方得不到有關秘密的任何信息.該方案基于拉格朗日插值公式實現,核心功能有2個:

1) 秘密分割.F(x)=S+a1x1+a2x2+…+ak-1xk-1modp.其中p為大于秘密S的素數,a1,a2,…,ak-1為小于p的隨機數.取N個不相等的x代入可以得到N個秘密碎片s0,s1,…,sN,其中si=(xi,yi).

該方案能夠在分布式系統中實現安全的密鑰管理和信息保護,有效防止系統外部攻擊和內部用戶的背叛,達到分散風險和容忍入侵的目的.

2.3 同態加密

同態加密是一種對密文進行運算的基于數學難題和計算復雜性理論的密碼學技術,允許對加密后的密文直接進行計算,且解密后的結果與基于明文的計算結果相同[29].根據支持密文運算的程度,同態加密可以分為部分同態加密和完全同態加密2類.部分同態加密只能支持有限的密文計算深度,在一些運算并不復雜的場景中得到應用,如Paillier同態加密支持密文間的加法運算,但是不支持密文間的乘法運算[30];BGN(Boneh-Goh-Nissim)方案能夠支持無限次密文間的加法運算,但是只能支持一次密文間的乘法運算[31].完全同態加密對密文的計算深度沒有限制,支持任意類型的密文計算,但是計算代價高、效率低下,并未得到大規模應用[32].

同態加密作為一種特殊的加密算法已被用于聯邦學習中的隱私保護,參與方傳遞的都是加密后的參數信息,保證這些信息即使被攻擊也不會泄露模型信息和用戶隱私.用于解密的私鑰安全性變得尤為重要.門限同態加密將私鑰分割為多份,由多個參與方持有并且解密過程需要多方協同進行,是一種安全的多方計算方案.門限Paillier同態加密[33]作為這種方案的典型,包含4個過程:

1) 密鑰生成.KeyGen(p,q)→(pk,sk).隨機選擇2個大質數p,q,使得p=2p′+1,q=2q′+1,gcd(n,φ(n))=1,其中p′,q′為不同于p,q的質數.計算n=pq,m=p′q′.隨機選擇β∈*n,(a,b)∈*n×*n.令g=(1+n)abnmodn2,θ=amβmodn,生成公鑰pk=(n,g,θ),私鑰sk=mβ.私鑰sk通過Shamir秘密共享方案進行分割,第i個參與方Pi將得到秘密份額modnm,其中d0=sk,d1~dk-1為從{0,1,…,nm-1}中隨機選取的值.

2) 加密.Enc(m,pk)→c.對于明文m,隨機選擇一個數r∈*n,加密可得到密文

c=C(m)=gmrnmodn2.

(1)

3) 解密份額生成.ShareDec(c,si)→ci.N個參與方中第i個參與方Pi利用持有的秘密份額si計算其解密份額

ci=c2N!simodn2.

(2)

4) 協同解密.CollaborativeDec(D,pk)→m.設集合D包含至少k個正確的解密份額,計算可得到明文

(3)

該方案滿足加法同態性質,對于2個密文C(m1)和C(m2),計算后得到基于明文的和運算結果的密文,即

C(m1)C(m2)=gm1+m2(r1r2)nmodn2=
C(m1+m2).

(4)

擴展到多個密文的計算,這種性質能夠確保聯邦學習在參與方傳遞加密參數信息的情況下,安全地聚合局部模型,起到保護參與方隱私的效果.

2.4 雙線性映射累加器

在數學中,雙線性映射指的是2個循環群之間對應的線性映射關系.定義一個概率多項式時間雙線性映射生成算法BMGen(1λ) →(e,g,G,H,p),其中G和H是具有相同素數階p的循環乘法群,g為G的生成元,則存在雙線性映射e:G×G→H,具備3條性質[34]:

1) 雙線性.對于任意的u,v∈G和a,b∈p,均滿足e(ua,vb)=e(u,v)ab.

2) 非退化性.e(g,g)≠1,其中1為群H的單位元.

3) 可計算性.對于任意的u,v∈G,e(u,v)都能夠高效計算得出.

在密碼學中,累加器是一個單向的隸屬函數,用于識別一個元素是否為某個特定集合的成員,能夠將集合中的所有元素進行累加,生成一個固定大小的值,并高效地給出任意元素的(非)成員證明,且在驗證過程中不會暴露集合中的成員信息.密碼學累加器主要分為靜態累加器、動態累加器以及通用累加器3種類型[34].第1種針對靜態集合中元素的累加;第2種允許從累加集合中動態地添加和刪除元素;第3種能夠同時支持成員證明和非成員證明.根據底層密碼工具的不同,可分為基于RSA的密碼學累加器、基于雙線性映射的密碼學累加器和基于Merkle哈希樹的密碼學累加器.該技術已在群簽名、匿名憑證、外包數據驗證等領域得到廣泛應用.

3 系統模型

本節介紹所提出的PPFLChain,一種基于區塊鏈的去中心化、安全、公平的聯邦學習模型,并討論整個學習過程中面臨的威脅和安全目標.

3.1 系統概述

PPFLChain利用區塊鏈取代傳統聯邦學習中的參數服務器,以去中心化的方式存儲協作訓練信息,避免服務器單點故障影響模型訓練的過程,并通過結合同態加密、秘密共享以及密碼學累加器技術實現可追蹤、可驗證和隱私保護的聯邦學習,增強模型訓練過程的安全性.同時,系統根據參與方的行為表現給出信譽評估,并據此選舉出一個聯邦學習委員會進行模型聚合和協同解密.信譽得分還將作為激勵機制的參考保障聯邦學習的公平性.

系統的概覽如圖1所示.由圖1可知,系統主要由4部分組成:任務發布方、參與方、委員會和區塊鏈.具體來說,任務發布方發布聯邦學習模型訓練任務,對該任務感興趣的節點可以申請參與到模型訓練當中,提交本地模型更新到區塊鏈.委員會負責聚合區塊鏈上記錄的所有局部模型更新,并提交全局更新到區塊鏈.最后區塊鏈替代集中式服務器收集和存儲協作訓練信息.下面將對PPFL-Chain的各個組件進行詳細說明.

1) 任務發布方.根據需求提出建立一個機器學習模型,同時發布聯邦學習模型訓練任務的要求(即存儲、計算能力等的要求),并支付一筆費用作為獎池.對此感興趣并符合要求的節點可以申請參與該聯邦學習任務.然后任務發布方將隨機選擇參數的初始化模型上傳到區塊鏈.隨著越來越多的節點加入其中并為模型訓練做貢獻,任務發布方將最終得到一個高性能的機器學習模型.

2) 參與方.指申請加入模型訓練任務并經過任務發布方審核通過的節點,其對該機器學習模型有需求,但由于自身存儲、計算能力不足或數據資源有限而無法單獨完成整個訓練任務.參與方在上傳局部更新到區塊鏈時,需要申明本地數據量大小,并附加相應的訓練耗時,據此表明自己的數據貢獻大小.

3) 委員會.系統將委員會中成員的數量設定為所有參與方數量的一半.初始委員會由任務發布方隨機指定參與方組成,并依次擔任委員會的領導者,負責模型聚合和發放數據貢獻獎勵給相應的參與方.在輪流擔任領導者一圈或未擔任領導者的委員會成員不在線時,系統將按照參與方的信譽值高低擇優選舉一半節點組成新的委員會,關于信譽計算的更多細節將在第4節中給出.

4) 區塊鏈.由于聯盟鏈作為區塊鏈的一種特殊類型,具備準入控制,符合需要預先審核用戶和具有相對穩定參與方集合的設定,PPFLChain使用聯盟鏈取代傳統聯邦學習中的參數服務器來存儲局部更新和全局更新.所有參與方共同維護區塊鏈賬本,單一節點的故障或退出并不影響其他參與方對信息的獲取,這提高了數據容災的能力.此外,由于區塊鏈具有透明、可追溯、不可抵賴的特點,系統對每個參與方的信譽評估歷史也被記錄在區塊鏈上,基于信譽的聯邦學習委員會選舉方案也變得更加開放、透明和可靠.

Fig. 1 System model of PPFLChain圖1 PPFLChain系統模型

3.2 威脅和安全目標

系統假設參與方是誠實訓練的,都是經過嚴格審核后加入的節點,有著獲得更好模型性能的期望,不會發起投毒攻擊以毒害全局模型,進而扭曲所有的局部更新,從而使整個協同訓練過程出錯.但是他們可能會對數據隱私感興趣或者有意無意地做出其他錯誤行為.接下來將討論PPFLChain面臨的威脅,以及在應對這些威脅時能夠實現的安全目標.

威脅1:本地數據和模型信息泄露.盡管在聯邦學習過程當中,每個參與方利用自身數據在本地進行模型訓練,只上傳中間參數,但這種明文參數可能被其他參與方利用,他們可以通過發起成員推理攻擊,推斷出局部數據的重要信息,或基于梯度發起參數推斷攻擊,獲取模型的敏感信息.

安全目標1:訓練數據和中間參數的機密性.聯邦學習參與方在不主動公開本地訓練數據的情況下,不會泄露數據隱私,其他方在協同訓練的過程中無法直接或間接地得到有關該方的真實數據信息.參與方利用本地數據訓練完模型后,通過同態加密技術加密參數后上傳,而不是傳輸明文信息,其他方無法根據密文更新推斷出該方的中間參數信息以及本地數據信息.

威脅2:參與方行為錯誤.主要包含3種錯誤行為:1)考慮參與方可能會為了節省訓練成本,謊報一個較大的數據量,而實際在本地進行模型訓練的數據集較小,以期獲得更多的數據貢獻獎勵;2)考慮委員會領導者在計算全局更新時可能會給出錯誤的聚合結果;3)考慮在協同解密時,委員會成員可能為了個人利益給出錯誤的解密份額,想要提前中止訓練過程.這些錯誤行為都將導致誠實的參與方蒙受損失,甚至導致協同訓練任務失敗.

安全目標2:模型聚合與秘密份額的正確性驗證.參與方上傳的局部更新密文以及委員會領導者計算的全局更新密文都將以公開透明的方式被記錄在區塊鏈上,任何參與方都可以通過這些事務來驗證計算結果的正確性.秘密份額的證據由雙線性映射累加器產生并被記錄到區塊鏈,任何參與方都可以利用該方案驗證秘密份額的正確性,監督委員會成員計算出正確的解密份額.

安全目標3:參與方的公平性保障.PPFLChain考量參與方的貢獻大小,對模型訓練貢獻較大的一方將獲得更多的獎勵.貢獻大小主要包含2個方面:1)參與方本地數據量大小.根據其訓練花費的時間與訓練樣本的多少成正比關系確定.2)參與方的信譽值.參與方只有誠實積極地為模型訓練過程做貢獻,才能提升自己的信譽值.高信譽值的參與方意味著做出了更多的貢獻,將得到更多的獎勵.PPFLChain還采取懲罰措施,對有錯誤行為的參與方進行罰款,以補償誠實的參與方.同時受信譽計算方案的影響,行為錯誤的參與方將會獲得較低的信譽得分.

3.3 累加器方案

Nguyen[35]提出的雙線性映射累加器,是基于q-SDH(q-Strong Diffie-Hellman)假設[36]的動態累加器,以雙線性對運算為基礎,能夠為集合中的元素提供簡短成員關系證明.設tup=(e,g,G,H,p)是雙線性映射的一組參數.對于s∈*p,給定元素gs,…,gsq∈G,q-SDH假設是指對于所有多項式q和所有概率多項式時間對手Adv:

(5)

該假設表明Adv幾乎無法通過破解累加器來偽造成員關系證明.式(5)是該累加器的安全基礎.

為實現委員會協同解密全局模型過程中秘密份額的正確性驗證,PPFLChain基于上述雙線性映射累加器構造,設計出適用于本系統的累加器方案,由4種概率多項式時間算法組成:

1)KeyGen(1λ)→(sk,pk).λ為安全參數,輸入1λ并選擇一個隨機值s∈*p;輸出為私鑰sk=s和公鑰pk=(g,gs,gs2,…,gsq).

3.4 工作流程

為了便于表示,表1列出了描述使用的相關符號:

Table 1 Notation Description

結合圖1中過程①~⑨,PPFLChain的工作流程主要包含6個階段:初始化、聯邦成立、全局更新下載、本地模型訓練、局部更新上傳、全局模型更新.

在初始化階段(l=0),任務發布方發布模型學習的任務要求,并支付一筆費用作為獎池.然后將隨機選擇參數的初始化模型W0上傳到區塊鏈(如過程①).節點根據自身計算能力和數據資源條件向任務發布方申請加入建模過程,審批通過的節點將參與到該模型訓練任務當中,并繳納一筆費用作為押金.具體的審批方式可以是線下協商等形式,這不是本文關注的重點.

在全局更新下載階段,參與方從區塊鏈上最新的塊下載全局模型更新Wl(如過程②),并將其作為下一次本地模型訓練的輸入.

在協同解密過程中,要求至少有k個委員會成員提供正確的解密份額來協作解密C(Wl)(如過程⑦).CMj利用持有的秘密份額sj通過式(2)計算得到解密份額cj并提供證據ρj證明其使用了正確的秘密份額進行計算,整個秘密份額驗證過程在算法1中進行了詳細描述.通過式(3)解密后生成的全局模型更新Wl被領導者上傳到區塊鏈(如過程⑧).

算法1.基于密碼學累加器的秘密份額驗證.

begin

證據生成(由任務發布方執行):

設S為秘密份額集合{s1,s2,…,sN};

應用Calc(·)生成累加值acc(S);

#acc(S)將作為秘密摘要記錄到區塊鏈.

對于每個秘密份額子集Si?S,Si={si}

應用ProveContainment(S,Si,pka)→ρi,生成證據.

#每個證據ρi將連同秘密份額si一起發送給參與方Pi.

驗證對象生成(由參與方執行):

對于每個擁有秘密份額si的參與方

應用Calc(Si,pka)→acc(Si);

然后發送驗證對象〈acc(Si),ρi〉給驗證者.

結果驗證(由驗證者執行):

從區塊鏈讀取秘密摘要acc(S);

應用VerifyContainment(acc(S),acc(Si),ρi,pka);

如果si是正確的秘密份額,輸出1;

否則,輸出0.

end

然后不斷迭代過程②~⑧直至模型收斂,模型收斂的條件是損失函數小于預先設定的值或迭代次數達到預先設定的最大迭代次數.最終任務發布方從區塊鏈上得到一個高性能的機器學習模型(如過程⑨).

值得注意的是,由于秘密共享方案的可配置性,PPFLChain在委員會成員協同解密全局模型更新時,一般設定k

4 信譽計算方案

委員會在PPFLChain的模型訓練過程當中扮演著重要角色,負責驗證參與方數據貢獻大小、聚合模型和協同解密全局模型.這都將關系到訓練模型的精度和協作學習的安全及效率,甚至是訓練過程的正常運作.因此,采取高效、準確的信譽計算方法來選舉出可靠的委員會成員是至關重要的.本節基于主觀邏輯模型設計了一種不信任增強的信譽計算方法,在評估不同實體可信度和可靠性水平的同時,引導委員會成員行為正確.

4.1 基于主觀邏輯的信譽表征

(6)

(7)

(8)

4.2 綜合委員會成員的信譽意見

(9)

參與方的信譽值更新將在每次全局模型更新后進行.

5 安全分析

本節根據PPFLChain面臨的威脅,回顧3.2節中系統實現的安全目標,并給出相應的安全分析.

5.1 機密性

5.2 正確性驗證

定義1.安全性[39].對于所有的安全參數λ∈,運行KeyGen(1λ)→(sk,pk),然后把公鑰pk給任意的多項式時間敵手Adv,如果Adv根據2個集合A和B生成B?A的證據ρ的成功概率是可以忽略不計的,就說明累加器是安全的.這里Adv成功是指其應用VerifyContainment(acc(A),acc(B),ρ,pk) 輸出結果為1,然而BA.

該方案所使用的累加器構造已經在文獻[39]中的q-SDH假設下被證明確實滿足了期望的安全性要求,定理及證明過程如下.

定理1.在3.3節中給出的累加器構造滿足定義1中的安全特性.

證明.用反證法證明.假設有一個敵手Adv生成了關于集合B?A的有效子集包含證據ρ(實際上BA).這意味著:

而實際上因為BA,所以存在(bj+s)不能被除掉,由此可以得到其中Q(s)是關于s的多項式,C是一個非0常數.因此敵手Adv可以得到:

這與q-SDH假設相違背.由推出矛盾得知,定理1成立.

證畢.

這個屬性確保了委員會成員偽造秘密份額證據的可能性是可以忽略的,是所設計的累加器方案能夠實現正確性驗證的保障.

5.3 公平性保障

6 實 驗

本節介紹了PPFLChain的實驗環境,并從訓練準確率、時間成本、信譽值方面對所實現的系統性能進行了評估.

6.1 實驗設置

為了評估提出的PPFLChain的系統性能,實驗在真實的數據集MNIST[40]上實現了系統的原型.該數據集用于手寫數字識別,擁有60 000個訓練樣本和10 000個測試樣本,每個樣本是一個28×28的灰度圖像,代表0到9之間的手寫數字.實驗將訓練集隨機劃分為數量相等的10個子集,并分別分配給10個參與方作為本地數據集.這樣,對于每個參與方,本地訓練樣本的數量為60 000/10=6 000.然后根據參與方人數設定的不同進行了7次實驗,分別有4,5,6,7,8,9,10個參與方,實驗編號分別用E-4,E-5,E-6,E-7,E-8,E-9和E-10表示.委員會成員的數量分別設定為2,2,3,3,4,4,5.

實驗在1臺配備了4核8線程Intel CPU i7-6700HQ和16 GB內存的筆記本電腦上使用了一個名為FISCO BCOS的區塊鏈系統來模擬PPFLChain.使用Python編程語言利用軟件開發工具包FISCO BCOS Python SDK來實現系統的業務邏輯.智能合約采用Solidity編寫.學習模型使用Python 3.7.11和Pytorch1.2.0編寫,并在NVIDIA Geforce GTX 970M GPU上執行.

區塊鏈節點被視為參與方和委員會成員,參與聯邦學習任務并與預定義的智能合約進行交互.生成的事務在區塊鏈中序列化.

6.2 性能評估

實驗通過訓練準確率、時間成本、信譽值3個指標來評價PPFLChain在多方協作學習下的有效性.

對于訓練的準確率,實驗設置了基線方和獨立方與PPFLChain進行比較.其中基線方在本地用6 000個樣本獨立訓練模型,不參與協作學習的過程;獨立方則使用包含60 000個訓練樣本的完整數據集獨立訓練模型.圖像分類模型均來源于相同的卷積神經網絡(convolutional neural network, CNN),模型卷積核大小為5×5,激活函數為ReLU.同時固定一組模型超參數以保證公平性.表2中總結了一些相關的訓練參數.

Table 2 Training Configuration

實驗分別對基線方、獨立方和E-4~E-10進行了10次數據提取,并把得到的最終結果的平均值繪制成圖2.其中,基線方的準確率為95.90%,獨立方的準確率為96.45%,E-4~E-10的準確率分別為96.12%,96.28%,96.14%,96.44%,96.38%,96.32%,96.22%.可以看出,PPFLChain都比基線方獲得了更高的準確率,這意味著協作學習得到了比單方面訓練表現更好的模型.同時,隨著參與方人數的增加,協作方訓練準確率提高,PPFLChain的性能不斷趨近于獨立方的訓練效果.雖然訓練準確率相比擁有完整數據集的獨立方略有損失,但PPFLChain能夠在多方協作的環境下,以去中心化的方式訓練模型,大大降低了隱私泄露的風險.

Fig. 2 Comparison of training accuracy among PPFLChain, standalone party and baseline party圖2 PPFLChain與獨立方和基線方的訓練準確率比較

接下來,記錄了實驗E-4~E10中參與方在協作訓練模型過程中加密梯度參數耗費的平均時間,分別為44.452 s,44.261 s,43.955 s,44.222 s,44.609 s,44.645 s,44.485 s,以及委員會成員在協同解密階段驗證秘密份額耗費的平均時間,分別為8.193 ms,8.380 ms,9.701 ms,9.614 ms,11.950 ms,12.143 ms,14.856 ms.由圖3可以看出,不同參與方數量下加密中間梯度所用的時間基本一致,這是由于各參與方在本地同步訓練,訓練集大小和模型的參數量相同,細小的差異僅取決于硬件性能.

Fig. 3 Time cost of encryption圖3 加密時間成本

Fig. 4 Time cost of verification圖4 驗證時間成本

為了評價信譽計算方案,實驗記錄了5個本地數據集大小互不相同的參與方分別與其他協同方的10次積極交互中的信譽值變化情況,用P1~P5表示,本地訓練樣本的數量分別為2 000,3 000,4 000,5 000,6 000.如圖5所示,數據貢獻較大的一方獲得了較高的信譽值,因為在評估參與方信譽時,本地數據集大小被作為計算信譽值的影響因素之一.

Fig. 5 Comparison of reputation values between participators with different amounts of local dataset圖5 本地數據量互不相同的參與方之間的信譽值比較

然后在不信任影響程度α=0.8和α=0.2的2種設置下又記錄了一個參與方與協同方的22次交互中的信譽值變化,該參與方在1~3次的交互中行為正確,在4~14次的交互中行為錯誤,在15~22次的交互中行為正確.設定不確性影響程度β=0.5,不確性影響常數c=2.如圖6所示,當表現錯誤行為時,該參與方的信譽值開始下降,并且在最初的幾次惡意交互中信譽值下降飛快,這意味著節點只要做出惡意行為,無需累積多次,就會付出較大的代價.而對于沒有信譽保護的方案,信譽值仍呈增長趨勢.同時在α=0.8的情況下信譽值的下降速度要比α=0.2的情況下更快,下降幅度也更大,可以看出,通過配置α的大小可以方便地控制節點作惡對信譽值的影響程度.此外,系統引入的信譽值是由多方評估計算得出并記錄在區塊鏈上,與沒有區塊鏈的信譽方案相比,這種去中心化和防篡改的特性能夠抵御內部攻擊,使得計算出的信譽值更加可靠和具有代表性.

Fig. 6 The reputation values of an unreliable participator圖6 不可靠參與方的信譽值變化

7 總 結

本文提出了一種基于區塊鏈的去中心化、安全、公平的聯邦學習模型——PPFLChain.模型引入信譽值作為衡量參與方可靠性的指標,并基于信譽值選舉可靠的聯邦學習委員會,負責聚合模型和協同解密全局更新.模型采用門限Paillier密碼算法實現局部更新參數的機密性,利用Shamir閾值秘密共享方案,為解密過程實現安全的密鑰管理,設計了一種基于雙線性映射的累加器方案為秘密份額提供驗證手段.利用主觀邏輯模型實現不信任增強的信譽計算方案作為聯邦學習委員會的選舉依據.模型還將信譽值作為激勵機制的參考,并懲罰有錯誤行為的參與方,以保證協作學習的公平性.最后在一個真實的數據集上實現了系統的原型,并對系統的安全性和性能表現進行了分析和評估.

作者貢獻聲明:周煒提供研究思路,審閱論文,提供論文修改意見;周煒和王超確定研究思路,負責論文起草、修改及最終版本修訂;徐劍、胡克勇和王金龍審閱論文,提供論文修改意見.

猜你喜歡
參與方信譽解密
基于秘密分享的高效隱私保護四方機器學習方案
基于單片機MCU的IPMI健康管理系統設計與實現
炫詞解密
解密“一包三改”
炫詞解密
炫詞解密
信譽如“金”
基于SNA視角的PPP項目參與方行為風險研究
BT模式研究
綠色農房建設伙伴關系模式初探
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合