巫光福,王影軍
(江西理工大學信息工程學院,江西贛州 341000)
在車聯網(Internet of Vehicles,IoV)環境下的車輛配備了先進的車載傳感器和智能電子設備,并進一步配備無線通信裝置車載單元(On Board Unit,OBU),能夠有效完成IoV 內部成員之間的交互通信。數據信息的傳遞和共享主要通過車對車(Vehicle to Vehicle,V2V)、車對路(Vehicle to Road,V2R)和路對路(Road to Road,R2R)三種方式,利用邊緣計算技術對車輛節點中的敏感數據進行局部處理。同時,非敏感信息通過互聯網傳輸,實現基于車輛(Vehicle,V)和路側單元(Road Side Unit,RSU)的信息交互。
然而,由于大量設備接入網絡并請求相應的網絡服務,網絡帶寬會被各種智能聯網設備占用,導致服務器處理任務請求速度慢、效率低下。在過去的云計算模式中,將消息處理工作部署在云端,造成消息處理速度慢、數據傳輸延遲、占用高帶寬資源,核心網難以滿足高峰時段回程負荷的延時要求。同時,由于云計算的集中計算特性,會進一步導致節點分布不均,惡化數據傳輸和信息獲取的過程。由于IoV 系統通常運行在無線網絡環境中,惡意攻擊者可以很容易地截獲、插入、刪除和修改傳輸的信息。此外,如果在通信過程中車輛的身份信息泄露,車輛的位置和運行軌跡等私人信息可能會暴露出來。因為交通信息的安全性和完整性關系到對車內人員的保護,一旦傳輸的數據出現錯誤,就有可能造成交通事故和人員傷亡。鑒于上述安全挑戰,通信過程中的異常延遲問題亟待解決,保證信息的安全性和完整性至關重要。
區塊鏈技術是一種共享的分布式賬本技術,它由網絡中的所有節點管理、維護和監督。邊緣計算是在網絡邊緣執行計算的一種新的范式,它通過在云計算和智能設備之間搭建橋梁來支持嚴格的移動應用需求[1]。IoV 上的車輛節點和邊緣計算中的邊緣節點類似于區塊鏈中的網絡節點。因此,區塊鏈+邊緣計算有望為IoV 上的安全威脅和高延遲問題提供解決方案。
文獻[2]中針對移動邊緣計算中資源有限的問題,通過在線學習使任務延遲最小化;文獻[3]中使用多平臺卸載的智能資源分配算法降低IoV 上計算任務的時延和系統成本,該算法節省了系統總開銷的80%;文獻[4]中提出了一種聯合通信和計算資源分配優化方案,使用云計算和邊緣計算來提高邊緣云的效率,與傳統的云計算方案相比,該方案具有更好的時延性能;文獻[5]中將移動邊緣計算(Mobile Edge Computing,MEC)與云計算相結合,通過決策和資源分配的聯合優化來實現計算卸載問題。
與上述研究不同,本文提出了一種新的車聯網信息安全存儲和共享方案,將區塊鏈技術和邊緣計算技術有機地結合起來。本文的主要工作如下:
1)虛擬地將車輛節點和路邊單元節點作為區塊鏈的網絡節點,通過區塊鏈傳遞交通信息,保證數據的完整性和安全性。私有鏈和聯盟鏈的結合使用平衡了分散技術與弱集中的現實之間的矛盾。普通車輛將形成基于聯盟區塊鏈的車輛網絡,而專用車輛將單獨形成私有區塊鏈。
2)采用一種改進的基于身份的數字簽密算法來避免公鑰證書的缺點,并引入了私鑰生成器(Private Key Generator,PKG);采用基于離散中心二項分布的環簽名方案,減小簽名長度。
3)在路邊單位和車輛上嵌入邊緣計算設備,可以將傳統的云端數據交互形式轉化為云-邊緣端。私人敏感數據將直接通過本地邊緣設備進行處理,如果需要復雜的計算,通過安全通道傳輸到云進行處理。
4)提出了一種基于信譽值的動態分層的實用拜占庭容錯機制,并在區塊鏈網絡中部署智能合約,實現聲譽價值管理。
區塊鏈是由對等(Peer to Peer,P2P)網絡的節點維護的分布式數據庫。區塊鏈技術已經應用于IoV。區塊鏈以多方共識、主體對等、安全通信等諸多優勢,改善了IoV 的信用安全、成本控制和應用環境,并通過進一步加大身份權限管理和隱私信息保護力度,實現對非法節點的識別和對非法入侵的有效防范。區塊鏈技術使用可編程智能合約自動填寫和執行合約。區塊鏈上的所有實體都可以同步獲取信息并及時進行相應的處理,極大地節省了時間和管理成本,提高了效率。為了保證交易數據的有效性和真實性,讓更多的節點參與到共識過程中,需要通過一種機制來激發節點的積極性。大多數節點都經過認證,共識機制可以防止數據寫入區塊鏈賬本后被篡改,保證數據的真實性。區塊鏈分為公有鏈、聯盟鏈和私有鏈[6]。本文采用聯盟鏈-私有鏈的雙鏈架構,將普通車輛節點加入聯盟鏈,利用特殊車輛節點構成私有鏈,該架構在保證普通車輛正常需求的基礎下,將給予特殊車輛節點更多優待。
邊緣計算是一個高度虛擬化的平臺,在終端設備和云之間提供計算和存儲等網絡服務[7],是云計算的延伸。邊緣計算操作的對象分別為來自云端的下行數據和智能設備的上行數據[8]。邊緣設備具有相當大的計算能力和閑置資源。如果系統能夠以低延遲的方式處理一些簡單的邊緣設備,那么系統就可以像處理實時任務那樣具有低延遲。在IoV 上,車輛內部空間得到了極大的改善,越來越多具有高處理、存儲和計算能力的電子設備裝備在車上。同時,為了更好地為車輛服務,在道路兩側部署了大量高性能的路邊設備。以上結果表明,如果對這種車載設備和路側能夠合理使用,IoV 系統的性能將得到提高。
邊緣計算模型的應用具有以下3個優點[9]:
1)在網絡邊緣處理海量的臨時數據,只有計算復雜度高的數據才會上傳到云端,極大地減輕了網絡帶寬和數據中心的壓力。
2)在數據生產終端附近提供數據處理服務,消除了向云計算中心請求響應的步驟,達到了減少系統延遲、增強服務響應的目的。
3)邊緣計算可以防止用戶上傳私有數據,主要是通過將私有數據存儲在網絡邊緣設備中,以降低數據泄露的風險。此外,邊緣計算可以基于用戶隱私數據提供更個性化的服務,改善用戶體驗。
圖1 顯示了一個通用的邊緣計算框架,它可以分為3 層:1)底層由智能設備組成,包含各種傳感器和本地數據,這些設備可以使用短程通信技術(如無線、藍牙)連接到位于上層的邊緣節點。2)邊緣層是終端、智能設備和云層之間的媒體層,由路由器、網關和轉換器等邊緣設備組成,這些邊緣設備是構成邊緣計算框架的節點,每個節點都有足夠的智能來處理來自終端設備的大量數據。3)頂層是云層,需要更大計算能力的節點將被邊緣層傳輸到云層進行計算。

