?

基于改進PBFT算法的霧節點信任評估研究

2024-01-04 04:06師智斌
中北大學學報(自然科學版) 2023年6期
關鍵詞:視圖底層共識

薛 彪,石 瓊,師智斌,段 輝

(中北大學 計算機科學與技術學院,山西 太原 030051)

0 引 言

隨著物聯網(IoT)在全球各個領域的普及,智能設備數量迅速增長,國際數據公司(IDC)估計,到2025年,全球將有約416億臺物聯網設備[1]。然而,這些設備提供的計算能力、電池電量、存儲空間等很有限,從而限制了用戶體驗。在這種情況下,云計算作為一種有利的解決方案,可以在基礎設施、軟件和其他平臺方面向最終用戶提供服務[2]。云計算利用全球集中的數據中心進行數據處理和存儲。但是,由于云數據中心和用戶設備之間的物理距離較大,響應時間增加,使它不適用于對延遲敏感的應用程序,例如醫療保健和銀行業務。為了解決這個問題,2012年,CISCO首次正式提出霧計算的概念[3],賦予其新的含義。霧計算作為云計算概念的一種延伸,其在云和終端設備之間引入中間霧層部署運算、存儲等設備。在典型的三層物聯網架構中,霧層位于云層和用戶設備層之間,充當云和用戶之間的中介,將需要在本地處理的信息整理并在霧層中處理,而將其他信息發送到云中。這種分布式的計算場景支持用戶的移動性、位置感知和低延遲需求[4]。

霧計算并不是云計算的替代品,而是將網絡計算從網絡中心擴展到了網絡邊緣,通過這些本地化的設備不僅可以自己向用戶直接提供服務,還可以利用云層更為強大的計算和存儲能力協同進行服務[5]。在實時分析方面,霧計算具有很好的魯棒性,隨著它的出現,數據處理發生在數據發起者附近,縮短了請求和響應周期。然而,隨著互聯網設備的大量使用和物聯網的廣泛應用,盡管霧計算有很多好處,但它也面臨著一些關鍵的安全挑戰。例如:1)霧計算架構的分散性和復雜性,使其面臨著許多安全風險和威脅,包括惡意攻擊、數據泄露等; 2)由于區域受限,底層節點無法選擇最優的霧節點進行任務處理。通過文獻調查發現霧計算安全領域的工作很少,主要采用身份認證技術,而且這些方案仍然采用依賴交易第三方的架構,而該架構容易遭受單點故障。另一方面,現有霧計算沒有考慮底層節點對霧節點的最優選擇問題。

針對這些挑戰和問題,本研究提出一種改進PBFT算法[6]的信任模型,用于計算霧節點的信任值,并通過信任值大小對節點信任狀態[7]進行分類,在一致性協議和視圖更換協議中加入對該狀態的記錄,從而使協議在達成數據一致性的同時能夠識別節點信任狀態,并在選舉主節點時考慮該狀態。同時,本研究利用節點信任值、節點負載率和底層節點與霧節點之間的距離三個指標進行加權歸一化,以選出最優的霧節點來提高整個網絡的通信效率和安全性。實驗表明,該方法為霧計算提供了更加可靠和高效的網絡架構,為共識算法與霧計算的結合應用提供了科學依據。

1 相關工作

針對霧計算現有的各種安全問題,已經有研究者進行了相關研究。Ivan,Baker等[8-9]提供了對霧計算的全面概述,并系統地回顧了霧計算的安全和隱私挑戰,對現有的安全和隱私解決方案進行了評估和比較,包括身份驗證、訪問控制、數據完整性和隱私保護等方面,還討論了未來的發展方向。Wazid等[10]提出了一種適用于霧計算服務的用戶身份驗證方案,該方案基于Hash函數和對稱加密算法,旨在提供高安全性、低延遲和高效性能,并能夠有效防止中間人攻擊、重放攻擊等安全問題。Min等[11]提出了一種基于屬性和置換加密的混合方案,用于在霧計算環境中實現細粒度搜索和訪問授權,旨在提供高效的搜索和授權服務,同時保護用戶數據的隱私和安全。這些研究雖然減少了對第三方的依賴,但仍需要第三方機構來發放和驗證數字證書,并且沒有對霧計算中的節點信任狀態進行分類,不能有效解決惡意節點作惡的問題。

