999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種支持自適應聯邦學習任務的可信公平區塊鏈框架

2023-11-24 05:25:08張寶晨孔蘭菊李慶忠李文全郭秋曼
計算機研究與發展 2023年11期
關鍵詞:服務

張寶晨 黃 月 孔蘭菊,2 李慶忠,2 李文全 郭秋曼

1(山東大學軟件學院 濟南 250101)

2(山大地緯軟件股份有限公司 濟南 250101)

(baochenzhang@mail.sdu.edu.cn)

隨著數字時代的發展和人們對數據的日益重視,隱私保護、信息安全和數據所有權已成為人們關注的重要問題.區塊鏈[1]作為一種去中心化的分布式賬本技術,其核心特性是去中心化和不可篡改性,這意味著沒有單個實體可以掌控整個系統,同時也意味著區塊鏈上的數據是無法被篡改的,這些特點使得區塊鏈能夠在眾多領域都具有廣泛的應用前景.

在分布式系統中,一致性是非常重要的一個問題,因為不同節點之間可能存在數據不一致的情況,導致系統出現錯誤.區塊鏈通過使用共識算法,保證了不同節點之間的數據一致性.例如,在比特幣區塊鏈中,采用了工作量證明(proof of work,PoW)[2]算法來實現共識,這樣所有的節點可以達成一致的結果.因此,區塊鏈能夠有效地解決分布式系統中的一致性問題.

在PoW 中,挖掘區塊的礦工節點需要解決一道難題,獲得正確答案后才能提交區塊.其他節點需要驗證這個難題是否解決來決定是否接受區塊,從而達成所有節點之間的數據一致性.雖然PoW 算法可以實現一致性,但是它也存在著一些問題,其中最顯著的問題就是算力的過度耗費.PoW 算法中礦工需要通過不斷進行無意義的哈希計算來尋找正確的答案,這導致PoW 算法會消耗大量的能源,目前以PoW為共識算法的比特幣挖礦消耗的總能源已經超過了奧地利每年的總用電量,這造成了極大的能源浪費[3].

另外,比特幣等基于PoW 的公有區塊鏈平臺,為了控制區塊的出塊速度,會設置目標難度值.這是一個衡量挖礦難度的參數,該參數根據比特幣網絡的總算力(即全網的礦機算力)來動態調整的.目標難度值的變化對應著全網礦工的算力變化.如果全網算力增加,目標難度值也會增加,反之亦然.定期調整目標難度值,能夠保證每個區塊的挖礦難度始終保持在一個穩定的水平,但是這也導致了PoW 挖礦越來越難的現象.截止2023 年3 月想要得到一個比特幣需要46.84 萬億次哈希計算,如圖1 所示.

Fig.1 Changes in bitcoin’s difficulty values圖1 比特幣的目標難度值變化

目前,大多數公有鏈系統采用的共識機制仍然是PoW,但是其高能耗和低吞吐量的現狀已經成為了區塊鏈發展的瓶頸.

與此同時聯邦學習(federated learning,FL)[4]作為一種新興的機器學習技術,可以在不暴露原始數據的情況下,讓多個參與方通過模型的聯合訓練,實現模型的共同提升.與傳統的集中式機器學習相比,聯邦學習具有更高的安全性和隱私保護性[5],但是聯邦學習訓練過程中需要大量計算資源,同時也缺乏一種公平有效的參與方激勵機制,而區塊鏈的公開透明、不可篡改等特性保證了區塊鏈能夠提供一種公平的節點激勵機制.因此,很多研究考慮將聯邦學習引入區塊鏈領域,探索一種新的共識機制和聯邦學習激勵機制[6].

因此,針對上文提出區塊鏈共識算法中的算力過度耗費問題和聯邦學習缺乏有效公平激勵的問題,本文引入聯邦學習技術,提出了一種支持自適應聯邦學習任務的可信公平區塊鏈框架(a trustworthy and fair blockchain framework supporting adaptive federated learning task)——TFchain,并設計了一種新的共識機制——PoTF(proof of trust and fair),該機制不僅可以減少算力的耗費,而且可以通過引入聯邦學習和貢獻度的計算,進行PoW 和PoTF 的共識切換,從而提高整個區塊鏈系統的效率和安全性.與此同時,本文基于區塊鏈的設計架構,對聯邦學習的參與方進行了合理的貢獻度評估和激勵.最后,本文還設計了防止聯邦學習參與方作惡的算法,有效地保證了區塊鏈的安全性和聯邦學習的效率.

本文的主要貢獻包括4 個方面:

1)提出了一種支持自適應聯邦學習任務的可信公平區塊鏈框架TFchain.TFchain 將服務節點和普通節點組成聯邦系統,完成所有聯邦學習任務發起者提出的訓練任務.通過將算力使用在聯邦任務上,避免了傳統PoW 的算力過度耗費問題.

2)提出新的共識機制PoTF.在每個聯邦學習訓練任務開始時,將上次任務貢獻度最高的節點作為服務節點.普通節點進行訓練并且上傳模型更新參數,服務節點收集參數然后進行聚合,并且在聚合的同時計算普通節點的貢獻度,然后生成區塊,既保障了模型參數的及時更新,又提高了區塊的吞吐量.

3)提出了一種基于區塊鏈和貢獻度計算的聯邦學習獎勵分配機制,保證服務節點的流動性,實現獎勵的公平分配,鼓勵參與方積極參與到聯邦任務中.同時提出了一種節點作惡檢測策略,通過投票更換在訓練中排除作惡的服務節點,保證TFchain 的安全性和可信度.此外,在訓練中還會排除貢獻度異常的普通節點,進一步提升了獎勵分配的公平性.

4)通過實驗證明了TFchain 的有效性和可行性,同時證明TFchain 是一種可插拔聯邦模型的區塊鏈組件,可以方便地加入不同的聯邦學習任務.TFchain能夠在節約算力的同時,提升區塊鏈的吞吐量,并且為聯邦學習提供公平的激勵機制.

1 相關工作

1.1 區塊鏈