圖1 通用邊緣計算框架Fig.1 General edge computing framework
傳統的IoV 包括運輸中心(Transportation Center,TC)、RSU 和V 這3 個部分:TC 控制車輛信息的登記和交通信息的存儲;RSU安裝在道路兩側,主要負責響應車輛的驗證和通信服務;V可通過其車載單元與其他單元通信。與傳統的IoV不同,本文方案對交通信息數據進行了更細致的處理。本文方案基于有序的區塊鏈網絡,主要由以下幾個部分組成:可信云服務提供商(Trusted Cloud Service,TCS)、TC、PKG、邊緣計算設備(Edge Computing Device,ECD)、RSU 和V。TCS 用于存儲車輛運行過程中上傳到網絡的完整信息,數據匯總并存儲在區塊鏈網絡中,以確保信息的完整性和不變性。TC 用于注冊存儲合法的車輛注冊信息。車輛注冊信息可用于生成用戶的公鑰,PKG 用于為用戶創建公鑰對應的私鑰。ECD 可以實時響應終端用戶的服務請求。
為了保證本系統方案的安全實施,現給出如下假設:
假設1 只要私鑰未泄露,那么基于身份的加密算法可以為系統間各實體的通信提供安全通信信道[10],基于身份的簽名算法可以保證發送的信息具有不可抵賴性。
假設2 TCS、PKG 和TC 均具有足夠高的安全級別,TCS可以有效地保護已經在云端存儲的交通信息數據,而PKG 和TC 可合理分工,從而對車輛公私鑰與真實身份之間的聯系進行保存,單一的機構無法獲取完整聯系。
假設3 分布在道路兩邊的RSU 均配置邊緣計算設備,而車輛中也配備了定制的硬件設備,通過這些設備可大幅提高計算能力。
假設4 攻擊者無法在車聯網系統中控制超過半數的車輛[11]。
假設1 是為了確保交通信息數據的完整性、真實性和不可抵賴性。在車聯網中,完全的匿名是不被允許的,假設2 是車聯網系統匿名性要求和安全性要求的權衡。當發生事故時,執法機構有權從PKG 和TC 中調取相關車輛的信息,以便對其進行追蹤,同時也能達到收集證據的目的。為實現邊緣計算框架的部署和隱私數據本地化處理,假設3 是必不可少的,若車輛網的算力越高,信息處理速度就越快,越能滿足智能交通實時性需求。由于本文所提系統基于區塊鏈技術,一旦有人掌控超過全網一半的車輛,那么系統將無安全性可言。系統內算力越高,代表著攻擊者付出的代價越大,一旦攻擊者的付出超過收益,攻擊就顯得毫無意義,車聯網系統也因而提升了自身安全級別。
系統通信模型如圖2 所示,在圖2 中存在兩種車輛,分別是普通車輛Vi和特殊車輛SVi。在V2V通信過程中,存在單播或多播兩種傳輸機制,并且只允許車輛參與。V2V 中傳輸的信息通常包括速度、方向和交通擁堵數據等。在進行目的性通信時,某一車輛發出的信息只有特定車輛才能解密閱讀。為確保數據的可靠性,發送方需對信息進行數字簽名,而接收方則需進行相關驗證工作。確認數據是真實有效之后,接收車輛將及時地進行數據分析,然后根據分析結果來輔助駕駛員行駛,為駕駛員的人身安全提供保障。在車聯網中,RSU作為一個固定點存在,只有當車輛進入某一RSU 的固定無線通信范圍內,才可以進行V2R。由于RSU之間使用有線通信,所以不存在使用無線通信諸多限制。為保證特殊車輛更好地執行任務,只有特殊車輛主動向普通車輛發出通信請求時,普通車輛才可以與之通信,反之則無法通信。