區塊鏈的本質是一種分布式賬本數據庫,它具備去中心化、防篡改、透明可溯的特性[12-13]。共識算法[14]作為區塊鏈的一大核心技術,就是在區塊鏈網絡中通過算法手段讓所有參與者對某個確定的結果達成一致的一套規則。典型的共識算法根據容錯類型分為拜占庭容錯共識算法和非拜占庭容錯共識算法兩種。拜占庭問題是指系統中存在惡意節點故意向誠實節點發送錯誤信息,干擾誠實節點的判斷,阻礙系統的正常運行。PBFT算法是解決拜占庭問題中應用最廣泛的共識算法之一[15-16],該算法基于狀態機復制原理,主要針對系統中惡意節點向其他節點發送錯誤信息,擾亂系統正常運行的問題,在保證系統安全性和可靠性的前提下提供了(n-1)/3的容錯性,即如果系統內有n臺機子,那么系統最多能容忍1/3的節點失效。目前,已有一些研究者圍繞PBFT算法在霧層的應用展開研究,探討了PBFT算法應用在霧計算領域中的安全性等方面的問題,并提出了解決方案。Desire等[17]提出了一種基于橢圓曲線密碼(ECC)數字簽名的公開許可區塊鏈安全機制,該機制支持分布式賬本數據庫(服務器),在物聯網霧層提供不可篡改的安全解決方案、交易透明并防止患者記錄被篡改,緩解了霧計算架構的延遲、安全性集中化和可擴展性問題。但是,其沒有開發出具體的系統,所提機制的去中心化能力和性能還有待提高。Wang等[18]提出了一種基于PBFT共識算法的隱私保護分布式密鑰管理方案。該方案利用區塊鏈技術實現了密鑰管理的分布式存儲和訪問,并利用PBFT共識算法確保了密鑰管理的可靠性和安全性,但需要部署區塊鏈網絡,增加了系統的復雜性和成本。Kong等[19]提出了一種基于授權區塊鏈的高效、隱私保護且可驗證的車載霧感知數據收集與共享方案。該方案在數據收集階段,結合同態2-DNF(析取范式)密碼體制和基于身份的簽密方案,同時利用授權的區塊鏈來維護導出傳感數據的不可篡改記錄,提高了計算和通信效率。但是,所提出的方案主要基于密碼體制和身份驗證,在霧計算場景下的去中心化效果不佳。

本研究在去中心化思想的啟發下,使用改進PBFT算法在霧層建立信任模型,計算霧節點的信任值,并根據信任值大小對霧節點進行分類,將惡意節點移出共識群組,從而提高整個網絡的安全性,同時通過選擇最優霧節點提高網絡的通信效率。

2 基于改進PBFT算法的霧計算信任評估

2.1 霧計算網絡架構

本模型采用了霧計算的三層網絡架構,如圖1 所示。

圖1 霧計算網絡架構圖

圖1 中,底層是由傳感器等設備組成的終端層,底層節點收集監控數據,將部分計算任務或數據交給霧層處理,從而減輕底層節點的負擔和提高計算效率; 中間層是由霧節點和霧服務器組成的霧層,由霧節點提供本地存儲和計算能力,根據不同的應用需求對數據進行安全和通信管理等操作,可以減少數據傳輸延遲; 頂層則是云端服務器組成的云計算層,通常用于提供額外的計算和存儲資源,以滿足霧層無法處理的更大規模和復雜的任務,同時為霧層提供虛擬機管理、網絡連接等方面的服務與支持。在這種分層架構下,霧節點可以作為PBFT算法中的共識節點,用于進行共識過程,保證霧計算的安全性和可信度,從而為底層節點提供更好的服務。同時,霧節點可以通過霧層與云層進行通信,實現更復雜的計算任務。