在區塊鏈中,為了確保所有節點賬本數據的正確性,使得所有節點達成一致并防止惡意節點提交假數據,需要使用共識機制.目前,主要使用的共識機制有PoW[2]、權益證明(proof of stake,PoS)[7]、代表權益證明(delegated proof of stake,DPoS)[8]和實用拜占庭容錯(practical Byzantine fault tolerance,PBFT)[9]共識協議等.

在較大規模的區塊鏈平臺中,比如以比特幣[2]和以太坊[10]為代表的公有鏈平臺,使用的是PoW 共識機制.然而,這種機制中的工作量只是大量重復且無意義的哈希計算過程,導致系統中99%以上的算力被耗費,同時也浪費了大量電力[11-12],這一缺陷一直受到詬病.此外,為了防止惡意節點進行女巫攻擊,PoW 中設定的哈希計算難度值往往很大,導致基于該共識機制設計的區塊鏈平臺的交易吞吐量通常很低[3].以比特幣為例,其吞吐量一直維持在每秒6~7 筆,完全無法滿足需要處理大量高頻交易的應用場景.

1.2 聯邦學習

由于聯邦學習的分散性,目前學習過程中存在客戶端不積極或者作惡等問題,這些問題可能會導致模型性能下降或模型不可用等后果.

客戶端不積極是指在訓練過程中,有些客戶端可能不愿意或者不能積極參與到模型的訓練中.聯邦學習的客戶端不愿意在沒有回報下參與聯邦學習訓練,所以如何激勵客戶參與很重要.客戶端不積極也可能是硬件性能、網絡帶寬等因素造成的.在聯邦學習中,如果有太多的客戶端不積極,就會導致整個模型的性能下降或者訓練失敗[13].另外一些惡意的客戶端可能會惡意破壞模型更新,傳輸一些錯誤數據,導致全局模型偏離正常模型.交換梯度對參與者來說不夠安全,例如一個對抗性參與者可以推斷出在其他人的訓練數據中存在準確的數據點(成員推斷).

為了解決客戶端不積極或者作惡的問題,研究者們提出了許多方法.常見的方法是通過設計合適的獎勵機制來激勵客戶端積極參與訓練.文獻[14]基于博弈論設計了一種有效的激勵機制,選擇最有可能提供可靠數據的用戶,并補償其隱私泄露的成本.文獻[15]提出了質量意識激勵機制,在預算范圍內,建立逆向拍賣問題的模型,以鼓勵高質量學習用戶的參與.

此外,還可以采用多方安全計算技術來保證模型的隱私性和安全性,從而更加公正地給參與訓練的客戶端提供獎勵或者懲罰.文獻[16]設計一個基于貝葉斯博弈論的激勵機制,確保參與者提供真實的有用預測.文獻[17]提出了一種分層的兩級激勵機制設計,有效地分配數據所有者和聯邦學習參與者的資源,以完成編碼聯邦學習任務.

1.3 區塊鏈和聯邦學習結合

在聯邦學習中,數據不需要集中存儲在一個中心節點,而是分布在各個設備上,這與區塊鏈的分布式存儲結構相似,因此將區塊鏈技術與聯邦學習相結合是一個研究熱點[18].

區塊鏈的技術可以實現聯邦學習參與者的貢獻度評價和公平激勵.在區塊鏈網絡中,每個礦工的貢獻度都可以通過計算能力來評價.礦工的貢獻度越高,獲得獎勵的概率也越高.這樣可以激勵礦工提供更多的計算資源,并保證整個網絡的安全和穩定.在聯邦學習中,每個設備也可以通過貢獻度評價來獲得相應的獎勵.例如,在聯邦學習中,每個設備可以通過提供更多的數據或更準確的模型來提高貢獻度,從而獲得更多的獎勵.這樣可以激勵設備提供更多的計算資源,并保證聯邦學習的分布式和公平性.通過區塊鏈對聯邦學習參與者的貢獻度進行評價的方法主要有基于信譽度和基于博弈論2 種.

聯邦學習中的信譽度[19]是一個用于衡量參與者參與聯邦學習的貢獻和表現的指標.文獻[20]提出了一種用于聯邦學習的區塊鏈激勵機制,該機制通過評估參與者的信譽和貢獻指標,公平獎勵高效率的節點,同時懲罰惡意節點.文獻[21]提出了用于去中心化聯邦學習的共識機制,通過基于信譽的激勵措施,激勵礦工的誠實參與并提高共識效率.文獻[22]提出了一種用于跨設備聯合學習的去中心化參數聚合鏈,該鏈利用區塊鏈技術來保護中間參數的隱私,并使用基于信譽的激勵機制來激勵跨設備聯合學習中的協作節點,利用智能合約來實現可靠的參與者選擇和激勵機制.

博弈論[23]是研究決策者之間的相互作用和影響,以及他們在這種相互作用下做出的最優決策,因此,博弈論可以用來分析和解決聯邦學習中的協作和競爭問題.文獻[24]提出了一種基于區塊鏈的支付系統FedCoin,它通過沙普利值(Shapley value,SV)評估聯邦學習參與者的貢獻.文獻[3] 引入了一種名為聯邦學習證明的新型能量回收共識算法,該算法將最初耗費在PoW 中的能量再投資于聯邦學習,并且基于博弈論進行參與者的貢獻度計算和激勵分配.文獻[25]提出了一種基于貢獻證明的共識機制,該機制避免了挖礦過程造成的區塊生成延遲,并異步緩解了模型參數驗證中的擁塞.并且根據每個節點生成的區塊數量以及其生成的區塊被其他節點引用的次數來計算每個節點的貢獻.

文獻[19-25]所述的研究都是側重于區塊鏈對于激勵的分配方面,且大部分激勵是基于參與方的信譽和參與者間的博弈關系設計的,而沒有將區塊鏈的共識過程與聯邦學習的訓練過程進行有效地結合.例如FedCoin,聯邦學習過程仍然是在鏈外進行的,只是將訓練完成的結果和過程參數上鏈記錄并且計算參與方的貢獻度.