圖2 系統通信模型Fig.2 System communication model
RSU 是一個固定的點且通信范圍有限,這限制了配備有邊緣計算設備的RSU的服務范圍。V2R卸載任務時數據傳輸速度慢以及邊緣計算設備中的計算任務需要排隊等候,均會使計算時延增加。車輛通常處于高速移動狀態,可能存在RSU 內計算任務尚未完成,車輛就已經駛離RSU 可通信范圍的狀況。
主動式遠程卸載計算任務可解決上述問題,通過合理利用V2V、V2R 和R2R 通信便可實現,具體可見圖3。在本文所述方案中,車輛可通過多跳V2V 方式主動將計算任務卸載到某個遠方RSU 內部的邊緣計算設備中進行計算,當車輛駛入該RSU 通信范圍內,就可以從RSU 中獲得計算好的數據。圖中的SV1和V1均是使用該方法進行復雜計算任務的卸載,兩者的不同之處在于,SV1發出的卸載請求可以在任意特殊車輛和普通車輛中傳播,而V1發出的請求只能在普通車輛中傳播。為了能及時地在目標RSU 通信范圍內接收到數據結果,車輛需對多方面信息進行評估,從而預測出目標RSU 的位置。

圖3 主動式遠程卸載計算任務模型Fig.3 Active remote offloading computation task model
本文采用二叉樹結構,樹上的葉子節點值是該葉子節點所包含的全體子節點組合的總哈希值,根值則是數據區塊中全體交易的總哈希值。區塊體的作用則是進行數據存儲,數據區塊具體框架如圖4所示。

