楊明,胡學(xué)先,張啟慧,魏江宏,劉文芬
(1. 信息工程大學(xué),河南 鄭州 450001;2. 桂林電子科技大學(xué),廣西 桂林 541004)
隨著嵌入式系統(tǒng)和網(wǎng)絡(luò)技術(shù)的加速發(fā)展,具有計(jì)算、感知和無線通信能力的傳感器以及由其構(gòu)成的移動(dòng)網(wǎng)絡(luò)已經(jīng)逐步進(jìn)入人們的生活[1]?;谶@些傳感器收集的數(shù)據(jù),通過在移動(dòng)設(shè)備終端部署機(jī)器學(xué)習(xí)模型,可以極大地提高移動(dòng)服務(wù)的質(zhì)量,如疾病預(yù)測(cè)[2]和自動(dòng)駕駛路徑規(guī)劃[3]等。然而,傳統(tǒng)的端到端學(xué)習(xí)需要將訓(xùn)練數(shù)據(jù)上傳到云服務(wù)器或者數(shù)據(jù)中心進(jìn)行集中處理,這不僅會(huì)帶來過高的通信和存儲(chǔ)成本,而且會(huì)使移動(dòng)用戶面臨隱私泄露的風(fēng)險(xiǎn)[4]。因此,如何在保證用戶隱私的前提下,充分發(fā)揮機(jī)器學(xué)習(xí)等人工智能方法的潛力是一項(xiàng)意義深遠(yuǎn)而又亟待解決的問題。
聯(lián)邦學(xué)習(xí)[5-7]作為一種新興的分布式隱私保護(hù)機(jī)器學(xué)習(xí)訓(xùn)練模型得到越來越多的重視,其系統(tǒng)結(jié)構(gòu)如圖1所示。在每次迭代過程中,參數(shù)服務(wù)器將模型訓(xùn)練任務(wù)部署到終端設(shè)備,后者不需要上傳原始數(shù)據(jù),而是在本地根據(jù)自己的私有數(shù)據(jù)訓(xùn)練機(jī)器學(xué)習(xí)模型,然后由前者聚合更新來自不同設(shè)備的模型參數(shù)。參數(shù)服務(wù)器和終端設(shè)備不斷重復(fù)上述過程,直到模型參數(shù)達(dá)到預(yù)定的精度[8]。目前,聯(lián)邦學(xué)習(xí)技術(shù)已經(jīng)在一些移動(dòng)網(wǎng)絡(luò)中有所應(yīng)用。谷歌[9]將聯(lián)邦學(xué)習(xí)技術(shù)應(yīng)用到Pixel和安卓等智能手機(jī)中,在保護(hù)用戶數(shù)據(jù)隱私的情況下提升自然語言處理模型的準(zhǔn)確率。通過讓車輛在本地訓(xùn)練預(yù)測(cè)模型,Uber推出的應(yīng)用UberEats采用聯(lián)邦學(xué)習(xí)的方式利用實(shí)時(shí)交通信息估計(jì)送餐時(shí)間,以提高個(gè)性化服務(wù)的水平[10]。為協(xié)作訓(xùn)練診斷模型以確定最佳治療方法,多家醫(yī)院可以通過醫(yī)學(xué)AI應(yīng)用框架NVIDIA Clara將聯(lián)邦學(xué)習(xí)任務(wù)部署到各個(gè)醫(yī)療設(shè)備,而無須集中收集患者的敏感信息。
圖1 聯(lián)邦學(xué)習(xí)系統(tǒng)結(jié)構(gòu)Figure 1 Architecture for a federated learning system
聯(lián)邦學(xué)習(xí)技術(shù)雖然在移動(dòng)網(wǎng)絡(luò)中有廣闊的應(yīng)用前景,但由于其本身處在發(fā)展的初級(jí)階段,仍然面臨嚴(yán)峻的挑戰(zhàn)。一方面是參與方的互信問題,即聯(lián)邦學(xué)習(xí)中的參與用戶來自不同的組織或個(gè)體,彼此之間缺少信任,如果沒有公開公正的可信平臺(tái),參與用戶不愿意參加模型訓(xùn)練[11-12]。另一方面是參與方提供的參數(shù)缺乏驗(yàn)證,即一些參與用戶本地收集的數(shù)據(jù)質(zhì)量與其他參與方相比差距過大,訓(xùn)練的模型會(huì)直接影響整體模型的質(zhì)量,此外,惡意的參與用戶甚至還會(huì)提供虛假的參數(shù)破壞學(xué)習(xí)過程[13],從而對(duì)其他參與方產(chǎn)生不利影響。因此,將聯(lián)邦學(xué)習(xí)應(yīng)用到移動(dòng)網(wǎng)絡(luò)的同時(shí)需要重點(diǎn)設(shè)計(jì)一種可靠的信譽(yù)評(píng)估管理機(jī)制,使移動(dòng)用戶之間既能互相信任對(duì)方,又能獲得高質(zhì)量的模型參數(shù)。
近年來,區(qū)塊鏈技術(shù)以其獨(dú)有的去中心化、不易篡改和可追溯等特性為解決上述問題提供了思路。一些研究人員開始將聯(lián)邦學(xué)習(xí)和區(qū)塊鏈技術(shù)相結(jié)合來實(shí)現(xiàn)移動(dòng)網(wǎng)絡(luò)中的數(shù)據(jù)共享。文獻(xiàn)[14]設(shè)計(jì)了基于改進(jìn)的DPoS共識(shí)的區(qū)塊鏈車聯(lián)網(wǎng)數(shù)據(jù)共享模型,引入主觀邏輯模型以實(shí)現(xiàn)安全高效的信譽(yù)管理。Rehman等[15]提出了基于區(qū)塊鏈的細(xì)粒度信譽(yù)感知的概念,確保移動(dòng)邊緣計(jì)算的參與方能夠進(jìn)行可信的聯(lián)合訓(xùn)練。Fedcoin[16]從博弈論的角度出發(fā),由共識(shí)網(wǎng)絡(luò)的礦工節(jié)點(diǎn)通過采用沙普利法精確計(jì)算各參與方所做的貢獻(xiàn),使各參與方能夠公平分配聯(lián)邦學(xué)習(xí)獲得的利潤(rùn)。
現(xiàn)有的移動(dòng)網(wǎng)絡(luò)聯(lián)邦學(xué)習(xí)研究中缺乏對(duì)參與各方信譽(yù)的評(píng)估和管理,無法為用戶提供互信的協(xié)作訓(xùn)練平臺(tái)。本文以此為出發(fā)點(diǎn),利用主觀邏輯模型計(jì)算參與方的信譽(yù)值,然后將每次訓(xùn)練后各個(gè)參與方的信譽(yù)值存儲(chǔ)到不可更改的區(qū)塊中,以供其他用戶使用。同時(shí),為了對(duì)用戶上傳的信譽(yù)意見進(jìn)行評(píng)價(jià)和管理,本文采用信譽(yù)評(píng)估機(jī)制和區(qū)塊鏈技術(shù)相結(jié)合的模式,將模糊層次分析(FAHP,fuzzy analytic hierarchy process)法集成到智能合約中,為用戶提供可調(diào)節(jié)的信譽(yù)意見訪問控制策略。只有信譽(yù)值超過一定閾值的用戶才可以訪問鏈上資源,從而有效降低了用戶的惡意行為,激勵(lì)更多用戶共享高質(zhì)量的信譽(yù)意見。實(shí)驗(yàn)表明,本文的方案可以顯著降低惡意數(shù)據(jù)擁有方參與聯(lián)邦學(xué)習(xí)的可能性,提高模型的準(zhǔn)確率。
區(qū)塊鏈?zhǔn)怯蓞^(qū)塊按時(shí)間順序串聯(lián)起來的鏈?zhǔn)浇Y(jié)構(gòu),每個(gè)區(qū)塊包含區(qū)塊頭和區(qū)塊體兩部分[17-18],其存儲(chǔ)結(jié)構(gòu)如圖2所示。以比特幣為例[19],區(qū)塊頭存儲(chǔ)了版本號(hào)、前一個(gè)區(qū)塊的哈希值(父哈希)、時(shí)間戳、Merkle根、難度值和一個(gè)隨機(jī)數(shù),區(qū)塊體由交易信息構(gòu)成,所有的交易以Merkle樹的結(jié)構(gòu)存儲(chǔ)。其中,哈希指針能唯一標(biāo)識(shí)區(qū)塊并將各個(gè)區(qū)塊相連接,使得區(qū)塊中的每條數(shù)據(jù)可以追溯到源頭,時(shí)間戳則保證了區(qū)塊的有序性。同時(shí)利用Merkle樹,可以單獨(dú)下載一個(gè)分支對(duì)部分?jǐn)?shù)據(jù)校驗(yàn),實(shí)現(xiàn)高效的交易驗(yàn)證。
圖2 區(qū)塊結(jié)構(gòu)Figure 2 The structure of blocks
依據(jù)賬本權(quán)限準(zhǔn)入機(jī)制的不同,區(qū)塊鏈可以劃分為公有鏈、私有鏈和聯(lián)盟鏈[20],如表1所示。公有鏈沒有權(quán)限設(shè)定,任何人都可以隨時(shí)加入網(wǎng)絡(luò),鏈上數(shù)據(jù)對(duì)全網(wǎng)公開,由全體網(wǎng)絡(luò)節(jié)點(diǎn)共同維護(hù),被認(rèn)為是完全去中心化的分布式賬本,如比特幣、以太坊等。私有鏈建立在一套身份認(rèn)證與權(quán)限設(shè)置的機(jī)制上,對(duì)參與節(jié)點(diǎn)的狀態(tài)有更多的控制權(quán),賬本記錄不對(duì)外開放,僅在組織內(nèi)部使用,如企業(yè)的財(cái)務(wù)審計(jì)、供應(yīng)鏈管理等。介于前兩者之間,聯(lián)盟鏈采用混合的組網(wǎng)機(jī)制,網(wǎng)絡(luò)中的節(jié)點(diǎn)只有部分控制權(quán),信息對(duì)多個(gè)組織構(gòu)成的聯(lián)盟成員開放,通常應(yīng)用于企業(yè)合作,如銀行間的結(jié)算、企業(yè)間物流管理等。
表1 區(qū)塊鏈分類Table 1 Classification of blockchain
本文面向移動(dòng)網(wǎng)絡(luò)提出的聯(lián)邦學(xué)習(xí)方案,具有以下3個(gè)特點(diǎn):一是參與方的種類確定,由擁有各種終端設(shè)備的移動(dòng)用戶組成;二是訓(xùn)練得到的模型參數(shù)涉及用戶的隱私,不會(huì)隨便對(duì)外公開;三是需要較高的交易速度,要求節(jié)點(diǎn)之間能夠較快達(dá)成共識(shí),對(duì)參與方的信譽(yù)實(shí)現(xiàn)高效管理。基于上述特點(diǎn),本文采用聯(lián)盟鏈作為底層區(qū)塊鏈。
智能合約是一套以數(shù)字形式定義的承諾,該承諾控制著數(shù)字資產(chǎn)流轉(zhuǎn),并包含了合約參與者約定的權(quán)利和義務(wù),合約是由計(jì)算機(jī)系統(tǒng)自動(dòng)執(zhí)行[21]。智能合約中的內(nèi)容以數(shù)據(jù)化的形式寫入?yún)^(qū)塊鏈中,由區(qū)塊鏈技術(shù)的特性保障存儲(chǔ)、讀取、執(zhí)行[22]。智能合約的自動(dòng)化和可編程特性使封裝分布式區(qū)塊鏈系統(tǒng)中各節(jié)點(diǎn)的復(fù)雜行為得以實(shí)現(xiàn),這促進(jìn)了區(qū)塊鏈技術(shù)在各類分布式系統(tǒng)中的應(yīng)用。
智能合約中的數(shù)據(jù)主要分為storage和memory兩種類型。前者也可稱為合約的狀態(tài)變量,會(huì)永久存儲(chǔ)在區(qū)塊鏈中,后者則是臨時(shí)變量,交易處理完成后會(huì)被清空。因此,在編寫合約時(shí)要為永久存儲(chǔ)的數(shù)據(jù)定義storage類型變量,而不僅僅是處理交易邏輯。
本文提出一種基于信譽(yù)評(píng)估機(jī)制和區(qū)塊鏈的移動(dòng)網(wǎng)絡(luò)聯(lián)邦學(xué)習(xí)方案。首先,介紹系統(tǒng)的架構(gòu)和工作流程;然后,分別為任務(wù)發(fā)布方和數(shù)據(jù)擁有方設(shè)計(jì)了具體的信譽(yù)意見共享激勵(lì)機(jī)制和信譽(yù)評(píng)估機(jī)制。
本節(jié)介紹的系統(tǒng)架構(gòu)主要包括系統(tǒng)模型和敵手模型兩個(gè)部分。
3.1.1系統(tǒng)模型
基于聯(lián)盟鏈的移動(dòng)網(wǎng)絡(luò)聯(lián)邦學(xué)習(xí)系統(tǒng)主要由移動(dòng)設(shè)備、數(shù)據(jù)擁有方、任務(wù)發(fā)布方和區(qū)塊鏈服務(wù)平臺(tái)4個(gè)部分組成,如圖3所示。
1) 移動(dòng)設(shè)備主要由各種移動(dòng)網(wǎng)絡(luò)中的物聯(lián)網(wǎng)設(shè)備組成,包括智能手機(jī)、可穿戴設(shè)備、車輛傳感器和家用電器等。移動(dòng)設(shè)備是執(zhí)行聯(lián)邦學(xué)習(xí)任務(wù)的基礎(chǔ)設(shè)施,不僅可以從應(yīng)用程序生成各種用戶數(shù)據(jù),而且可以收集大量傳感數(shù)據(jù)。
2) 數(shù)據(jù)擁有方是收集、存儲(chǔ)和處理數(shù)據(jù)的實(shí)體。數(shù)據(jù)擁有方負(fù)責(zé)收集來自移動(dòng)設(shè)備的數(shù)據(jù),并存儲(chǔ)在本地的數(shù)據(jù)庫中。在模型訓(xùn)練期間,首先,每個(gè)數(shù)據(jù)擁有方根據(jù)任務(wù)發(fā)布方的全局模型參數(shù)和訓(xùn)練數(shù)據(jù)本地生成局部模型參數(shù)。然后,所有數(shù)據(jù)擁有方將各自的局部模型參數(shù)發(fā)送給任務(wù)發(fā)布方,以便更新下一輪的全局模型。接著,數(shù)據(jù)擁有方重復(fù)訓(xùn)練過程,直到全局模型的精度達(dá)到預(yù)定的期望值。
3) 任務(wù)發(fā)布方主要由各種需要模型的物聯(lián)網(wǎng)設(shè)備和機(jī)構(gòu)組成,如無人駕駛汽車、家政服務(wù)機(jī)器人、醫(yī)療機(jī)構(gòu)和安全監(jiān)管部門等。任務(wù)發(fā)布方負(fù)責(zé)公開聯(lián)邦學(xué)習(xí)任務(wù)的規(guī)范,如應(yīng)用程序類型、設(shè)備類型、訓(xùn)練數(shù)據(jù)的類型與格式、學(xué)習(xí)模型的類型和計(jì)算要求等,并根據(jù)實(shí)際情況選擇合適的數(shù)據(jù)擁有方。同時(shí),任務(wù)發(fā)布方需要評(píng)估數(shù)據(jù)擁有方的局部模型質(zhì)量,根據(jù)他們的評(píng)估結(jié)果生成信譽(yù)意見索引,然后制定相關(guān)的合約策略,并將信譽(yù)意見索引和合約策略一起上傳到區(qū)塊鏈服務(wù)平臺(tái),以供其他任務(wù)發(fā)布方在聯(lián)邦學(xué)習(xí)中選擇信譽(yù)較好的數(shù)據(jù)擁有方。
4) 區(qū)塊鏈服務(wù)平臺(tái)是存儲(chǔ)信譽(yù)意見索引和合約策略的第三方平臺(tái),由一組具有足夠計(jì)算和存儲(chǔ)資源的礦工維護(hù)。礦工通過共識(shí)算法進(jìn)行驗(yàn)證后,將接收到的信譽(yù)意見索引存儲(chǔ)到數(shù)據(jù)塊中。由于區(qū)塊鏈可追溯和防篡改的性質(zhì),當(dāng)數(shù)據(jù)擁有方發(fā)送低質(zhì)量的局部模型時(shí),數(shù)據(jù)塊中相關(guān)信息可以作為持久且透明的證據(jù)。任務(wù)發(fā)布方將直接信譽(yù)意見與其他任務(wù)發(fā)布方的最新信譽(yù)意見進(jìn)行集成,生成數(shù)據(jù)擁有方的綜合信譽(yù)值,將其作為在聯(lián)邦學(xué)習(xí)過程中選擇可靠數(shù)據(jù)擁有方的重要指標(biāo)。此外,任務(wù)發(fā)布方通過區(qū)塊鏈中預(yù)先定義的訪問控制策略,確保信譽(yù)意見的安全共享,其他任務(wù)發(fā)布方對(duì)信譽(yù)意見的訪問都將保存在區(qū)塊鏈中。
3.1.2敵手模型
由于移動(dòng)網(wǎng)絡(luò)體系結(jié)構(gòu)的開放性和復(fù)雜性,參與用戶在合作訓(xùn)練時(shí)存在著巨大的安全隱患。例如,數(shù)據(jù)擁有方通過不可靠的無線通信信道傳輸數(shù)據(jù),導(dǎo)致遭受惡意攻擊,從而影響數(shù)據(jù)的可用性。針對(duì)面向移動(dòng)網(wǎng)絡(luò)的聯(lián)邦學(xué)習(xí)可能產(chǎn)生的安全問題,本文著重考慮投毒攻擊和合謀攻擊。投毒攻擊是指在本地訓(xùn)練過程中,惡意的數(shù)據(jù)提供方通過攻擊訓(xùn)練數(shù)據(jù)集來操縱模型預(yù)測(cè)的結(jié)果。投毒攻擊主要有兩種方式:數(shù)據(jù)投毒(對(duì)訓(xùn)練集中的樣本進(jìn)行污染,如添加錯(cuò)誤的標(biāo)簽或有偏差的數(shù)據(jù),降低數(shù)據(jù)的質(zhì)量)和模型投毒(改變模型參數(shù)的變化方向,如發(fā)送錯(cuò)誤的參數(shù),減慢模型的收斂速度)。合謀攻擊是指任務(wù)發(fā)布方和某個(gè)數(shù)據(jù)擁有方進(jìn)行主動(dòng)合作,在對(duì)數(shù)據(jù)擁有方的模型質(zhì)量進(jìn)行評(píng)估時(shí),生成不符合實(shí)際的信譽(yù)意見(如對(duì)低質(zhì)量的模型按高質(zhì)量的模型處理),故意誤導(dǎo)其他任務(wù)發(fā)布方選擇特定的數(shù)據(jù)擁有方。這兩種攻擊都會(huì)對(duì)全局模型的準(zhǔn)確性產(chǎn)生負(fù)面影響,降低誠實(shí)參與方的積極性。
基于聯(lián)盟鏈的移動(dòng)網(wǎng)絡(luò)聯(lián)邦學(xué)習(xí)系統(tǒng)如圖3所示。系統(tǒng)可以借助區(qū)塊鏈服務(wù)平臺(tái)為任務(wù)發(fā)布方選擇信譽(yù)較高的數(shù)據(jù)擁有方進(jìn)行模型訓(xùn)練,具體描述如下。
圖3 基于聯(lián)盟鏈的移動(dòng)網(wǎng)絡(luò)聯(lián)邦學(xué)習(xí)系統(tǒng)Figure 3 The system of federated learning for mobile network based on a consortium blockchain
步驟1任務(wù)發(fā)布階段。任務(wù)發(fā)布方將聯(lián)邦學(xué)習(xí)任務(wù)的規(guī)范廣播到全網(wǎng),滿足要求的數(shù)據(jù)擁有方將數(shù)據(jù)集信息的摘要發(fā)送給任務(wù)發(fā)布方,該數(shù)據(jù)擁有方成為模型訓(xùn)練的候選人。
步驟2數(shù)據(jù)擁有方選擇階段。為了獲得高質(zhì)量的全局模型,在訓(xùn)練模型前,任務(wù)發(fā)布方需要預(yù)先從區(qū)塊鏈服務(wù)平臺(tái)下載候選數(shù)據(jù)擁有方最近一段時(shí)間的信譽(yù)意見?;趨^(qū)塊鏈和聯(lián)邦學(xué)習(xí)的移動(dòng)網(wǎng)絡(luò)中含有兩種類型的信譽(yù)意見:直接信譽(yù)意見和間接信譽(yù)意見。任務(wù)發(fā)布方通過融合這兩種意見對(duì)每個(gè)數(shù)據(jù)擁有方做出綜合評(píng)價(jià),選擇信譽(yù)值較高的數(shù)據(jù)擁有方參與聯(lián)邦學(xué)習(xí)的任務(wù)。
步驟3模型訓(xùn)練評(píng)估階段。任務(wù)發(fā)布方向參與訓(xùn)練的數(shù)據(jù)擁有方發(fā)送初始化后的全局模型參數(shù)。數(shù)據(jù)擁有方收到參數(shù)后,在本地依據(jù)所持有的數(shù)據(jù),通過隨機(jī)梯度下降算法,尋找局部模型參數(shù),使損失函數(shù)最小化,并將更新的模型參數(shù)上傳到任務(wù)發(fā)布方。為了識(shí)別進(jìn)行投毒攻擊的數(shù)據(jù)擁有方,任務(wù)發(fā)布方需要執(zhí)行一些投毒攻擊檢測(cè)方案。RONI(reject on negative influence)和FoolsGold分別是針對(duì)數(shù)據(jù)獨(dú)立同分布(IID)和非IID場(chǎng)景下的攻擊檢測(cè)方案。通過這兩種方案,任務(wù)發(fā)布方可以拒絕接受惡意數(shù)據(jù)擁有方的局部模型參數(shù),并按照文獻(xiàn)[23]的方法計(jì)算其他局部模型參數(shù)的平均值。在每次迭代過程中,進(jìn)行投毒攻擊的數(shù)據(jù)擁有方將會(huì)被記錄下來,任務(wù)發(fā)布方依此為其生成本地信譽(yù)意見。
步驟4信譽(yù)值更新階段。首先依據(jù)歷史記錄對(duì)數(shù)據(jù)擁有方生成直接信譽(yù)意見后,這些意見被當(dāng)作交易由任務(wù)發(fā)布方簽名后上傳到區(qū)塊鏈服務(wù)平臺(tái)。然后,礦工驗(yàn)證信譽(yù)意見的有效性,并執(zhí)行實(shí)用拜占庭容錯(cuò)(PBFT,practical Byzantine fault tolerance)共識(shí)算法將其上鏈。至此,信譽(yù)值的更新工作完成,所有的任務(wù)發(fā)布方都可以通過查詢區(qū)塊鏈上的信譽(yù)意見選擇表現(xiàn)良好的數(shù)據(jù)擁有方以完成聯(lián)邦學(xué)習(xí)任務(wù)。
為了對(duì)任務(wù)發(fā)布方上傳信譽(yù)意見的行為進(jìn)行監(jiān)督,激勵(lì)更多任務(wù)發(fā)布方提供高質(zhì)量的信譽(yù)意見,本文設(shè)計(jì)了一種信譽(yù)意見共享激勵(lì)機(jī)制。該激勵(lì)機(jī)制主要分為兩部分:基于智能合約的信譽(yù)意見管理和任務(wù)發(fā)布方信譽(yù)的評(píng)價(jià)。前者將信譽(yù)評(píng)估機(jī)制集成到智能合約中,為任務(wù)發(fā)布方提供可調(diào)節(jié)的共享策略;后者提出了計(jì)算信譽(yù)值的具體方法,為任務(wù)發(fā)布方調(diào)節(jié)共享策略提供依據(jù)。本節(jié)首先介紹基于智能合約的信譽(yù)意見管理,對(duì)任務(wù)發(fā)布方信譽(yù)的評(píng)價(jià)將在下一節(jié)進(jìn)行介紹。
在本文的方案中,智能合約負(fù)責(zé)所有的交易邏輯處理,包括用戶節(jié)點(diǎn)注冊(cè)、信譽(yù)意見共享、信譽(yù)意見訪問和信譽(yù)意見更新4種交易。其中,節(jié)點(diǎn)注冊(cè)交易負(fù)責(zé)登記用戶身份,只有在區(qū)塊鏈中注冊(cè)的任務(wù)發(fā)布方才能進(jìn)行信譽(yù)意見的共享、訪問和更新。智能合約狀態(tài)變量保留了永久性存儲(chǔ)在區(qū)塊鏈中的數(shù)據(jù),為任務(wù)發(fā)布方的身份驗(yàn)證、信譽(yù)意見的共享及任務(wù)發(fā)布方信譽(yù)值計(jì)算提供數(shù)據(jù)支撐。智能合約函數(shù)用于處理合約的內(nèi)部邏輯,實(shí)現(xiàn)請(qǐng)求和更新等功能。智能合約狀態(tài)變量說明和智能合約函數(shù)說明分別如表2和表3所示。
表2 智能合約狀態(tài)變量說明Table 2 Description of smart contract variables
表3 智能合約函數(shù)說明Table 3 Description of smart contract functions
(1)用戶身份注冊(cè)
任務(wù)發(fā)布方將真實(shí)身份ID、身份證明Vid、注冊(cè)地址address和公鑰pk等信息發(fā)送給區(qū)塊鏈服務(wù)平臺(tái)上的審計(jì)節(jié)點(diǎn),申請(qǐng)將信息登記到區(qū)塊鏈中。在該過程中,審計(jì)節(jié)點(diǎn)驗(yàn)證任務(wù)發(fā)布方的身份信息,身份驗(yàn)證成功后調(diào)用合約接口node_register()將任務(wù)發(fā)布方的信息寫入?yún)^(qū)塊鏈,同時(shí)將信息更新到審計(jì)節(jié)點(diǎn)變量audit_node。任務(wù)發(fā)布方注冊(cè)成功后就能夠上傳和下載有關(guān)數(shù)據(jù)擁有方的信譽(yù)意見。注冊(cè)過程如算法1所示。
算法1節(jié)點(diǎn)注冊(cè)算法
(2)信譽(yù)意見共享
聯(lián)邦學(xué)習(xí)任務(wù)結(jié)束后,任務(wù)發(fā)布方生成本地信譽(yù)意見reo,并且用隨機(jī)產(chǎn)生的對(duì)稱密鑰smk加密 [reo]smk。任務(wù)發(fā)布方將 [reo]smk上傳到云端,云端返回信譽(yù)意見的存儲(chǔ)索引url。任務(wù)發(fā)布方使用公鑰pkp加密smk獲得 [smk]pkp,然后調(diào)用接口函數(shù)contribute_reo()創(chuàng)建共享交易R(shí)EO_TXID。合約內(nèi)部執(zhí)行函數(shù)verify_pk(),檢測(cè)任務(wù)發(fā)布方的身份注冊(cè)信息,驗(yàn)證通過后將信譽(yù)意見相關(guān)信息存入變量reo_share[url_hash]中,該變量指向reo_sharing結(jié)構(gòu)體。同時(shí)合約調(diào)用內(nèi)部函數(shù)set_url_pk()將url與任務(wù)發(fā)布方公鑰pkp的對(duì)應(yīng)關(guān)系記錄到變量url_pk[url_hash]中。之后合約為該信譽(yù)意見初始化白名單url_whitelist[url_hash],將任務(wù)發(fā)布方的信息及解密 [smk]pkp的私鑰存入白名單所指向的pk_whitelist中。隨后,任務(wù)發(fā)布方調(diào)用合約給白名單添加成員,允許其他信譽(yù)較高的任務(wù)發(fā)布方訪問信譽(yù)意見。本文方案基于移動(dòng)網(wǎng)絡(luò)中只有少數(shù)任務(wù)發(fā)布方是惡意的這個(gè)假設(shè),在共享過程中,單個(gè)任務(wù)發(fā)布方生成本地意見后進(jìn)行修改對(duì)數(shù)據(jù)擁有方的信譽(yù)值幾乎沒有影響,因?yàn)樗岱桨笗?huì)根據(jù)數(shù)據(jù)擁有方的歷史交互記錄和其他多個(gè)任務(wù)發(fā)布方的間接信譽(yù)意見,結(jié)合熵的理論定義自適應(yīng)權(quán)重,對(duì)數(shù)據(jù)擁有方進(jìn)行綜合的信譽(yù)評(píng)估,從而使信譽(yù)評(píng)估客觀準(zhǔn)確。信譽(yù)意見共享如算法2所示。
算法2信譽(yù)意見共享算法
任務(wù)發(fā)布方在每次進(jìn)行聯(lián)邦學(xué)習(xí)前,執(zhí)行信譽(yù)意見訪問算法請(qǐng)求得到其他任務(wù)發(fā)布方的信息意見,以選擇可靠的數(shù)據(jù)擁有方。請(qǐng)求方輸入被訪問任務(wù)發(fā)布方的公鑰pkp及信譽(yù)意見索引路徑哈希url_hash、自己的公鑰pkr調(diào)用函數(shù)request_smk()后,合約驗(yàn)證請(qǐng)求方的身份,如果驗(yàn)證成功,合約會(huì)判斷請(qǐng)求方是否在被訪問任務(wù)發(fā)布方的白名單中,如果存在就會(huì)更新請(qǐng)求方的訪問時(shí)間,并返回加密密鑰 [smk]pkr,請(qǐng)求方用私鑰就可以解密得到對(duì)稱密鑰;否則視為請(qǐng)求方在被訪問任務(wù)發(fā)布方的本地信譽(yù)較低,任務(wù)發(fā)布方拒絕訪問,訪問失敗。此外,在訪問鏈上相應(yīng)資源時(shí),還需要由區(qū)塊鏈服務(wù)平臺(tái)上的審計(jì)節(jié)點(diǎn)進(jìn)行身份認(rèn)證。如果非白名單中的任務(wù)發(fā)布方通過與白名單中的任務(wù)方合謀得到對(duì)稱密鑰,不在白名單的任務(wù)發(fā)布方在認(rèn)證時(shí)不會(huì)被通過,從而無法獲取信譽(yù)意見reo。信譽(yù)意見的訪問如算法3所示。
算法3信譽(yù)意見訪問算法
請(qǐng)求方會(huì)在本地對(duì)其他任務(wù)發(fā)布方的信譽(yù)意見進(jìn)行評(píng)估,若某一任務(wù)發(fā)布方信譽(yù)較低的次數(shù)超過設(shè)定的閾值,請(qǐng)求方就會(huì)調(diào)用函數(shù)update_smk_remove(),將該任務(wù)發(fā)布方從自己的白名單中移除。信譽(yù)意見的更新如算法4所示。
算法4信譽(yù)意見的更新
本節(jié)給出計(jì)算任務(wù)發(fā)布方和數(shù)據(jù)擁有方信譽(yù)值的具體方法。
3.4.1對(duì)任務(wù)發(fā)布方的信譽(yù)評(píng)估
任務(wù)發(fā)布方會(huì)根據(jù)其他任務(wù)發(fā)布方的信譽(yù)意見在本地對(duì)其進(jìn)行信譽(yù)評(píng)估,從而調(diào)用信譽(yù)意見共享算法調(diào)整信譽(yù)意見共享策略。被評(píng)價(jià)任務(wù)發(fā)布方提供的信譽(yù)意見越可靠,信譽(yù)值就越高,可訪問的信譽(yù)意見資源就越多。任務(wù)發(fā)布方的信譽(yù)并不能從單一特性進(jìn)行評(píng)估,本文采用模糊層次分析法[24-25]對(duì)任務(wù)發(fā)布方的信譽(yù)進(jìn)行評(píng)估。先將任務(wù)發(fā)布方的信譽(yù)分為n個(gè)特性,再把每個(gè)特性分為若干個(gè)特征類型,將任務(wù)發(fā)布方行為信譽(yù)評(píng)估問題轉(zhuǎn)化為簡(jiǎn)單明確的信譽(yù)特征加權(quán)求和問題。FAHP計(jì)算任務(wù)發(fā)布方信譽(yù)值的過程分為以下4個(gè)步驟。
步驟1將信譽(yù)分為3層,如圖4所示。為了不給區(qū)塊鏈造成負(fù)擔(dān),任務(wù)發(fā)布方會(huì)在本地分析其他任務(wù)發(fā)布方的信譽(yù)意見并依據(jù)區(qū)塊鏈網(wǎng)絡(luò)中交易情況,從而確定被評(píng)價(jià)任務(wù)發(fā)布方的行為特征。
圖4 任務(wù)發(fā)布方行為特征分類Figure 4 Classification of task publisher behavior characteristics
步驟2建立行為特征矩陣為特性個(gè)數(shù),m為特性中行為特征個(gè)數(shù)的最大值,不夠的項(xiàng)用零補(bǔ)充。為了便于計(jì)算和評(píng)估任務(wù)發(fā)布方行為,需要對(duì)矩陣C進(jìn)行歸一化處理,將其規(guī)范為[0,1]的特征矩陣將同一特性下的特征按重要性做二元對(duì)比,獲得初始判斷矩陣EQ=[eqij]m×m。以服務(wù)特性為例,特征個(gè)數(shù)為4,特征矩陣Ep=[e1,e2,e3,e4],利用式(1)獲得初始判斷矩陣EQp。
步驟3使用式(3)計(jì)算服務(wù)特性下個(gè)特征的
權(quán)重向量,從而得到wP=[wP1,wP2,wP3,wP4],對(duì)于可靠特性,同樣利用式(1)~式(3)得到可靠特性R的特征權(quán)重向量wR=[wR1,wR2,wR3]和特性權(quán)重向量Wf=[wP,wR]。
步驟4由特征矩陣E=[eij]n×m,權(quán)重矩陣W=(wij)n×m,根據(jù)E×WT得到的矩陣對(duì)角線上的值就是任務(wù)發(fā)布方的特性評(píng)估值矩陣F=(f1,f2,…fn),最后,任務(wù)發(fā)布方的信譽(yù)值表示為
3.4.2對(duì)數(shù)據(jù)擁有方的信譽(yù)評(píng)估
在移動(dòng)網(wǎng)絡(luò)中,有效和準(zhǔn)確的信譽(yù)計(jì)算方法會(huì)激勵(lì)更多數(shù)據(jù)擁有方提供高質(zhì)量的模型參數(shù)。本文在主觀邏輯的基礎(chǔ)上,采用貝葉斯理論消除訓(xùn)練過程中的不確定交互,根據(jù)數(shù)據(jù)擁有方的歷史交互記錄和其他多個(gè)任務(wù)發(fā)布方的間接信譽(yù)意見,結(jié)合熵的理論定義自適應(yīng)權(quán)重,制定了一個(gè)綜合的信譽(yù)評(píng)估方案。下面從信譽(yù)計(jì)算涉及的相關(guān)定義和評(píng)估方法進(jìn)行詳細(xì)闡述。
定義1(交互)數(shù)據(jù)擁有方從任務(wù)發(fā)布方下載全局模型參數(shù),并根據(jù)本地?cái)?shù)據(jù)迭代訓(xùn)練上傳一次參數(shù)的過程被稱為一次交互。其中,通過任務(wù)方投毒攻擊檢測(cè)方案的為正交互,否則為負(fù)交互。當(dāng)數(shù)據(jù)擁有方未上傳任何參數(shù)時(shí),即代表出現(xiàn)了不確定交互。
定義2(歷史交互)歷史交互是在Δt時(shí)間內(nèi)任務(wù)發(fā)布方對(duì)數(shù)據(jù)擁有方交互記錄的集合t={s,f},其中,s和f分別為正交互的數(shù)目和負(fù)交互的數(shù)目。
本文在計(jì)算數(shù)據(jù)擁有方信譽(yù)值時(shí)采用了3種信譽(yù)評(píng)估的方法,分別為直接信譽(yù)評(píng)估、間接信譽(yù)評(píng)估和綜合信譽(yù)評(píng)估。
(1)直接信譽(yù)評(píng)估
根據(jù)主觀邏輯的概念,將任務(wù)發(fā)布方i在Δt時(shí)間內(nèi)對(duì)數(shù)據(jù)擁有方j(luò)的信譽(yù)評(píng)價(jià)表示為一個(gè)三元組的形式 γi→j= {bi→j,di→j,ui→j}。bi→j是相信數(shù)據(jù)擁有方j(luò)服務(wù)質(zhì)量的真實(shí)概率,di→j是認(rèn)為數(shù)據(jù)擁有方服務(wù)是低質(zhì)的概率,ui→j表示對(duì)數(shù)據(jù)擁有方j(luò)服務(wù)質(zhì)量的不確定性。其中bi→j,di→j,ui→j?(0,1),并滿足以下要求
進(jìn)一步,基于主觀邏輯的本地模型[14,26]和定義2,可以得到:
其中,qi→j是參數(shù)傳輸成功的概率,代表著通信質(zhì)量。為了使信譽(yù)評(píng)價(jià)更精確,當(dāng)數(shù)據(jù)擁有方j(luò)出現(xiàn)不確定交互時(shí),本文使用貝葉斯公式預(yù)測(cè)數(shù)據(jù)擁有方出現(xiàn)正交互的概率,即
其中,將數(shù)據(jù)擁有方j(luò)的歷史交互ti→j作為前置條件E,出現(xiàn)正交互的行為作為事件H。假設(shè)事件E發(fā)生的條件下事件H發(fā)生的概率服從Beta分布,則數(shù)據(jù)擁有方j(luò)的不確定交互行為對(duì)信譽(yù)影響的相關(guān)系數(shù)ai→j可以用Beta分布[27]的數(shù)學(xué)期望表示為
相關(guān)系數(shù)ai→j表示數(shù)據(jù)擁有方j(luò)不確定交互時(shí)表現(xiàn)為正交互的概率。結(jié)合式(6)、式(8),在一次聯(lián)邦學(xué)習(xí)任務(wù)中,任務(wù)發(fā)布方i對(duì)數(shù)據(jù)擁有方j(luò)直接信譽(yù)值Ti→j的計(jì)算公式為
為了使評(píng)估具有更高的可靠性和可信度,本文考慮了活躍度和實(shí)效性兩個(gè)因素。
① 活躍度。模型的訓(xùn)練過程需要考慮數(shù)據(jù)擁有方的計(jì)算成本和通信成本,其交互數(shù)目越多,付出的成本就越高。數(shù)據(jù)擁有方j(luò)的活躍度是任務(wù)發(fā)布方i在一定時(shí)間窗口與其交互的數(shù)目和與其他數(shù)據(jù)擁有方平均交互數(shù)目的比率,即
其中,ri→j=si→j+fi→j,表示任務(wù)發(fā)布方i與數(shù)據(jù)擁有方j(luò)在一定時(shí)間窗口內(nèi)交互的總數(shù)目。本文假設(shè)在這個(gè)時(shí)間窗口與任務(wù)發(fā)布方交互的數(shù)據(jù)擁有方的集合為S。結(jié)合式(6)、式(9)和式(10),信譽(yù)值Ti→j的計(jì)算公式可以進(jìn)一步調(diào)整為
調(diào)整后的信譽(yù)值與活躍度相關(guān),這不僅能反映當(dāng)前數(shù)據(jù)擁有方自身的交互情況,也能反映它在所有交互情況下所占的比例。
② 時(shí)效性。歷史交互是任務(wù)發(fā)布方和數(shù)據(jù)擁有方在Δt時(shí)間內(nèi)交互記錄的集合,因此對(duì)數(shù)據(jù)擁有方的信譽(yù)評(píng)價(jià)隨時(shí)間動(dòng)態(tài)變化。一般來說,最新的歷史交互要比過去的歷史交互影響大,對(duì)信譽(yù)值計(jì)算有更多的參考價(jià)值。為了準(zhǔn)確及時(shí)反映信譽(yù)評(píng)價(jià)的時(shí)效性,本文用ε表示最新歷史交互的權(quán)重,σ表示過去歷史交互的權(quán)重,ε+σ=1,ε>σ且ε,σ? (0,1)。具體ε的大小可以根據(jù)交互情況和歷史經(jīng)驗(yàn)獲得。據(jù)此,信譽(yù)值的更新公式表示為
與社交網(wǎng)絡(luò)相似,移動(dòng)網(wǎng)絡(luò)中的每個(gè)任務(wù)發(fā)布方在評(píng)估數(shù)據(jù)擁有方的信譽(yù)值時(shí),會(huì)間接參考其他任務(wù)發(fā)布方對(duì)當(dāng)前數(shù)據(jù)擁有方的信譽(yù)評(píng)估。間接信譽(yù)值是其他任務(wù)發(fā)布方k對(duì)數(shù)據(jù)擁有方j(luò)評(píng)估的直接信譽(yù)值,是任務(wù)發(fā)布方i通過查詢區(qū)塊鏈得到的。
考慮到其他任務(wù)發(fā)布方可能與一些數(shù)據(jù)擁有方串謀欺騙,因此間接信譽(yù)值并不都是可信的。本文引入信息熵的概念給不同的間接信譽(yù)值分配權(quán)重,可有效改善主觀分配權(quán)重帶來的問題,增強(qiáng)模型適應(yīng)性。根據(jù)式(13),計(jì)算信譽(yù)值的熵。
信息熵能夠反映間接信譽(yù)值之間的差異程度,即各間接信譽(yù)值偏離整體間接信譽(yù)值集合的程度。一些任務(wù)發(fā)布方可能為了利益對(duì)數(shù)據(jù)擁有方做出不切實(shí)際的信譽(yù)評(píng)價(jià),造成信譽(yù)值的計(jì)算過高或者過低,信息熵將這種行為識(shí)別出來,使其信譽(yù)值在整體間接信譽(yù)評(píng)價(jià)中占有很小的比例,從而使間接評(píng)估客觀準(zhǔn)確。通常,間接信譽(yù)值之間的差異化程度越小,對(duì)數(shù)據(jù)擁有方的間接評(píng)估就越客觀,因此,可以利用式(14)計(jì)算各間接信譽(yù)值的權(quán)重。
其中,n表示間接信譽(yù)值的個(gè)數(shù)。最后,全局的間接信譽(yù)評(píng)估值為
(3)綜合信譽(yù)評(píng)估
任務(wù)發(fā)布方i的綜合信譽(yù)評(píng)估方法是將直接信譽(yù)值Ti→j和全局間接信譽(yù)值進(jìn)行合成,從而得到數(shù)據(jù)擁有方j(luò)的綜合信譽(yù)值,使評(píng)估過程全面準(zhǔn)確。合成的方法是利用兩者所提供信息的效用值,即根據(jù)兩種評(píng)估方法之間的差異程度對(duì)信譽(yù)值的權(quán)重進(jìn)行修正,因此,綜合信譽(yù)值由式(16)計(jì)算。
其中,dθ和rθ分別是直接信譽(yù)值Ti→j和間接信譽(yù)值的自適應(yīng)權(quán)重,和分別是的信息熵。
本節(jié)證明所提出的方案可以有效防止投毒攻擊和合謀攻擊。
(1)防止投毒攻擊
本文通過檢測(cè)模型參數(shù)和信譽(yù)評(píng)估兩種方法可有效防止投毒攻擊。一方面,在模型訓(xùn)練階段,惡意數(shù)據(jù)擁有方上傳的模型參數(shù)由本次的任務(wù)發(fā)布方進(jìn)行檢測(cè)。只有檢測(cè)成功的模型參數(shù)才會(huì)用于模型的聚合,從而去除了可以對(duì)模型產(chǎn)生負(fù)面影響的參數(shù)。另一方面,在模型評(píng)估階段,未通過檢測(cè)的數(shù)據(jù)擁有方會(huì)被記錄下來,任務(wù)發(fā)布方根據(jù)記錄生成信譽(yù)意見并上傳到區(qū)塊鏈服務(wù)平臺(tái)。惡意數(shù)據(jù)擁有方投毒的次數(shù)越多,其信譽(yù)值越低。任務(wù)發(fā)布方能夠通過查看區(qū)塊鏈上的信譽(yù)記錄選擇信譽(yù)值較高的數(shù)據(jù)擁有方參與模型訓(xùn)練,從而降低了惡意數(shù)據(jù)擁有方投毒的可能。
(2)防止合謀攻擊
為了防止一些任務(wù)發(fā)布方與數(shù)據(jù)擁有方進(jìn)行合謀攻擊,必須確保在計(jì)算間接信譽(yù)評(píng)估值時(shí),這些任務(wù)發(fā)布方的信譽(yù)評(píng)估占有很小的權(quán)重。信息熵可以反映數(shù)據(jù)擁有方信譽(yù)值的無序化程度,也就是各個(gè)信譽(yù)值偏離整個(gè)推薦信譽(yù)集合的程度。任務(wù)發(fā)布方做出的不切實(shí)際的信譽(yù)評(píng)估會(huì)被信息熵識(shí)別出來,從而保證數(shù)據(jù)擁有方能夠獲得客觀準(zhǔn)確的評(píng)價(jià)。同時(shí),與任務(wù)發(fā)布方合謀的數(shù)據(jù)擁有方作惡一次后,其信譽(yù)值會(huì)顯著下降。只有通過更多的正交互才能提高信譽(yù)值。作惡時(shí)間段越短,信譽(yù)值下降越快,被選中參與聯(lián)邦學(xué)習(xí)的可能性就越小。此外,任務(wù)發(fā)布方之間通過其行為特征互相評(píng)價(jià),信譽(yù)較低的任務(wù)發(fā)布方將被大多數(shù)用戶從白名單中移除,從而無法訪問信譽(yù)意見資源。
4.2.1實(shí)驗(yàn)設(shè)置
為了評(píng)估所提出方案的性能,本文基于經(jīng)典的Car Evaluation分類數(shù)據(jù)集進(jìn)行了仿真實(shí)驗(yàn)。該數(shù)據(jù)集包括1 728個(gè)測(cè)試實(shí)例,6個(gè)測(cè)試屬性和4類標(biāo)簽。本文將數(shù)據(jù)集隨機(jī)分配給10個(gè)數(shù)據(jù)擁有方,其中包括3個(gè)惡意數(shù)據(jù)擁有方,它們會(huì)有意修改實(shí)例的標(biāo)簽(修改后訓(xùn)練實(shí)例數(shù)量占本地?cái)?shù)據(jù)實(shí)例數(shù)量的百分比表示攻擊強(qiáng)度),操縱聯(lián)邦學(xué)習(xí)的結(jié)果。本文在Hyperledger Fabric v1.4.0上建立了信譽(yù)區(qū)塊鏈系統(tǒng),共識(shí)算法采用實(shí)用高效的PBFT算法[14]。
3.4.2節(jié)介紹了任務(wù)發(fā)布方信譽(yù)值的計(jì)算方法,使用FAHP對(duì)任務(wù)發(fā)布方的行為特征進(jìn)行劃分,其中,服務(wù)特性P的重要性劃分為P1>P2>P3=P4,可靠特性R的重要性劃分為R1=R2=R3,特性的重要性劃分為R>P。本文進(jìn)行了20次聯(lián)邦學(xué)習(xí)的實(shí)驗(yàn),每次聯(lián)邦學(xué)習(xí)任務(wù)的最大迭代次數(shù)為50。新歷史交互的權(quán)重交互ε=0.6,過去歷史交互的權(quán)重σ=0.4。數(shù)據(jù)包傳輸失敗的概率為1%~40%,且數(shù)據(jù)擁有方的初始信譽(yù)為0.5。同時(shí),將本文提出的結(jié)合貝葉斯的主觀邏輯模型與文獻(xiàn)[28]中的多權(quán)重主觀邏輯模型(multi-weight subjective logic model)進(jìn)行比較,以分析在不確定交互情況下兩種方案對(duì)信譽(yù)值和聯(lián)邦學(xué)習(xí)準(zhǔn)確性的影響。
4.2.2實(shí)驗(yàn)結(jié)果
圖5 展示了惡意攻擊者在不同攻擊強(qiáng)度下對(duì)聯(lián)邦學(xué)習(xí)的影響。可以看出,攻擊強(qiáng)度的提高會(huì)導(dǎo)致聯(lián)邦學(xué)習(xí)準(zhǔn)確率的降低。此外,當(dāng)攻擊強(qiáng)度相同時(shí),攻擊者越多,聯(lián)邦學(xué)習(xí)的準(zhǔn)確率就會(huì)越低。當(dāng)攻擊強(qiáng)度為0.9,且存在3個(gè)攻擊者時(shí),聯(lián)邦學(xué)習(xí)的準(zhǔn)確率僅為71%,攻擊強(qiáng)度為0.5且比有一個(gè)攻擊者的情況低26%。因此,攻擊強(qiáng)度和攻擊者數(shù)量的提高能夠?qū)β?lián)邦學(xué)習(xí)的準(zhǔn)確性產(chǎn)生明顯的負(fù)面影響。
圖5 攻擊強(qiáng)度對(duì)聯(lián)邦學(xué)習(xí)準(zhǔn)確率的影響Figure 5 The impact of attack strength on federated learning accuracy
為了測(cè)試惡意攻擊者在不同聯(lián)邦學(xué)習(xí)任務(wù)次數(shù)下的信譽(yù)變化,本文設(shè)定該攻擊者在前8次和最后4次聯(lián)邦學(xué)習(xí)任務(wù)中不進(jìn)行攻擊,目的是獲得較高的信譽(yù)值。但在第9~16次實(shí)驗(yàn)中,會(huì)向任務(wù)發(fā)布方上傳惡意的模型參數(shù),實(shí)驗(yàn)結(jié)果如圖6所示。在前8次實(shí)驗(yàn)中,本文方案和文獻(xiàn)[28]中的方案對(duì)攻擊者的信譽(yù)值沒有很大差異,其信譽(yù)值總體是增加的,中間出現(xiàn)的波動(dòng)主要是由于受到了通信質(zhì)量的影響。當(dāng)攻擊者采取攻擊行為時(shí),其信譽(yù)值顯著下降,且本文的方案比文獻(xiàn)[28]方案信譽(yù)值下降更快。在整個(gè)攻擊期間,信譽(yù)值從0.87下降到0.66,下降了0.21。在之后的實(shí)驗(yàn)中,本文方案攻擊者的信譽(yù)值已有所增加,但文獻(xiàn)[28]方案的信譽(yù)值仍在降低。圖7展示了信譽(yù)值閾值對(duì)聯(lián)邦學(xué)習(xí)準(zhǔn)確率的影響。如果計(jì)算后的數(shù)據(jù)擁有方信譽(yù)值低于給定的信譽(yù)閾值,則該數(shù)據(jù)擁有方被視為不可靠的參與方。
圖6 一個(gè)攻擊者在不同聯(lián)邦學(xué)習(xí)任務(wù)次數(shù)下的信譽(yù)值變化Figure 6 The reputation value of an attacker under different number of federated learning task
圖7 信譽(yù)值閾值對(duì)聯(lián)邦學(xué)習(xí)準(zhǔn)確率的影響Figure 7 The impact of reputation value thresholds on federated learning accuracy
從圖7中可以看出,隨著信譽(yù)值閾值的增加,聯(lián)邦學(xué)習(xí)的準(zhǔn)確率也會(huì)增加。當(dāng)信譽(yù)閾值范圍為0.35到0.5時(shí),文獻(xiàn)[28]方案中的準(zhǔn)確率比本文方案的準(zhǔn)確率低,但當(dāng)信譽(yù)值閾值不小于0.55時(shí),文獻(xiàn)[28]方案的性能與本文相同。這是由于本文在計(jì)算信譽(yù)值時(shí)采用貝葉斯公式,計(jì)算了數(shù)據(jù)擁有方在傳輸失敗時(shí)的信譽(yù)值,更多地考慮了節(jié)點(diǎn)正交互的影響,而文獻(xiàn)[28]忽略了這種情況,這會(huì)導(dǎo)致部分表現(xiàn)良好的數(shù)據(jù)擁有方信譽(yù)值偏低,被選擇參與聯(lián)邦學(xué)習(xí)的概率降低,從而降低參與方的積極性。當(dāng)信譽(yù)值閾值高于0.55時(shí),任務(wù)發(fā)布方更容易檢測(cè)惡意的數(shù)據(jù)擁有方,兩種方案都會(huì)選擇信譽(yù)較高的數(shù)據(jù)擁有方,因此聯(lián)邦學(xué)習(xí)的準(zhǔn)確率沒有差別。
綜上,本文的方案可以實(shí)現(xiàn)更準(zhǔn)確和公平的信譽(yù)計(jì)算,從而能夠使任務(wù)發(fā)布方選擇更可靠的數(shù)據(jù)擁有方。
本文提出了一種基于信譽(yù)評(píng)估機(jī)制和區(qū)塊鏈的移動(dòng)網(wǎng)絡(luò)聯(lián)邦學(xué)習(xí)方案。為了選擇可靠的數(shù)據(jù)擁有方參與模型訓(xùn)練,引入了基于信譽(yù)的選擇方法,并采用主觀邏輯模型和貝葉斯模型,根據(jù)數(shù)據(jù)擁有方的交互歷史和間接信譽(yù)評(píng)估計(jì)算其信譽(yù)值。通過將信譽(yù)評(píng)估機(jī)制和訪問策略集成到智能合約中,任務(wù)發(fā)布方對(duì)數(shù)據(jù)擁有方做出的信譽(yù)意見被存儲(chǔ)到聯(lián)盟鏈中。實(shí)驗(yàn)分析表明,本文的方案可以選擇更多的信譽(yù)較高的數(shù)據(jù)擁有方參與訓(xùn)練,提高聯(lián)邦學(xué)習(xí)的準(zhǔn)確率。此外,數(shù)據(jù)擁有方的數(shù)量和聯(lián)邦學(xué)習(xí)算法的選取與信譽(yù)值的計(jì)算密切相關(guān),如何動(dòng)態(tài)地調(diào)節(jié)信譽(yù)值閾值的大小,將惡意數(shù)據(jù)擁有方的負(fù)面影響降到最低,是本文下一步的研究方向。