另外,區塊鏈還可以提高聯邦學習的安全性,為聯邦學習進行參數的記錄存儲和訓練過程提供隱私保護.由于聯邦學習中涉及到模型數據傳輸,因此存在數據隱私泄露的風險.通過將聯邦學習與區塊鏈相結合,可以實現更高的安全性.文獻[26]提出了一種名為基于區塊鏈的異步聯合學習的新方法,使用區塊鏈來確保模型數據不會被篡改.文獻[27]提出了一種用于安全的多方機器學習的方法,該方法使用區塊鏈和加密技術來協調對等客戶之間保護隱私的機器學習過程.文獻[28]提出了一種去中心化聯合學習方法,該方法使用區塊鏈技術來存儲模型.文獻[29]提出一個雙層區塊鏈驅動的聯邦學習框架,該框架由多個分片網絡和基于有向無環圖的主鏈組成.文獻[30]提出一項新聚合規則,該規則使用區塊鏈促進透明的流程和法規的實施.文獻[31]提出了一種基于區塊鏈的聲譽感知細粒度聯邦學習方法,以確保在移動邊緣計算系統中進行值得信賴的協作訓練.

在文獻[26-31],區塊鏈更多充當記錄和見證的技術,而不是將區塊鏈的節點算力用于聯邦學習的訓練.

2 預備知識

2.1 區塊鏈的共識機制

共識機制是指在分布式系統中實現一致性的算法.區塊鏈共識機制是指在區塊鏈中節點之間達成共識的算法,以決定哪個節點可以添加下一個區塊到區塊鏈中.共識機制可以分為基于權益的共識機制、基于權威的共識機制和基于工作量的共識機制等不同類型.

PoW 是一種基于工作量的共識機制,最早被用于比特幣中,它要求節點通過計算一個特定難度的哈希函數來尋找一個符合要求的數字,并將其添加到區塊鏈中,其公式為:

其中nonce是隨機數,data是待添加數據,target是目標哈希值,通過不斷嘗試不同的nonce值,直到找到符合要求的數字,從而完成添加區塊的過程.PoW 機制的主要缺點是需要大量的計算資源,因此存在一定的安全性問題.

目前,基于工作量的共識機制已經被廣泛應用于各種區塊鏈系統中,如以太坊、萊特幣等.此外,還出現了其他類型的共識機制,如基于權益證明的共識機制和拜占庭容錯共識機制等,以滿足不同場景下的共識需求.

2.2 聯邦學習的目標函數和聚合算法

聯邦學習的目標函數主要作用是衡量模型的預測結果與真實結果之間的誤差,并提供一個用于優化模型參數的方向.不同的聯邦學習算法和任務可能使用不同的目標函數.

在聯邦學習中,模型的目標函數通常定義為

其中w表示模型參數,W表示參數的取值范圍,n表示客戶端的數量,fi(w)表示第i個客戶端的目標函數,其形式為

其中,Ni表示客戶端i的本地數據集的大小,(x,y)表示一個數據樣本,?(w,x,y)表示損失函數.每個客戶端的目標函數形式相同,但是本地的數據集是不同的.

在聯邦學習中,由于每個客戶端的本地數據集都不同,因此不能像傳統的機器學習一樣在全局數據集上進行訓練,而是需要采用一些特殊的技術來解決這個問題.其中一種常用的方法是聯邦平均算法FedAvg[32],FedAvg 的本地更新方式為:

FedAvg 的全局更新公式為:

2.3 沙普利值

貢獻度是指一個變量對于整個系統輸出的影響程度,它在很多領域中都有著廣泛的應用,例如特征選擇和優化、網絡分析中的節點重要性評估等.貢獻度的計算方法有很多種,其中一種常用的方法是使用沙普利值[33].

沙普利值是一種用來解決合作利益分配問題的方式,它由諾貝爾獎得主勞埃德·斯托韋爾·沙普利(Lloyd Stowell Shapley)提出.其目標是構造一種綜合考慮沖突各方要求的折中的效用分配方案,從而保證分配的公平性.沙普利SV的定義為

其中,系統共有m個參與者,i代表系統的第i個參與者,i∈{1,2,...m}.xi和yi分別是第i個參與者的輸入變量和輸出變量.SVi則表示第i個輸入變量對于系統輸出的影響程度,S Vi∈[0,1],SVi越大表示該變量對于系統輸出的影響越大.

3 支持自適應聯邦學習任務的可信公平區塊鏈框架TFchain

本節分為6 個部分:

第1 部分介紹了支持自適應聯邦學習任務的可信公平區塊鏈框架TFchain,該框架包含了鏈上鏈下的協作完成聯邦學習任務的過程,以及TFchain 和PoW 的切換機制.

第2 部分介紹了TFchain 中的區塊鏈的數據結構.

第3 部分介紹了全新區塊鏈數據結構下,一種高效且安全的共識機制PoTF,它通過引入沙普利值來正向激勵參與者.

第4 部分具體介紹了PoTF 中不同角色的任務和運行流程.

第5 部分介紹了基于聯邦學習貢獻度的節點獎勵方法.

第6 部分介紹了一種應對服務節點作惡策略,即將節點的行為記錄在區塊鏈上,以提高節點的透明度和可信度,當發現服務節點時,在訓練中排除作惡的服務節點.

3.1 TFchain 的整體框架

TFchain 的整體架構如圖2 所示,TFchain 可以整體劃分為鏈上和鏈下2 個部分,其中鏈上負責交易的處理、學習參數的收集和聚合、區塊的打包等工作,鏈下負責進行聯邦學習的參與方貢獻度計算和本地模型訓練等工作.

Fig.2 Structure of and flowchart TFchain圖2 TFchain 結構與流程圖

TFchain 中區塊鏈的共識節點同時也是聯邦學習的參與方,最終會根據聯邦學習的訓練過程和結果對各個參與方進行貢獻度評價,最終分配區塊鏈的記賬權和學習的獎勵.

