何 勇,張航宇,郭智鴻,蘇桐桐,李 虎,王凱樂
(1.中國電建集團西北勘測設計研究院有限公司 數字與智慧工程院,西安 710065;2. 西安市清潔能源數字化技術重點實驗室,西安 710065)
無人機通過與地面基站實時通信,可為物聯網提供一體化的智能服務,已廣泛應用于貨運調度、應急救援、精準農業、電網巡檢等領域[1]。與云計算場景不同,分布在高空的移動無人機不依賴于集中式架構模式,無需將終端請求匯集至云服務中心進行統一處理,而是使用了大量邊緣計算方法進行數據處理和分析[2-3],保證了網絡數據傳輸的穩定性。然而,無人機作為物聯網邊緣層連接的終端設備[4],命令和數據往往通過不受信任的信道進行傳輸[5-6],在將數據通過低時延傳輸邊緣層節點的同時帶來了安全性差、防篡改性弱的問題,容易受到Sybil、DoS/DDoS、GPS欺騙等網絡攻擊[7],使無人機偏離計劃航行或數據竊取。
為增強高空移動無人機的數據通信的安全性。近年來,研究者開始嘗試利用區塊鏈技術解決無人機協同作業的信息安全問題[8]。區塊鏈是一項起源于比特幣的新興技術[9],它將數據區塊按照時間順序相連,形成一個不可篡改的和去中心化的分布式賬本。文獻[10]在無人機群和傳感器云之間設計了一個分布式支付系統,將區塊鏈用作分布式公共賬本,以確保數據的完整性、可追溯性和不可偽造性。但該方法占有空間較大,終端設備產生的數據規模不斷增長,且忽略了無人機有限的計算荷載;文獻[11]提出了一種基于區塊鏈的無人機數據采集方法,使用一個內存高效的數據結構π-哈希bloom過濾器來驗證用戶的身份驗證,并用集中記賬方式記錄區塊之間的交易信息,從而過濾惡意設備,但該方法需要頻繁地查找區塊內容,不可避免地使數據傳輸的延遲性有所提高;文獻[12]提出了一種基于區塊鏈共識算法的無人機網絡自主運行架構,并采用圖一致性進行有效性驗證。但該方法不太適用于動態通信拓撲變化較大的物聯網情景。為解決這些問題,本文提出了一種基于區塊鏈的分布式無人機數據安全模型BC_UAV,主要功能如下:
1)設計一種分布式區塊鏈網絡模型,該模型在邊緣層節點和終端層無人機節點分別設置邊緣層區塊鏈和無人機區塊鏈[13-14],利用輕量加密技術重構區塊鏈結構,以減輕無人機的數據計算荷載。
2)提出一種區塊鏈數據安全傳輸方法。調用智能合約完成區塊數據的安全傳輸,邊緣層節點定期將無人機區塊鏈中的交易數據以默克爾帕特里夏數樹[15](MPT,Merkle Patricia tree)的結構打包成區塊發布到邊緣層區塊鏈上,利用時間戳信息并通過指針在無人機區塊鏈上找到相應的數據交易位置。
3)提出一種融合共識協議的工作量證明算法[16](CP-WP,consensus protocol of work proof)。結合信譽評估方案[17],并利用代理權益證明[18](DPoS,delegated proof of stake)思想,完成交易一致性協議,共同維護無人機之間賬本數據的一致性和準確性。
為實現無人機與邊緣層網關設備的安全通信,設計一種分布式區塊鏈網絡模型,主要由終端層、邊緣層和控制層組成。如圖1所示,層與層之間通過數據信息傳輸相互協作。其中:1)終端層由無人機組成,采用私有鏈技術形成無人機區塊鏈網絡,無人機通過與邊緣層設備進行通信訪問并交易數據,發布至無人機重構區塊鏈上;2)邊緣層由物聯網中的網關節點組成,采用聯盟鏈技術形成邊緣層區塊鏈,負責接收來自無人機的數據請求,并對無人機區塊鏈中交易的合法性進行驗證,使用私鑰對驗證結果進行簽名,將驗證結果打包交易發布至無人機區塊鏈上,形成終端層無人機重構區塊鏈的快照信息,以防止惡意終端無人機對區塊鏈網絡破壞,減少邊緣節點存儲空間;3)控制層由地面控制站和云服務器組成,定期對邊緣層區塊鏈數據進行備份、注冊、授權等,無人機運用5G通信技術接入物聯網邊緣層設備中。