2.2 改進PBFT共識算法

改進PBFT算法將節點分為三類:主節點、副本節點和備份節點。其中,主節點是PBFT協議的重要組成部分,其主要功能是為底層節點的任務請求分配霧節點,確保所有請求都得到了處理; 副本節點是PBFT協議的核心部分,其主要功能是接收主節點的提議,按照主節點的提議順序執行相應的操作,同時會對底層節點的任務請求進行處理,將結果返回到底層節點; 備份節點則是在某一時刻,某個副本節點出現故障或離線時,去替代該節點繼續參與PBFT協議的節點。

本模型的設計基于PBFT算法,加入了信任值更新和節點信任狀態的分類。其基本思路是:通過選舉一個主節點來管理整個系統的消息通信和狀態同步,其他節點按照一定的協議和流程與主節點進行交互,進行狀態更新和消息認證,最終達成共識。核心思想是:當大多數節點都達成共識時,就可以認為共識已經達成,即使有一些節點是惡意的,也不會影響整個系統的正確性。主要工作流程如圖2 所示。

圖2 改進PBFT算法的主要工作流程

2.2.1 一致性協議

本模型在PBFT算法原有一致性協議的基礎上進行設計,使協議能夠對節點信任狀態進行分類,主要有以下三個階段。

1) Pre-prepare階段:主節點收到底層節點請求消息后,為消息分配數字n。根據當前視圖號v,消息號n,生成一條預準備消息〈〈PRE-PREPARE,v,n,d〉,m〉,并將預準備消息廣播給副本節點,進入Prepare階段。

2) Prepare階段:副本節點收到預準備消息后進行驗證。將節點自身編號i、視圖編號v、消息摘要d、消息編號n進行打包生成準備消息,并廣播給全網,接受其他副本節點發送的準備消息,驗證準備消息。當節點接收到一致的2f+1(其中,f代表作惡節點數)條準備消息時,進入Commit階段。記錄節點行為。

3) Commit階段:節點進入Commit階段后,向其余副本節點廣播確認消息〈COMMIT,v,n,D(m),i〉,其中,D(m)為節點的簽名集。當節點收到2f+1條確認消息并驗證通過后,執行底層節點請求。記錄節點行為,并更新其信任值和信任狀態。

2.2.2 視圖更換協議

當主節點出現故障或者惡意行為時,觸發視圖更換協議,將視圖編號v變更為v+1,重新選舉新的主節點,本模型在誠實節點中進行選舉,主要有以下兩個階段。

1) 視圖更換請求階段:當任一副本節點檢測到主節點篡改信息或者多次不傳播信息時,會向其他節點發送視圖更換請求,隨機從信任狀態為誠實的節點中選一個節點作為主節點,進入視圖v+1。每個節點會將收到的視圖更換請求轉發給其他節點,直到所有節點都收到了請求。

2) 視圖更換確認階段:當節點收到2f+1條視圖更換請求后,會向其他節點發送視圖更換確認消息。每個節點會收到其他節點的確認消息,當收到2f+1條確認消息后,將確認視圖更換消息發送給新主節點,進入新的視圖。新主節點確認系統狀態后執行數據一致性協議。

2.3 信任模型

該信任模型評估霧節點的行為并計算其信任值,根據信任值大小將其分為不同的信任狀態,從而授予不同的權限。

2.3.1 節點分類

節點行為及信任狀態分類如表1 所示。

表1 節點行為及信任狀態分類表

從表1 中可以看出,節點的行為會對其信任值產生不同的影響,信任值的范圍在0~1之間,由Ci表示,用于反映節點狀態。初始信任值為Cinit,默認為0.5。此處設置Cinit為0.5是為了在后續計算各節點的Ci時,使Ci一直滿足(0≤Ci≤1)的條件,若Cinit過小,則各節點的Ci差距過小,不利于實驗觀察; 若Cinit過大,會導致難以滿足(0≤Ci≤1)的條件,同樣不利于實驗分析。根據Ci大小將節點分為誠實節點、故障節點和惡意節點。誠實節點會積極驗證和傳遞信息,惡意節點會篡改信息或連續多次不傳播信息等。