在每次訓練任務開始時,TFchain 會根據歷史貢獻度選擇PoTF 的服務節點.服務節點負責收集訓練后的參數并進行聚合,然后打包,其包含每個普通節點訓練參數和普通交易的區塊,在完成每次的訓練任務后,服務節點會在本地計算每個普通節點的貢獻度,在本次訓練周期Epoch 的最后一個區塊中,服務節點會上傳計算的所有參與方本次學習任務的最終貢獻度并且分配獎勵.而在TFchain 中,普通節點會作為聯邦學習的參與方,使用私有數據集訓練本地模型并上傳訓練后的模型參數,并根據貢獻領取相應的獎勵.

如果服務節點有作惡行為,普通節點也能夠進行投票并永久排除本輪服務節點.貢獻度最高的本輪學習的參與方會成為下一輪任務的服務節點,然后進行下一輪學習任務的訓練周期Epoch,直到交易池中的學習任務列表為空.TFchain 可以通過獎勵機制和投票機制來確保服務節點的公正性和參與方的利益.因此基于PoTF 的TFchain 可以顯著避免算力過度耗費,并進行公平的獎勵分配.

下面介紹TFchain 的共識切換策略.本文在區塊鏈交易池中獨立建立了一個聯邦學習任務列表.學習任務發起方可以通過向區塊鏈發送交易的方式發布學習任務,交易內容是學習任務的具體信息,包括任務名稱、任務描述、任務數據集、參與方信息等.在此處本文采用一種PoTF 和PoW 的共識切換機制,具體如圖3 所示.

Fig.3 Switched consensus mechanism of TFchain圖3 TFchain 的共識切換機制

在這個機制中,TFchain 在運行過程中是基于交易池中的學習任務列表進行實時切換的,當新的任務加入到交易池中的學習任務列表時,應該采用先進先出的方式在交易池中進行存儲.而區塊鏈對交易池的學習任務列表進行實時監測,當交易池中存在未訓練的聯邦學習任務時,將其取出,開啟PoTF并且進行任務的訓練,直到所有任務訓練完畢.當任務池中為空后,則切換到PoW 共識.

此外,雖然本文框架主要服務于聯邦學習任務的高效和安全運行,但是不參與聯邦學習的普通區塊鏈節點也可以加入到共識過程中.這種不參與聯邦學習的節點在TFchain 的不同共識階段可以執行不同的功能:在無聯邦學習任務時,不參與聯邦學習的節點可以參與到切換的正常PoW 共識中,執行共識節點的任務;在系統中有聯邦學習任務,需要進行PoTF 共識時,不參與聯邦學習的節點可以作為區塊鏈的賬本節點,同步共識區塊鏈賬本,并且進行交易和賬本的正確性驗證,進一步加強聯邦學習期間的系統安全性.

以上就是TFchain 的整體框架,這種框架不僅可以實現高效快速的區塊鏈交易處理性能,確保聯邦學習的數據隱私保護和模型快速更新,而且還能提供公平的聯邦學習獎勵以激勵參與方的積極性.

3.2 PoTF 共識過程中的區塊結構

PoTF 是本文提出的一種全新的基于聯邦學習的共識算法,為了適應聯邦學習的相關特性,對區塊鏈的整體數據結構也進行了全新的設計.

由圖4 可知,PoTF 的區塊頭包含7 方面內容:

Fig.4 Block structure of TFchain圖4 TFchain 的區塊結構

1)前一區塊哈希(Pre_Hash);

2)當前的區塊高度(Height);

3)當前區塊的交易默克爾樹根(Merkle_Root);

4)當前服務節點地址(Master_Node),當本次學習任務結束,結束本Epoch 的PoTF 時,當前Epoch 的最后一個區塊要進行服務節點地址的更新,更新為選定的下一輪學習任務的服務節點;

5)本輪聯邦學習的聚合參數(Con_parameter),每個Epoch 的區塊0 中設置為默認0;

6)當前的任務信息(Task);

7)其他相關信息(Additional_Data).

而PoTF 中區塊體主要包含的就是聯邦學習中參與方每輪的本地訓練參數和普通的區塊鏈交易.但是需要說明的是,在本Epoch 的最后一個區塊中,服務節點需要在區塊體中公布本次學習任務中所評估的所有參與方的貢獻度和獎勵分配情況.

3.3 PoTF 共識算法

PoTF 共識算法是在TFchain 檢測到交易池中聯邦學習任務列表中有未完成任務時開啟的共識機制,該共識機制能夠有效地提升區塊鏈的吞吐量,在實際應用中,我們可以根據聯邦學習應用領域的不同,依據TFchain 框架建立多個基于PoTF 共識的區塊鏈分片,每個分片負責進行一個應用領域的聯邦學習任務.由于不同的應用領域學習任務差異大,也不存在跨分片交易問題,因此區塊鏈的吞吐量與分片數量呈正相關趨勢,能夠大大提升區塊鏈的可擴展性.由于不同分片的工作流程是相同的,因此,本文統一使用單分片的架構進行描述,但是在實際應用中可以拓展到多應用場景、多分片的架構.

PoTF 算法總體的共識流程在圖2 的TFchain 的總體框架圖中有所展示,具體有9 個步驟:

第1 步,服務節點選擇交易池中未完成的一個學習任務,并打包任務的發起方發布的任務信息和相關的模型信息到本Epoch 的第1 個區塊(區塊0)中.

第2 步,普通節點從區塊0 中同步訓練任務信息及訓練參數,訓練參數應該包括訓練輪數、學習率、損失函數等.

第3 步,普通節點進行本地訓練.在本地訓練過程中,客戶端使用自己的數據集進行訓練,然后將訓練結果返回給服務節點.

第4 步,服務節點收集訓練后的參數并進行聚合.在聚合過程中,服務節點記錄聚合過程中的參數,然后計算參與到每次聚合的普通節點的貢獻度.

第5 步,服務節點發布區塊.區塊包含默認信息、每個客戶端的參數以及聚合后的參數.此外,區塊頭還應包括前一個區塊的哈希值、默克爾樹根、參數的哈希值等信息.