圖1 分布式區塊鏈網絡模型
考慮無人機分布式區塊鏈網絡由輕量級和低能耗的物聯網設備組成,要求這些設備擁有與比特幣網絡中的礦工同等的計算能力是不合理的,其不適用于大量數據交互場景,因此提出一個重構區塊鏈架構,以減少無人機的存儲空間和計算壓力。
1)區塊鏈結構。類似于比特幣,共分為區頭和區體兩個部分。與傳統的區塊組合不同,重構區塊鏈結構是針對輕量級物聯網設備以及無人機之間的通信而定制的,利用輕量級密碼技術Keccak[19-20]重新定義所有交易數據,并保存于分布式賬本中。如圖2所示,重構區塊鏈的塊頭包括當前塊頭哈希、前一塊頭哈希、信譽樹根、策略列表、時間戳和事務樹根等索引信息,主要依賴于共識協議算法指定節點以生成新的區塊,每個節點都引用最新的策略來處理事務,一旦無人機存在諸如區塊中列出的查詢訪問隱私數據,或者創建轉發無效區塊和交易的可疑行為,則重新計算每個無人機的信譽值。

圖2 重構區塊鏈結構和事務信息
2)工作方式。將整個系統的邊緣層節點、終端層無人機和控制層服務器之間的通信格式化為事務,采用圖2所示的事務信息結構,(1)無人機使用哈希函數對收集的數據進行計算并獲得字長固定的索引信息,索引信息打包成交易事務后上傳至無人機區塊鏈上;(2)無人機區塊鏈采用不可逆的交易單元組成,邊緣層區塊鏈主要是在每一個區塊中存儲無人機區塊鏈的交易快照,其區塊頭存儲指向前置區塊的哈希指針和時間戳,塊體包含以MPT結構存儲于分布式賬本的交易信息,用于快速檢索和安全存儲。
3)事務處理。邊緣層區塊鏈每隔一定時間戳會向無人機分發一對公鑰和私鑰,以允許其簽署交易,表示上一個時間戳的所有交易被確認。這樣,在分布式區塊鏈網絡模型中,向區塊鏈系統添加新的無人機由系統自動創建,每臺無人機的信譽值初始化為r=60,信譽值會根據無人機實施的行為而變化。當命令事務啟動時,要求無人機提供包括狀態數據和圖像數據數據,或向無人機設備發送控制命令并執行。否則,系統將修改策略列表以禁止與其通信,或將信譽值設置得更低以通知網絡中的其他無人機取消該無人機的資格。在合法查詢的前提下,一旦沒有收到響應將啟動報告交易,廣播特定無人機的可疑活動。
與傳統分布式區塊鏈結構相比,利用輕量級密碼技術Keccak減輕無人機的數據計算荷載,并在事務處理上自動創建新的無人機用戶,將所有計算集中于邊緣層節點上,提高了數據交易速度和檢索速度。
在分布式區塊鏈網絡模型的基礎上,所有數據以重構區塊的形式保存于分布式賬本中,當無人機數據通過交易到達邊緣層區塊鏈時,需提供數據安全傳輸服務。
數據智能合約部署于重構無人機區塊鏈上,無人機在當前物聯網中設置的邊緣節點上進行網絡注冊后,就可以調用該智能合約完成索引信息的安全傳輸,智能合約過程如圖3所示。

圖3 智能合約過程
1)網絡注冊。每個無人機都會根據其MAC地址創建一個私鑰?m、最新時間戳Tc和隨機散列值hbar,通過注冊加入無人機區塊鏈網絡,并預先加載一個策略指示數據傳輸操作。
2)數據哈希。每個無人機在發送消息之前都需要執行Keccak哈希函數,用于生成JSON格式序列化存儲的交易快照。然后,無人機針對交易快照實施簽名并打包形成交易,將交易內容作為輸入參數,用于調用智能合約。
3)數據驗證。由于調整無人機挖礦難度的貢獻值是由邊緣層節點對某一時間戳的交易進行數據驗證,顯式地在無人機區塊鏈中輸出。當邊緣層節點在對等網絡中接收到一個命令事務時,智能合約對交易內容實施檢查,以此確認簽名節點是否在邊緣層中注冊通過。然后,智能合約將確認后的消息反饋給無人機形成信譽值。如果驗證通過,則將事務轉發給鄰居;否則,如果接收到的事務缺乏數據完整性,則將其視為錯誤且不傳輸,而如果接收到的事務違反策略列表,則接收方生成報告事務以通知網絡中的其他無人機,并且將特定無人機的信譽值降低。類似地,成功報告惡意行為的接收者將獲得聲譽價值的增加。
4)數據存儲。數據驗證通過后,邊緣層區塊鏈會向無人機發送一對公鑰和私鑰,證明該交易的簽名憑證,啟動智能合約。智能合約將確認當前的數據存儲是否與接收的交易存儲地址匹配,如果匹配則表示數據存儲完成。在智能合約中通知終端層節點執行共識協議,達成共識后則將該交易發布于重構無人機區塊鏈中。
在智能合約過程中,邊緣層區塊鏈節點將驗證到的交易信息打包發布至邊緣層上,其由多條單向鏈不可逆的形式進行存儲,鏈上的每個區塊代表該無人機在某一時間內發布的交易快照,并以MPT形式存儲于塊頭,每個交易映射為MPT的葉子節點,其內容包括交易數據標簽信息、信譽值以及交易哈希指針,該指針主要是指向終端層的交易。MPT中的兩個子節點計算出一個父節點哈希值,將根節點的哈希值保存于區塊頭,最終形成一個哈希關聯的二叉樹。MPT的模型結構如圖4所示。