圖4 數據區塊結構Fig.4 Structure of data block
本文在原有區塊鏈基礎上,加入了可信的云服務提供商,詳細的數據以密文或明文形式存儲在安全級別足夠高的云端存儲器中,而標明元數據位置的索引列表存儲在區塊鏈網絡中。為了給特殊車輛提供更好的隱私服務,與特殊車輛相關的交通信息的索引列表將存在由特殊車輛組成的私有鏈中。首先,特殊車輛存在于普通車輛構成的聯盟鏈內;其次,在聯盟鏈基礎上,特殊車輛構成了自身的私有鏈。這也是特殊車輛可以主動和普通車輛進行通信,而普通車輛無法主動同特殊車輛通信的原因所在。
本文方案中使用的變量說明如表1。

表1 變量說明Tab.1 Variable description
在本文系統中,當有Vi想要加入車聯網時,需要分別從TC和PKG 獲得相應的公私鑰對,并以此作為類似于傳統網絡中的賬號和登錄密碼,普通車輛節點加入流程如圖5 所示。如果Vi未在TC 進行登記,那么車輛擁有者需要先將IDi發送給TC,IDi包括用戶信息和車輛信息,然后TC 會遍歷B,如果IDi存在于B中,則駁回申請信息,車輛注冊失敗;如果不存在,則進行下一步,TC 隨機生成xi(xi∈),通過H1(IDi,xi)可獲得將被發送給Vi并存儲在L中。如果Vi已經在TC登記過,那么車輛擁有者可將發送給PKG,得到后,PKG 首先遍歷L,若L中存在,則PKG 生成并將其發送給Vi,然后被存儲在S中,車輛注冊成功,流程結束;若L中不存在,則駁回申請信息,車輛注冊失敗。需注意的是,在本文系統中,對于普通車輛,一輛車只能綁定一個用戶,但是同一用戶可以綁定多個車輛,信譽分只綁定于用戶的個人身份信息;對于特殊車輛,一輛車可以綁定多個用戶,而用戶必須是擁有特殊編號的在職人員,SVi加入流程如圖5所示。

圖5 普通車輛節點加入流程Fig.5 Flowchart of adding ordinary vehicle nodes
3.2.1 簽密過程
本方案中基于身份的多PKG簽密過程如下:
設置1 定義兩個素數階均為p的循環群G1和G2,g為G1的生成元,映射e:G1×G2→G。令H1():{0,1}?→G1,H2():G2→{0,1}t,H3():{0,1}?→為3 個密碼學哈希函數,t表示要簽名和加密的消息的位數。選取基于密鑰k的加密函數Ek()和解密函數Dk(),k由計算獲得,并非固定數值。設Ring=(ID1,ID2,…,IDn)表示環成員的集合,c表示在集合中隨機均勻選擇的哈希值。系統公共參數為{G1,G2,p,g,e,t,H1,H2,H3,Ek,Dk}。
設置2 每個PKGi(i=1,2,…,n)可以隨機選擇si∈作為私鑰并計算出相應公鑰Pi=sig。PKGi的公鑰Pi將會公布出去,而對應的私鑰si則會被秘密保存。


3.2.2 驗證過程
1)簽名算法的正確性。

綜上可知,RingVerify()以壓倒性的概率輸出“1”。因此該簽名方案滿足正確性。
2)加密算法的正確性。
要想驗證V2通過解簽名獲取的信息是否等于原始信息,只需要計算式(2)是否成立:

機密性 假設對手A可以通過有效的概率多項式時間算法來對σ=(c,U1,U2,Ver)進行解簽密。這意味著給A三個值U1=xg,P2=s2g,=bg(需注意,對于A來說,x,s2,b均屬于未知數),A可以根據有效的概率多項式時間算法得出δ的值,推導過程如式(3):

顯然,這與決策雙線性Diffie-Hellman 問題(Decisional Bilinear Diffie-Hellman Problem,DBDHP)相反。
不可偽造性 假設對手A可以通過有效的概率多項式時間算法生成密文σ?=進行解密。這意味著當A知道P1=s1g,=ag時(s1,a未知),A可以根據有效的概率多項式時間算法得出V1的私鑰,推導過程如式(4):