如表2 所示,主節點由誠實節點擔任,誠實節點和故障節點均可作為副本節點,惡意節點作為備份節點,當惡意節點的信任值大于共識群組中某備份節點的信任值時,會作為故障節點參與共識。

表2 節點信任狀態及作用表

投票權表示節點對于信息確認的程度,不同節點的投票權不同。故障節點的投票權為1,惡意節點沒有投票權,誠實節點的投票權最高,由Vhonest表示,計算公式為

(1)

式中:Nbad是故障節點數量;Nhonest是誠實節點數量。

圖3 展示了信任評估的總體架構。首先,各個霧節點組成共識網絡,設置初始信任值,由主節點審核每個副本節點資格,所有節點互相廣播和驗證信息,在節點內建立其他節點的信息存檔,通過通信中的節點行為,更新其信任值,確定節點的信任狀態,當某一副本節點發現網絡中一節點的信任值小于某個備份節點的信任值時,該節點會向主節點發起共識,由主節點廣播消息,所有副本節點收到主節點的消息后,互相廣播驗證消息,發起投票。若投票數超過節點數目的2/3,則將該節點視為惡意節點,由主節點將其踢出網絡,并初始化該備份節點,將節點加入網絡,保證共識網絡中總節點數目不變。

圖3 信任評估總體架構

2.3.2 信任值影響因素

定義 1節點歷史影響度。節點歷史影響度是指節點過去的行為對其當前信任值的貢獻程度,節點的共識時間間隔越短,歷史影響度更高,反之則影響度較低。計算公式為

(2)

式中:Δt為當前與上次共識時間之間的時間間隔;ε為調整歷史信任值影響程度的參數。當Δt越小時,ω(Δt)的值越大,歷史信任值對當前信任值的影響越大,反之亦然。

定義 2節點事件影響因子。節點事件影響因子是表示事件重要程度的因素,計算公式為

(3)

式中:m為交易重要性的相關參數;M0用來設定交易重要性參數的閾值。當m的值越大時,E(m)越大,事件的重要程度越高。

定義 3節點歷史行為因子。節點歷史行為因子指節點過去的共識行為對信任值的影響程度。計算公式為

(4)

式中:n表示節點i共識的次數;Tij用來評價節點i是否成功參與第j輪共識。計算公式為

(5)

定義 4節點歷史活躍度因子。節點歷史活躍度因子是指一定時間內節點參與共識的頻度。計算公式為

(6)

式中:N為一定時間內整個網絡進行的共識過程的次數的總和;Ni為該段時間內節點i進行共識過程的次數。節點i的參與程度越高,Ai越大,對信任值評估的積極影響也越大。

定義 5節點行為評價因子。節點評價因子是根據節點參與共識的表現給予評估的數值,表示節點的共識表現質量。計算公式為

(7)

式中:G為參與共識的節點總數量;g為贊成信息的節點數量;ti為節點i完成本次共識所花費的時間;σ(σ∈Z)為調節因子。節點完成共識的時間越短,贊成信息的節點數量越多,節點的行為評價因子就越高,反之越低。

2.3.3 信任值計算

信任值Ci是對節點i在共識過程中信任得分的評估。節點i的信任值評估模型為

Ci=α*Bi+β*Ai+γ*Li+

(1-α-β-γ)*Cinit,

(8)

式中:α,β,γ分別是三者的權重值,通過對這些指標賦予不同的權重來計算節點的信任值。式(8)整合了式(2)~式(7)中的因素,準確反映了節點的情況。

算法 1信任值計算算法

輸入:Δt,m,n,g,t,Ni,N,G

輸出:Ci

1.Ai=e(Ni/N)//節點歷史活躍度因子