第6 步,重復第2~5 步.在每一輪訓練中,客戶端會使用新的訓練參數進行本地訓練,并將訓練結果返回給服務節點.服務節點收集這些結果,進行聚合并發布新的區塊.這個過程重復進行,直到訓練輪數達到預設值.

第7 步,服務節點依據參與節點的貢獻度確定獎勵的分配方式,并發布本Epoch 的最后一個區塊.

第8 步,更新下一輪學習任務的服務節點(選擇貢獻度最高的參與方作為下一輪任務的服務節點,第一次聯邦學習任務時,隨機選擇一個節點作為服務節點),并結束本次聯邦學習任務.

第9 步,當前服務節點則在下一輪任務中作為普通節點.

3.4 TFchain 的節點任務劃分

本節將進一步對3.3 節的PoTF 中服務節點和普通節點的任務進行詳細描述.

如圖5 所示,服務節點主要有2 項并行任務,其一是每輪參數的收集和區塊的打包,另一項是參與方的貢獻度計算.服務節點的具體任務執行流程如算法1 所示.

Fig.5 Illustration of parallel task execution of service nodes in PoTF圖5 PoTF 中服務節點的并行任務執行示意圖

具體而言,算法1 主要分為3 部分:1)任務初始化.從交易池的學習任務列表中獲取一個任務,并將初始信息打包出塊.2)訓練.在一定的時間內,接收參與節點發送的訓練數據,并按照某個聯邦聚合函數(可插拔可替換)對這些數據進行聚合,計算出全局模型,同時通過沙普利值計算貢獻度,然后發布區塊.3)貢獻度計算及分配獎勵.根據沙普利值計算參與方的貢獻度,并且分配獎勵,其中服務節點領取50%的獎勵,并按照各個節點的貢獻度按比例分配剩余獎勵給其他節點,并且將貢獻度最高的普通節點設置為新的服務節點.

算法1.服務節點執行訓練過程.

輸入:交易池pool中的任務信息;

輸出:經過良好訓練的全局模型w,按照貢獻進

行的獎勵分配R.

(任務初始化)

需要說明的是,在多輪的聯邦學習中,參與訓練的節點對全局模型的影響會越來越小,其貢獻度的變化也會逐漸變小.因此,當參與訓練的節點貢獻度變化過小時,會停止每一輪貢獻度的計算,然后根據前期貢獻度來計算每個參與方本次學習任務中的最終貢獻度.

具體而言,任務初始化部分發布的區塊對應圖5中的區塊0,訓練部分發布的區塊對應區塊1~n-1,貢獻度和獎勵分配相關發布的區塊對應區塊n.具體的區塊結構如圖4 所示.

算法1 使用的聯邦聚合函數可以根據實際情況進行替換,從而提高算法的適用性和性能.算法1 中,貢獻度最高的普通節點可以成為新的服務節點,從而保證了服務節點的動態變化.

算法2 詳細介紹了PoTF 的普通節點執行訓練過程.

算法2.參與節點執行訓練過程.

算法2 與算法1 對應,同樣分為3 部分:1)任務初始化.從區塊鏈中獲取初始信息,設置模型.2)本地訓練.在一定的時間內,將數據集Dk劃分為大小為B的批次,并在每個批次上進行訓練,得到本地模型.3)貢獻度獲取.節點完成訓練后,根據節點的貢獻度領取相應的獎勵.

算法2 相對于算法1 來說,更加簡單易懂,易于實現和部署,因此適用于部署在區塊鏈的普通節點中,作為聯邦學習的參與方參與到共識和聯邦學習中.同時,算法2 中節點之間只需傳輸本地模型,而不需要傳輸所有數據,因此節省了通信量,減少了網絡傳輸時間.

3.5 TFchain 的貢獻計算及獎勵分配

在PoTF 運行的過程中,服務節點會使用沙普利值的計算方式,在鏈下持續計算每個參與方在整個聯邦學習過程中的貢獻度,在每次收到參與節點的本地模型,對全局模型進行更新后,計算更新后的模型的提升程度,該值將用于計算參與節點的沙普利值.并且在打包本Epoch 的最后一個區塊時,將每個節點的最終貢獻度公布,并且根據貢獻度分配獎勵.

本文設定的獎勵分配機制是:本次學習任務中50%的獎勵將分配給本輪共識的服務節點,剩下50%的獎勵按照其他參與方的貢獻度進行等比例分配,并且參與方中貢獻度最高的節點自動成為下一輪學習任務和PoTF 的服務節點(本輪服務節點由于不參與本地模型的訓練,因此不會成為連續當選下一輪的服務節點),能夠在下一輪PoTF 共識中獲得成為服務節點的50%的獎勵.

3.6 TFchain 的服務節點作惡檢測機制

服務節點作惡可能表現為惡意修改參數信息或者偽造貢獻度信息,因此如果最近m個區塊的參數信息、貢獻度不符合預期,就有可能發現服務節點作惡.

針對貢獻度計算和區塊打包中忽略某些客戶端參數的作惡行為,本文設計了基于投票的服務節點作惡檢測和更換機制,當普通節點(聯邦學習的參與方)發現服務節點作惡(貢獻分配不平均或多次忽視某一客戶端的參數不進行聚合)后,該節點會發起更換服務節點的投票并廣播給全部節點的方式進行服務節點的更換.

本文設計的服務節點作惡檢測和更換機制可以有效防止服務節點作惡.如果一個服務節點無法按照預期工作,其他節點可以通過發起投票來選舉新的服務節點,保證共識算法的正常運行.在本文中,我們設定投票需要2/3 的節點同意才能進行服務節點變更,這個規則是為了保證新的服務節點能夠獲得足夠多的支持,從而使整個系統能夠繼續正常工作.同時,這也是防止惡意節點隨意發起更換服務節點的關鍵措施.

基于以上思路,本文提出了算法3,用于服務節點的作惡檢測和更換.

算法3.參與節點發現主節點作惡后的更換過程.

輸入:質疑信息Qmsg;

輸出:投票同意服務節點作惡的節點大于2/3,

如果是則更換服務節點.

(發起質疑)

①sentMsg(Qmsg,allNode);

(投票)