顯然,這與計算雙線性Diffie-Hellman 問題(Computational Bilinear Diffie-Hellman Problem,CBDHP)相反。
如圖6 所示,一個新的交易產生之后會向全網進行廣播;接著,每個節點都會將收到的交易信息納入進一個區塊中,并嘗試在自己的區塊中找到一個具有難度的隨機數;然后,如果某一節點找到符合條件的隨機數時,它會立即公布出這個隨機數,以便其他節點進行驗證;最后,當該區塊中的交易被驗證是有效的且未出現過,區塊將被添加到最長有效合法鏈的末端,其他節點繼續沿著該區塊尋找工作量證明。

圖6 數據區塊的生成過程Fig.6 Process of data block generation
與比特幣網絡采用的工作量證明(Proof of Work,PoW)共識機制相比,實用拜占庭容錯(Practical Byzantine Fault Tolerance,PBFT)算法的共識時延低、效率高,可滿足實時處理和大量通信的需求。此外,PBFT 算法最大允許f=(n-1)/3 的異常節點的存在而不影響共識結果[12],η為全網總節點數。本文基于比特幣網絡的大體框架,采用PBFT算法達成共識,詳細的區塊生成過程如下。
3.3.1 信息收集階段
預選節點(PreSelected Node,PSN)對全網進行監控,將車輛間生成的交通信息按照時間順序依次存放在本地記錄池中,當記錄池中存儲的信息足夠裝滿整個區塊時,系統將數據打包成區塊。
3.3.2 構建區塊階段
為了更大限度地利用區塊鏈網絡,這里將相關信息的摘要存儲在區塊體中,完整的信息將存儲在安全級別足夠高的云存儲器中。為了確保信息的可追溯性和防篡改性,區塊頭中包含有前一區塊的哈希值以及時間戳,而區塊本身的哈希值則是由組成區塊的全體數據求得。區塊構建完成,進行全網廣播,等待共識流程的實現。
3.3.3 實現共識流程階段
通過基于動態分層和信譽值評估的實用拜占庭容錯機制(Dynamic-layering and Reputation-evaluation Practical Byzantine Fault Tolerant mechanism,DRPBFT),改進了共識系統中的高延遲問題,有效地消除了惡意節點,提高了共識模型的可信度。接下來對DRPBFT進行詳細描述。
DRPBFT 中的信譽評估算法主要由獎勵機制和懲罰機制兩部分所組成。信譽值主要用來作為優先響應車輛信息請求的依據[13]。有三種行為會得到獎勵:Vi誠實主動地廣播變更消息、Vi可通過舉報傳播虛假信息的車輛來獲得獎勵和Vi積極主動地貢獻閑置算力。受到懲罰的行為有兩種:Vi廣播虛假消息和Vi濫用舉報信息來誹謗其他車輛。具體的信譽評估算法如算法5。
算法5 ReputationEvaluationAlgorithm()。

有以下幾個因素影響獎賞機制和懲罰機制:
1)T表示真實消息的層級。T=1,交通事故信息;T=2,駕駛信息,例如車輛駕駛速度、當前位置;T=3,道路狀況,包括道路擁堵、損壞。
2)F表示虛假信息的等級。F=1,傳播的虛假信息造成交通事故;F=2,傳播的虛假信息造成車輛擁堵;F=3,傳播的虛假信息未造成不良影響。
3)K為傳遞消息的車輛與接收信息的車輛之間的距離。
4)Dv表示接收者附近車輛密度。
5)N表示車輛提供閑置算力的次數。
在公式中設置獎勵系數α和懲罰系數β,以實現如式(5)~(7)所示的三種獎勵機制和式(8)所示的懲罰機制:

