黃 捷,李幫銀,陳宇韜,鄧宏彬,李東方
(1.福州大學(xué)電氣工程與自動化學(xué)院,福州 350108;2.武夷學(xué)院機(jī)電工程學(xué)院,武夷山 354300;3.北京理工大學(xué)機(jī)電學(xué)院,北京 100081;4.工業(yè)自動化控制技術(shù)與處理福建省高校重點(diǎn)實(shí)驗(yàn)室,福州 350108)
近年來,隨著機(jī)器人硬件設(shè)備和群機(jī)器人系統(tǒng)相關(guān)研究的快速發(fā)展,群機(jī)器人廣泛應(yīng)用于搜索救援、軍事、醫(yī)療、監(jiān)視等領(lǐng)域[1-4]。美國OFFSET 項(xiàng)目使用無人機(jī)和無人車組成的集群在復(fù)雜城市環(huán)境中執(zhí)行任務(wù)[5]。在I-WARD 項(xiàng)目中,機(jī)器人集群在運(yùn)送患者病歷和藥品方面發(fā)揮著重要作用[6]。在這些應(yīng)用場景中,對數(shù)據(jù)完整性和隱私性具有非常高的敏感性,保證群機(jī)器人系統(tǒng)的數(shù)據(jù)安全性是最關(guān)鍵的。
現(xiàn)有的多數(shù)研究中群機(jī)器人系統(tǒng)的數(shù)據(jù)存儲依賴于中心服務(wù)器或中心節(jié)點(diǎn)[7-9],存在單點(diǎn)故障的潛在安全威脅,對系統(tǒng)數(shù)據(jù)安全性考慮不足,難以保障數(shù)據(jù)的完整性和可靠性。為解決數(shù)據(jù)存儲存在的單點(diǎn)故障問題,具備去中心化和防篡改特征的區(qū)塊鏈技術(shù)受到了關(guān)注。區(qū)塊鏈作為一種全新的分布式基礎(chǔ)設(shè)施和計(jì)算范式,最早應(yīng)用于加密貨幣領(lǐng)域[10],以確保資產(chǎn)轉(zhuǎn)移的安全性和可信性。它天然具有數(shù)據(jù)完整、不可篡改的特點(diǎn)[11]。從網(wǎng)絡(luò)結(jié)構(gòu)來看,群體機(jī)器人與區(qū)塊鏈具有相同的特征,都具有去中心化的特點(diǎn),如圖1所示。因此,區(qū)塊鏈有望為群機(jī)器人系統(tǒng)數(shù)據(jù)安全提供一種新的保障方案。在現(xiàn)有的相關(guān)研究中,趙赫等[12]提出了一種確保傳感器數(shù)據(jù)真實(shí)性的方法,以保證機(jī)器人數(shù)據(jù)的真實(shí)性和完整性,避免人為干預(yù)。Islam 等[13]提出了基于區(qū)塊鏈技術(shù)的安全數(shù)據(jù)采集方案,機(jī)器人數(shù)據(jù)從使用無人機(jī)群的物聯(lián)網(wǎng)設(shè)備收集并存儲在服務(wù)器的區(qū)塊鏈中,以保障機(jī)器人采集數(shù)據(jù)的完整性。上述區(qū)塊鏈解決方案著眼于保障了機(jī)器人集群的數(shù)據(jù)完整性、真實(shí)性,但區(qū)塊鏈網(wǎng)絡(luò)中交易數(shù)據(jù)以公開可見的方式傳輸,數(shù)據(jù)隱私性問題變得突出。區(qū)塊鏈技術(shù)應(yīng)用中常被提及的隱私性是指通過節(jié)點(diǎn)匿名性來保障節(jié)點(diǎn)信息的隱私性,但節(jié)點(diǎn)間的交易數(shù)據(jù)是透明的[14]。這在加密貨幣的應(yīng)用中是可行的,但不適用于群機(jī)器人系統(tǒng)。因?yàn)樵谌簷C(jī)器人系統(tǒng)中,機(jī)器人節(jié)點(diǎn)身份的概念并不突出,其隱私性更重要的是在由機(jī)器人存儲的私密數(shù)據(jù)上。
圖1 群機(jī)器人與區(qū)塊鏈網(wǎng)絡(luò)結(jié)構(gòu)比較Fig.1 Comparison of network structure between Swarm robotics and blockchain
需要注意的是,利用區(qū)塊鏈保障群機(jī)器人數(shù)據(jù)安全性的前提是機(jī)器人可以加入?yún)^(qū)塊鏈網(wǎng)絡(luò)并實(shí)現(xiàn)基于區(qū)塊鏈的交互,目前的許多研究沒有對該問題進(jìn)行討論。表1簡要總結(jié)了現(xiàn)有基于區(qū)塊鏈的群體機(jī)器人系統(tǒng)的主要研究。從表中可以看出,現(xiàn)有多數(shù)研究的方法驗(yàn)證是通過仿真方式進(jìn)行的[15-19],并且在前期的多數(shù)研究中沒有考慮機(jī)器人運(yùn)行區(qū)塊鏈的性能約束。從仿真擴(kuò)展到實(shí)驗(yàn)的關(guān)鍵問題是區(qū)塊鏈協(xié)議所要求的計(jì)算和存儲性能在計(jì)算和存儲能力有限的機(jī)器人系統(tǒng)中部署是否仍然可行。這些挑戰(zhàn)在文獻(xiàn)[20]中被提及,但沒有給出具體的解決方案。為解決該問題,Pacheco 等[21]采用權(quán)威證明機(jī)制共識協(xié)議來降低機(jī)器人的計(jì)算成本,實(shí)現(xiàn)了基于區(qū)塊鏈的群機(jī)器人系統(tǒng)的有效運(yùn)行。但權(quán)威證明機(jī)制共識協(xié)議缺乏足夠的分析,無法讓公眾相信其安全性[22]。
表1 基于區(qū)塊鏈的群機(jī)器人的主要研究Table 1 Main research on swarm robotics based on blockchain
基于上述分析可知,在現(xiàn)有基于區(qū)塊鏈的群機(jī)器人系統(tǒng)數(shù)據(jù)保護(hù)研究中,其核心思想是在信息透明的條件下建立一個可信的交互環(huán)境來保障數(shù)據(jù)的完整性。但對區(qū)塊鏈網(wǎng)絡(luò)中交易數(shù)據(jù)公開透明所帶來的數(shù)據(jù)隱私性問題考慮不足。這在醫(yī)療、監(jiān)視等許多對數(shù)據(jù)隱私性較為敏感的群機(jī)器人應(yīng)用領(lǐng)域來說是不合適的,因?yàn)檫@存在用戶隱私數(shù)據(jù)泄露的潛在風(fēng)險。另外,現(xiàn)有研究中,實(shí)現(xiàn)區(qū)塊鏈在群機(jī)器人系統(tǒng)上部署所采用的方法仍缺乏足夠的分析,無法讓公眾相信其安全性。
為保障群機(jī)器人系統(tǒng)數(shù)據(jù)的安全性,本文研究了基于區(qū)塊鏈技術(shù)的群機(jī)器人數(shù)據(jù)完整性和隱私性保護(hù)方案。該方案主要包括鏈上數(shù)據(jù)完整性保護(hù)和鏈下數(shù)據(jù)隱私保護(hù)兩部分。首先,鏈上數(shù)據(jù)完整性保護(hù)部分采用以太坊區(qū)塊鏈平臺,群機(jī)器人成員作為區(qū)塊鏈節(jié)點(diǎn)實(shí)現(xiàn)與區(qū)塊鏈網(wǎng)絡(luò)的交互,利用區(qū)塊鏈技術(shù)內(nèi)嵌的數(shù)字簽名、哈希算法、時間戳技術(shù)等共同保障機(jī)器人數(shù)據(jù)的完整性。其次,考慮區(qū)塊鏈鏈上數(shù)據(jù)公開的特點(diǎn),任何上鏈數(shù)據(jù)都將在鏈上留下可追溯的痕跡。為避免明文數(shù)據(jù)的鏈上留痕,引入了內(nèi)嵌非對稱加密算法的脫鏈加解密模塊,保障機(jī)器人交互數(shù)據(jù)隱私性。
另一方面,為在物理機(jī)器人上實(shí)現(xiàn)基于區(qū)塊鏈技術(shù)的數(shù)據(jù)保護(hù)方案,本文對基于區(qū)塊鏈的群機(jī)器人系統(tǒng)實(shí)現(xiàn)方案進(jìn)行了研究。為實(shí)現(xiàn)在實(shí)體機(jī)器人上運(yùn)行區(qū)塊鏈協(xié)議,本文從算力負(fù)擔(dān)與存儲需求兩方面考慮,提出了基于輕節(jié)點(diǎn)的實(shí)現(xiàn)方案。在算力負(fù)擔(dān)方面,該方案中群機(jī)器人成員僅參與和區(qū)塊鏈網(wǎng)絡(luò)之間的交互,而不參與區(qū)塊鏈的維護(hù),有效地降低了運(yùn)行區(qū)塊鏈對機(jī)器人算力的要求。在機(jī)器人數(shù)據(jù)的存儲方面,機(jī)器人只存儲區(qū)塊頭數(shù)據(jù),顯著降低了機(jī)器人維護(hù)區(qū)塊鏈副本的存儲需求。在實(shí)驗(yàn)部分,本文利用輕節(jié)點(diǎn)的實(shí)現(xiàn)架構(gòu)實(shí)現(xiàn)了基于區(qū)塊鏈的群機(jī)器人系統(tǒng),并在算力與存儲負(fù)擔(dān)方面與現(xiàn)有研究中基于區(qū)塊鏈的群機(jī)器人系統(tǒng)的實(shí)現(xiàn)方案進(jìn)行了對比,結(jié)果表明了輕節(jié)點(diǎn)方案的優(yōu)越性。
本文的貢獻(xiàn)可總結(jié)如下。
(1)提出了一種基于區(qū)塊鏈技術(shù)的群機(jī)器人數(shù)據(jù)完整性和隱私性保護(hù)方案,該方案在通過區(qū)塊鏈建立可信交互生態(tài)以保障機(jī)器人數(shù)據(jù)完整性的同時,引入了脫鏈加密模塊來解決現(xiàn)有研究對隱私性考慮不足的問題,有效提高了機(jī)器人成員交互數(shù)據(jù)的隱私性。
(2)提出采用輕節(jié)點(diǎn)方式來實(shí)現(xiàn)區(qū)塊鏈在實(shí)體機(jī)器人集群上的部署,該方法避免了機(jī)器人直接參與區(qū)塊鏈的維護(hù)與數(shù)據(jù)的存儲,相較于現(xiàn)有的實(shí)現(xiàn)方式,進(jìn)一步降低了系統(tǒng)運(yùn)行時機(jī)器人的計(jì)算代價和存儲負(fù)擔(dān)。
本文的其余結(jié)構(gòu)如下,第二節(jié)介紹了本文相關(guān)的預(yù)備知識;第三節(jié)介紹了如何使用區(qū)塊鏈技術(shù)保護(hù)群體機(jī)器人系統(tǒng)的數(shù)據(jù)完整性和隱私性;第四節(jié)通過仿真驗(yàn)證了區(qū)塊鏈方案對群機(jī)器人數(shù)據(jù)完整性和隱私性的保護(hù)效果;第五節(jié)在實(shí)體機(jī)器人上進(jìn)行了實(shí)驗(yàn),并對比了運(yùn)行區(qū)塊鏈時不同方法在降低存儲和計(jì)算負(fù)擔(dān)方面的效果;第六節(jié)對本文進(jìn)行了總結(jié)。
區(qū)塊鏈技術(shù)是由P2P 網(wǎng)絡(luò)技術(shù)、加密技術(shù)、時間戳、共識機(jī)制等多種技術(shù)巧妙融合而成的新興技術(shù)。在結(jié)構(gòu)上,區(qū)塊鏈?zhǔn)怯啥鄠€區(qū)塊按時間順序連接而成的鏈,每個區(qū)塊包含區(qū)塊頭和區(qū)塊體。分布式系統(tǒng)中各節(jié)點(diǎn)共同維護(hù)相同的分布式數(shù)據(jù)賬本[23]。分布式架構(gòu)和共識機(jī)制保證了其不可被單方面篡改,鏈?zhǔn)浇Y(jié)構(gòu)和Merkel 樹哈希技術(shù)可實(shí)現(xiàn)數(shù)據(jù)的追溯與防篡改,數(shù)據(jù)高冗余的特性可有效避免因中心節(jié)點(diǎn)被攻擊導(dǎo)致的重要數(shù)據(jù)丟失,使數(shù)據(jù)在區(qū)塊鏈上的存儲安全可靠。
區(qū)塊鏈網(wǎng)絡(luò)中支持存在不同的節(jié)點(diǎn)類型。挖礦節(jié)點(diǎn)是必須存在的節(jié)點(diǎn)類型,因?yàn)槠渚S護(hù)完整的區(qū)塊鏈副本,并驗(yàn)證提交給它的每個區(qū)塊和交易,是區(qū)塊鏈運(yùn)行的關(guān)鍵。不同于挖礦節(jié)點(diǎn),輕節(jié)點(diǎn)不直接參與區(qū)塊鏈維護(hù),是一種依賴于挖礦節(jié)點(diǎn)的非必須存在的節(jié)點(diǎn)類型,但其具有輕量級的特點(diǎn)。挖礦節(jié)點(diǎn)和輕節(jié)點(diǎn)的功能可以總結(jié)如下[24]。
(1)挖礦節(jié)點(diǎn):維護(hù)區(qū)塊鏈的完整副本;能夠驗(yàn)證所有交易;驗(yàn)證新創(chuàng)建的區(qū)塊并將其添加到區(qū)塊鏈;尋找隨機(jī)數(shù)(挖礦),生成新的區(qū)塊。
(2)輕節(jié)點(diǎn):存儲區(qū)塊頭信息;使用簡易支付驗(yàn)證進(jìn)行交易驗(yàn)證。
2.3.1 工作量證明機(jī)制
工作量證明機(jī)制(Proof of Work,PoW)通過解決一個數(shù)學(xué)難題來分配出塊權(quán)和報酬。為獲取出塊權(quán)和報酬節(jié)點(diǎn)間便形成了算力競爭,這一過程被稱為“挖礦”。區(qū)塊鏈中的最長鏈代表了最大的工作量,網(wǎng)絡(luò)節(jié)點(diǎn)以最長鏈為權(quán)威,想要篡改區(qū)塊鏈數(shù)據(jù)必須要掌控整個網(wǎng)絡(luò)50%以上的算力[25]。
2.3.2 權(quán)威證明機(jī)制
權(quán)威證明機(jī)制(Proof of Authority,PoA)不同于PoW 以算力競爭方式獲取記賬權(quán),而是受信任的簽名者可以決定新區(qū)塊的創(chuàng)建[26]。具體來說,PoA 共識協(xié)議需要經(jīng)過領(lǐng)導(dǎo)選舉選擇哪個節(jié)點(diǎn)來打包區(qū)塊,隨后打包者將打包好的區(qū)塊廣播到網(wǎng)路,接收到提議區(qū)塊的節(jié)點(diǎn)對其進(jìn)行驗(yàn)證,以決定是否接受,接收后節(jié)點(diǎn)將區(qū)塊附加到其本地存儲中。
為保護(hù)群機(jī)器人的數(shù)據(jù)安全與隱私,保障系統(tǒng)的可靠、可信運(yùn)行,本節(jié)提出了一種基于區(qū)塊鏈技術(shù)的群機(jī)器人數(shù)據(jù)完整性和隱私性保護(hù)方案。該方案考慮了群機(jī)器人系統(tǒng)場景下采用區(qū)塊鏈技術(shù)的特殊性,采用雙層通信網(wǎng)絡(luò)滿足系統(tǒng)通信要求。在此基礎(chǔ)上,利用區(qū)塊鏈技術(shù)和脫鏈加解密模塊實(shí)現(xiàn)了可信的去中心化數(shù)據(jù)存儲和加密通信,保障了數(shù)據(jù)的完整性,提高機(jī)器人交互數(shù)據(jù)的隱私性。以下將分別對該方案的系統(tǒng)模型、基礎(chǔ)架構(gòu)及其各個關(guān)鍵組件進(jìn)行介紹。
基于區(qū)塊鏈技術(shù)的群機(jī)器人系統(tǒng)模型如圖2所示。該模型主要包括區(qū)塊鏈、節(jié)點(diǎn)集群和環(huán)境三部分。區(qū)塊鏈作為可信的去中心化存儲單元,由節(jié)點(diǎn)集群維護(hù)并保存節(jié)點(diǎn)上傳的數(shù)據(jù);節(jié)點(diǎn)集群可根據(jù)需求加入節(jié)點(diǎn)類型,機(jī)器人節(jié)點(diǎn)可感知環(huán)境信息并通過區(qū)塊鏈進(jìn)行數(shù)據(jù)存??;節(jié)點(diǎn)間通過雙層通信系統(tǒng)進(jìn)行交互以實(shí)現(xiàn)協(xié)作。
圖2 基于區(qū)塊鏈的群機(jī)器人系統(tǒng)模型Fig.2 Blockchain-based swarm robotic systems model
3.1.1 雙層通信網(wǎng)絡(luò)
本文的雙層通信網(wǎng)絡(luò)是指基于無線局域網(wǎng)或移動自組織網(wǎng)的通信系統(tǒng)和基于區(qū)塊鏈的通信系統(tǒng)并行運(yùn)行的通信系統(tǒng)?;趨^(qū)塊鏈技術(shù)保障群機(jī)器人交互數(shù)據(jù)安全性的方案是以區(qū)塊鏈網(wǎng)絡(luò)作為數(shù)據(jù)交換基礎(chǔ)設(shè)施,數(shù)據(jù)交換以交易的形式進(jìn)行。由于區(qū)塊鏈網(wǎng)絡(luò)中交易確認(rèn)需要網(wǎng)絡(luò)中多數(shù)節(jié)點(diǎn)達(dá)成共識,因此,區(qū)塊鏈解決方案往往伴隨著一定的延遲,完全采用基于區(qū)塊鏈的通信網(wǎng)絡(luò)難以滿足群機(jī)器人系統(tǒng)在時延方面的通信要求。因此,本文在基于區(qū)塊鏈的群機(jī)器人系統(tǒng)中同時保留了常見的基于無線局域網(wǎng)或移動自組織網(wǎng)的通信系統(tǒng)(圖2中藍(lán)色曲線)和基于區(qū)塊鏈的通信系統(tǒng)(圖2中紅色曲線),二者具有相同的通信拓?fù)?。通過雙層通信網(wǎng)絡(luò)達(dá)到保護(hù)群機(jī)器人交互數(shù)據(jù)的完整性和隱私性的目的,同時滿足機(jī)器人集群聚集、圍捕、路徑規(guī)劃等常見任務(wù)的通信要求。
3.1.2 區(qū)塊鏈的同步
區(qū)塊鏈的同步是基于區(qū)塊鏈群機(jī)器人系統(tǒng)中另一個需要考慮的重要因素。以機(jī)器人集群作為區(qū)塊鏈節(jié)點(diǎn)運(yùn)行,不同于區(qū)塊鏈技術(shù)在互聯(lián)網(wǎng)上的應(yīng)用。在群體機(jī)器人系統(tǒng)中,通常認(rèn)為每個機(jī)器人的通信范圍是有限的,只有當(dāng)機(jī)器人節(jié)點(diǎn)之間處于彼此通信范圍內(nèi)時,才能進(jìn)行區(qū)塊鏈的同步,不在通信范圍內(nèi)的機(jī)器人節(jié)點(diǎn)將無法同步其他節(jié)點(diǎn)的區(qū)塊鏈狀態(tài)。機(jī)器人集群的通信示例如圖3所示。機(jī)器人1 與機(jī)器人2 在彼此的通信范圍內(nèi),可直接同步彼此的區(qū)塊鏈狀態(tài)。機(jī)器人 3通過機(jī)器人2 可間接實(shí)現(xiàn)與機(jī)器人1 的區(qū)塊鏈狀態(tài)同步。機(jī)器人4 不在任何一個機(jī)器人的通信范圍內(nèi),因此無法同步其他節(jié)點(diǎn)區(qū)塊鏈狀態(tài)。當(dāng)機(jī)器人4 移動至機(jī)器人4*位置時,將同步機(jī)器人3當(dāng)前的區(qū)塊鏈狀態(tài)。基于上述描述可知,區(qū)塊鏈的同步條件與移動自組織網(wǎng)絡(luò)的通信條件相似。不同的是,區(qū)塊鏈作為去中心化存儲的分布式賬本,其記錄了區(qū)塊鏈從創(chuàng)世區(qū)塊(區(qū)塊鏈的第一個區(qū)塊)到當(dāng)前最新區(qū)塊的所有狀態(tài),在類似于機(jī)器人4 的孤立節(jié)點(diǎn)或新加入的節(jié)點(diǎn)進(jìn)入其他節(jié)點(diǎn)通信范圍后,將根據(jù)最長鏈規(guī)則同步彼此所有的歷史狀態(tài)。
圖3 機(jī)器人集群通信示例圖Fig.3 Example diagram of swarm robotics communication
基于區(qū)塊鏈技術(shù)保護(hù)群機(jī)器人數(shù)據(jù)完整性和隱私的基礎(chǔ)實(shí)現(xiàn)架構(gòu)如圖4所示。該架構(gòu)主要包括鏈上數(shù)據(jù)保護(hù)和鏈下數(shù)據(jù)保護(hù)兩部分。在鏈上數(shù)據(jù)保護(hù)部分,本文采用以太坊區(qū)塊鏈平臺,以機(jī)器人作為以太坊區(qū)塊鏈節(jié)點(diǎn),區(qū)塊鏈作為群機(jī)器人系統(tǒng)的安全層,利用區(qū)塊鏈中的數(shù)字簽名、哈希函數(shù)、時間戳等技術(shù)共同保障數(shù)據(jù)的完整性。鏈下保護(hù)部分通過脫鏈加密和脫鏈解密兩個子模塊來避免明文數(shù)據(jù)上鏈,以確保機(jī)器人數(shù)據(jù)的隱私性。以太坊客戶端(Geth)實(shí)現(xiàn)鏈上數(shù)據(jù)保護(hù)與鏈下數(shù)據(jù)保護(hù)部分的連接,形成一個完整的群機(jī)器人數(shù)據(jù)完整性與隱私性保護(hù)架構(gòu)。群機(jī)器人數(shù)據(jù)完整性和隱私保護(hù)的具體實(shí)現(xiàn)流程如表2所示。
表2 群機(jī)器人系統(tǒng)數(shù)據(jù)完整性和隱私保護(hù)的實(shí)現(xiàn)流程Table 2 Data integrity and privacy protection process of swarm robotics
圖4 基于區(qū)塊鏈技術(shù)的群體機(jī)器人數(shù)據(jù)完整性與隱私性保護(hù)架構(gòu)Fig.4 Architecture of the data integrity and privacy protection based on blockchain technology for swarm robotics
在區(qū)塊鏈網(wǎng)絡(luò)中,交易信息經(jīng)網(wǎng)絡(luò)傳播、節(jié)點(diǎn)驗(yàn)證、打包入塊后將被存儲在分布式賬本中。分布式賬本由所有節(jié)點(diǎn)共同維護(hù),所有上鏈的信息都會留下痕跡。脫鏈加解密模塊是通過在私密數(shù)據(jù)被提交到區(qū)塊鏈上之前,對私密的明文數(shù)據(jù)進(jìn)行加密保護(hù),避免私密信息被不期望的節(jié)點(diǎn)通過同步鄰居節(jié)點(diǎn)的區(qū)塊鏈副本獲取,進(jìn)而達(dá)到保證數(shù)據(jù)隱私性的目的。脫鏈加解密模塊中可根據(jù)需求嵌入不同的加密算法,本文中脫鏈加解密模塊采用公鑰加密算法實(shí)現(xiàn)對交互數(shù)據(jù)私密性的保護(hù),如圖5所示。
圖5 基于公鑰加密算法的脫鏈加解密Fig.5 Off-chain encryption based on public key encryption algorithm
每個機(jī)器人的公鑰通過簽名交易存儲在區(qū)塊鏈中,以保證所有節(jié)點(diǎn)可獲取。當(dāng)機(jī)器人之間需要進(jìn)行私密信息交互時,信息的發(fā)送者通過接受者的公鑰對待發(fā)送的信息進(jìn)行加密,即
式中,EM表示明文經(jīng)加密后得到的密文,Ф表示加密函數(shù),Kpub rec 表示接收私密信息機(jī)器人的公鑰,infsender表示發(fā)送者發(fā)送的明文信息。
密文信息上鏈后,機(jī)器人節(jié)點(diǎn)通過同步鄰居節(jié)點(diǎn)區(qū)塊鏈狀態(tài)獲取密文信息。當(dāng)機(jī)器人拿到不可讀的密文信息后,利用其私鑰嘗試對密文EM進(jìn)行解密,即
其中,表示解密函數(shù),Kpri rob 表示接收者的私鑰。
在上述的解密過程中,由于所有機(jī)器人都擁有相同的區(qū)塊鏈副本,因此所有機(jī)器人都將拿到包含加密信息的交易,并嘗試著對加密信息進(jìn)行解密。但接收者機(jī)器人之外的機(jī)器人節(jié)點(diǎn)將會因?yàn)槊荑€不匹配而無法獲得可讀的明文信息。
以太坊區(qū)塊鏈作為群機(jī)器人進(jìn)行數(shù)據(jù)交互和存儲的基礎(chǔ)設(shè)施,每個機(jī)器人充當(dāng)區(qū)塊鏈的一個節(jié)點(diǎn),機(jī)器人節(jié)點(diǎn)通過交易將數(shù)據(jù)上傳到區(qū)塊鏈中。數(shù)據(jù)的鏈上保護(hù)基于去中心化的分布式賬本,其不存在中心節(jié)點(diǎn)或服務(wù)器,系統(tǒng)的運(yùn)行不依賴于管理人員,由所有機(jī)器人節(jié)點(diǎn)通過嚴(yán)格的數(shù)學(xué)算法共同維護(hù)。機(jī)器人之間的私密數(shù)據(jù)交互是基于交易的,機(jī)器人節(jié)點(diǎn)是交易的發(fā)起者,區(qū)塊鏈狀態(tài)隨著交易的執(zhí)行而改變。在事務(wù)執(zhí)行之前執(zhí)行有效性測試,即
式中,Θ為交易檢測函數(shù),Non表示交易的nonce值;Sig表示交易的簽名信息;Bal表示交易發(fā)起節(jié)點(diǎn)的賬戶余額。
簽名信息和 nonce 值是保證數(shù)據(jù)安全的關(guān)鍵。交易附帶的數(shù)字簽名一方面可以證明交易的發(fā)送方,另一方面可以保證交易數(shù)據(jù)在簽名后沒有被修改;nonce 表示一個地址發(fā)出的交易數(shù)量,保證了交易的唯一性。
交易執(zhí)行將引起區(qū)塊鏈狀態(tài)的變化,機(jī)器人發(fā)起交易引起的狀態(tài)轉(zhuǎn)變可以表示為
其中,表示狀態(tài)轉(zhuǎn)移函數(shù);Υt表示區(qū)塊鏈狀態(tài);Υt+1表示交易執(zhí)行后區(qū)塊鏈狀態(tài);T表示交易。
交易經(jīng)驗(yàn)證、傳播后被打包入塊,區(qū)塊產(chǎn)生時被附加上時間戳,利用時間的不可逆性,保證了區(qū)塊鏈上的每一個區(qū)塊都是獨(dú)一無二的。哈希算法的抗碰撞性使信息的任何變動都無法得到相同的哈希值,可快速驗(yàn)證數(shù)據(jù)是否被篡改。
該部分通過仿真驗(yàn)證了使用區(qū)塊鏈方法保證群機(jī)器人系統(tǒng)數(shù)據(jù)完整性和隱私性的有效性。仿真中采用ARGoS 機(jī)器人集群模擬器[27](version 3.0.0-beta56)和ARGoS-epuck[28]插件模擬機(jī)器人集群,機(jī)器人數(shù)量設(shè)置為3 個。仿真在PC 上運(yùn)行,其配置如下:12G RAM,Intel Core i5-6200 CPU @2.30GHz。區(qū)塊鏈環(huán)境使用以太坊區(qū)塊鏈測試網(wǎng)絡(luò)。為了降低仿真運(yùn)行的計(jì)算成本,以適應(yīng)PC 設(shè)備的有限算力。本文采用文獻(xiàn)[13,15,18]中的方法,將以太坊的挖礦難度設(shè)置為一個適合的固定值。以每個機(jī)器人充當(dāng)區(qū)塊鏈的一個節(jié)點(diǎn),并且每個機(jī)器人運(yùn)行一個Geth 進(jìn)程。
為了更直觀地表現(xiàn)對數(shù)據(jù)隱私的保護(hù)效果,設(shè)計(jì)了一種常見的機(jī)器人運(yùn)動:機(jī)器人集群中一個機(jī)器人成員向另一個機(jī)器人發(fā)送它的坐標(biāo)信息,接收者獲取該坐標(biāo)并移動到發(fā)送者的坐標(biāo)位置,無法獲取該坐標(biāo)的機(jī)器人保持靜止。本文設(shè)定機(jī)器人1 發(fā)送其坐標(biāo)信息給機(jī)器人2。實(shí)際上在區(qū)塊鏈環(huán)境中,機(jī)器人節(jié)點(diǎn)發(fā)出的交易是發(fā)送至區(qū)塊鏈網(wǎng)絡(luò),經(jīng)傳播、驗(yàn)證后,其他節(jié)點(diǎn)通過同步區(qū)塊鏈狀態(tài)獲取該交易信息。
4.1.1 無脫鏈加解密模塊
未引入脫鏈加解密模塊時,區(qū)塊鏈網(wǎng)絡(luò)中交易信息對網(wǎng)絡(luò)中的其他節(jié)點(diǎn)是公開的,機(jī)器人節(jié)點(diǎn)通過同步鄰居的區(qū)塊鏈副本實(shí)現(xiàn)共享與共識。根據(jù)上文中描述的機(jī)器人運(yùn)動任務(wù),未引入脫鏈加解密模塊時機(jī)器人運(yùn)動的結(jié)果如圖6所示。仿真中機(jī)器人在一個空白環(huán)境中運(yùn)動,每個機(jī)器人作為區(qū)塊鏈的一個節(jié)點(diǎn)。圖6(a)中的紅色虛線表示機(jī)器人1 發(fā)起包含其坐標(biāo)信息的交易,鄰居機(jī)器人節(jié)點(diǎn)同步區(qū)塊鏈數(shù)據(jù),獲得交易信息。在仿真開始時,每個機(jī)器人的位置是隨機(jī)的,隨后機(jī)器人2 與機(jī)器人3 同步鄰居區(qū)塊鏈信息,獲得由機(jī)器人1 發(fā)送的交易信息。仿真結(jié)果如圖6(b)所示,可以看出,機(jī)器人2 與機(jī)器人3 均獲得了機(jī)器人1 的坐標(biāo)信息并運(yùn)動至坐標(biāo)位置,該結(jié)果與初始設(shè)定中機(jī)器人1 只發(fā)送給機(jī)器人2 坐標(biāo)的預(yù)期并不一致。
圖6 無脫鏈加密情況下機(jī)器人運(yùn)動結(jié)果Fig.6 Robot motion results without off-chain encryption
4.1.2 引入脫鏈加解密模塊
引入脫鏈加解密模塊后,本節(jié)基于上文中描述的機(jī)器人運(yùn)動任務(wù)再次進(jìn)行了仿真驗(yàn)證。脫鏈加解密模塊可保證只有特定的接收者可以獲取交易中所包含的信息,接收者之外的機(jī)器人只能獲得無法解讀的密文信息。從表2中每個機(jī)器人的解密結(jié)果可以看出,雖然機(jī)器人2 和機(jī)器人3 都獲取了包含機(jī)器人1 坐標(biāo)信息的交易,但只有機(jī)器人2 可以得到坐標(biāo)的明文信息,機(jī)器人3 由于無法正確解密密文,因此只能得到不可解讀的密文信息。機(jī)器人運(yùn)動的實(shí)驗(yàn)效果如圖7所示。
表2 機(jī)器人解密結(jié)果Table 2 Decrypted result of robots
初始時刻每個機(jī)器人的位置是隨機(jī)的,機(jī)器人2 和機(jī)器人3 獲得機(jī)器人1 發(fā)送的交易信息并嘗試解密坐標(biāo)信息。若解密成功,則機(jī)器人移動到機(jī)器人1 的位置,若解密失敗,則機(jī)器人保持靜止,結(jié)果如圖7(b)所示。從仿真結(jié)果可以看出,機(jī)器人2 到達(dá)機(jī)器人1 的位置,機(jī)器人3 位置不變,結(jié)果與預(yù)期一致,表明引入脫鏈加解密模塊后能有效地保障交互信息的私密性。
圖7 引入脫鏈加解密模塊后機(jī)器人運(yùn)動結(jié)果Fig.7 Robot motion results with off-chain encryption
4.1.3 脫鏈加解密模塊的時間開銷
引入脫鏈加解密過程不可避免的增加了發(fā)送和接收信息的時間開銷。脫鏈加解密模塊時間開銷的測試結(jié)果(20 次測試)如圖8所示,顯然可以看出加解密模塊的時間開銷在一定范圍內(nèi)浮動,其平均時間開銷如表3所示。
表3 加解密平均時間開銷Table 3 Average time cost of encryption and decryption
圖8 脫鏈加解密模塊時間開銷Fig.8 Time cost of encryption and decryption module
4.2.1 區(qū)塊鏈保護(hù)
為驗(yàn)證區(qū)塊鏈技術(shù)在保障機(jī)器人交互數(shù)據(jù)的完整性和可追溯性方面的有效性,本節(jié)中嘗試獲取了機(jī)器人成員間的歷史交互數(shù)據(jù),結(jié)果如圖9所示。其中,圖9(b1)和圖9(b2)為由機(jī)器人發(fā)布的交易信息,圖9(a1)和圖9(a2)為包含對應(yīng)交易的區(qū)塊信息。藍(lán)色下劃線的parentHash參數(shù)實(shí)現(xiàn)了區(qū)塊之間的連接,hash和blockHash參數(shù)實(shí)現(xiàn)了區(qū)塊與具體交易之間的連接;紅色虛線標(biāo)記的from和to參數(shù)分別表示該交易的發(fā)起者和接收者,指明了與該交易相關(guān)的機(jī)器人節(jié)點(diǎn);nonce參數(shù)是對某一節(jié)點(diǎn)發(fā)出交易的計(jì)數(shù),保證了事務(wù)的唯一性;黑色框內(nèi)的input參數(shù)表示附加在該交易中交互數(shù)據(jù)。圖9中參數(shù)是區(qū)塊鏈技術(shù)通過鏈?zhǔn)浇Y(jié)構(gòu)、時間戳、哈希函數(shù)等技術(shù)保障數(shù)據(jù)完整、不可篡改的具體化顯示。通過blockHash、parentHash、from等參數(shù)實(shí)現(xiàn)了對具體交易、交易所在區(qū)塊以及歷史區(qū)塊信息等的追溯。一個挖礦節(jié)點(diǎn)可實(shí)現(xiàn)對當(dāng)前區(qū)塊到創(chuàng)世區(qū)塊所有區(qū)塊信息的追溯。由藍(lán)色直線標(biāo)記的hash參數(shù)由區(qū)塊頭信息經(jīng)哈希計(jì)算得到,區(qū)塊頭中任何一個參數(shù)的變化都會導(dǎo)致區(qū)塊鏈“斷裂”,有效地保障了數(shù)據(jù)的完整、不可篡改。紅色框內(nèi)的timestamp參數(shù)表示每個區(qū)塊的生成時間,利用時間的不可逆性來保障數(shù)據(jù)的完整不可篡改。因此,區(qū)塊鏈可有效地實(shí)現(xiàn)了群體機(jī)器人交互數(shù)據(jù)的完整性和可追溯性。
圖9 機(jī)器人的交易信息Fig.9 Transaction information between robots
4.2.2 區(qū)塊鏈的時間開銷
區(qū)塊鏈解決方案可有效保障數(shù)據(jù)的完整性和可追溯,同時也帶來了一定的時間開銷,因?yàn)閰^(qū)塊鏈方案的核心是建立一個由多個節(jié)點(diǎn)共同維護(hù)、滿足用戶信任條件的生態(tài)系統(tǒng)來保障數(shù)據(jù)的完整性、不可篡改和可追溯。交易在區(qū)塊鏈節(jié)點(diǎn)間的傳播、驗(yàn)證將會帶來一定的時間開銷,其具體體現(xiàn)在區(qū)塊鏈的出塊速度方面。本節(jié)測試了仿真中所采用的區(qū)塊鏈網(wǎng)絡(luò)的出塊速度,結(jié)果如圖10所示。
圖10 區(qū)塊鏈時間開銷Fig.10 Time cost of blockchain
從測試結(jié)果可以看出,區(qū)塊鏈網(wǎng)絡(luò)在同一時間間隔內(nèi)出塊數(shù)量不是恒定的,但總體趨勢以及出塊的平均速度基本穩(wěn)定不變,區(qū)塊鏈網(wǎng)絡(luò)的平均時間開銷如表4所示,總體表示三次測試的平均值。
表4 區(qū)塊鏈平均時間開銷Table 4 Average time cost of blockchain
通過上述分析可以看出,在數(shù)據(jù)安全保護(hù)方面,基于區(qū)塊鏈技術(shù)的群機(jī)器人數(shù)據(jù)完整性與隱私性保護(hù)方案可有效的保障群機(jī)器人數(shù)據(jù)的完整性和可追溯性,在此基礎(chǔ)上引入脫鏈加解密模塊后,雖然機(jī)器人間的交易是公開的,但交易中的具體信息只有指定機(jī)器人可讀取,有效保障了交互信息的隱私性。在時間開銷方面,基于區(qū)塊鏈技術(shù)的解決方案增加了一定的時間開銷。為避免該延遲對群機(jī)器人系統(tǒng)的影響,在系統(tǒng)實(shí)現(xiàn)時采用了雙層通信網(wǎng)絡(luò),具體參考3.1.1 節(jié)中對系統(tǒng)模型的描述。此時,僅在私密數(shù)據(jù)或結(jié)果數(shù)據(jù)傳輸時采用基于區(qū)塊鏈的通信方式進(jìn)行數(shù)據(jù)傳輸。因此,雙層通信網(wǎng)絡(luò)在一定程度上降低了區(qū)塊鏈保護(hù)方案中的時間開銷對群機(jī)器人系統(tǒng)的影響。
為測試區(qū)塊鏈在真實(shí)機(jī)器人上的運(yùn)行效果,本節(jié)在物理機(jī)器人進(jìn)行了實(shí)驗(yàn),采用輕節(jié)點(diǎn)的方式來降低在機(jī)器人上運(yùn)行區(qū)塊鏈協(xié)議的計(jì)算負(fù)擔(dān)和存儲壓力,并與現(xiàn)有的解決方案進(jìn)行了對比。
實(shí)驗(yàn)中機(jī)器人平臺采用基于樹莓派的麥克納姆輪小車(文中稱為機(jī)器人),樹莓派采用Raspberry Pi 4 Mode B 型號。區(qū)塊鏈環(huán)境使用以太坊測試網(wǎng)絡(luò),共識機(jī)制采用PoW,PC 作為挖礦節(jié)點(diǎn)運(yùn)行,機(jī)器人作為輕節(jié)點(diǎn)運(yùn)行,機(jī)器人與PC 都運(yùn)行一個Geth 進(jìn)程,實(shí)現(xiàn)框架如圖11所示。圖中,挖礦節(jié)點(diǎn)角色由高性能設(shè)備(PC 等)擔(dān)任,維護(hù)同一個區(qū)塊鏈副本,群機(jī)器人中的成員作為輕節(jié)點(diǎn)與區(qū)塊鏈進(jìn)行交互。
圖11 基于區(qū)塊鏈的群機(jī)器人系統(tǒng)物理實(shí)現(xiàn)架構(gòu)Fig.11 Physical realization architecture of swarm robotics based on blockchain
本節(jié)使用輕節(jié)點(diǎn)的方式將仿真部分的機(jī)器人運(yùn)動實(shí)驗(yàn)拓展到了物理機(jī)器人上。實(shí)驗(yàn)中機(jī)器人在一個2 m×2 m 的無障礙場地中運(yùn)動。在該范圍內(nèi),每個機(jī)器人可以彼此進(jìn)行通信。場地4 個角的設(shè)備是用以定位的基站,與機(jī)器人的機(jī)載標(biāo)簽共同實(shí)現(xiàn)機(jī)器人的定位。PC 作為挖礦節(jié)點(diǎn)維護(hù)區(qū)塊鏈運(yùn)行,機(jī)器人作為輕節(jié)點(diǎn)與區(qū)塊鏈交互實(shí)現(xiàn)運(yùn)動目標(biāo)。實(shí)驗(yàn)效果如圖12(a)和圖12(b)所示,圖12(c)顯示了機(jī)器人的運(yùn)動情況。由于超寬帶存在的定位誤差與漂移,在機(jī)器人運(yùn)動軌跡上存在一定的抖動,但其結(jié)果符合實(shí)驗(yàn)預(yù)期。接下來,本文將從計(jì)算負(fù)擔(dān)和存儲需求兩方面對實(shí)驗(yàn)中所采用的輕節(jié)點(diǎn)方法與現(xiàn)有其他方法進(jìn)行對比。
圖12 實(shí)驗(yàn)結(jié)果Fig.12 Result of the experiment
在進(jìn)行性能對比之前,有必要對將要對比的方法進(jìn)行說明,具體如下:(1)文獻(xiàn)[13,15,18]中實(shí)現(xiàn)了基于區(qū)塊鏈的群機(jī)器人的仿真,其通過設(shè)置挖礦難度值來適配模擬機(jī)器人的有限算力,本文中該方式簡稱為SMD(仿真部分使用);(2)文獻(xiàn)[25]中選擇使用PoA 共識機(jī)制來降低計(jì)算成本,以滿足區(qū)塊鏈在機(jī)器人上穩(wěn)定運(yùn)行,本文中該方式簡稱為POA;(3)本文采用輕節(jié)點(diǎn)來降低實(shí)驗(yàn)運(yùn)行對機(jī)器人算力和存儲能力的要求,本文中該方式簡稱為LightNode。性能對比中使用的硬件設(shè)備為實(shí)驗(yàn)中使用的機(jī)器人。
5.2.1 存儲需求
本節(jié)使用了SMD、POA 和LightNode 三種方法在物理機(jī)器人上運(yùn)行了區(qū)塊鏈,并比較了三種方法隨著交易數(shù)量的增加所需要的存儲空間。圖13顯示了三種不同方式下機(jī)器人節(jié)點(diǎn)存儲區(qū)塊鏈數(shù)據(jù)所占用的機(jī)器人內(nèi)存的變化趨勢。可以看出,隨著交易數(shù)量的增加,POA 和SMD 兩種方式所占用的存儲空間快速增加。與POA 與SMD相比,LightNode 方法中,隨著交易數(shù)量增加機(jī)器人內(nèi)存占用的上升趨勢平緩??梢缘贸鼋Y(jié)論,相比于POA 與SMD 方式,LightNode 方式對機(jī)器人存儲性能的要求有明顯的降低。
圖13 存儲需求對比Fig.13 Comparison of storage requirements
5.2.2 計(jì)算負(fù)擔(dān)
該部分通過比較每種方法運(yùn)行時機(jī)器人的CPU 占用率,對上述三種實(shí)現(xiàn)方法帶來的計(jì)算負(fù)擔(dān)進(jìn)行了對比,測試結(jié)果如圖14所示。圖中CPU使用率的主要組成部分包括User、Kernel(該測試中Nice、Inte、Wait、Steal 部分是CPU 利用率中極小的一部分,此處不作考慮),分別由藍(lán)色和紅色表示,兩部分的和表示了總的CPU 使用率,綠色表示空閑。圖14(a)顯示了未運(yùn)行區(qū)塊鏈時CPU 的占用情況,圖14(b)顯示了使用SMD 方法時CPU 的占用情況,圖14(c)顯示了POA 方法運(yùn)行時的CPU 占用情況,圖14(d)顯示了LightNode方法運(yùn)行時CPU 的占用情況。
圖14 存儲負(fù)擔(dān)對比Fig.14 Comparison of computational burden
從測試結(jié)果中可以看出,采用SMD 方式在物理機(jī)器人上運(yùn)行區(qū)塊鏈時,機(jī)器人的CPU 資源被全部消耗。這種情況下,系統(tǒng)難以穩(wěn)定運(yùn)行。POA 方式對計(jì)算成本有明顯的降低,CPU 占用率在55%左右,LightNode 方式在計(jì)算成本方面進(jìn)一步降低,CPU 占用率大約在35%。
根據(jù)以上分析可以得出,LightNode 方式與SMD 和POA 方式相比,LightNode 方式在存儲需求和計(jì)算成本上進(jìn)一步的降低,可以實(shí)現(xiàn)基于區(qū)塊鏈的群體機(jī)器人穩(wěn)定可靠的運(yùn)行。
本文演示了使用以太坊區(qū)塊鏈技術(shù)來保障群機(jī)器人數(shù)據(jù)完整性與隱私性,并通過仿真和實(shí)驗(yàn)對其進(jìn)行了驗(yàn)證。結(jié)果表明,該方法可以有效保證群機(jī)器人交互數(shù)據(jù)的完整性和隱私性,可實(shí)現(xiàn)對歷史數(shù)據(jù)的追溯。另外,本文在實(shí)驗(yàn)中采用LightNode 方法來降低機(jī)器人運(yùn)行區(qū)塊鏈的存儲需求和計(jì)算代價,并與POA 與SMD 方式進(jìn)行了對比。結(jié)果表明,LightNode 方法相較于POA 與SMD 方法存儲要求更低、計(jì)算代價更小,可滿足基于區(qū)塊鏈的群機(jī)器人的穩(wěn)定運(yùn)行。在未來的研究中,我們計(jì)劃從區(qū)塊鏈平臺選擇和共識協(xié)議角度出發(fā),在物理機(jī)器人上采用不同的區(qū)塊鏈平臺、共識協(xié)議進(jìn)行研究與比較。