②Msgcount=0;

③whilenowTime

④ ifreceiveMsg≠ Null

⑤Msgcount++;

⑥ end if

⑦ end while

(同意服務節點作惡的節點小于2/3,向其他節點確認更換主節點)

⑧ ifMsgcount > N×2/3

⑨sentMsg(changeServerNode,allNode);

⑩Changecount=0;

? whileChangecount

? ifreceiveMsg≠ Null

?Changecount++;

? end if

? end while

(主節點替換)

?sentServerNode(max(RN-ServerNode)).

? end if

算法3 描述了一個基于投票的機制來替換作惡的服務節點的過程,主要分為5 部分:

1)發起質疑.某個節點發現服務節點作惡后,會向其他節點發起質疑,引發投票替換服務節點.

2)投票.節點收到質疑后,在一定時間內,如果有超過2/3 的節點同意替換服務節點,則進入下一步.

如果同意替換的節點不足2/3,則認為投票結果不足以作為更換服務節點的依據,返回Null.

3)向其他節點確認更換服務節點.如果投票結果符合條件,則通知其他節點確認更換服務節點.

4)服務節點替換.如果有超過2/3 的節點同意更換服務節點,則選擇貢獻度最高的節點作為新服務節點,替換原服務節點.

5)切換服務節點.完成服務節點替換后,返回新服務節點.

通過算法3 的投票機制能夠確保服務節點的公正性和可信度.如果投票通過,會重新選擇貢獻度第2 高的節點作為新服務節點,能夠保證整個網絡的穩定性和效率;如果投票結果不足以作為更換服務節點的依據,算法會終止,能夠防止虛假投票的發生.

4 安全性分析

4.1 服務節點的作惡

服務節點的作惡行為可以分為聯邦學習中作惡、貢獻度計算中作惡、區塊打包中忽略某些客戶端參數作惡等3 種行為.

針對聯邦學習中服務節點投毒攻擊等作惡方式,由于服務節點不參與本輪聯邦學習的本地模型訓練,只負責參數的聚合,所以無法進行這種方式的作惡.

針對服務節點的以下2 種作惡行為:貢獻度計算中作惡和區塊打包中忽略某些客戶端參數作惡,我們設計了有效的服務節點作惡檢測和更換策略.而根據策略的設計,從理論上來說,如果有超過1/3 的節點是惡意的,那么算法就無法保證安全性和正確性.因為惡意節點可以通過阻止投票數超過2/3,來阻止服務節點變更的發生,從而導致整個系統無法正常工作.本文的共識安全性是建立在節點數量和誠實節點比例的基礎之上的.

在實際應用中,如果網絡中存在大量惡意節點,那么就需要采取其他措施來提高系統的安全性,但是本文的環境是相互協作的聯邦學習客戶端作為節點,即使有作惡節點也很難超過總節點數的1/3.

4.2 普通節點的作惡

普通節點的作惡行為可以分為拒絕學習作惡和參數篡改作惡2 種行為.前者節點可能會故意中斷其與服務節點的通信;后者節點可能會篡改模型,使其產生錯誤的輸出結果或引導全局模型發生偏移.

針對普通節點拒絕學習作惡,即節點不進行本地訓練更新參數,影響總體聯邦學習訓練效率的行為,本文通過公正的激勵機制來鼓勵參與者的積極參與,從而減少參與者的作惡動機.

為了證明本節的分析,我們可以通過為參與者提供一定的獎勵來激勵其誠實地參與聯邦學習,我們實現了不同的作惡節點比例下的聯邦學習的訓練和貢獻度的計算過程.實驗結果表明,在本文設計的框架下,參與者如果拒絕參與聯邦學習,則貢獻度與誠實節點將會逐漸拉大,無法獲得相應的獎勵,從而減少其作惡動機.由圖6 可知,如果系統中沒有節點作惡,誠實節點正常進行本地模型的聚合并且發送參數給服務節點,每個參與方的貢獻基本與其訓練精度相對應,但是一旦出現節點作惡,隨著作惡節點比例的提升,誠實節點的貢獻度會被評估得越來越高,并且根據圖7 可以發現,雖然作惡節點的總體比例在上升,但是這些節點的總貢獻度占全體貢獻度的比例卻很少,從而保證誠實節點拿到的系統激勵遠高于作惡節點.

Fig.6 The average contribution of nodes with different percentage of bad behaviors圖6 不同作惡比例下節點的平均貢獻度

Fig.7 All contribution of nodes with different percentage of bad behaviors圖7 不同作惡比例下節點的總貢獻度

如果普通節點不在意獎勵,只是想破壞全局模型進行作惡,通常會選擇參數篡改作惡.針對普通節點參數篡改作惡,由圖6 可以觀察到,作惡節點與誠實節點之間的貢獻度差異會被逐漸拉大,最終該作惡節點將會被評估為低貢獻度,累計到一定程度后被剔除出聯邦學習.在這種機制下,普通節點無法進行這種方式的作惡.

5 實驗

5.1 實驗設置

在本節中將TFchain 與基于PoW 的區塊鏈系統、基于聯邦學習貢獻度的區塊鏈FedCoin 進行比較.PoW[2]是大多數公有鏈系統采用的共識機制.FedCoin[24]是一種基于區塊鏈的支付系統,其中引入了沙普利值來評估參與者的貢獻度,但是其聯邦學習過程是在鏈外進行的.而且FedCoin 只將訓練結果和過程參數上鏈記錄,然后再計算參與方的貢獻度.因此,FedCoin 中區塊鏈和聯邦學習部分是分離的.

本文在2 個圖像數據集上進行實驗:MNIST[34]和EMNIST[35].MNIST 是一個手寫數字數據庫,通常用于訓練各種圖像處理系統.EMNIST 是MNIST 的擴展版.

下面的實驗如果沒有特殊說明,基本設置為:

本文共識切換中設置的PoW 算法挖礦難度為4,對比的PoW 算法也將挖礦難度設置為4,FedCoin 與TFchain 進行的聯邦學習訓練任務是相同的.