圖4 MPT模型結構
分布式區塊鏈網絡模型中的數據檢索主要是通過區塊中的標簽信息判斷數據并發出請求,邊緣層節點首先向前檢查區塊頭中的時間戳并確認位置,然后從該區塊頭開始逐個遍歷MPT子節點以及對應的信譽值,最后按照哈希指針找到對應的信譽值較高的交易,完成檢索任務。通過這種檢索方式,邊緣層節點僅需對區塊頭進行驗證,且邊緣節點將無人機區塊鏈中的交易以信譽值和時間順序形成單向區塊鏈,可以有效地降低遍歷時間,減少計算荷載。
不同區塊鏈之間通過哈希指針完成區塊驗證,分布式區塊鏈網絡模型中的數據傳輸主要是邊緣節點與無人機節點之間的數據交互行為,本文以聯盟鏈Hyperledger Fabri[21]為基礎,該聯盟鏈解決了傳統方法中需要昂貴的挖礦計算來提交交易,可以在最短延遲時間內構建或擴展區塊鏈,幫助無人機建立聯盟許可的區塊鏈網絡,且多個無人機可以共享控制和操作邊緣層網絡節點的權限。同時,利用gossip[21]數據傳播服務將賬本和通道數據傳播給對等無人機節點,使授權的無人機以最快的時間連接到無人機區塊鏈中,設一個邊緣層節點NR和一個終端層無人機節點NU。
1)NU作出一個區塊傳輸請求,NR按照Hyperledger Fabri同步NU管理的區塊鏈,即NU將當前區塊請求以哈希指針方式指向自身區塊鏈和NR區塊鏈。
2)NU通知NR數據傳輸請求發生,NR響應后主動對應NU的區塊鏈,同步到該區塊鏈后,NR取出快照信息并檢索數據。若NR為該快照數據的所屬者,則輸出NDirect數據直接進行共享。若NR為該快照數據的所屬者,則NR咨詢NU是否傳輸該數據快照給其他邊緣層節點,經同意后采用公鑰對傳輸數據加密。
3)NR通知邊緣層區塊鏈上節點,同步傳輸NU的快照信息。
使用信譽評估方案確保邊緣層節點接收到無人機數據區塊的有效性,減少區塊驗證的開銷。信譽值表示無人機在其最近的生命周期中對區塊鏈網絡的貢獻度,影響信譽值的因素主要是惡意操作、傳播錯誤消息以及信息攻擊等不合法交易。邊緣層鏈上區塊的交易快照中,無人機節點的信譽值以MPT的結構存儲于塊頭,因此邊緣層節點會定期對無人機區塊鏈的交易進行數據驗證,無人機需要根據驗證交易中的內容自適應調整工作量證明算法難度,共同維護數據。以概率P選擇接受請求或轉發交易,概率P計算方式如下:
(1)
式中,Ρi表示接受無人機Ui請求的概率,ri表示Ui的信譽值,Ci表示Ui執行可疑操作的數量,ρ1和ρ2表示無人機的協同系數分別為r≥60和r<60,初始化設置每個無人機節點的信譽值為60,如果執行惡意操作,則該節點信譽值可能會降低,如果成功報告可疑無人機或惡意入侵信息,則信譽值可能會增加。因此,高信譽值有利于信息被接受和信任,但是一旦請求者的信譽值低于20,相鄰無人機將拒絕轉發其發起的幾乎所有交易。
為增強邊緣層節點數據交易,完成交易一致性協議,共同維護無人機之間賬本數據的一致性和準確性,提出CP-WP方法。該方法主要是利用DPoS思想對工作量證明方法進行優化調整的過程,其核心是根據權益的多少隨機選舉一個委員,將邊緣層節點視為礦工節點,具體實現過程如下:
1)根據邊緣層節點獲取的區塊鏈結構,將數據交易中已簽名的交易打包進入該區塊以生成完整的區塊體,形成MPT。判斷距上次難度的時間是否已產生2 016個區塊,以獲得新的難度位,從而獲得新的數據區塊并提高信譽值。
2)將時間劃分為間隔相同的時間戳,利用信譽證明選舉委員(參照DPoS思想),每個委員對應一個時間戳進行投票。
3)每個時間戳產生一個區塊,處理一個請求交易事務,如果生成的區塊未得到大多數邊緣層節點的確認,則該時間戳內不會產生區塊。
4)多個連續的時間戳形成一個窗口,如圖5所示,設有n個窗口,邊緣層節點生成區塊頭,該區塊中編碼了與無人機身份相關的一對公鑰(pubi)、權益si和隨機數種子ρi,后續每個窗口均會基于前一個窗口的基本數據運行,以區塊頭中的每個候選人所持有權益的概率,選擇每個時間戳對應的委員Uk=F(Sn,ρn,rk),其中Sn為窗口n中由所有候選人組成的集合(U1,U2,…,Un),ρn為窗口n中使用的隨機數種子,ρn與當前窗口中每位候選人持有的權益(s1,s2,…,sn)有關,rk為為第k個時間戳對應的索引信息。根據隨機數種子ρn,函數F()從候選人集合Sn中隨機選出第k個時間戳對應的委員Uk。
5)對于委員候選人,當剛好被選為該時間戳上的委員,則執行交易和廣播工作,否則在邊緣層節點上進行數據驗證。當被選擇的區塊處于信譽值較低狀態時,則不生成區塊。這樣,在不同時間戳內,不斷地進行委員會選舉并驗收數據的過程,直到窗口結束后會生成相應的委員,從而實現每個時間戳內選舉的隨機性,確保委員的選擇不會被攻擊者操縱。例如,當網絡中一個無人機突然發現自己在沒有預期的情況下進入或接近禁飛區時,它有理由懷疑受到攻擊,并立即生成選舉事務,將攻擊情況與其他節點進行比較,一旦它們彼此不匹配,則無人機就極有可能受到攻擊,此時無人機就啟動警報事務,通知鄰居無人機節點采取預防措施來降低風險。
6)邊緣層節點對接收的新區塊進行驗證,如果驗證通過則將新區塊添加到主區塊鏈上,并繼續挖礦直到符合要求的區塊產生。最終,在邊緣層節點的區塊中寫入交易信息,形成關于邊緣層的分布式一致性賬本。
針對BC_UAV模型,本文采用10個無人機高空數據采集作為實驗數據進行分析,無人機初始狀態為隨機分布,整個系統形成一個全網狀或半網狀拓撲局域網,通過自組網可以相互通信,從而可以進行信息資源共享與交換。這些無人機節點通過連接和繼承不同邊緣層節點的接口實現操作,以此維護分布式無人機數據安全。
利用UB-ANC仿真器[22]在不同攻擊模式下說明其有效性,UB-ANC仿真器是一種基于ns-3技術的多智能體無人機網絡模擬器,每個無人機的數據傳輸率為1 Mbps。實驗環境為3.1 GHz Intel Core i7 CPU,內存16 G,操作系統Windows 10,地面控制站工具為Q Ground Control。
4.1.1 無人機節點信譽評估
模擬了一個不需要數字簽名、哈希和區塊鏈技術的場景作為基本方案,與本文所提方法進行比較,由于UB-ANC仿真器的限制,實驗忽略了通信的平均延遲。
實驗結果如圖6所示,無人機節點的信譽值隨時間變化的情況,在沒有信譽評估方案的基本方案中,受攻擊的無人機節點信譽值隨時間的增加而增加,因為其它無人機節點無法檢測到任何惡意活動;而在BC_UAV中,由于增加了信譽值評估方案,并使用CP-WP算法進行一致性驗證,受攻擊無人機節點的信譽值迅速降低到閾值(r=60)以下,當節點的信譽低于閾值時,其他節點將不信任該節點,從而保證了無人機群分布式決策的安全性。
4.1.2 平均吞吐量
表1在邊緣層節點中從無人機到地面站、從無人機到無人機、從地面站到云端、從無人機到云端等4種包流,比較基本場景和BC_UAV的流量大小,說明本文模型利用數字簽名、加密和哈希函數在內的加密技術增加了傳輸的有效載荷的大小。