3.for(j=0;j

4.if(m

5.elseE=1

6.if(成功參與共識)T=1

7.elseT=0

8.W=e(-Δt/r)

9.if(n≠0)Bi=[p*(W*E*T)/n]+(1-p)*C0+Bi

10.elseBi=0}//節點歷史行為因子

11.Ci=a*Bi+b*Ai+c*Li//節點信任值

2.3.4 信任值更新

在每次共識完成后,需要及時根據節點的表現更新節點的信任值,以客觀反映節點的變化情況,并用信任值大小確定出其信任狀態。設節點的歷史共識信任值為Pij,節點的本次共識信任值為Rij,公式為

(9)

式中:Cij為節點i參與第j輪共識后的信任值。若節點本次共識的信任值高于歷史信任值,信任值將增大,反之則降低。μ為調節因子,公式為

(10)

式中:當Rij與Pij差距過大時,較小的信任值占更大的比重。f(x)是雙曲正切函數,表達式為

f(x)=tanhx。

(11)

算法 2信任值更新

輸入:Rij,Pij

輸出:Cij

1.if(節點有惡意行為){Cij=0 }

2.else{

3.if(Pij=Rij)u=1

4.elseu=0.5+0.5tanh(k*(Pij/Rij-1))}//信任值更新調節因子

5.Cij=u*Rij+(1-u)*Pij//信任值更新

6.廣播Cij

2.4 最優霧節點的選取

在底層節點發送請求給霧層網絡后,主節點會根據任務需求通過節點信任值、通信距離和節點負載率三個指標為底層節點選取最優霧節點處理任務,并返回任務結果,主要流程如圖4 所示。假設每個數據包請求的大小一樣,其中,通信距離S指底層節點與霧節點之間的距離,利用網絡拓撲結構信息,通過計算底層節點與霧節點之間的歐氏距離來估算,節點負載率RL指的是一定時間內正在使用和等待使用節點的任務數占節點可處理任務總數的比重。公式為

圖4 選取霧節點主要工作流程

(12)

(13)

式中:(x1,y1,z1)和(x2,y2,z2)分別為拓撲結構中底層節點與霧節點的位置信息;HW為一定時間內霧節點中排隊和正在處理的任務數;HA為該霧節點可以處理的總任務數。

霧節點的綜合評價值VC由節點信任值、節點負載率和通信距離三個指標加權計算得到,公式為

VC=θ*Ci+μ*S+φ*RL,

(14)

式中:θ,μ,φ分別為三個指標的權重值。

本模型中霧節點的選擇機制如圖5 所示,其主要步驟為:1) 指標確定:確定評估底層節點與霧節點之間關系的指標; 2) 權重分配:通過層次分析法為每個指標分配一個權重; 3) 數據采集:主節點收集底層節點和霧節點的實時數據; 4) 指標歸一化:對不同指標的數據進行歸一化處理,將它們轉換為相同的尺度,以便后續計算; 5) 加權計算:利用層次分析法得到權重值,加權計算每個霧節點的綜合評分; 6) 最優霧節點選擇:選取綜合評分最高的霧節點作為底層節點的目標節點。

圖5 選擇機制

圖6 展示了利用層次分析法對三個指標進行權重分配的結果,主要步驟為:1) 建立層次結構模型; 2) 確定標度并構造判斷矩陣; 3) 計算特征向量; 4) 一致性檢驗分析; 5) 一致性檢驗通過,確定每個指標的權重。

圖6 各個指標的權重值

3 實驗結果與分析

為評估模型的有效性,本研究進行了仿真對比實驗,環境配置為Ubuntu18.04.6LTS 64位操作系統,Intel(R)Core(TM)i7-10750H CPU@2.60 GHz處理器以及8 GB的內存。在不考慮網絡擁塞的情況下,假設當前網絡中共有20個霧節點加入共識群組。

3.1 通信安全性分析

在網絡中存在相同惡意節點和故障節點的情況下設置不同的ε值,觀測信任值的增幅情況,結果如圖7 所示。

圖7 不同ε值下信任值的增幅對比

由圖7 可以看出,當節點歷史影響度中的ε值增大時,節點歷史行為因子的增幅會減小,在其他條件不變的情況下,節點的信任值增幅會減小; 由于信任值增幅過大會使信任值直接達到最大值,過小則信任值變化緩慢,都不利于實驗的敏感性分析,故選擇ε=5,此時信任值的增幅程度最佳。