聯邦學習任務中運行200 個全局通信輪,設置了總參與用戶數量為20,每次通信的用戶數量為10.采用局部更新步驟T=20,每一步使用一個大小為B=32的迷你批處理.設置的基本聚合函數是FedAvg[32],本地模型是一個基本CNN 模型.實驗結果采樣自3 個不同隨機種子的均值和標準差.

本節所有的實驗均在Intel?CoreTMi9-10900k CPU@ 3.70 GHz 3.60 GHz 且具有64GB RAM 的 PC 平臺上完成.

5.2 算力分析

目前在比特幣、以太坊等公有鏈平臺進行PoW共識的過程中,99%的算力都是無效的哈希運算,并且隨著挖礦難度的提升,挖掘出一個區塊的哈希計算時間呈指數級增長,無效算力的比例也會逐漸增加,導致區塊鏈的交易吞吐量顯著減少,PoW 中基本所有的工作量都是在進行無意義的哈希計算,以達到設定的難度值x(最終的哈希結果前x位為0),通過圖8 和圖9 可以得知,隨著目標難度值x的增加,PoW 挖掘出一個塊的時間顯著增加,尤其是難度值大于6 之后,計算時間高達160 s 以上,相應的交易吞吐量也呈現指數級下降.

Fig.8 PoW troughputs圖8 PoW 吞吐量

Fig.9 PoW computing time for building a block圖9 PoW 出塊計算時間

由圖8 可知,在難度值為4 的情況下,吞吐量下降到400 左右;而難度值為5 時,交易的吞吐量僅為42.在后續的實驗中為了方便衡量和計算,我們選擇了難度值為4 作為實驗基準,根據圖9 可知,在難度值為4 的情況下進行6 500 次哈希能夠挖掘出一個塊.當然,實際的比特幣和以太坊等區塊鏈平臺中,目標難度值已經非常大,目前需要46.84 萬億次哈希計算才能挖掘出一個區塊.

根據圖10 和表1,即使在難度值僅為1 的情況下,無效哈希計算的占比也高達95%以上;而在難度值到達3 時,基本無效算力的比例已經在99%以上了,此時哈希計算的次數在4 500 左右;而當難度值設定為7 時,哈希計算的次數為9 千萬以上.由此可見,PoW 共識過程中,大量算力都用在了沒有意義的哈希計算中.

Table 1 Invalid Hashes’ Percentage and Counts of Hashes表1 無效哈希比例和哈希次數

Fig.10 Invalid hashes’ percentage and counts of hashes圖10 無效哈希比例和哈希次數

根據圖8 可知,設定難度值為7 的情況下,同樣時間下,PoW 挖掘出一個區塊的時間為168 s,而根據圖11 可知,對MNIST 和EMNIST 數據集各自進行200 輪聚合的聯邦學習僅需要25s 和78 s 左右.本文的共識是每進行1 輪聯邦學習的參數聚合就打包1個區塊,因此本文的共識機制能夠有效地將PoW 耗費的大量算力應用在聯邦學習中進行高效地訓練,大大提升區塊鏈的交易處理性能、降低交易延遲.

Fig.11 Learning time curve of TFchain圖11 TFchain 的學習時間曲線

5.3 區塊鏈的吞吐量和交易延遲

我們分別實現了基于PoW 的區塊鏈系統、基于聯邦學習貢獻度的區塊鏈FedCoin 和本文提出的基于聯邦學習的TFchain,并且我們同時實現了TFchain的學習訓練池中持續有聯邦學習任務只進行PoTF共識的情況和當學習訓練池中任務列表為空需要切換共識算法TFchain-Switch 這2 種情況下的交易吞吐量和交易延遲情況.

根據5.2 節中對PoW 的算力分析,我們將PoW的挖礦難度設置為4,即要求哈希計算中得到的字符串前4 位為0.

由圖12 和圖13 可以看出,4 種共識算法都會隨著一個區塊中可以打包的交易數量Blocksize 的增加呈近線性增加,而交易的處理延遲隨著Blocksize的增加而減少,這是因為隨著一個區塊可以打包的交易數量的增加,交易就可以更快地上鏈,從而增加吞吐量和降低交易延遲.其中,PoTF 的吞吐量是4 種共識算法中最高的,而交易延遲是最低的,當Blocksize為1 000 筆時,PoTF 的吞吐量可以高達18 000 trans/s左右,而交易延遲僅為0.55 s 左右.

Fig.12 Comparison of throughputs圖12 吞吐量對比圖

Fig.13 Comparison of latency圖13 延遲對比

FedCoin 是4 種方法中吞吐量最低且交易延遲最大,這是由于FedCoin 中聯邦學習的過程和參數聚合的過程是在區塊鏈外進行的,僅僅將沙普利值的計算用于區塊工作量計算的證明,但是每挖掘一個區塊都需要等待學習的結果,因此FedCoin 的交易吞吐量比較低.PoW 共識算法在挖礦難度值為4 的設置下吞吐量排在第三,而TFchain-Switch 之所以吞吐量相對于PoTF 降低且交易延遲增加,就是因為在沒有學習任務的情況下會切換共識算法到共識效率比較慢的PoW 算法.

5.4 聯邦學習精度分析

本文使用FedAvg[32],FedEnsemble[36],FedGen[37]和FedProx[38]等4 種聯邦學習的常用模型獨立對MNIST[34]和EMNIST[35]數據集進行了聯邦學習的CNN 模型訓練,同步測試了將這些聯邦學習模型嵌入到本文設計的區塊鏈框架中的模型訓練情況,并且將2 種情況進行了對比分析.

使用區塊鏈來發布聯邦學習參數應該不會影響聯邦學習的精度.區塊鏈可以提供分散的、可驗證的存儲,使得參數可以被多個參與方共同訪問.由于區塊鏈的去中心化特性,每個參與方都可以驗證自己收到的參數是否與其他參與方收到的參數一致,從而保證了參數的一致性.根據圖14 和圖15,在將4 種模型嵌入到本文的區塊鏈框架中后,2 個數據集的模型訓練精度都變化不大.