表1 包流的評估
如圖7所示,隨著網絡中無人機數量的增加(最高到10個無人機),BC_UAV的平均吞吐量增加,總體逐漸趨向于穩定狀態,且高于基本方案,說明系統延遲時間小,能夠快速趨于收斂。這是由于BC_UAV設計了一個輕量級的重構無人機區塊鏈,在CP-WP算法中引入DPoS思想進行難度調整與優化,同時利用快照形式將交易存儲于邊緣層節點中,減輕了無人機計算荷載。

圖7 BC_UAV平均吞吐量比較
一個理想的安全數據交易應對攻擊行為是比較敏感的,邊緣層節點每次對網絡中交易檢查得出的是無人機節點行為的信譽值。假設單個無人機節點的交易上限為20,實驗模擬了3種攻擊模式分別布置于3個邊緣層節點上,并設置5個檢查點分析無人機區塊鏈網絡的信譽值變化。
節點1:模擬合法行為。在檢查區間發布20筆正常交易。
節點2:模擬GPS欺騙。生成或偽造原始GPS信號,使投票交易事務無法聲明GPS信息本身,在每個檢查區間發送20筆交易,其中混入一筆偽造交易,造成無法檢測該GPS信息本身。
節點3:模擬女巫攻擊。在每個檢查區間發送20筆交易,其中混入一筆虛假交易限制網絡中其它無人機訪問。
節點4:模擬DoS/DDoS攻擊。向無人機網絡或單個無人機節點發送多余或高頻次的請求,在檢查點3發送25筆交易。
如圖8所示,關于節點2,信譽值線性增長較合法行為節點1慢,這是由于節點2在每個檢查周期混入一筆偽造交易行為,無人機在發布交易時必須驗證已確認的交易,一旦無人機發現自己處于或接近禁飛區,它將發送一個投票事務來聲明交易信息,這將調用共識協議,允許每個無人機向請求者發送一條錯誤/錯誤消息,而邊緣層節點在計算信譽值時不考慮無人機節點的偽造行為。關于節點3,由于交易內容為虛假信息,數據包丟棄和數據包選擇性轉發,使無人機節點的得不到認可,從而信譽值逐步降低。關于節點4,其交易數量超過了上限的10%,其榮譽值在檢查點3處突然下降,并在檢查點4和檢查點5處開始增長緩慢,因為防止DoS/DDoS攻擊是通過策略表實體限制網絡中每個無人機的訪問權限,當交易數量超過上限時榮譽值開始下降。該實驗證明了數據智能合約對攻擊行為作出了比較良好的反應,同時還說明了邊緣層區塊鏈和無人機區塊鏈共同維護交易賬本的過程。從實驗中還看出,一個安全可靠的節點,通過5次檢查就能達到信譽值上限60。

