摘要:聯邦學習(federated learning,FL)能夠在不丟失數據所有權的同時依托隱私保護技術實現安全的分布式模型訓練,但也具有中心化、缺乏公平激勵等問題。區塊鏈(blockchain)本質上是一種分布式數據庫,具有去中心化、信任公證等特點,但也具有網絡吞吐量小、資源浪費等關鍵問題。針對上述技術方法的問題與特點,提出了一種雙區塊鏈激勵驅動的數據分享聯邦學習框架,稱為FedSharing。分別構建主鏈與側鏈,主鏈使用交易封裝聯邦學習中交換的全局參數,同時結合鏈上智能合約和鏈下擴容技術建立梯度狀態通道;側鏈提出了一種新型的修正Shapley值工作量證明算法(PoFS),修正傳統Shapley值計算中成員平等性前提,將聯邦學習中成員合作歷史誠信度這一影響聯盟利益的因素納入考量。測試結果表明,梯度狀態通道較智能合約去中心化方案每輪次時間平均降低4~5 s,PoFS共識下激勵分配比例更符合公平實際。
關鍵詞:聯邦學習;區塊鏈;狀態通道;激勵機制;Shapley值
中圖分類號:TP301文獻標志碼:A
文章編號:1001-3695(2023)01-005-0033-09
doi:10.19734/j.issn.10013695.2022.05.0277
FedSharing:federated learning framework for data sharing driven by dual blockchain incentives
Chen Qiaosonga,Xu Wenjiea,He Xiaoyanga,Ding Xiaoyueb,Sun Kaiweia,Deng Xina,Wang Jina
(a.Chongqing Key Laboratory of Data Engineering amp; Visual Computing,College of Computer Science amp; Technology,b.Smart Energy Technology Research Center,School of Automation/Industrial Internet College,Chongqing University of Posts amp; Telecommunications,Chongqing 400065,China)
Abstract:FL can achieve secure distributed model training based on privacy protection technology without losing data ownership,but it also has some problems such as centralization and lack of fair incentives.Blockchain is a distributed database,which has the characteristics of decentralization,trust and notarization,but it also has some key problems,such as low network throughput and waste of resources.Aiming at the problems and characteristics of the above technical methods,this paper proposed a federated learning framework for data sharing driven by dual blockchain incentives,named FedSharing.It constructed the main chain and side chain respectively.The main chain used transactions to encapsulate the global parameters exchanged in federated learning,and combined onchain smart contracts and offchain capacity expansion technology to establish gradient state channels.Side chain proposed a new modified Shapley value proofofwork algorithm(PoFS),which modified the traditional Shapley value calculation premise of equality of members,and took into account the factor affecting the interests of the alliance,the integrity of the cooperation history of members in federated learning.The test results show that the time of each round of the gradient state channel is reduced by 4~5 s on average compared with the smart contract decentralized scheme,and the incentive allocation ratio under the PoFS consensus is more in line with the fair reality.
Key words:federated learning;blockchain;state channel;incentive mechanism;Shapley value
0引言
人工智能和大數據技術的不斷發展引領時代的智能化變遷,但是這些前沿技術在落地應用中的瓶頸也逐漸顯現。一方面社會生產和日常生活中會產生大量的零散數據資產,企業或個人的數據價值無法連線,構成眾多數據孤島;另一方面各個國家政府愈發注重保障公民的隱私數據,例如歐盟在2018年實施了《通用數據保護條例》,而中國在2021年6月10日通過了《中華人民共和國數據安全法》等。聯邦學習技術[1]由谷歌在2017年首次提出,很好地平衡了數據價值與數據隱私之間的矛盾。聯邦學習是一種分布式機器學習方法,由多個客戶端實體在中心服務器的協調下訓練理想模型。其最主要的特點是每個客戶端數據始終保存在本地,各方之間不直接交換數據而是交換訓練過程中的模型信息,再結合同態加密等加密算法實現梯度的隱私聚合,最終目標是訓練出接近于集中式機器學習效用的理想模型。
區塊鏈這一名詞最早由中本聰[2]提出,隨后發展成為一項新興的分布式技術。區塊鏈技術從物理層角度可以看做是一種分布式數據庫;從網絡層可以看做是一種去中心化P2P網絡[3];從共識層可以看做是一種依托交易驅動多方一致的狀態機。鏈式結構與hash算法保證了區塊鏈的歷史不可竄改性以及溯源性,一致性共識算法使其能夠在多方環境下實現信任,同時各節點冗余存儲將中心化工作分攤到每個節點,實現了服務的去中心化,上層應用中成熟的智能合約層以及其他上層建筑進一步實現了可信編程。當前區塊鏈涉及領域已經由金融拓展到供應鏈、政務、醫療[4]、教育等多個方面。
然而上述兩種技術也分別出現了不同程度的限制:a)聯邦學習需要依托中心服務器,壓力與容災性隨客戶端數量增加而上升,并且在多方合作的模型下中心化風險嚴重,其次,聯邦學習缺乏公平的激勵機制,跨庫聯邦學習中參與者之間可能是企業競爭對手,合理的激勵機制與用戶參與性呈正相關;b)區塊鏈的概率性共識需要消耗大量電力資源攻克出塊難題挑戰,以此維持其網絡安全性,其次是當前區塊鏈的去中心化導致交易速度確認緩慢并且拓展性較差。
因為上述兩項技術各有優劣,本文的研究思路核心可總結為利用現有技術將雙方取長補短并引入一些新的方法解決實際問題。具體在于:首先針對聯邦學習中的中心化風險以及激勵機制的缺失,依托區塊鏈技術的去中心化以及在加密貨幣領域的激勵優勢為其每個參與者計算公平的激勵份額,更進一步的研究思路在于引入博弈論中的合作分配方法結合區塊鏈的共識算法,將算力用在計算激勵工作中而不是無意義的哈希計算;其次在實際融合工作中,區塊鏈技術本身的低吞吐P2P網絡難以滿足聯邦學習環境下的大量梯度交換通信需求,所以引入了區塊鏈技術中的鏈下狀態通道技術并加以改進應用到聯邦學習梯度交換中,以此解決區塊鏈低吞吐的問題;最后,在區塊鏈架構設計上,針對目前廣為詬病的區塊鏈存儲容量問題,研究了目前廣泛的跨鏈、分片等解決方案,設計雙鏈架構,將激勵數據與分布式訓練數據分離,意在解決聯邦學習上的存儲痛點。
關于上述相關技術與研究領域,目前已有一些研究工作。表1總結了當前可直接提供部署的區塊鏈+聯邦學習平臺。
關于區塊鏈+聯邦學習的融合框架,下面主要以架構平臺的不同進行分類,從研究方向深入介紹各個已有的研究成果并且提出不足之處。首先在可編程區塊鏈以太坊Ethereum平臺中,最早由Nagar[5]提出了使用以太坊側鏈部署聯邦學習平臺,分別介紹了數據隱私、聯邦學習、區塊鏈以及在IoT場景下的應用等基礎概念,屬于論述性科普文章并未提出完整的解決方案。Mugunthan等人[6]提出了BlockFLow架構,通過一種貢獻評分程序,初步實現了負責和隱私保護的FL。類似地,Korkmaz 等人[7]提出的ChainFL、文獻[8,9]都是基于以太坊的FL系統,都期望借助智能合約來協調FL中的模型聚合和更新任務,但是對于聯邦學習任務來說,區塊鏈智能合約的狀態確認與區塊鏈本身共識算法強關聯,而共識算法的延遲是聯邦學習這種快速學習迭代框架所難以接受的。此外對于以太坊平臺來說,構建的區塊鏈+聯邦學習框架都需要考慮Gas費消耗的問題,因為以太坊的Gas費用一直在上漲。在Hyperledger Fabric平臺,Zhang等人[10]在FL客戶的物理分布數據集上演示了FL訓練神經網絡模型。服務器和客戶端之間的底層通信在安全的數據交換系統上使用新的基于區塊鏈的協議,其主要聚焦于利用區塊鏈完成安全通信協議,核心在于解決可信問題,與其研究名稱相同,主要完成了在Fabric平臺上的演示demo。在EOS聯盟鏈框架中,Martinez等人[11]提出了一種基于EOS的FL框架,目的在于記錄和獎勵聯邦學習參與者的貢獻,其使用offchain來直接存儲本地模型訓練的梯度值,使用onchain存儲本地模型訓練得到梯度值的hash值,防止數據被竄改。但是其獎勵大小僅僅根據數據消耗量作為標準,沒有證明其公平可靠。最后是自定義區塊鏈平臺,Kim等人[12]提出了一種基于自定義區塊鏈的跨設備聯邦學習體系結構BlockFL,在其中交換和驗證本地學習模型更新,并在文中詳細計算了延遲分析,其也依靠此刻畫最優區塊鏈生成率,但是每個區塊僅保存一個完整數據模型而沒有考慮單個區塊存儲上限,此外使用PoW共識算法的高延遲和計算資源浪費都是不好的方面。Kang等人[13]提出了一種多區塊鏈與聯邦邊緣學習的融合架構,通過將訓練后的模型上傳到各個子鏈,然后運行模型準確性評估共識算法擇優上鏈保存,這樣保證了模型的準確度,此外改進了梯度壓縮方案,加速了聯邦學習進程,但其整個聯邦學習過程并非與區塊鏈狀態機并行,只是使用區塊鏈共識算法提高模型準確度并保存模型,中心化問題并未解決。Liu等人[14]針對聯邦學習激勵問題將Shapley值引入聯邦學習中,計算每個聯邦學習成員的激勵,但是沒有考慮Shapley值計算的局限性:假設各個成員地位平等并且只考慮影響最終聯盟利益的因素,而在聯邦學習中各個數據持有方參與訓練所承擔的數據泄露風險是不同的,地位并不平等,且并未考量作為聯邦學習成功構建的重要因素之一的歷史誠信度。
針對以上不足,本文的主要貢獻可概括如下:
a)雙鏈架構將聯邦學習中的激勵數據與訓練模型數據分別存儲以解決聯邦學習的海量數據存儲;主側鏈分別負責區塊鏈在聯邦學習應用中的安全性與吞吐量,主鏈構建安全激勵網絡,側鏈提供高吞吐量計算服務。
b)主鏈通過鏈下拓展構建梯度狀態通道,顯著降低了去中心化聯邦學習中采用智能合約聚合梯度方案的通信消耗。
c)側鏈通過PoFS共識算法(修正Shapley值工作量證明)解決聯邦學習中激勵的公平分配問題。
d)采用側鏈SPV錨定實現激勵的跨鏈轉移。
1FedSharing
1.1雙區塊鏈激勵驅動聯邦學習架構
總體架構如圖1所示,分為區塊鏈層和應用層。當前區塊鏈技術的安全性要求限制了交易速度,即狀態機狀態更新速度。本文將高吞吐量任務服務移植到側鏈實現,高安全性任務依舊維護在主鏈,區塊鏈層采用雙鏈架構:主鏈為傳統公鏈,具有智能合約運行環境即虛擬機功能,負責資金激勵與安全;側鏈為聯盟鏈,能夠實現快速出塊,采用PoFS修正的Shapley值共識機制實現共識。側鏈為主鏈提供修正Shapley值向量的計算服務,主鏈則通過SPV錨定側鏈出塊激勵實現兩者的跨鏈資產流動。
在FedSharing平臺中應用層的角色與功能分為:
a)服務需求方。發布自己的聯邦學習任務需求并提供激勵。
b)數據持有方。擁有聯邦學習任務要求的數據持有者,根據聯邦學習的類別可以分為兩類持有方:
(a)跨邊緣設備學習。因為邊緣個人設備硬件性能的局限性,一般可以將數據交給可信第三方代理運行主鏈全節點。
(b)跨庫學習。大型數據中心具有良好的計算硬件設備,當需要聯邦學習時一般可自己運行主鏈全節點。
c)礦主。主鏈中的區塊鏈礦池,因為需要穩定的收益以及個人設備算力的不足,比特幣等主流公鏈都出現了礦池的架構,礦主是礦池中的管理員,一般運行主鏈的一個全節點。
d)礦工。礦池中的礦工可以維護一個主鏈全節點,也可僅運行聯邦學習任務的客戶端節點,但是需要在主鏈中擁有個人激勵賬戶。
目前中央式編排的聯邦學習架構與區塊鏈中的礦池架構十分類似,可以將礦池中的礦主看做是聯邦學習服務器,礦池中的礦工則對應著聯邦學習的各個數據客戶端。
總體的平臺流程如圖2所示。首先服務需求方發布任務以及任務的賞金V到FedSharing平臺上。然后各個礦池競選任務,礦主接收到任務后在主鏈中部署通道智能合約并且建立鏈下梯度狀態通道,隨后與各個加入本次任務的礦工開始聯邦學習。在訓練過程中需要側鏈計算每一個全局輪次中各個礦工本地迭代出的梯度在全局的貢獻程度來衡量其訓練貢獻激勵。當模型逐漸收斂并達到需求方要求后,礦主上傳模型到主鏈智能合約,服務需求方核驗后下載模型。最后,各個礦工發布最新鏈下交易,進入主網在合約中兌換獲得相應的激勵。
1.2梯度狀態通道
在2015首次提出了狀態通道[15]的概念,狀態通道中交易延遲上鏈,將大量的計算在鏈下累積計算,再將最終狀態上鏈存儲,本質上是通過在鏈下實現狀態的積累達到延遲狀態改變從而降低鏈上壓力。聯邦學習中全局模型的訓練過程也是每輪次狀態通過積累而不斷優化的過程,為了提升拓展性以及學習速度,本文改進狀態通道為梯度狀態通道并應用到聯邦學習中。總體上看,梯度狀態通道的生命周期一共分為三個部分:
a)通道構建。通過礦主部署的智能合約實現各個礦工的激勵狀態鎖定,因此在一條狀態通道下(一個智能合約)僅當合約時效結束前,即聯邦學習結束前才將其更新。
b)鏈下交互。礦主與多個礦工之間采用構建可提交給主鏈的交易實現更新狀態,每次改變交易中的payload字段,交易金額為側鏈計算的每個礦工修正的Shapley值向量累計的激勵金額,保證每次更新的累積激勵大于等于之前的金額。
c)通道關閉。在聯邦學習的最后階段,在區塊鏈關閉通道即關閉合約兌換期之前各個礦工上傳最終交易,更新最終狀態獲得所有激勵。
1.2.1通道構建
礦主在接收到聯邦學習任務后,按任務中服務需求方指定的要求指定符合目標訓練的數據標準,例如數據地點、時間或特定實體等,然后在平臺發布信息。各個數據持有方按照信息要求自由選擇通道加入,數據持有方可以自己運行主鏈全節點,也可以委托給信任的第三方區塊鏈節點(礦工)運行。在通過礦主的檢查同意后登記這些賬戶為參與者。
當訓練成員達到滿員后,按需求將聯邦學習基礎配置信息部署到智能合約中公開供各個礦工訪問同步,同時將整個學習任務的所有礦工激勵TrainReward以及本次訓練防止作惡的質押金鎖定在合約中。其中基礎配置信息包括:
a)通道參數。所有礦工節點賬戶以及其對應貢獻有效數據量、通道兌換期時間等參數。
b)學習參數。訓練模型選擇、訓練共享超參數、訓練迭代次數等聯邦學習中需要共享的訓練參數。
合約部署成功后,礦主以及所有的礦工開始聯邦學習初始化,包括初始化模型、數據預處理等任務。當模型初始化成功后礦主將第一次調用智能合約存儲初始化訓練模型。
1.2.2鏈下交互
鏈下交互通過構造和當前區塊鏈相同的交易結構并不斷修改其值,主鏈交易的結構如圖3所示(省略了區塊鏈交易結構中公開的一些基本字段),其中交易的各個字段以及解釋如表2所示。
開始聯邦學習后,鏈下聯邦學習中礦主與一個礦工交互的過程如圖4所示,在第i輪全局輪次中:
a)礦工Mk∈{M1,M2,…,MK}首先獲取智能合約配置信息,然后使用本地數據進行多輪迭代訓練計算得到最新的梯度矩陣。
b)礦工通過隱私加密算法將梯度矩陣發送給礦主,梯度加密算法可采用同態加密以及查分隱私實現對于梯度隱私的保護。
c)礦主在收到多個礦工的梯度矩陣后計算與設定的聚合函數將每個參與方梯度聚合,同時在側鏈發布修正Shapley值計算任務,提供本輪次訓練計算貢獻度的必要數據。
d)側鏈的區塊鏈節點根據合約的配置信息和聚合函數計算本輪次所有參與礦工的修正Shapley值向量。
e)礦主通過聚合后的參數更新本地模型。
f)礦主根據側鏈已確認區塊(區塊鏈上多個后續區塊的確認)計算每個礦工的本輪貢獻累計激勵金額,構建激勵消息體(圖5)并使用自己的私鑰簽名。使用隱私加密算法加密最新聚合后的模型參數、激勵消息體和簽名一起發送給各個礦工。
g)礦工收到礦主的簽名后首先驗證簽名的有效性,確保消息體的不可抵賴性。
h)礦主更新本地數據模型參數,執行步驟a)進入下一個輪次。
其中:miner ID為礦工/聯邦學習客戶端的唯一標識;reward value是礦工累計激勵獎勵;contract address表示合約地址,也代表當前任務的梯度通道的唯一標識;chain ID表示當前主鏈的唯一標識。簽名唯一標識的目的是為了防止狀態通道中的重放攻擊。
在梯度狀態通道的每一全局輪次中,礦工都通過提供梯度來優化全局模型,同時側鏈計算貢獻程度核算激勵。因為在鏈下實現狀態累計,構建的交易本身不會進入區塊鏈主網確認,所以礦工的激勵消息不是馬上贖回。礦工會跟蹤最新激勵消息并且在關閉狀態通道時兌換它,這意味著接收者對每條消息進行驗證是至關重要的。礦工的鏈下驗證與智能合約中的兌換驗證函數相同,其算法如算法1所示。
算法1signature verification algorithm:verifySignature(sig)
input:Msg,the latest messgae struct received;sig,Msg’s electronic signature.
output:ValidationResult,true or 1.
1if Msg.MinerID or Msg.Contract.Address
2or Msg.ChainID are matched then
3rebuild_sig=Signature(hash(Msg));
4if rebuild_sig and sig are matched then
5transfer incentive amount to Msg.MinerID;
6return ValidationResult=true;
7else
8return ValidationResult=1;
9 else
10 return ValidationResult=1;
在多次全局輪次結束后,全局模型逐漸收斂,礦主會進行模型評估,當達到服務需求方要求后,進入通道關閉階段。
1.2.3通道關閉
當模型達到服務方要求后,礦主向各個礦工發布通道即將關閉消息,開啟合約中的通道兌換期,礦工需要在智能合約中規定的截止時間之前使用最新的激勵信息與簽名構建交易(最新的交易簽名包含了最多的累計激勵金額)。礦工將激勵消息放入交易的聯邦學習參數域Payload.FL parameters,將簽名放入聯邦學習簽名區域Payload.signature,訪問當前任務對應合約兌換所有自己在本次聯邦學習任務中的獎勵。智能合約的驗證算法即算法1。
時間截止后,智能合約會將余額返還給礦主,返還質押金的同時給予鏈下聚合的聚合激勵費用,隨即智能合約銷毀,通道關閉。關于激勵金的流向,將會在2.4節激勵方案中詳細闡述。需要說明的是,如果在聯邦學習過程中發現了作惡礦工,那么該礦工在兌換期的兌換將會受到限制,核實作惡后將無法得到自己在整個任務中的所有累計激勵。
1.3側鏈PoFS共識算法
1.3.1修正Shapley值
基于Shapley值進行聯盟成員的利益分配,體現了各盟員對聯盟總目標的貢獻程度,避免了分配上的平均主義,比任何一種僅按資源投入價值、資源配置效率及將兩者相結合的分配方式都更具合理性和公平性,也體現了各盟員相互博弈的過程。Shapley值計算公式為
φi(v)=∑s∈Siw(|s|)[v(s)-v(s/{i})](1)
其中:Si是所有成員集合I中包含成員i的所有子集形成的集合;w(|s|)為
w(|s|)=(|s|-1)!(n-|s|)!n?。?)
Shapley值的計算復雜度隨著礦工節點數量的增加而逐漸增加,是一個NP難問題,計算復雜度大是傳統Shapley值的局限性之一[16]。而區塊鏈的共識算法,例如PoW是通過節點不斷地計算散列值以小于預設置的難度而實現生成新區塊,這樣的計算耗費大量的電力且無意義。FedSharing將Shapley值的計算交給側鏈實現,利用Shapley值的計算困難作為側鏈共識節點的競爭性出塊挑戰,為主鏈聯邦學習礦工公平地計算貢獻度的同時解決了資源浪費問題。首先本文改進了傳統的Shapley值的計算公式,讓其更加公平地分配聯邦學習激勵。
目前已有使用Shapley值計算聯邦學習激勵分配的方案中(例如FedCoin),僅考慮了礦工參數對全局損失函數的邊際貢獻,卻沒有考慮數據持有方本身的不平等性,這也是傳統Shapley值的局限性之一。Shapley值的計算實質上隱含著各盟員風險分擔均等的假設,而在聯邦學習的環境下,每個數據持有方都是只提供數據梯度或模型參數而不需要傳輸原始數據,所以很可能會存在數據假標簽的毒藥攻擊等問題。這些都可能會直接導致聯邦學習任務的失敗,間接影響其他合作者的利益,所以當前參與者過往經歷的誠信度也是需要考量的重要因素?;诖?,本文根據參與聯邦學習數據源的本身特點對Shapley值的計算公式進行了相關的修正:
a)權重計算的改進。引入一組額外的數據風險權重向量:
Λ=(Λ1,Λ2,…,Λn)(3)
其中:Λi代表第i個聯邦學習參與者的數據隱私風險權重。需要說明的是,該權重值主要完全顯現無法在Shapley值中體現優劣的因素,其次因為在聯邦學習任務開始前已明確所有源數據,所以λ向量在單次聯邦學習任務中具有一致性。Λi的計算公式如下:
Λi=λi∑ni=1λiλi=trusthi(4)
b)容易計算出所有礦工的權重和為1。trusthi為礦工節點i在區塊時間周期h上的誠信度,礦工節點的誠信度記錄在主鏈智能合約中且與其賬戶一一綁定,更新公式為
trusthi=trusth-1i+αrewardilogrerewardall+βγ+(1-α)evaluationh-1i(5)
其中:α、β、γ均為常系數;rewardi是礦工節點i累計誠信完成聯邦學習任務的獎勵額;rewardall是當前系統總完成聯邦學習次數與獎勵額;evaluationh-1i是上個周期中完成聯邦學習后服務需求方給予礦池成員的累計評價分,一般可以分為三類評價,好評增加評估分,中評不變而差評則減少評估分。
當發生作惡事件后,對于作惡的礦工節點的懲罰機制如下:凍結賬戶并返還激勵金額,信譽值、獎勵額累計量清零并扣除本次任務所有獎金,如果賬戶余額不足則拉入黑名單,禁止參與所有聯邦學習。
那么,改進的權重w′總體為
w′=w(|s|)×Λi∑ni=1∑s∈Siw(|s|)×Λi×[v(s)-v(s/{i})](6)
c)邊際貢獻的改進。在聯邦學習中服務需求方可以自行提供驗證集,也可以礦主通過留出法(holdout)或交叉驗證法(crossvalidation)等模型評估方法劃分礦工數據作為驗證集評估模型。除了考量礦工模型參數向量對全局損失函數的下降影響程度,更多的考量因素是模型的評估指標,因為損失函數的下降并不一定直觀反映最終模型的優劣。服務需求端可提供評估策略,其中包括精準度、召回率等,每一次全局迭代時都會使用小批量測試集根據策略衡量當前模型情況,計算衡量指標。設特征函數v′(s)為
v′(s)=ε[loss(s)-loss({i})]+(1-ε)[strategy(s)-strategy({i})]
loss=F(A(W(c)))(7)
其中:ε是常系數;strategy代表了服務需求方設置的策略集合;F是聯邦學習的損失函數;A是聚合本地模型更新函數;W={wk|k=1,2,…,|s|}是接收本地節點的更新集合;c代表輸入集合。
綜上,FedSharing的修正Shapley值計算公式如下:
φ′i(v)=∑s∈Siw′[v′(s)-v′(s/{i})](8)
1.3.2PoFS共識算法
算法1的輸入來自于礦主對應給出的聯邦學習函數與參數,策略來自于服務的需求方指定。在算法2中,一個側鏈礦工首先需要初始化一個修正Shapley值向量,并且將迭代次數time設置為0(第1行)。只要滿足兩個條件,就按照輪次繼續計算修正Shapely值:a)沒有接收到新區塊;b)接收到新區塊但區塊驗證失?。ǖ?行)。首先初始化數據風險權重向量,并向礦工獲取聯邦學習的函數與參數,計算每個節點的權重值(第3、4行)。然后礦工計算每個節點在每個聯盟規模下的邊際貢獻以及權重w′(第5~12行)。更新修正的Shapley值向量中對應每個節點的值(第13行)。通過對所有之前迭代和當前輪次計算出的φ′求平均,迭代次數遞增1(第14行)。最后廣播φt和迭代次數(第15行)。
如果接收到新的修正Shapley值向量和迭代次數,那么首先驗證其合法性(第16、17行),然后計算所有接收到的修正Shapely值向量的平均值(第18行),再計算自己本地計算的修正Shapely值向量與平均向量的P階距離(第19行),當距離滿足側鏈區塊設置的難度系數后,此礦工成為出塊節點,打包新區塊并廣播,最終返回新區塊(第19~21行),如果接收到新的側鏈區塊并且驗證區塊成功后,礦工更新自己的本地最長區塊鏈并返回最新的區塊(第22~25行)。
算法2proof of fixed Sharpley value(PoFS)
input:loss function,F、A、W from pool manager;strategy function from service demander.
output:SideBlk,a new side chain block.
1 initialise φ′(v) =(φi′(v)=0|i=1,…,K);time=0;
2 while not recerved SideBlk or!VerifyBlack(SideBlk) do
3initialize Λ=(Λi=0|i=1,…,K);
4get parameters from pool manager and calculate Λi;
5for i from 1 to K do
6for j from 1 to K do
7if (i∈s) then
8Losst=F(A(W(s)))-F(A(W(s/{ i} )));
9strategyt=strategy(s)-strategy(s/{i});
10vt=εLoss+(1-ε)stratagy;
11cumulative vt to Vi;
12compute w′(|s|,Λi)
13update φ′i;
14φt=φt×time+φ′time;time=time+1;
15broadcast φt and time;
16if received new φ″ and time then
17if ∑φ″i==1 then;
18update =∑time×φ″∑time;
19if ‖φ-‖p≤D then
20create new SideBlk and broadcast SideBlk;
21return SideBlk;
22if received new SideBlk then
23if VerifyBlock(SideBlk) then
24update SideBlk to local BlockChain;
25return SideBlk;
側鏈區塊的難度設置根據當前側鏈網絡任務量動態矯正。其調整依托主鏈部署的智能合約,調整因素根據側鏈區塊鏈節點計算能力來決定,統計當前側鏈系統最近產生若干個區塊的實際時間記為timeactual,再根據期望的出塊時間計算同樣產生這若干區塊的期望時間記為timeexpected,那么調整難度的迭代計算公式為
difficulty=difficulty×timeactualtimeexpected(9)
當然,難度的調整設置了上下閾值界限,如果出現特殊情況,也不會導致區塊鏈系統因為難度失控。
1.3.3側鏈數據結構
側鏈一個區塊的結構如圖6所示。
區塊頭包含九個字段,每個字段的解釋如表3所示。
區塊體中主要記錄當前側鏈網絡中的交易,側鏈也采用類似于比特幣的UTXO賬戶模型,交易是指若干個地址的輸入與若干個地址的輸出,并通過簽名實現交易確認。
1.3.4區塊驗證算法
算法3validation sideblock alorithm(VerifyBlock(new SideBlk))
input:SideBlk,new block received;,shapley value average;D,difficulty of mining.
output:ValidationResult,true or 1.
1 φt=SideBlk.φ;t=SideBlk.;
2 if (‖-t‖p≤D) and (‖φt-t‖p≤D) then
3if SideBlk.Height≥longestchainlength then
4return ValidationResult=true;
5else
6return ValidationResult=1;
7else
8return ValidationResult=1;
側鏈區塊驗證算法的輸入是接收到新的側鏈區塊、當前側鏈網絡的Shapley值向量平均值以及出塊難度,輸出為驗證結果的布爾值。區塊的驗證算法需要驗證三個方面,只有三個方面全部通過才能說明區塊的正確性:
a)新區塊中計算的平均Shapley值向量是否與檢測節點接收到的當前側鏈網絡全局計算的平均Shapley值的P階距離符合難度設定。
b)新區塊中出塊的Shapley值向量計算結果是否與新區塊中的平均Shapley值向量的P階距離符合難度設定。
c)新區塊的高度是否最大,以確保其滿足最長鏈規則。最長鏈規則可以有效地防止軟分叉和自私挖礦現象。需要說明的是,對于區塊鏈本身的弱異步網絡特性,需要當前節點從其他節點先收集滿足閾值數量的Shapley值向量的結果再匯聚計算均值,這樣才可保證獲取均值的有效性。
1.4激勵方案
1.4.1支付算法
聯邦學習模型需求方首先發布當前學習任務的總懸賞資金V,當一個礦池鎖定當前任務后,需求方通過轉賬V個主鏈資金給鎖定任務的礦主,等待交易記錄上鏈后,礦主開始發布通道智能合約,建立梯度狀態通道,確定任務規范等。V值可以分為:a)TrainReward,主鏈礦工聯邦學習訓練總激勵;b)AggregateReward,礦主聚合激勵;c)SideReward,側鏈PoFS共識出塊激勵。
關于三部分金額以及礦池接收任務的質押金額Deposit可以按照比例在智能合約協定,例如支付方可以要求如下支付合同:TrainReward:AggregateReward:SideReward:Deposit=7:1:2:2,進而確定TrainReward=0.7 V,AggregateReward=0.1 V,SideReward=0.2 V,Deposit=0.2 V。具體的激勵方案如算法4所示。
算法4The payment scheme in FedSharing
input:Vthe value paid by a service demander.
output:an allocation of V.
1 while pool manager receives V from a service demander do
2 calculate TrainReward and SideReward;
3 publish traing smart contract with task config and TrainReward;
4 establish gradient state channel;
5 while each epoch in the channel do
6 publish a fixcd Shaplcy task to sideBlockchain network;
7 anchor SideRewardi using SPV proof:mainBlockchain→sideBlockchain;
8 calculate i:fixed Shapley value for epoch i;
9 while a new sideblock is Verifyed do
10 Transfer SideRewardi to the sideblock;
11 for each Miner j in this Pool do
12 if φjigt;0 then
13 Ri-φji∑φjiφiTrainReward;
14 update reward Msg,Sig and send to Miner j
在算法4中,當聯邦學習中的礦主接收到來自服務需求方的支付V時,表示該礦池成功收到一個模型訓練任務。然后礦主計算TrainReward和SideReward并留下Aggregate=VTrainRewardSideReward作為自己的聚合工作報酬(第2行)。隨后根據聯邦學習配置信息以及TrainReward、Deposit質押金部署當前任務智能合約,成功后梯度狀態通道建立(第3、4行)。在聯邦學習的每一個全局輪次i中,需要通過側鏈計算當前參與者的貢獻度。礦主首先在側鏈網絡中發布一個fixed Shapley value(FSV)計算任務(第6行)。隨后通過主鏈向側鏈的SPV錨定機制將第i輪次的SideReward側鏈出塊激勵錨定,然后側鏈開始計算FSV實現工作量證明,最終得到φi(第7、8行)。當側鏈出現新的獲勝者之后新的側鏈區塊發布,驗證并連接到側鏈中,此時側鏈中將SideReward作為出塊獎勵(第10行)。隨后,對于聯邦學習中的所有礦工按φji計算其在第i輪次的TrainReward占比,并更新激勵消息結構體和簽名(第12~14行)。
1.4.2側鏈SPV錨定
FedSharing借助主鏈向側鏈的SPV錨定機制實現側鏈的激勵支付。在SPV模式中(圖7),礦主通過在主鏈上將激勵資產發送到主鏈的一個特殊地址,這樣做會鎖定主鏈的數字資產,該輸出仍然會被鎖定在可能的競爭期間內,以確認相應的交易已經完成,隨后會創建一個SPV證明并發送到側鏈網絡中。此刻,一個對應的帶有SPV證明的交易會出現在側鏈上,同時驗證主鏈上的數字資產已經被鎖住,然后就可以在側鏈上實現側鏈資產等比例的轉移。隨后獎勵給獲勝出塊節點賬戶。
2實驗環境搭建和方法實現
2.1基于Ethermint和Golang的雙區塊鏈搭建
a)主鏈搭建。Ethermint是一個可擴展的、高吞吐量的權益證明區塊鏈,與以太坊完全兼容并可互操作。它使用運行在Tendermint[17]核心共識引擎上的Cosmos SDK[18]構建。本文實驗使用Ethermint搭建了主鏈網絡,主鏈網絡的功能模塊如表4所示,主鏈礦工節點配置如表5所示。主鏈礦工節點運行一個區塊鏈全節點,負責區塊的打包與驗證,并通過RPC模型向外輸出實時區塊鏈信息,網絡內部各個節點通過TBFT共識算法對新區塊達成一致。節點運行EVM虛擬機維護網絡中智能合約狀態,并且可以通過Truffle框架部署和調用智能合約。底層網絡通信采用IPFS[19]的網絡組件Libp2p構建,實現區塊鏈P2P網絡節點之間的單播與廣播(PubSub模式)。主鏈節點在負責區塊鏈相關服務之外還需要實現聯邦學習的鏈下模型訓練,以此來獲得激勵,對于單個節點內部使用PyTorch來加載和處理數據集和模型,并執行本地訓練,關于聯邦學習任務的具體信息在3.2節詳述。
側鏈搭建:使用Golang編程語言構建側鏈單個全節點,側鏈節點硬件配置與主鏈相同,其具體模型功能如表6所示。
2.2聯邦學習礦池環境搭建
聯邦學習分為服務器端與客戶端,對應于礦池結構的礦主與礦工,所以在主鏈節點中已融合了聯邦學習功能。實驗環境下模擬了一個礦池下的各個節點,其信息如表7所示。同時模擬服務需求方的特定聯邦學習任務與模型選擇配置,如表8所示(省略了訓練的公共超參數)。
需要說明的是,為了模擬聯邦學習中不同客戶端的分散數據,實驗中對數據集Cifar10做了不同程度的分割以及數據質量處理以模擬實際環境下的聯邦學習數據情況,具體方案會在具體實驗中介紹。
如圖8(a)所示,FedSharing聯邦學習中的單個全局輪次,柱狀圖表示多個客戶端并行的本地訓練數據時間,全局輪次開始聚合的時間受限于最后一個礦工的本地訓練時間,所以整個礦池網絡性能首先受限于客戶端/礦工單節點性能。從圖中上方兩條折線對比中可以看出,除去首尾兩個輪次,FedSharing的輪次結束時間平均小于完全使用智能合約方案的輪次結束時間5 s左右。
在實驗的過程中統計了主鏈網絡交易的Gas費用消耗情況。如圖8(b)所示,各個礦工的主要交易Gas費消耗為兌換激勵,而礦主的Gas費消耗則大量集中于初始部署通道合約。相比于智能合約聚合,FedSharing的總體Gas費用節省量相當于圖中的所有淺色面積。
如圖8(c)所示,FedSharing在聯邦學習的過程中各個客戶端的準確率以及損失會由一開始的較大差距逐漸因為全局聚合的作用收斂合并。對于當前實驗的特定配置,FedSharing聯邦學習能夠達到近似于集中學習的訓練效果。
在實驗環境中,設置邊際貢獻的策略為全局模型的準確度,所以在每個全局輪次下都會使用測試集計算當前模型的準確度以及損失。對于數據集Cifar10,將其分割為三份不同數據量,分別得到如表10所示的有效數據量,并且保證三者的數據質量相同(數據質量評估維度包括數據集完整性、規范性、一致性、準確性等)。為了對比歷史誠信度因素的作用,本文實驗按有效數據量的逆序遞增初始化誠信度。根據上述兩個指標,統計了10個全局輪次下的貢獻指標。表11展現了第一個輪次下的統計數據。根據傳統Shapley值計算方法,表12展示了前三個全局輪次中三個礦工的邊際貢獻、權重以及Shapley值。根據本文提出的修正Shapley值計算方法,表13展示了前三個全局輪次中三個礦工的邊際貢獻、權重以及Shapley值。
如表12所示,表中的各類向量元素的順序按照合作聯盟規模的順序排序,例如當前實驗配置下共有三個礦工,對于每個礦工其合作規??梢允?、2或3,而對于合作規模2有兩種合作方式即自身與另外兩個礦工中的一個,所以規模2共兩種,總體構成了如表所示的四維向量。此外,需要說明的是,表中邊際貢獻或Shapley值向量中的0數據是因為對于當前聯盟加入該礦工并不能給當前聯盟的總體利益帶來提升,在本實驗策略中就是聯邦學習準確度的提升或損失值的下降,所以該成員的貢獻度為0。
從表12實驗數據中可以看出,FedCoin的Shapley值計算方法中(或稱為傳統的Shaply值計算方法),在保證了各個參與者數據質量一致的情況下,可提供有效數據量的大小與獲得激勵大?。▽碇欣ㄌ栔档谋壤┏收嚓P。但是,對于成員歷史誠信值情況并沒有體現。分析其原因在于,如表12所示各個參與者的權重向量均相同,因為權重向量公式的計算僅與聯盟的規模大小有關,也就是在FedCoin的Shapley值向量中的假設前提:所有參與者都有均等的地位參與合作并且風險均攤。誠信值低的可能作惡節點對于本次學習的總體模型效果和數據泄露風險并沒有在最終分配的激勵中公平體現。
本文提出的修正Shapley值的實驗結果如表13所示。數據特征表現出與FedCoin傳統Shapley值不同的是,各個參與者的修正Shapley值之和為1,∑ni=1φ′j(v)滿足了這個結論。
3.2實驗結果合理性分析
本文使用了多種策略,下面對各種策略對實驗結果的影響進行分析討論。
首先對于鏈下梯度狀態通道策略結合圖8(a)(b)的實驗結果可知:FedSharing的輪次結束時間平均小于完全使用智能合約方案的輪次結束時間5 s左右,原因在于使用智能合約聚合梯度需要每個客戶端上傳當前本地訓練的梯度,其上傳的速度受限于當前區塊鏈的區塊確認時間(如果是強一致性共識算法受限于下一區塊確認時間,如果是最終一致性共識算法則需要等待若干個區塊確認以實現大概率下狀態確認)。在實際實現對比實驗的過程中還可以發現,使用智能合約聚合梯度對于參數較大的模型是無法實現的,因為對于交易的負載字段有大小的限制,并且在智能合約中進行大量的計算會消耗大量的主鏈汽油費。梯度狀態通道的應用克服了上述問題,在鏈下的高吞吐聚合不再受到區塊鏈本身吞吐的影響,并且將結果上傳可保證較小的汽油費消耗。圖中數據還明顯體現出FedSharing在第一個輪次和最后一個輪次結束耗時明顯大于中間輪次,其原因在于在第一個全局輪次礦主需要部署梯度狀態通道合約以及其他準備工作,需要等待交易的確認。同樣對于最后一個輪次,各個礦工需要上傳鏈下簽名獲得所有激勵,礦主需要通過交易關閉通道。
對于側鏈的PoFS共識算法包括了Shaply值的策略引入,結合表12、13的對比結果可知:對比于FedCoin傳統Shapley值計算的權重分配,雖然在同一參與者的不同規模組合下仍然是對稱的,但是在不同的參與者之間已經按加入的權重向量進行了重新分配,誠信權重的加入打破了FedCoin傳統Shapley值計算的地位平等局限。對比于表12,對于激勵分配比例,礦工1因為誠信度低,各個輪次比例相較于FedCoin傳統Shapley值計算方式下降,而誠信度較高的礦工2、3都得到了相應計算比例的提升,說明權重參與者的歷史誠信度因素納入了激勵分配的考量,并讓整體的激勵分配結果更加公平合理。
對于整體架構的聯邦學習效果結合圖8(c)可知:FedSharing聯邦學習能夠達到近似于集中學習的訓練效果的原因在于,區塊鏈架構的引入并沒有打破聯邦學習原有的架構體系,只是在外側收集貢獻信息為聯邦學習的參與者們提供合理公平的激勵驅動,從而完善整個系統的生態。
最后,對于雙鏈架構的合理性進行進一步的分析闡述:首先體現在數據存儲方面,單鏈架構可以完成上述的核心聯邦學習激勵功能,并且已經有很多研究證明,但是在實際的生產環境下,聯邦學習的分布式訓練數據以及激勵貢獻數據還有最終的模型數據、激勵代幣合約數據都會給單鏈區塊存儲帶來較大的挑戰,上鏈數據越多就意味著整體網絡同步數據量的加重,吞吐量隨之也會降低;另外體現在算力支撐以及安全問題上,主鏈可采用傳統的PoW/PoS共識算法,雖然犧牲了共識效率,但卻保證了一個較好的安全性(無論是雙花問題還是50%攻擊都證明了公鏈的安全性),側鏈需要計算NP難的Shaply值公式,將其共識算力用于計算此難題,在一定程度上可保護出塊正確性,同時也將大量的算力需求從主鏈分離開,共識算法的快速一致也符合聯邦學習梯度迭代場景需求,這些都是單鏈的瓶頸;最后體現在功能劃分上,核心在于一條區塊鏈只專注服務一項功能,主鏈核心只負責激勵的記錄兌換,維護整個激勵代幣系統的運行功能,而側鏈則只負責計算激勵貢獻度。功能劃分的好處在于,主鏈和側鏈都不會互相互依賴,未來可以替換主鏈,只要部署相同的代幣合約(或稱為合約移植),整個系統還是可以繼續運行,側鏈同理。綜上所述,此系統中的雙鏈架構存在一定的必要性和完備性。
4結束語
本文提出了FedSharing雙區塊鏈激勵驅動的數據分享聯邦學習框架,將區塊鏈技術與聯邦學習技術相融合,旨在解決去中心化聯邦學習中的通信消耗、通信安全和公平激勵分配問題?;谔荻葼顟B通道的主鏈架構解決了智能合約聚合方案的大量時延問題?;谛拚齋hapley值的側鏈共識算法加入了考量聯邦學習參與者的歷史誠信度,讓激勵結果更加公平實際。此外還詳細介紹了聯邦學習中的激勵分配方案以及跨鏈資產流通,讓主側鏈之間能夠各司其職各擅其長并有效交互?;趨^塊鏈激勵的聯邦學習架構在未來實際生產生活中將會應用到更多業務場景,推動社會數字智能化進展。
FedSharing框架是當前區塊鏈與聯邦學習結合的一個應用雛形,還存在一些不成熟的地方,需要后續不斷地更新完善,例如防范聯邦學習中梯度分析攻擊、差分攻擊、后門攻擊等。在未來的工作中,還會繼續探究區塊鏈激勵聯邦學習的框架與方法。
參考文獻:
[1]Li Tian,Sahu A K,Talwalkar A,et al.Federated learning:challenges,methods,and future directions[J].IEEE Signal Processing Magazine,2020,37(3):50-60.
[2]Nakamoto S.Bitcoin:a peertopeer electronic cash system[EB/OL].(2009).https://bitcoin.org/en/bitcoinpaper.
[3]Eisenbarth J P,Cholez T,Perrin O.A comprehensive study of the Bitcoin P2P network[C]//Proc of the 3rd Conference on Blockchain Research amp; Applications for Innovative Networks and Services.Piscataway,NJ:IEEE Press,2021:105112.
[4]劉揚,胡學先,周剛,等.基于多層次區塊鏈的醫療數據共享模型[J].計算機應用研究,2022,39(5):13071312,1318.(Liu Yang,Hu Xuexian,Zhou Gang,et al.Multilevel blockchainbased model for medical data sharing[J].Application Research of Computers,2022,39(5):13071312,1318.)
[5]Nagar A.Privacypreserving blockchain based federated learning with differential data sharing[EB/OL].(20191210).https://arxiv.org/abs/1912.04859.
[6]Mugunthan V,Rahman R,Kagal L.Blockflow:an accountable and privacypreserving solution for federated learning[EB/OL].(2020-07-08).https://arxiv.org/abs/2007.03856.
[7]Korkmaz C,Kocas H E,Uysal A,et al.Chain FL:decentralized federated machine learning via blockchain[C]//Proc of the 2nd International Conference on Blockchain Computing and Applications.Piscataway,NJ:IEEE Press,2020:140146.
[8]Bao Xianglin,Su Cheng,Xiong Yan,et al.FLChain:a blockchain for auditable federated learning with trust and incentive[C]//Proc of the 5th International Conference on Big Data Computing and Communications.Piscataway,NJ:IEEE Press,2019:151159.
[9]Desai H B,Ozdayi M S,Kantarcioglu M.BlockFLA:accountable federated learning via hybrid blockchain architecture[C]//Proc of the 11th ACM Conference on Data and Application Security and Privacy.2021:101112.
[10]Zhang Qiong,Palacharla P,Sekiya M,et al.Demo:a blockchain based protocol for federated learning[C]//Proc of the 28th International Conference on Network Protocols.Piscataway,NJ:IEEE Press,2020:1-2.
[11]Martinez I,Francis S,Hafid A S.Record and reward federated learning contributions with blockchain[C]//Proc of International Conference on CyberEnabled Distributed Computing and Knowledge Discovery.Piscataway,NJ:IEEE Press,2019:50-57.
[12]Kim H,Park J,Bennis M,et al.Blockchained ondevice federated learning[J].IEEE Communications Letters,2019,24(6):12791283.
[13]Kang Jiawen,Xiong Zehui,Jiang Chunxiao,et al.Scalable and communicationefficient decentralized federated edge learning with multiblockchain framework[C]//Proc of International Conference on Blockchain and Trustworthy Systems.Berlin:Springer,2020:152165.
[14]Liu Yuan,Ai Zhengpeng,Sun Shuai,et al.FedCoin:a peertopeer payment system for federated learning[M]//Yang Qiang,Fan Lixin,Yu Han.Federated Learning.Cham:Springer,2020:125138.
[15]Dziembowski S,Faust S,Hostáková K.General state channel networks[C]//Proc of ACM SIGSAC Conference on Computer and Communications Security.2018:949-966.
[16]徐秋爽,胡石清,程細玉.Shapley值特點及其局限的討論[J].數學的實踐與認識,2013,43(4):4452.(Xu Qiushuang,Hu Shiqing,Cheng Xiyu.Discussion on Shapley value and its limitation[J].Journal of Mathematics in Practice and Theory,2013,43(4):44-52.)
[17]Buchman E.Tendermint:Byzantine fault tolerance in the age of blockchains[D].Guelph:The University of Guelph,2016.
[18]Kwon J,Buchman E.Cosmos whitepaper[EB/OL].(202010-08).https://cosmos.network/resources/whitepaper.
[19]Zheng Qiuhong,Li Yi,Chen Ping,et al.An innovative IPFSbased storage model for blockchain[C]//Proc of IEEE/WIC/ACM International Conference on Web Intelligence.Piscataway,NJ:IEEE Press,2018:704708.
收稿日期:2022-05-03;修回日期:2022-07-04基金項目:基于校企協同的大數據智能應用方案研究(K2021114);重慶市研究生科研創新項目(CYS21311)
作者簡介:陳喬松(1978-),男(通信作者),重慶人,副教授,碩導,博士,主要研究方向為計算機視覺(chenqs@cqupt.edu.cn);許文杰(1998-),男,安徽六安人,碩士研究生,主要研究方向為區塊鏈、聯邦學習;何小陽(1996-),男,四川南充人,碩士研究生,主要研究方向為區塊鏈;丁小月(1998-),女,湖南湘潭人,碩士研究生,主要研究方向為自動化;孫開偉(1987-),男,重慶人,副教授,碩導,博士,主要研究方向為機器學習、大數據分析;鄧欣(1981-),男,重慶人,副教授,碩導,博士,主要研究方向為腦機接口、智能信息處理;王進(1979-),男,重慶人,教授,碩導,博士,主要研究方向為機器學習.