Fig.14 Comparison of learning curves on EMNIST圖14 EMNIST 上的學習曲線對比

Fig.15 Comparison of learning curves on MNIST圖15 MNIST 上的學習曲線對比

在200 輪聯邦學習后,MNIST 數據集的模型訓練精度在使用了4 種聯邦模型的情況下都達到了90%以上,其中FedGen 表現最好,EMNIST 的最終精度都在60%以上,也是FedGen 表現最好.嵌入到本文的區塊鏈框架后,不僅沒有影響聯邦學習的精度,表現反而比原來的訓練略有提升.這是因為區塊鏈一方面通過不可篡改的賬本保證了參數的一致性,提供了更安全、更可靠、更分散的參數共享方式;另一方面我們的算法通過服務節點的作惡檢測和激勵機制一定程度上降低了聯邦參與方的作惡行為,因此能夠讓聯邦學習參與方更積極地參與到模型的訓練中.

6 結論

本文提出了一種基于區塊鏈和聯邦學習的全新共識機制和可信區塊鏈框架,旨在解決傳統共識機制存在的算力過度耗費和吞吐量低等問題,同時提高聯邦學習的效率.該框架將區塊鏈的節點設置為聯邦學習的參與方,通過有效利用原本共識機制中耗費的大量算力來進行本地模型的訓練和參與方貢獻度的評估,實現了對區塊鏈交易吞吐量的提升以及對聯邦學習參與方的合理評估和激勵.同時,本文還設計了一種防止節點作惡的算法,保障了系統的安全性和可靠性.實驗結果表明,所提出的共識機制不僅有效節約了算力資源,提升了區塊鏈的交易處理性能,而且能夠防止聯邦學習中參與方的作惡行為,并對積極參與聯邦學習的參與方進行有效正向的激勵.

本文研究為區塊鏈技術和聯邦學習的應用提供了一種全新的解決方案,適用于所有需要進行聯邦學習的應用,例如醫療信息診斷、物聯網信息溯源分類等,本文提出的TFchain 在增加聯邦學習安全可信性的同時,也增加了區塊鏈的吞吐量,具有實際應用價值和推廣意義.

未來工作將從2 方面開展研究:1)本文的共識切換機制是將PoTF 與PoW 進行切換,后續可以考慮將切換的共識機制變為可插拔的,例如可以變為PoTF 與PBFT 共識算法的切換等;2)為了應對強人工智能學習背景下大量聯邦學習任務急需執行的情況,可以結合區塊鏈的分片技術,設計全新的區塊鏈結構,將不同的聯邦學習任務分流到不同的區塊鏈分片上訓練.

作者貢獻聲明:張寶晨和黃月作為共同第一作者,提出論文整體思路,完成實驗,撰寫論文;孔蘭菊和李慶忠提出指導意見;李文全和郭秋曼疏理算法思路,撰寫論文.

猜你喜歡
服務
自助取卡服務
服務在身邊 健康每一天
今日農業(2019年14期)2019-09-18 01:21:54
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
服務在身邊 健康每一天
今日農業(2019年11期)2019-08-13 00:49:08
服務在身邊 健康每一天
今日農業(2019年13期)2019-08-12 07:59:04
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年15期)2019-01-03 12:11:33
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
高等教育為誰服務:演變與啟示
招行30年:從“滿意服務”到“感動服務”
商周刊(2017年9期)2017-08-22 02:57:56
主站蜘蛛池模板: 亚洲无线国产观看| 色偷偷综合网| 亚洲欧美另类日本| 中文字幕色站| 狠狠五月天中文字幕| 亚洲日韩国产精品综合在线观看| 中文字幕亚洲无线码一区女同| 国产精品视屏| 亚洲一区无码在线| 欧美一级黄片一区2区| 人妻中文字幕无码久久一区| 国产区精品高清在线观看| 国产精品视频观看裸模| 亚洲成av人无码综合在线观看| 久久综合九色综合97网| 久久综合伊人 六十路| 91蝌蚪视频在线观看| 欧美成人精品欧美一级乱黄| 欧美伦理一区| 国产午夜在线观看视频| 秋霞国产在线| 中文字幕在线观看日本| 国产主播一区二区三区| 欧美国产成人在线| 亚洲欧美成aⅴ人在线观看| 成人毛片在线播放| 99免费视频观看| 欧美区国产区| 在线观看国产精品第一区免费| 色婷婷亚洲综合五月| 亚洲无码久久久久| 亚洲中文字幕无码爆乳| 香蕉99国内自产自拍视频| 午夜三级在线| 97人妻精品专区久久久久| 97se亚洲综合在线| 97久久人人超碰国产精品| 天天色天天综合| 成年片色大黄全免费网站久久| 亚洲第一成人在线| 国产又大又粗又猛又爽的视频| 日韩欧美中文字幕在线精品| 成年人久久黄色网站| 日韩精品视频久久| 久久久久久高潮白浆| 欧美精品v欧洲精品| 欧美成人午夜视频免看| 一级黄色网站在线免费看| 免费一级全黄少妇性色生活片| 免费观看国产小粉嫩喷水| 国产又爽又黄无遮挡免费观看| 欧美日本视频在线观看| 欧美亚洲网| 国产精品香蕉在线| 丝袜美女被出水视频一区| 国产草草影院18成年视频| 国产一区二区三区在线观看免费| 视频二区欧美| 激情综合五月网| 性视频久久| 国产精欧美一区二区三区| 亚洲中文字幕在线观看| 国产高清在线观看91精品| 2020国产在线视精品在| 91视频精品| 国产www网站| 色爽网免费视频| 国产精品女熟高潮视频| 直接黄91麻豆网站| 欧美亚洲国产精品第一页| 久久久久免费精品国产| 欧美在线综合视频| 五月婷婷综合在线视频| 色老头综合网| 美女被操91视频| 亚洲一级毛片免费看| 国产主播福利在线观看| 欧美日韩国产成人高清视频| 东京热一区二区三区无码视频| 最新国产精品鲁鲁免费视频| 国产a在视频线精品视频下载| 69av在线|