當Vi向全網廣播交通信息時,Vi可先獲得上一次廣播交通信息到本次廣播期間主動提供閑置算力的獎勵,即當前信譽值加上R3(K,Dv,N),然后N從0 開始重新計數。若車輛只提供閑置算力而不廣播交通信息,則經過規定時長后,自動獲得加分。此外,如果沒有車輛舉報Vi,則Vi的信譽值可再加上R1(T,K,Dv)。相反,當有人質疑并舉報Vi發送的交通信息時,TC 有權利對質疑進行仲裁,若質疑屬實,質疑者可在現有信譽值基礎上加上R2(F,K,Dv),發送虛假信息的Vi將接受懲罰。若質疑者是惡意誹謗Vi,質疑者接受懲罰。
注意,當消息接收者為特殊車輛時,傳播虛假信息的車輛將在原有懲罰機制上扣除更多的分。相應的,若積極主動地提供特殊車輛所需服務也會給予更多的加分,這可以通過調整獎勵系數α和懲罰系數β實現。輸出的會及時進行全網公布,假設<0,TC 有權將Vi所屬用戶ID放入列表B中,并撤銷所有由該ID 產生的公鑰。用戶若想重新加入到該網絡,必須嚴格按照法律規章流程辦事,只有達到規定的條件才有機會從名單B中出來。
根據車輛節點的信譽值分成3 個層級,不同級別的節點有不同的權限:1級節點優先擔任代理節點;2級節點在1級節點不存在時有機會擔任代理節點,但無優先權;3 級節點無權擔任代理節點,但是能夠擔任共識節點。具體節點權限分類如表2所示。

表2 節點權限分類Tab.2 Node right classification
具體共識流程如圖7所示。

圖7 DRPBFT共識過程Fig.7 Consensus process of DRPBFT
Request 階段Vi向第一層代理發送,請求聯盟鏈執行請求。為了避免網絡資源的浪費,使用組播的方法向各層中的其他節點傳遞消息。Vi向?個代表節點發送消息。如果區塊鏈系統的共識節點總數小于或等于?,則不需要分層搜索代理節點。在這種情況下,PBFT可以直接用于區塊鏈系統。
Pre-prepare階段 在第1層中,每個代理節點代表一個區域。每個Area中有α個節點,并且可以在Area中執行PBFT 算法的Prepare 階段和Commit 階段。代理節點會向除Area外的所有節點發送消息。當Sn接收到該消息時,要確認E和Pn是否與其本地數據一致、Vi的Request 消息與Prepared 消息是否一致、M的散列數據與H是否相同、Prepare消息的Vc是否在指定的區間(h,H)內。
Commit 階段Sn向其他層節點發送E,Vc,H,Sn,Pn。每層節點接受Commit 消息的條件是H一致、E與節點當前的E相同、Pn與本地一致。
Reply階段 節點將內部投票結果返回給代理節點,代理節點將該區域的節點共識結果發送給Vi。代理節點必須記錄要返回的層的內部結果。Vi可以根據接收到的Reply 消息總數是否大于惡意節點數f+1來確定是否接收到共識結果。
根據不同代理節點代表的不同層級,Vi和整個區塊鏈都能以更高的信譽度獲得共識結果,從而獲得下一輪共識。至此,共識流程結束,全網達成一致共識,區塊生成進入下一階段。
3.3.4 區塊生成階段
當構成的區塊經過共識階段達成共識后,PSN 對全網進行廣播并使用哈希指針將新生成的區塊鏈接到區塊鏈的末尾,該區塊成為區塊鏈網絡的最后1個區塊。
1)去中心化。
本文方案采用基于區塊鏈的分布式存儲方案。該方案并未完全否決受信任的第三方數據庫的作用,完整交通信息的明文或密文存儲在第三方數據庫中,其摘要信息存儲在區塊鏈網絡中。區塊鏈網絡是基于P2P 網絡的基礎建立的,這意味著存儲其中的摘要信息可以被復制,然后分布到全網的各個節點。上述措施既降低了系統對可信數據庫的依賴性,同時也避免了類似于傳統數據庫單點故障的發生。
2)有條件的匿名。
Vi使用公鑰作為假名在系統中進行通信,其他用戶無法從中推導出Vi的信息。為了有效地權衡系統的隱私性和安全性,用戶真實身份同公鑰的聯系以高安全級別存儲在中心管理員(Central Administrator,CA)中。CA可以追蹤用戶發布的信息,卻無法破解經過加密的信息,因為用戶的私鑰是由PKG 生成的。當發生爭議時,同時從CA 和PKG 中調取用戶的公私鑰信息。一輛車只能擁有一對公私鑰,如有需要,用戶可主動在CA更新公鑰,然后在最近的PKG生成私鑰。
3)機密性和不可偽造性。
車輛通信階段,車輛在廣播交通信息前需要對其進行數字簽名,簽密可以在邏輯步驟中執行數字簽名和公鑰加密[14],與先簽名再加密的密碼算法相比,其計算成本和通信開銷更低。通過檢驗數字簽名的有效性,可以判斷信息來源于何處,從而保證信息的不可偽造性。通過使用接收方的公鑰進行加密來實現信息的機密性。
4)完整性和不可篡改性。
構建區塊時需將前一塊的哈希值包含在所構建的區塊中,然后哈希指針將這些區塊相連[15]。如果其中一個塊被修改,則此后的所有塊將被重新計算。因此,單個節點對數據庫的修改無效。哈希算法保證了數據的完整性,通過將數據庫中讀取的數據用相同的哈希算法進行摘要處理,再與區塊鏈上的數據摘要進行對比從而確定數據是否完整。
本節對DRPBFT 進行仿真實驗。對于軟件環境,在Windows 10系統中使用Python和Go Lang編程語言,虛擬機系統采用Ubuntu16.04,仿真環境采用Hyperledger Fabric V1.1,并使用Docker運行Hyperledger Fabric。
由于仿真環境中計算量有限,隨機選取40 個車聯網網關節點進行仿真實驗。首先,初始化車輛編號、任務編號和資源類型。隨機生成一個開始時間、結束時間和任務,隨機生成每輛車和每項任務的資源需求,各資源需求的生成曲線服從離散中心二項分布。誤差節點是隨機的,但不能超過13 個。因為滿足3f+1 ≤n,其中n是節點總數,f是惡意節點的數量。每秒事務數(Transactions Per Second,TPS)為:
TPS=TRA/ξTime
其中:TRA是事務數,ξTime是塊時間。
由圖8可以得出,隨著時間的增加,PBFT和DRPBFT都獲得了更高的事務吞吐量;然而隨著時間的增加,PBFT 的TPS在范圍(97,98)內保持相對穩定,DRPBFT 的TPS 持續增長。可以證明在DRPBFT 中加入的激勵機制是有效的,因為獎勵機制會對貢獻了資源的車輛進行利潤獎勵,懲罰機制會對惡意節點進行懲罰,保證了車輛節點能積極地參與共識過程,可以有效地消除惡意節點,降低惡意節點參與一致性的概率,有效地提高了系統的吞吐量。

