何 勇,張航宇,郭智鴻,蘇桐桐,李 虎,王凱樂(lè)
(1.中國(guó)電建集團(tuán)西北勘測(cè)設(shè)計(jì)研究院有限公司 數(shù)字與智慧工程院,西安 710065;2. 西安市清潔能源數(shù)字化技術(shù)重點(diǎn)實(shí)驗(yàn)室,西安 710065)
無(wú)人機(jī)通過(guò)與地面基站實(shí)時(shí)通信,可為物聯(lián)網(wǎng)提供一體化的智能服務(wù),已廣泛應(yīng)用于貨運(yùn)調(diào)度、應(yīng)急救援、精準(zhǔn)農(nóng)業(yè)、電網(wǎng)巡檢等領(lǐng)域[1]。與云計(jì)算場(chǎng)景不同,分布在高空的移動(dòng)無(wú)人機(jī)不依賴于集中式架構(gòu)模式,無(wú)需將終端請(qǐng)求匯集至云服務(wù)中心進(jìn)行統(tǒng)一處理,而是使用了大量邊緣計(jì)算方法進(jìn)行數(shù)據(jù)處理和分析[2-3],保證了網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)姆€(wěn)定性。然而,無(wú)人機(jī)作為物聯(lián)網(wǎng)邊緣層連接的終端設(shè)備[4],命令和數(shù)據(jù)往往通過(guò)不受信任的信道進(jìn)行傳輸[5-6],在將數(shù)據(jù)通過(guò)低時(shí)延傳輸邊緣層節(jié)點(diǎn)的同時(shí)帶來(lái)了安全性差、防篡改性弱的問(wèn)題,容易受到Sybil、DoS/DDoS、GPS欺騙等網(wǎng)絡(luò)攻擊[7],使無(wú)人機(jī)偏離計(jì)劃航行或數(shù)據(jù)竊取。
為增強(qiáng)高空移動(dòng)無(wú)人機(jī)的數(shù)據(jù)通信的安全性。近年來(lái),研究者開始嘗試?yán)脜^(qū)塊鏈技術(shù)解決無(wú)人機(jī)協(xié)同作業(yè)的信息安全問(wèn)題[8]。區(qū)塊鏈?zhǔn)且豁?xiàng)起源于比特幣的新興技術(shù)[9],它將數(shù)據(jù)區(qū)塊按照時(shí)間順序相連,形成一個(gè)不可篡改的和去中心化的分布式賬本。文獻(xiàn)[10]在無(wú)人機(jī)群和傳感器云之間設(shè)計(jì)了一個(gè)分布式支付系統(tǒng),將區(qū)塊鏈用作分布式公共賬本,以確保數(shù)據(jù)的完整性、可追溯性和不可偽造性。但該方法占有空間較大,終端設(shè)備產(chǎn)生的數(shù)據(jù)規(guī)模不斷增長(zhǎng),且忽略了無(wú)人機(jī)有限的計(jì)算荷載;文獻(xiàn)[11]提出了一種基于區(qū)塊鏈的無(wú)人機(jī)數(shù)據(jù)采集方法,使用一個(gè)內(nèi)存高效的數(shù)據(jù)結(jié)構(gòu)π-哈希bloom過(guò)濾器來(lái)驗(yàn)證用戶的身份驗(yàn)證,并用集中記賬方式記錄區(qū)塊之間的交易信息,從而過(guò)濾惡意設(shè)備,但該方法需要頻繁地查找區(qū)塊內(nèi)容,不可避免地使數(shù)據(jù)傳輸?shù)难舆t性有所提高;文獻(xiàn)[12]提出了一種基于區(qū)塊鏈共識(shí)算法的無(wú)人機(jī)網(wǎng)絡(luò)自主運(yùn)行架構(gòu),并采用圖一致性進(jìn)行有效性驗(yàn)證。但該方法不太適用于動(dòng)態(tài)通信拓?fù)渥兓^大的物聯(lián)網(wǎng)情景。為解決這些問(wèn)題,本文提出了一種基于區(qū)塊鏈的分布式無(wú)人機(jī)數(shù)據(jù)安全模型BC_UAV,主要功能如下:
1)設(shè)計(jì)一種分布式區(qū)塊鏈網(wǎng)絡(luò)模型,該模型在邊緣層節(jié)點(diǎn)和終端層無(wú)人機(jī)節(jié)點(diǎn)分別設(shè)置邊緣層區(qū)塊鏈和無(wú)人機(jī)區(qū)塊鏈[13-14],利用輕量加密技術(shù)重構(gòu)區(qū)塊鏈結(jié)構(gòu),以減輕無(wú)人機(jī)的數(shù)據(jù)計(jì)算荷載。
2)提出一種區(qū)塊鏈數(shù)據(jù)安全傳輸方法。調(diào)用智能合約完成區(qū)塊數(shù)據(jù)的安全傳輸,邊緣層節(jié)點(diǎn)定期將無(wú)人機(jī)區(qū)塊鏈中的交易數(shù)據(jù)以默克爾帕特里夏數(shù)樹[15](MPT,Merkle Patricia tree)的結(jié)構(gòu)打包成區(qū)塊發(fā)布到邊緣層區(qū)塊鏈上,利用時(shí)間戳信息并通過(guò)指針在無(wú)人機(jī)區(qū)塊鏈上找到相應(yīng)的數(shù)據(jù)交易位置。
3)提出一種融合共識(shí)協(xié)議的工作量證明算法[16](CP-WP,consensus protocol of work proof)。結(jié)合信譽(yù)評(píng)估方案[17],并利用代理權(quán)益證明[18](DPoS,delegated proof of stake)思想,完成交易一致性協(xié)議,共同維護(hù)無(wú)人機(jī)之間賬本數(shù)據(jù)的一致性和準(zhǔn)確性。
為實(shí)現(xiàn)無(wú)人機(jī)與邊緣層網(wǎng)關(guān)設(shè)備的安全通信,設(shè)計(jì)一種分布式區(qū)塊鏈網(wǎng)絡(luò)模型,主要由終端層、邊緣層和控制層組成。如圖1所示,層與層之間通過(guò)數(shù)據(jù)信息傳輸相互協(xié)作。其中:1)終端層由無(wú)人機(jī)組成,采用私有鏈技術(shù)形成無(wú)人機(jī)區(qū)塊鏈網(wǎng)絡(luò),無(wú)人機(jī)通過(guò)與邊緣層設(shè)備進(jìn)行通信訪問(wèn)并交易數(shù)據(jù),發(fā)布至無(wú)人機(jī)重構(gòu)區(qū)塊鏈上;2)邊緣層由物聯(lián)網(wǎng)中的網(wǎng)關(guān)節(jié)點(diǎn)組成,采用聯(lián)盟鏈技術(shù)形成邊緣層區(qū)塊鏈,負(fù)責(zé)接收來(lái)自無(wú)人機(jī)的數(shù)據(jù)請(qǐng)求,并對(duì)無(wú)人機(jī)區(qū)塊鏈中交易的合法性進(jìn)行驗(yàn)證,使用私鑰對(duì)驗(yàn)證結(jié)果進(jìn)行簽名,將驗(yàn)證結(jié)果打包交易發(fā)布至無(wú)人機(jī)區(qū)塊鏈上,形成終端層無(wú)人機(jī)重構(gòu)區(qū)塊鏈的快照信息,以防止惡意終端無(wú)人機(jī)對(duì)區(qū)塊鏈網(wǎng)絡(luò)破壞,減少邊緣節(jié)點(diǎn)存儲(chǔ)空間;3)控制層由地面控制站和云服務(wù)器組成,定期對(duì)邊緣層區(qū)塊鏈數(shù)據(jù)進(jìn)行備份、注冊(cè)、授權(quán)等,無(wú)人機(jī)運(yùn)用5G通信技術(shù)接入物聯(lián)網(wǎng)邊緣層設(shè)備中。
圖1 分布式區(qū)塊鏈網(wǎng)絡(luò)模型
考慮無(wú)人機(jī)分布式區(qū)塊鏈網(wǎng)絡(luò)由輕量級(jí)和低能耗的物聯(lián)網(wǎng)設(shè)備組成,要求這些設(shè)備擁有與比特幣網(wǎng)絡(luò)中的礦工同等的計(jì)算能力是不合理的,其不適用于大量數(shù)據(jù)交互場(chǎng)景,因此提出一個(gè)重構(gòu)區(qū)塊鏈架構(gòu),以減少無(wú)人機(jī)的存儲(chǔ)空間和計(jì)算壓力。
1)區(qū)塊鏈結(jié)構(gòu)。類似于比特幣,共分為區(qū)頭和區(qū)體兩個(gè)部分。與傳統(tǒng)的區(qū)塊組合不同,重構(gòu)區(qū)塊鏈結(jié)構(gòu)是針對(duì)輕量級(jí)物聯(lián)網(wǎng)設(shè)備以及無(wú)人機(jī)之間的通信而定制的,利用輕量級(jí)密碼技術(shù)Keccak[19-20]重新定義所有交易數(shù)據(jù),并保存于分布式賬本中。如圖2所示,重構(gòu)區(qū)塊鏈的塊頭包括當(dāng)前塊頭哈希、前一塊頭哈希、信譽(yù)樹根、策略列表、時(shí)間戳和事務(wù)樹根等索引信息,主要依賴于共識(shí)協(xié)議算法指定節(jié)點(diǎn)以生成新的區(qū)塊,每個(gè)節(jié)點(diǎn)都引用最新的策略來(lái)處理事務(wù),一旦無(wú)人機(jī)存在諸如區(qū)塊中列出的查詢?cè)L問(wèn)隱私數(shù)據(jù),或者創(chuàng)建轉(zhuǎn)發(fā)無(wú)效區(qū)塊和交易的可疑行為,則重新計(jì)算每個(gè)無(wú)人機(jī)的信譽(yù)值。
圖2 重構(gòu)區(qū)塊鏈結(jié)構(gòu)和事務(wù)信息
2)工作方式。將整個(gè)系統(tǒng)的邊緣層節(jié)點(diǎn)、終端層無(wú)人機(jī)和控制層服務(wù)器之間的通信格式化為事務(wù),采用圖2所示的事務(wù)信息結(jié)構(gòu),(1)無(wú)人機(jī)使用哈希函數(shù)對(duì)收集的數(shù)據(jù)進(jìn)行計(jì)算并獲得字長(zhǎng)固定的索引信息,索引信息打包成交易事務(wù)后上傳至無(wú)人機(jī)區(qū)塊鏈上;(2)無(wú)人機(jī)區(qū)塊鏈采用不可逆的交易單元組成,邊緣層區(qū)塊鏈主要是在每一個(gè)區(qū)塊中存儲(chǔ)無(wú)人機(jī)區(qū)塊鏈的交易快照,其區(qū)塊頭存儲(chǔ)指向前置區(qū)塊的哈希指針和時(shí)間戳,塊體包含以MPT結(jié)構(gòu)存儲(chǔ)于分布式賬本的交易信息,用于快速檢索和安全存儲(chǔ)。
3)事務(wù)處理。邊緣層區(qū)塊鏈每隔一定時(shí)間戳?xí)驘o(wú)人機(jī)分發(fā)一對(duì)公鑰和私鑰,以允許其簽署交易,表示上一個(gè)時(shí)間戳的所有交易被確認(rèn)。這樣,在分布式區(qū)塊鏈網(wǎng)絡(luò)模型中,向區(qū)塊鏈系統(tǒng)添加新的無(wú)人機(jī)由系統(tǒng)自動(dòng)創(chuàng)建,每臺(tái)無(wú)人機(jī)的信譽(yù)值初始化為r=60,信譽(yù)值會(huì)根據(jù)無(wú)人機(jī)實(shí)施的行為而變化。當(dāng)命令事務(wù)啟動(dòng)時(shí),要求無(wú)人機(jī)提供包括狀態(tài)數(shù)據(jù)和圖像數(shù)據(jù)數(shù)據(jù),或向無(wú)人機(jī)設(shè)備發(fā)送控制命令并執(zhí)行。否則,系統(tǒng)將修改策略列表以禁止與其通信,或?qū)⑿抛u(yù)值設(shè)置得更低以通知網(wǎng)絡(luò)中的其他無(wú)人機(jī)取消該無(wú)人機(jī)的資格。在合法查詢的前提下,一旦沒(méi)有收到響應(yīng)將啟動(dòng)報(bào)告交易,廣播特定無(wú)人機(jī)的可疑活動(dòng)。
與傳統(tǒng)分布式區(qū)塊鏈結(jié)構(gòu)相比,利用輕量級(jí)密碼技術(shù)Keccak減輕無(wú)人機(jī)的數(shù)據(jù)計(jì)算荷載,并在事務(wù)處理上自動(dòng)創(chuàng)建新的無(wú)人機(jī)用戶,將所有計(jì)算集中于邊緣層節(jié)點(diǎn)上,提高了數(shù)據(jù)交易速度和檢索速度。
在分布式區(qū)塊鏈網(wǎng)絡(luò)模型的基礎(chǔ)上,所有數(shù)據(jù)以重構(gòu)區(qū)塊的形式保存于分布式賬本中,當(dāng)無(wú)人機(jī)數(shù)據(jù)通過(guò)交易到達(dá)邊緣層區(qū)塊鏈時(shí),需提供數(shù)據(jù)安全傳輸服務(wù)。
數(shù)據(jù)智能合約部署于重構(gòu)無(wú)人機(jī)區(qū)塊鏈上,無(wú)人機(jī)在當(dāng)前物聯(lián)網(wǎng)中設(shè)置的邊緣節(jié)點(diǎn)上進(jìn)行網(wǎng)絡(luò)注冊(cè)后,就可以調(diào)用該智能合約完成索引信息的安全傳輸,智能合約過(guò)程如圖3所示。
圖3 智能合約過(guò)程
1)網(wǎng)絡(luò)注冊(cè)。每個(gè)無(wú)人機(jī)都會(huì)根據(jù)其MAC地址創(chuàng)建一個(gè)私鑰?m、最新時(shí)間戳Tc和隨機(jī)散列值hbar,通過(guò)注冊(cè)加入無(wú)人機(jī)區(qū)塊鏈網(wǎng)絡(luò),并預(yù)先加載一個(gè)策略指示數(shù)據(jù)傳輸操作。
2)數(shù)據(jù)哈希。每個(gè)無(wú)人機(jī)在發(fā)送消息之前都需要執(zhí)行Keccak哈希函數(shù),用于生成JSON格式序列化存儲(chǔ)的交易快照。然后,無(wú)人機(jī)針對(duì)交易快照實(shí)施簽名并打包形成交易,將交易內(nèi)容作為輸入?yún)?shù),用于調(diào)用智能合約。
3)數(shù)據(jù)驗(yàn)證。由于調(diào)整無(wú)人機(jī)挖礦難度的貢獻(xiàn)值是由邊緣層節(jié)點(diǎn)對(duì)某一時(shí)間戳的交易進(jìn)行數(shù)據(jù)驗(yàn)證,顯式地在無(wú)人機(jī)區(qū)塊鏈中輸出。當(dāng)邊緣層節(jié)點(diǎn)在對(duì)等網(wǎng)絡(luò)中接收到一個(gè)命令事務(wù)時(shí),智能合約對(duì)交易內(nèi)容實(shí)施檢查,以此確認(rèn)簽名節(jié)點(diǎn)是否在邊緣層中注冊(cè)通過(guò)。然后,智能合約將確認(rèn)后的消息反饋給無(wú)人機(jī)形成信譽(yù)值。如果驗(yàn)證通過(guò),則將事務(wù)轉(zhuǎn)發(fā)給鄰居;否則,如果接收到的事務(wù)缺乏數(shù)據(jù)完整性,則將其視為錯(cuò)誤且不傳輸,而如果接收到的事務(wù)違反策略列表,則接收方生成報(bào)告事務(wù)以通知網(wǎng)絡(luò)中的其他無(wú)人機(jī),并且將特定無(wú)人機(jī)的信譽(yù)值降低。類似地,成功報(bào)告惡意行為的接收者將獲得聲譽(yù)價(jià)值的增加。
4)數(shù)據(jù)存儲(chǔ)。數(shù)據(jù)驗(yàn)證通過(guò)后,邊緣層區(qū)塊鏈會(huì)向無(wú)人機(jī)發(fā)送一對(duì)公鑰和私鑰,證明該交易的簽名憑證,啟動(dòng)智能合約。智能合約將確認(rèn)當(dāng)前的數(shù)據(jù)存儲(chǔ)是否與接收的交易存儲(chǔ)地址匹配,如果匹配則表示數(shù)據(jù)存儲(chǔ)完成。在智能合約中通知終端層節(jié)點(diǎn)執(zhí)行共識(shí)協(xié)議,達(dá)成共識(shí)后則將該交易發(fā)布于重構(gòu)無(wú)人機(jī)區(qū)塊鏈中。
在智能合約過(guò)程中,邊緣層區(qū)塊鏈節(jié)點(diǎn)將驗(yàn)證到的交易信息打包發(fā)布至邊緣層上,其由多條單向鏈不可逆的形式進(jìn)行存儲(chǔ),鏈上的每個(gè)區(qū)塊代表該無(wú)人機(jī)在某一時(shí)間內(nèi)發(fā)布的交易快照,并以MPT形式存儲(chǔ)于塊頭,每個(gè)交易映射為MPT的葉子節(jié)點(diǎn),其內(nèi)容包括交易數(shù)據(jù)標(biāo)簽信息、信譽(yù)值以及交易哈希指針,該指針主要是指向終端層的交易。MPT中的兩個(gè)子節(jié)點(diǎn)計(jì)算出一個(gè)父節(jié)點(diǎn)哈希值,將根節(jié)點(diǎn)的哈希值保存于區(qū)塊頭,最終形成一個(gè)哈希關(guān)聯(lián)的二叉樹。MPT的模型結(jié)構(gòu)如圖4所示。
圖4 MPT模型結(jié)構(gòu)
分布式區(qū)塊鏈網(wǎng)絡(luò)模型中的數(shù)據(jù)檢索主要是通過(guò)區(qū)塊中的標(biāo)簽信息判斷數(shù)據(jù)并發(fā)出請(qǐng)求,邊緣層節(jié)點(diǎn)首先向前檢查區(qū)塊頭中的時(shí)間戳并確認(rèn)位置,然后從該區(qū)塊頭開始逐個(gè)遍歷MPT子節(jié)點(diǎn)以及對(duì)應(yīng)的信譽(yù)值,最后按照哈希指針找到對(duì)應(yīng)的信譽(yù)值較高的交易,完成檢索任務(wù)。通過(guò)這種檢索方式,邊緣層節(jié)點(diǎn)僅需對(duì)區(qū)塊頭進(jìn)行驗(yàn)證,且邊緣節(jié)點(diǎn)將無(wú)人機(jī)區(qū)塊鏈中的交易以信譽(yù)值和時(shí)間順序形成單向區(qū)塊鏈,可以有效地降低遍歷時(shí)間,減少計(jì)算荷載。
不同區(qū)塊鏈之間通過(guò)哈希指針完成區(qū)塊驗(yàn)證,分布式區(qū)塊鏈網(wǎng)絡(luò)模型中的數(shù)據(jù)傳輸主要是邊緣節(jié)點(diǎn)與無(wú)人機(jī)節(jié)點(diǎn)之間的數(shù)據(jù)交互行為,本文以聯(lián)盟鏈Hyperledger Fabri[21]為基礎(chǔ),該聯(lián)盟鏈解決了傳統(tǒng)方法中需要昂貴的挖礦計(jì)算來(lái)提交交易,可以在最短延遲時(shí)間內(nèi)構(gòu)建或擴(kuò)展區(qū)塊鏈,幫助無(wú)人機(jī)建立聯(lián)盟許可的區(qū)塊鏈網(wǎng)絡(luò),且多個(gè)無(wú)人機(jī)可以共享控制和操作邊緣層網(wǎng)絡(luò)節(jié)點(diǎn)的權(quán)限。同時(shí),利用gossip[21]數(shù)據(jù)傳播服務(wù)將賬本和通道數(shù)據(jù)傳播給對(duì)等無(wú)人機(jī)節(jié)點(diǎn),使授權(quán)的無(wú)人機(jī)以最快的時(shí)間連接到無(wú)人機(jī)區(qū)塊鏈中,設(shè)一個(gè)邊緣層節(jié)點(diǎn)NR和一個(gè)終端層無(wú)人機(jī)節(jié)點(diǎn)NU。
1)NU作出一個(gè)區(qū)塊傳輸請(qǐng)求,NR按照Hyperledger Fabri同步NU管理的區(qū)塊鏈,即NU將當(dāng)前區(qū)塊請(qǐng)求以哈希指針?lè)绞街赶蜃陨韰^(qū)塊鏈和NR區(qū)塊鏈。
2)NU通知NR數(shù)據(jù)傳輸請(qǐng)求發(fā)生,NR響應(yīng)后主動(dòng)對(duì)應(yīng)NU的區(qū)塊鏈,同步到該區(qū)塊鏈后,NR取出快照信息并檢索數(shù)據(jù)。若NR為該快照數(shù)據(jù)的所屬者,則輸出NDirect數(shù)據(jù)直接進(jìn)行共享。若NR為該快照數(shù)據(jù)的所屬者,則NR咨詢NU是否傳輸該數(shù)據(jù)快照給其他邊緣層節(jié)點(diǎn),經(jīng)同意后采用公鑰對(duì)傳輸數(shù)據(jù)加密。
3)NR通知邊緣層區(qū)塊鏈上節(jié)點(diǎn),同步傳輸NU的快照信息。
使用信譽(yù)評(píng)估方案確保邊緣層節(jié)點(diǎn)接收到無(wú)人機(jī)數(shù)據(jù)區(qū)塊的有效性,減少區(qū)塊驗(yàn)證的開銷。信譽(yù)值表示無(wú)人機(jī)在其最近的生命周期中對(duì)區(qū)塊鏈網(wǎng)絡(luò)的貢獻(xiàn)度,影響信譽(yù)值的因素主要是惡意操作、傳播錯(cuò)誤消息以及信息攻擊等不合法交易。邊緣層鏈上區(qū)塊的交易快照中,無(wú)人機(jī)節(jié)點(diǎn)的信譽(yù)值以MPT的結(jié)構(gòu)存儲(chǔ)于塊頭,因此邊緣層節(jié)點(diǎn)會(huì)定期對(duì)無(wú)人機(jī)區(qū)塊鏈的交易進(jìn)行數(shù)據(jù)驗(yàn)證,無(wú)人機(jī)需要根據(jù)驗(yàn)證交易中的內(nèi)容自適應(yīng)調(diào)整工作量證明算法難度,共同維護(hù)數(shù)據(jù)。以概率P選擇接受請(qǐng)求或轉(zhuǎn)發(fā)交易,概率P計(jì)算方式如下:
(1)
式中,Ρi表示接受無(wú)人機(jī)Ui請(qǐng)求的概率,ri表示Ui的信譽(yù)值,Ci表示Ui執(zhí)行可疑操作的數(shù)量,ρ1和ρ2表示無(wú)人機(jī)的協(xié)同系數(shù)分別為r≥60和r<60,初始化設(shè)置每個(gè)無(wú)人機(jī)節(jié)點(diǎn)的信譽(yù)值為60,如果執(zhí)行惡意操作,則該節(jié)點(diǎn)信譽(yù)值可能會(huì)降低,如果成功報(bào)告可疑無(wú)人機(jī)或惡意入侵信息,則信譽(yù)值可能會(huì)增加。因此,高信譽(yù)值有利于信息被接受和信任,但是一旦請(qǐng)求者的信譽(yù)值低于20,相鄰無(wú)人機(jī)將拒絕轉(zhuǎn)發(fā)其發(fā)起的幾乎所有交易。
為增強(qiáng)邊緣層節(jié)點(diǎn)數(shù)據(jù)交易,完成交易一致性協(xié)議,共同維護(hù)無(wú)人機(jī)之間賬本數(shù)據(jù)的一致性和準(zhǔn)確性,提出CP-WP方法。該方法主要是利用DPoS思想對(duì)工作量證明方法進(jìn)行優(yōu)化調(diào)整的過(guò)程,其核心是根據(jù)權(quán)益的多少隨機(jī)選舉一個(gè)委員,將邊緣層節(jié)點(diǎn)視為礦工節(jié)點(diǎn),具體實(shí)現(xiàn)過(guò)程如下:
1)根據(jù)邊緣層節(jié)點(diǎn)獲取的區(qū)塊鏈結(jié)構(gòu),將數(shù)據(jù)交易中已簽名的交易打包進(jìn)入該區(qū)塊以生成完整的區(qū)塊體,形成MPT。判斷距上次難度的時(shí)間是否已產(chǎn)生2 016個(gè)區(qū)塊,以獲得新的難度位,從而獲得新的數(shù)據(jù)區(qū)塊并提高信譽(yù)值。
2)將時(shí)間劃分為間隔相同的時(shí)間戳,利用信譽(yù)證明選舉委員(參照DPoS思想),每個(gè)委員對(duì)應(yīng)一個(gè)時(shí)間戳進(jìn)行投票。
3)每個(gè)時(shí)間戳產(chǎn)生一個(gè)區(qū)塊,處理一個(gè)請(qǐng)求交易事務(wù),如果生成的區(qū)塊未得到大多數(shù)邊緣層節(jié)點(diǎn)的確認(rèn),則該時(shí)間戳內(nèi)不會(huì)產(chǎn)生區(qū)塊。
4)多個(gè)連續(xù)的時(shí)間戳形成一個(gè)窗口,如圖5所示,設(shè)有n個(gè)窗口,邊緣層節(jié)點(diǎn)生成區(qū)塊頭,該區(qū)塊中編碼了與無(wú)人機(jī)身份相關(guān)的一對(duì)公鑰(pubi)、權(quán)益si和隨機(jī)數(shù)種子ρi,后續(xù)每個(gè)窗口均會(huì)基于前一個(gè)窗口的基本數(shù)據(jù)運(yùn)行,以區(qū)塊頭中的每個(gè)候選人所持有權(quán)益的概率,選擇每個(gè)時(shí)間戳對(duì)應(yīng)的委員Uk=F(Sn,ρn,rk),其中Sn為窗口n中由所有候選人組成的集合(U1,U2,…,Un),ρn為窗口n中使用的隨機(jī)數(shù)種子,ρn與當(dāng)前窗口中每位候選人持有的權(quán)益(s1,s2,…,sn)有關(guān),rk為為第k個(gè)時(shí)間戳對(duì)應(yīng)的索引信息。根據(jù)隨機(jī)數(shù)種子ρn,函數(shù)F()從候選人集合Sn中隨機(jī)選出第k個(gè)時(shí)間戳對(duì)應(yīng)的委員Uk。
5)對(duì)于委員候選人,當(dāng)剛好被選為該時(shí)間戳上的委員,則執(zhí)行交易和廣播工作,否則在邊緣層節(jié)點(diǎn)上進(jìn)行數(shù)據(jù)驗(yàn)證。當(dāng)被選擇的區(qū)塊處于信譽(yù)值較低狀態(tài)時(shí),則不生成區(qū)塊。這樣,在不同時(shí)間戳內(nèi),不斷地進(jìn)行委員會(huì)選舉并驗(yàn)收數(shù)據(jù)的過(guò)程,直到窗口結(jié)束后會(huì)生成相應(yīng)的委員,從而實(shí)現(xiàn)每個(gè)時(shí)間戳內(nèi)選舉的隨機(jī)性,確保委員的選擇不會(huì)被攻擊者操縱。例如,當(dāng)網(wǎng)絡(luò)中一個(gè)無(wú)人機(jī)突然發(fā)現(xiàn)自己在沒(méi)有預(yù)期的情況下進(jìn)入或接近禁飛區(qū)時(shí),它有理由懷疑受到攻擊,并立即生成選舉事務(wù),將攻擊情況與其他節(jié)點(diǎn)進(jìn)行比較,一旦它們彼此不匹配,則無(wú)人機(jī)就極有可能受到攻擊,此時(shí)無(wú)人機(jī)就啟動(dòng)警報(bào)事務(wù),通知鄰居無(wú)人機(jī)節(jié)點(diǎn)采取預(yù)防措施來(lái)降低風(fēng)險(xiǎn)。
6)邊緣層節(jié)點(diǎn)對(duì)接收的新區(qū)塊進(jìn)行驗(yàn)證,如果驗(yàn)證通過(guò)則將新區(qū)塊添加到主區(qū)塊鏈上,并繼續(xù)挖礦直到符合要求的區(qū)塊產(chǎn)生。最終,在邊緣層節(jié)點(diǎn)的區(qū)塊中寫入交易信息,形成關(guān)于邊緣層的分布式一致性賬本。
針對(duì)BC_UAV模型,本文采用10個(gè)無(wú)人機(jī)高空數(shù)據(jù)采集作為實(shí)驗(yàn)數(shù)據(jù)進(jìn)行分析,無(wú)人機(jī)初始狀態(tài)為隨機(jī)分布,整個(gè)系統(tǒng)形成一個(gè)全網(wǎng)狀或半網(wǎng)狀拓?fù)渚钟蚓W(wǎng),通過(guò)自組網(wǎng)可以相互通信,從而可以進(jìn)行信息資源共享與交換。這些無(wú)人機(jī)節(jié)點(diǎn)通過(guò)連接和繼承不同邊緣層節(jié)點(diǎn)的接口實(shí)現(xiàn)操作,以此維護(hù)分布式無(wú)人機(jī)數(shù)據(jù)安全。
利用UB-ANC仿真器[22]在不同攻擊模式下說(shuō)明其有效性,UB-ANC仿真器是一種基于ns-3技術(shù)的多智能體無(wú)人機(jī)網(wǎng)絡(luò)模擬器,每個(gè)無(wú)人機(jī)的數(shù)據(jù)傳輸率為1 Mbps。實(shí)驗(yàn)環(huán)境為3.1 GHz Intel Core i7 CPU,內(nèi)存16 G,操作系統(tǒng)Windows 10,地面控制站工具為Q Ground Control。
4.1.1 無(wú)人機(jī)節(jié)點(diǎn)信譽(yù)評(píng)估
模擬了一個(gè)不需要數(shù)字簽名、哈希和區(qū)塊鏈技術(shù)的場(chǎng)景作為基本方案,與本文所提方法進(jìn)行比較,由于UB-ANC仿真器的限制,實(shí)驗(yàn)忽略了通信的平均延遲。
實(shí)驗(yàn)結(jié)果如圖6所示,無(wú)人機(jī)節(jié)點(diǎn)的信譽(yù)值隨時(shí)間變化的情況,在沒(méi)有信譽(yù)評(píng)估方案的基本方案中,受攻擊的無(wú)人機(jī)節(jié)點(diǎn)信譽(yù)值隨時(shí)間的增加而增加,因?yàn)槠渌鼰o(wú)人機(jī)節(jié)點(diǎn)無(wú)法檢測(cè)到任何惡意活動(dòng);而在BC_UAV中,由于增加了信譽(yù)值評(píng)估方案,并使用CP-WP算法進(jìn)行一致性驗(yàn)證,受攻擊無(wú)人機(jī)節(jié)點(diǎn)的信譽(yù)值迅速降低到閾值(r=60)以下,當(dāng)節(jié)點(diǎn)的信譽(yù)低于閾值時(shí),其他節(jié)點(diǎn)將不信任該節(jié)點(diǎn),從而保證了無(wú)人機(jī)群分布式?jīng)Q策的安全性。
4.1.2 平均吞吐量
表1在邊緣層節(jié)點(diǎn)中從無(wú)人機(jī)到地面站、從無(wú)人機(jī)到無(wú)人機(jī)、從地面站到云端、從無(wú)人機(jī)到云端等4種包流,比較基本場(chǎng)景和BC_UAV的流量大小,說(shuō)明本文模型利用數(shù)字簽名、加密和哈希函數(shù)在內(nèi)的加密技術(shù)增加了傳輸?shù)挠行лd荷的大小。
表1 包流的評(píng)估
如圖7所示,隨著網(wǎng)絡(luò)中無(wú)人機(jī)數(shù)量的增加(最高到10個(gè)無(wú)人機(jī)),BC_UAV的平均吞吐量增加,總體逐漸趨向于穩(wěn)定狀態(tài),且高于基本方案,說(shuō)明系統(tǒng)延遲時(shí)間小,能夠快速趨于收斂。這是由于BC_UAV設(shè)計(jì)了一個(gè)輕量級(jí)的重構(gòu)無(wú)人機(jī)區(qū)塊鏈,在CP-WP算法中引入DPoS思想進(jìn)行難度調(diào)整與優(yōu)化,同時(shí)利用快照形式將交易存儲(chǔ)于邊緣層節(jié)點(diǎn)中,減輕了無(wú)人機(jī)計(jì)算荷載。
圖7 BC_UAV平均吞吐量比較
一個(gè)理想的安全數(shù)據(jù)交易應(yīng)對(duì)攻擊行為是比較敏感的,邊緣層節(jié)點(diǎn)每次對(duì)網(wǎng)絡(luò)中交易檢查得出的是無(wú)人機(jī)節(jié)點(diǎn)行為的信譽(yù)值。假設(shè)單個(gè)無(wú)人機(jī)節(jié)點(diǎn)的交易上限為20,實(shí)驗(yàn)?zāi)M了3種攻擊模式分別布置于3個(gè)邊緣層節(jié)點(diǎn)上,并設(shè)置5個(gè)檢查點(diǎn)分析無(wú)人機(jī)區(qū)塊鏈網(wǎng)絡(luò)的信譽(yù)值變化。
節(jié)點(diǎn)1:模擬合法行為。在檢查區(qū)間發(fā)布20筆正常交易。
節(jié)點(diǎn)2:模擬GPS欺騙。生成或偽造原始GPS信號(hào),使投票交易事務(wù)無(wú)法聲明GPS信息本身,在每個(gè)檢查區(qū)間發(fā)送20筆交易,其中混入一筆偽造交易,造成無(wú)法檢測(cè)該GPS信息本身。
節(jié)點(diǎn)3:模擬女巫攻擊。在每個(gè)檢查區(qū)間發(fā)送20筆交易,其中混入一筆虛假交易限制網(wǎng)絡(luò)中其它無(wú)人機(jī)訪問(wèn)。
節(jié)點(diǎn)4:模擬DoS/DDoS攻擊。向無(wú)人機(jī)網(wǎng)絡(luò)或單個(gè)無(wú)人機(jī)節(jié)點(diǎn)發(fā)送多余或高頻次的請(qǐng)求,在檢查點(diǎn)3發(fā)送25筆交易。
如圖8所示,關(guān)于節(jié)點(diǎn)2,信譽(yù)值線性增長(zhǎng)較合法行為節(jié)點(diǎn)1慢,這是由于節(jié)點(diǎn)2在每個(gè)檢查周期混入一筆偽造交易行為,無(wú)人機(jī)在發(fā)布交易時(shí)必須驗(yàn)證已確認(rèn)的交易,一旦無(wú)人機(jī)發(fā)現(xiàn)自己處于或接近禁飛區(qū),它將發(fā)送一個(gè)投票事務(wù)來(lái)聲明交易信息,這將調(diào)用共識(shí)協(xié)議,允許每個(gè)無(wú)人機(jī)向請(qǐng)求者發(fā)送一條錯(cuò)誤/錯(cuò)誤消息,而邊緣層節(jié)點(diǎn)在計(jì)算信譽(yù)值時(shí)不考慮無(wú)人機(jī)節(jié)點(diǎn)的偽造行為。關(guān)于節(jié)點(diǎn)3,由于交易內(nèi)容為虛假信息,數(shù)據(jù)包丟棄和數(shù)據(jù)包選擇性轉(zhuǎn)發(fā),使無(wú)人機(jī)節(jié)點(diǎn)的得不到認(rèn)可,從而信譽(yù)值逐步降低。關(guān)于節(jié)點(diǎn)4,其交易數(shù)量超過(guò)了上限的10%,其榮譽(yù)值在檢查點(diǎn)3處突然下降,并在檢查點(diǎn)4和檢查點(diǎn)5處開始增長(zhǎng)緩慢,因?yàn)榉乐笵oS/DDoS攻擊是通過(guò)策略表實(shí)體限制網(wǎng)絡(luò)中每個(gè)無(wú)人機(jī)的訪問(wèn)權(quán)限,當(dāng)交易數(shù)量超過(guò)上限時(shí)榮譽(yù)值開始下降。該實(shí)驗(yàn)證明了數(shù)據(jù)智能合約對(duì)攻擊行為作出了比較良好的反應(yīng),同時(shí)還說(shuō)明了邊緣層區(qū)塊鏈和無(wú)人機(jī)區(qū)塊鏈共同維護(hù)交易賬本的過(guò)程。從實(shí)驗(yàn)中還看出,一個(gè)安全可靠的節(jié)點(diǎn),通過(guò)5次檢查就能達(dá)到信譽(yù)值上限60。
圖8 節(jié)點(diǎn)信譽(yù)值隨攻擊行為變化情況
邊緣層節(jié)點(diǎn)通過(guò)不斷調(diào)整和優(yōu)化無(wú)人機(jī)節(jié)點(diǎn)的信譽(yù)值,描述對(duì)本文所提CP-WP方法的有效性,從而降低可靠節(jié)點(diǎn)的開銷。
如圖9所示,共識(shí)算法在不同難度的執(zhí)行時(shí)間,正常節(jié)點(diǎn)交易率可提升3~4倍,首先計(jì)算重構(gòu)區(qū)塊鏈信息的哈希值,然后設(shè)共識(shí)算法的最小難度為1個(gè)點(diǎn),即在每個(gè)時(shí)間戳產(chǎn)生一個(gè)區(qū)塊,處理一個(gè)請(qǐng)求交易事務(wù),使難度每增加1個(gè)點(diǎn),對(duì)應(yīng)哈希結(jié)果時(shí)間增加1倍,將17作為算法的基準(zhǔn)難度值,當(dāng)難度小于16時(shí),執(zhí)行時(shí)間較低,當(dāng)難度大于18時(shí),執(zhí)行時(shí)間增長(zhǎng)較快。這是由于BC_UAV的共識(shí)協(xié)議算法主要根據(jù)權(quán)益的概率隨投票選舉委員,在多個(gè)連續(xù)的時(shí)間戳形成連續(xù)窗口,從而驗(yàn)證交易信息,形成分布式一致性賬本。表2描述了信譽(yù)值與CP-WP難度的映射關(guān)系,實(shí)驗(yàn)進(jìn)行30次數(shù)據(jù)處理,區(qū)塊鏈信息在每次實(shí)驗(yàn)中均隨機(jī)變化,取平均值作為最終結(jié)果。
表2 信譽(yù)值與CP-WP難度的映射關(guān)系
圖9 共識(shí)算法在不同難度的執(zhí)行時(shí)間
本文提出了一種基于區(qū)塊鏈的分布式無(wú)人機(jī)數(shù)據(jù)安全模型BC_UAV,主要是設(shè)計(jì)了適用于物聯(lián)網(wǎng)邊緣計(jì)算場(chǎng)景的分布式區(qū)塊鏈網(wǎng)絡(luò)模型,調(diào)用智能合約完成區(qū)塊數(shù)據(jù)的安全傳輸,提出自適應(yīng)工作量證明的共識(shí)算法完成交易數(shù)據(jù)的一致性協(xié)議,通過(guò)實(shí)驗(yàn)證明方法的有效性。后續(xù)工作將引入知識(shí)學(xué)習(xí)方法,將智能合約過(guò)程、共識(shí)協(xié)議過(guò)程擴(kuò)展為可解釋過(guò)程,有效刻畫區(qū)塊鏈在無(wú)人機(jī)數(shù)據(jù)安全傳輸?shù)年P(guān)系。