圖8 展示了不同信任狀態的節點信任值變化的情況。隨著共識輪次的增加,本模型中誠實節點的信任值基本在不斷增加; 故障節點的信任值雖不斷波動,但總體上保持平衡; 惡意節點的信任值則總體上不斷減小。當惡意節點的信任值低于某備份節點的信任值時,該節點將會被其取代,因此共識群組內惡意節點的數目會減少。

圖8 不同狀態的節點信任值變化情況

圖9 展示了共識群組內惡意節點的占比變化。隨著共識輪次的增加,PBFT算法中的惡意節點數目不變,改進PBFT算法中的惡意節點由于信任值的降低,會被移出共識,總體上保持降低的趨勢。圖中出現共識輪次增加而惡意節點占比保持不變的情況是由于惡意節點僅做出故障行為或其信任值仍大于備份節點。

圖9 共識組中惡意節點占比情況

3.2 通信效率分析

圖10 展示了在通信距離不變的情況下,節點負載率與信任值對選擇最優霧節點的影響。從圖10 中可以看出:PBFT算法只會選擇信任值最高的霧節點; 改進PBFT算法在共識開始時信任值較高的霧節點被選擇的概率較大,處理的任務請求較多,隨著共識輪次的增加,其負載率不斷升高,主節點對其選擇的概率會不斷降低。

圖10 節點負載率與信任值對選擇霧節點的影響

圖11 展示了霧節點負載率相同并且底層節點可移動的情況下,通信距離與信任值對選擇最優霧節點的影響。從圖中可以看出,PBFT算法由于僅考慮節點信任值的原因,只選擇了信任值最高的霧節點; 而改進PBFT算法則會在考慮節點信任值的基礎上,考慮底層節點與信任值最高的霧節點之間的通信距離,并且伴隨著兩者通信距離的不斷增加,改進PBFT算法選擇信任值最高的霧節點的概率會降低,反之則會升高。

圖11 距離與信任值對選擇霧節點的影響

實驗結果表明,改進PBFT算法會考慮通信距離、負載率和節點信任值三個指標,避免了由于霧節點負載率高或者底層節點與霧節點通信距離遠造成的時延過高的情況,提高了通信效率。

3.3 性能分析

圖12 和圖13 分別展示了PBFT算法、RAFT算法和改進PBFT算法的吞吐率和時延的比較情況。由圖12 和圖13 可以看出,隨著共識輪次的增加,改進PBFT算法相比于RAFT算法和PBFT算法,吞吐率更高,時延更低。這是由于改進PBFT算法在共識過程中會降低惡意節點的信任值,限制惡意節點參與共識,提高了安全性; 同時,霧節點的選擇上考慮了負載率和通信距離,有效降低了信息傳播時延和霧節點處理任務所需花費的時間,避免了網絡擁塞,提高了整體性能。

圖12 系統吞吐率的變化

圖13 系統平均處理時延的變化

4 結 論

本文所提出的方法引入PBFT共識機制弱化了霧節點依賴第三方信任機構的節點安全問題,并在底層節點選擇最優霧節點時提供了新的思路。利用20個霧節點建立共識群組,仿真結果證明,本文方法的安全性和吞吐率更高,有效降低了霧計算網絡中底層節點任務請求的處理時間,具有實際應用價值。后續可開展如下研究:1) 考慮節點的動態加入、退出與能耗的問題,進一步提高系統的性能; 2) 增加模型中的節點數目,將本模型應用于實際場景。

猜你喜歡
視圖底層共識
航天企業提升采購能力的底層邏輯
共識 共進 共情 共學:讓“溝通之花”綻放
論思想共識凝聚的文化向度
商量出共識
5.3 視圖與投影
視圖
Y—20重型運輸機多視圖
SA2型76毫米車載高炮多視圖
別讓“PX共識”在爆炸中瓦解
回到現實底層與悲憫情懷
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合