圖8 PBFT與DRPBFT的TPS比較Fig.8 TPS comparison between PBFT and DRPBFT
從圖9可以看出,隨著節點數量的增加,PBFT 和DRPBFT的時延都有所增加,但是DRPBFT 的時延在6 s 內,而PBFT 的時延在9 s內,DRPBFT 比PBFT 具有更低的延遲。DRPBFT 可以用更寬松的延遲約束在一個塊中處理更多事務,因為加入了分級機制,能夠提高共識的效率,有效降低時延。

圖9 PBFT與DRPBFT的時延比較Fig.9 Time delay comparison between PBFT and DRPBFT
為了解決車聯網通信過程中數據安全和高時延的問題,本文提出了一種基于區塊鏈與云-邊緣計算混合架構的車聯網信息的安全共享與存儲方案。該方案利用聯盟鏈-私有鏈的去中心化實現了通信數據的不可篡改性、有條件的匿名性和不可偽造性,并提出了DRPBFT,提高了系統吞吐量,有效降低了時延,在節點較多的情況下,車聯網系統能夠獲得更好的共識性能。通信過程使用基于身份的多PKG 簽密算法和基于離散中心二項分布的環簽名方案實現了通信數據的安全性和完整性,保障了用戶身份的匿名性。該方案通過邊緣計算技術處理私人敏感數據,并與云計算技術相結合,確保車聯網系統的實時、高效。隨著吞吐量和時延性能的提升,區塊鏈的計算與存儲問題也隨之出現,這將是我們下一步主要的研究方向。