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