圖8 節點信譽值隨攻擊行為變化情況
邊緣層節點通過不斷調整和優化無人機節點的信譽值,描述對本文所提CP-WP方法的有效性,從而降低可靠節點的開銷。
如圖9所示,共識算法在不同難度的執行時間,正常節點交易率可提升3~4倍,首先計算重構區塊鏈信息的哈希值,然后設共識算法的最小難度為1個點,即在每個時間戳產生一個區塊,處理一個請求交易事務,使難度每增加1個點,對應哈希結果時間增加1倍,將17作為算法的基準難度值,當難度小于16時,執行時間較低,當難度大于18時,執行時間增長較快。這是由于BC_UAV的共識協議算法主要根據權益的概率隨投票選舉委員,在多個連續的時間戳形成連續窗口,從而驗證交易信息,形成分布式一致性賬本。表2描述了信譽值與CP-WP難度的映射關系,實驗進行30次數據處理,區塊鏈信息在每次實驗中均隨機變化,取平均值作為最終結果。

表2 信譽值與CP-WP難度的映射關系

圖9 共識算法在不同難度的執行時間
本文提出了一種基于區塊鏈的分布式無人機數據安全模型BC_UAV,主要是設計了適用于物聯網邊緣計算場景的分布式區塊鏈網絡模型,調用智能合約完成區塊數據的安全傳輸,提出自適應工作量證明的共識算法完成交易數據的一致性協議,通過實驗證明方法的有效性。后續工作將引入知識學習方法,將智能合約過程、共識協議過程擴展為可解釋過程,有效刻畫區塊鏈在無人機數據安全傳輸的關系。