吳雨芯,蔡婷
(1.廣東白云學(xué)院大數(shù)據(jù)與計(jì)算機(jī)學(xué)院,廣州510450;2.重慶郵電大學(xué)移通學(xué)院大數(shù)據(jù)與軟件學(xué)院,重慶401520)
隨著物聯(lián)網(wǎng)(Internet of Things,IoT)技術(shù)在智慧城市、車聯(lián)網(wǎng)、智能醫(yī)療、智能供應(yīng)鏈、智慧農(nóng)業(yè)等領(lǐng)域的不斷應(yīng)用與發(fā)展,位于網(wǎng)絡(luò)邊緣的傳感器和智能設(shè)備數(shù)量正呈指數(shù)型增長(zhǎng)。據(jù)Gartner 最近的一份報(bào)告統(tǒng)計(jì)顯示[1],截止到2021 年,約有50 億臺(tái)智能設(shè)備將被注冊(cè)為IoT 設(shè)備,全球平均每小時(shí)將售出大約100 萬(wàn)臺(tái)新的IoT 設(shè)備。如此龐大的設(shè)備群每天都在產(chǎn)生海量的高速數(shù)據(jù)流,在爆炸式的增長(zhǎng)速度下,如何確保物聯(lián)網(wǎng)中數(shù)據(jù)的實(shí)時(shí)傳輸與安全可靠是目前亟需解決的問(wèn)題。在物聯(lián)網(wǎng)中,智能設(shè)備需要周期性的更新迭代其軟件和功能,所獲取的數(shù)據(jù)流也均需匯總在中心化的服務(wù)器平臺(tái),每一次互動(dòng)傳輸都將產(chǎn)生昂貴的流量成本。同時(shí),中心化運(yùn)營(yíng)模式會(huì)不可避免的帶來(lái)安全風(fēng)險(xiǎn),中央服務(wù)器一旦出現(xiàn)漏洞將會(huì)對(duì)整個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)產(chǎn)生安全隱患,用戶隱私也得不到有效保障。再者,物聯(lián)網(wǎng)產(chǎn)業(yè)標(biāo)準(zhǔn)化程度不足,容易形成信息孤島,極大制約了物聯(lián)網(wǎng)的發(fā)展。
區(qū)塊鏈技術(shù)的出現(xiàn)讓眾多IoT 研究人員找到了一個(gè)不錯(cuò)的解決方案,利用區(qū)塊鏈本身的去中心化結(jié)構(gòu)、容錯(cuò)能力、用戶匿名性、數(shù)據(jù)完整性和身份認(rèn)證等優(yōu)勢(shì),解決物聯(lián)網(wǎng)中的安全信任和隱私問(wèn)題[2]。伴隨區(qū)塊鏈技術(shù)的加入,物聯(lián)網(wǎng)運(yùn)營(yíng)模式將從昂貴、過(guò)度集中式架構(gòu)轉(zhuǎn)換到自我調(diào)節(jié)和自我管理的去中心化模式。這樣的轉(zhuǎn)換將提供可伸縮性、基礎(chǔ)設(shè)施成本降低、自治、在缺乏信任的環(huán)境中進(jìn)行安全操作、用戶隱私驅(qū)動(dòng)的訪問(wèn)控制、數(shù)據(jù)完整性和防止網(wǎng)絡(luò)攻擊的全新IoT 生態(tài)系統(tǒng),區(qū)塊鏈物聯(lián)網(wǎng)(Blockchain of Things,BoT)。
IoT 系統(tǒng)大部分時(shí)間是部署在沒(méi)有任何物理安全的不可信環(huán)境中,因此,可以利用區(qū)塊鏈技術(shù)作為安全、不可偽造和可審計(jì)的數(shù)據(jù)日志。還可以用于設(shè)置策略、控制和監(jiān)視對(duì)用戶、傳感器數(shù)據(jù)的訪問(wèn)權(quán)限,并使用智能合約根據(jù)特定條件執(zhí)行各種操作。區(qū)塊鏈物聯(lián)網(wǎng)體系結(jié)構(gòu)如圖1 所示。感知層采集的信息和數(shù)據(jù)在底層區(qū)塊鏈進(jìn)行上鏈存儲(chǔ),全程可追溯,并實(shí)現(xiàn)信息的不可篡改,通過(guò)點(diǎn)對(duì)點(diǎn)的分布式連接進(jìn)行信息的傳遞。合約層通過(guò)一系列的智能合約編寫(xiě)實(shí)現(xiàn)系統(tǒng)的自動(dòng)運(yùn)行,進(jìn)行交易等操作。合約層與底層區(qū)塊鏈代替了傳統(tǒng)物聯(lián)網(wǎng)的平臺(tái)層與網(wǎng)絡(luò)層。區(qū)塊鏈物聯(lián)網(wǎng)平臺(tái)底層多采用公有鏈進(jìn)行平臺(tái)搭建,編寫(xiě)智能合約,建立物聯(lián)網(wǎng)運(yùn)營(yíng)服務(wù)體系,確保系統(tǒng)的實(shí)際有效運(yùn)行、可持續(xù)性和商業(yè)閉環(huán)。
圖1 區(qū)塊鏈物聯(lián)網(wǎng)體系結(jié)構(gòu)
IoT 中主要存在網(wǎng)絡(luò)架構(gòu)集中化、應(yīng)用層安全的缺乏、產(chǎn)品安全標(biāo)準(zhǔn)化程度不足等問(wèn)題,利用區(qū)塊鏈的關(guān)鍵特性來(lái)解決其日益增長(zhǎng)的安全和隱私、資源需求等問(wèn)題,將具備以下幾點(diǎn)優(yōu)勢(shì)。
(1)分布式連接降低數(shù)據(jù)傳輸成本
區(qū)塊鏈技術(shù)分布式連接的特點(diǎn)可以形成一個(gè)具有龐大體量節(jié)點(diǎn)的P2P 傳輸網(wǎng)絡(luò),通過(guò)閑置資源利用與點(diǎn)對(duì)點(diǎn)的連接,可以對(duì)IoT 的組網(wǎng)架構(gòu)進(jìn)行優(yōu)化,節(jié)約存儲(chǔ)空間和傳輸流量費(fèi)用。據(jù)IOEX 解決方案相關(guān)描述,區(qū)塊鏈技術(shù)的引用可以節(jié)省IoT 硬件70%的升級(jí)更新費(fèi)用。
(2)智能合約的調(diào)用降低管理運(yùn)營(yíng)成本
利用智能合約編程實(shí)現(xiàn)IoT 信息傳遞、加工、處理的智能化操縱和交易等的自動(dòng)進(jìn)行,一方面節(jié)省了中心服務(wù)器的運(yùn)營(yíng)與維護(hù)成本,另一方面實(shí)現(xiàn)了數(shù)以萬(wàn)計(jì)的終端設(shè)備的低成本互聯(lián),大大降低了管理運(yùn)營(yíng)成本。
(3)去中心化存儲(chǔ)解決信息安全與用戶隱私保護(hù)
區(qū)塊鏈技術(shù)的應(yīng)用使得IoT 實(shí)現(xiàn)了去中心化的運(yùn)營(yíng),沒(méi)有一個(gè)掌握了所有數(shù)據(jù)與用戶信息的中心服務(wù)器的存在,規(guī)避了信息泄露的風(fēng)險(xiǎn)。與此同時(shí),通過(guò)非對(duì)稱加密算法等安全加密技術(shù)可以最大化保護(hù)用戶的隱私。
BoT 能很好地解決傳統(tǒng)中心化架構(gòu)下的高成本、安全與隱私等問(wèn)題。經(jīng)過(guò)授權(quán)的設(shè)備將有權(quán)自主執(zhí)行智能合約,使原來(lái)普通的設(shè)備變?yōu)榭勺晕揖S護(hù)、自我服務(wù)的高度智能化設(shè)備,而且能在沒(méi)有任何信用的條件下,通過(guò)數(shù)據(jù)加密技術(shù)保證用戶的隱私。然而,由于區(qū)塊鏈自身的缺省限制,例如事務(wù)確認(rèn)延遲、區(qū)塊鏈大小和網(wǎng)絡(luò)擴(kuò)展的可伸縮性、缺乏以IoT 為中心的事務(wù)確認(rèn)規(guī)則、缺乏面向IoT 的共識(shí)協(xié)議、以及IoT 設(shè)備與區(qū)塊鏈的不安全集成。這些問(wèn)題都需要在區(qū)塊鏈在IoT環(huán)境中高效工作之前加以解決。
(1)缺乏面向IoT 的共識(shí)協(xié)議
目前的共識(shí)協(xié)議如PoW、PoS、PoET 和IoTA 都是為公有區(qū)塊鏈設(shè)計(jì)的[3-5],重點(diǎn)是金融價(jià)值轉(zhuǎn)移。這些共識(shí)協(xié)議有一個(gè)共同的問(wèn)題,即共識(shí)過(guò)程不會(huì)在一個(gè)永久提交的區(qū)塊中結(jié)束,而是在一段時(shí)間內(nèi)根據(jù)接下來(lái)幾個(gè)擴(kuò)展鏈的區(qū)塊最終確定塊,然后將最長(zhǎng)的鏈確定為有效鏈。因此,這些共識(shí)協(xié)議容易產(chǎn)生分叉。而缺乏共識(shí)的最終結(jié)果是導(dǎo)致事務(wù)的確認(rèn)產(chǎn)生延遲,這對(duì)大多數(shù)時(shí)候需要接近實(shí)時(shí)事務(wù)確認(rèn)的IoT 系統(tǒng)來(lái)說(shuō)是致命的。另外,PBFT、DBFT、HoneyBadger-BFT 和Tendermint 都是基于BFT 的協(xié)議,容易受到DoS 攻擊,且可伸縮性不太好。
(2)缺乏以IoT 為中心的事務(wù)確認(rèn)規(guī)則
圖2(a)展示了比特幣網(wǎng)絡(luò)中的事務(wù)驗(yàn)證過(guò)程,通過(guò)檢查事務(wù)的格式、簽名以及之前沒(méi)有被使用過(guò)的事務(wù)的輸入來(lái)驗(yàn)證。圖2(b)展示了Ethereum 區(qū)塊鏈檢查發(fā)送方賬戶的格式、簽名、Nonce、Gas 和賬戶余額進(jìn)行驗(yàn)證。IoT 系統(tǒng)中通常包含不同的設(shè)備,以不同的格式和不同的數(shù)值范圍發(fā)送感官值或數(shù)據(jù)。因此,如何制定以IoT 為中心的事務(wù)確認(rèn)規(guī)則去驗(yàn)證不同格式的數(shù)據(jù),還有待進(jìn)一步解決。
圖2 不同區(qū)塊鏈平臺(tái)事務(wù)驗(yàn)證規(guī)則
(3)IoT 設(shè)備集成
IoT 設(shè)備通過(guò)Web UI、移動(dòng)App 中調(diào)用的智能合約或在shell 中運(yùn)行JavaScript 將傳感器數(shù)據(jù)上傳到區(qū)塊鏈[6]。智能合約在EVM(Ethereum 虛擬機(jī))中執(zhí)行,不與外部世界直接通信,而使用Web3. js 庫(kù)作為接口。在這種情況下,只有當(dāng)傳感器數(shù)據(jù)上傳到區(qū)塊鏈中時(shí),區(qū)塊鏈才可以作為一個(gè)安全的分布式數(shù)據(jù)庫(kù)使用。然而,在此之前,數(shù)據(jù)的完整性取決于設(shè)備、Web UI 和移動(dòng)App 本身的安全性??紤]到當(dāng)前的不安全場(chǎng)景,IoT 設(shè)備很容易被黑客入侵,惡意代碼可以遠(yuǎn)程執(zhí)行,除非經(jīng)常驗(yàn)證,否則IoT 設(shè)備的完整性總是存在問(wèn)題。
(4)巨大的資源需求
當(dāng)前IoT 系統(tǒng)中的嵌入式設(shè)備大幅增加,傳統(tǒng)的集中式數(shù)據(jù)中心通信模型很難應(yīng)付來(lái)自數(shù)十億設(shè)備產(chǎn)生的高速數(shù)據(jù)流[7]。雖然云計(jì)算體系結(jié)構(gòu)確實(shí)提供了幾乎無(wú)限制的存儲(chǔ)和處理能力,但是來(lái)回傳輸事務(wù)數(shù)據(jù)所需的網(wǎng)絡(luò)帶寬在IoT 系統(tǒng)中成為了瓶頸。因此,如何設(shè)計(jì)一種不需要在IoT 節(jié)點(diǎn)上設(shè)置大量?jī)?nèi)存和處理能力、并且擁有足夠的事務(wù)處理帶寬的BoT 解決方案,仍是一個(gè)不小的挑戰(zhàn)。
目前,由于資源需求的增長(zhǎng)和IoT 設(shè)備計(jì)算能力的限制,基于云結(jié)構(gòu)的解決方案被廣泛使用[8]。借助云計(jì)算中高效靈活的資源調(diào)配方式,IoT 設(shè)備所產(chǎn)生的大量數(shù)據(jù)可以通過(guò)互聯(lián)網(wǎng)傳輸?shù)竭h(yuǎn)程云進(jìn)行處理。然而,互聯(lián)網(wǎng)沒(méi)有足夠的效率和可擴(kuò)展性來(lái)處理這些大量的IoT 數(shù)據(jù)。此外,重要數(shù)據(jù)的傳輸是昂貴的,它將耗費(fèi)大量的帶寬、時(shí)間和能量。由于大量IoT 數(shù)據(jù)流需要以較高的速度傳輸?shù)皆贫耍员銓?shí)時(shí)發(fā)現(xiàn)有價(jià)值的信息,因此有必要設(shè)計(jì)一種高效的數(shù)據(jù)處理體系結(jié)構(gòu)。
邊緣計(jì)算,是一種結(jié)合云計(jì)算和IoT 的不斷發(fā)展的下一代計(jì)算框架[9]。它將計(jì)算能力引入分布式IoT的邊緣,無(wú)需將原始IoT 數(shù)據(jù)流傳輸?shù)皆浦?,通過(guò)在IoT 中部署多個(gè)Fog 節(jié)點(diǎn),從而在本地收集、分類和分析數(shù)據(jù)。邊緣計(jì)算可以被看作是云計(jì)算范式延伸的分層服務(wù)結(jié)構(gòu)。能夠?yàn)榻K端用戶提供更快的云服務(wù),如存儲(chǔ)、計(jì)算和聯(lián)網(wǎng)功能。Fog 節(jié)點(diǎn)使用不同的技術(shù),把IoT 邊緣的多個(gè)計(jì)算資源相互連接、聚合和抽象,形成一個(gè)單一的邏輯實(shí)體,并提供分布式服務(wù)??紤]到有限的網(wǎng)絡(luò)帶寬,集中云存儲(chǔ)無(wú)法及時(shí)處理大量數(shù)據(jù),基于區(qū)塊鏈的分布式云架構(gòu)可作為一種有效的解決方案。如圖3 所示,網(wǎng)絡(luò)架構(gòu)總共分為三層,即邊緣層、霧層和云層。
(1)邊緣層
在邊緣層,包含大量原始信息包含個(gè)人數(shù)據(jù),如在智能手機(jī)上拍攝的視頻或照片、GPS 數(shù)據(jù)、可穿戴設(shè)備檢測(cè)到的健康數(shù)據(jù)、安裝在智能家居中的傳感器檢測(cè)到的智能家居狀態(tài)、智慧農(nóng)業(yè)中農(nóng)作物生長(zhǎng)監(jiān)控信息等。IoT 設(shè)備用于監(jiān)視并采集各種公共基礎(chǔ)設(shè)施環(huán)境,并將本地的過(guò)濾數(shù)據(jù)發(fā)送到霧層并使用請(qǐng)求服務(wù)。IoT 設(shè)備與霧層之間的通信通過(guò)多接口基站(Multi-interface Base Station,MBS)進(jìn)行,MBS 作為SDN 控制器的交換機(jī),以促進(jìn)基于IoT 的新的無(wú)線通信技術(shù)。為了聚合來(lái)自本地IoT 設(shè)備的所有原始數(shù)據(jù)流,MBS 構(gòu)成了一個(gè)無(wú)線網(wǎng)關(guān),充當(dāng)Fog 節(jié)點(diǎn)中SDN 控制器的轉(zhuǎn)發(fā)計(jì)劃,該SDN 控制器監(jiān)視數(shù)據(jù)平面上的流量并建立用戶會(huì)話。
(2)霧層
圖3 區(qū)塊鏈物聯(lián)網(wǎng)體系架構(gòu)
霧層每個(gè)Fog 節(jié)點(diǎn)由高性能的分布式SDN 控制器組成,每個(gè)Fog 節(jié)點(diǎn)覆蓋小型關(guān)聯(lián)區(qū)域,負(fù)責(zé)數(shù)據(jù)分析和提供實(shí)時(shí)服務(wù),并向云層和邊緣層報(bào)告處理后的輸出數(shù)據(jù)的結(jié)果。霧層提供定位,云層提供廣域監(jiān)視和控制。通過(guò)提供分布式計(jì)算和存儲(chǔ)來(lái)提供大規(guī)模事件檢測(cè)、行為分析和長(zhǎng)期模式識(shí)別,并使用區(qū)塊鏈技術(shù)提供可伸縮、可靠和高可用性的服務(wù)。每個(gè)SDN 控制器包括數(shù)據(jù)包遷移和流規(guī)則分析功能,其體系結(jié)構(gòu)如圖4所示。為了構(gòu)建一個(gè)整體的網(wǎng)絡(luò)視圖,SDN 控制器監(jiān)視和分析從到達(dá)的OpenFlow 數(shù)據(jù)包中識(shí)別必要的OpenFlow 消息。接著對(duì)解析的數(shù)據(jù)集進(jìn)行分析,提取路由拓?fù)錉顟B(tài)和元數(shù)據(jù)特征集,構(gòu)造具有流量的網(wǎng)絡(luò)流拓?fù)鋱D。集合的元數(shù)據(jù)流在管理策略期間驗(yàn)證收集的允許元數(shù)據(jù)值。SDN 控制器還向網(wǎng)絡(luò)管理運(yùn)營(yíng)商提供編程接口,以提供各種基本的網(wǎng)絡(luò)功能。Fog 節(jié)點(diǎn)可以通過(guò)Internet 訪問(wèn)分布式云,靈活部署應(yīng)用服務(wù)和計(jì)算可用性。當(dāng)Fog 節(jié)點(diǎn)沒(méi)有足夠的計(jì)算資源來(lái)處理本地?cái)?shù)據(jù)流時(shí),可以將其計(jì)算工作負(fù)載卸載到分布式云上,而代價(jià)是通信延遲和網(wǎng)絡(luò)資源消耗增加。
數(shù)據(jù)包解析器通過(guò)監(jiān)視所有OpenFlow 消息的子集,包括FeatureReply、Stats_Reply、Flow_Mod 和Packet_in,以捕獲異常行為。流拓?fù)鋱D生成器分析解析后的數(shù)據(jù)集,以構(gòu)造和修改連接到網(wǎng)絡(luò)流的流程圖。SDN 域中有三個(gè)元素,它們精確地將網(wǎng)絡(luò)中每個(gè)流的元數(shù)據(jù)概括為流、轉(zhuǎn)發(fā)交換機(jī)和終端主機(jī)。驗(yàn)證模塊以脫機(jī)方式生成路徑條件、以在線方式生成反應(yīng)規(guī)則。遷移代理模塊根據(jù)觸發(fā)解析器的流規(guī)則以生成新規(guī)則并遷移數(shù)據(jù)緩存中丟失的表數(shù)據(jù)包。在流程規(guī)則生成和更新期間,將所有丟失的數(shù)據(jù)包遷移到數(shù)據(jù)計(jì)劃緩存中。數(shù)據(jù)計(jì)劃緩存模塊是一個(gè)臨時(shí)存儲(chǔ)器,當(dāng)接收到遷移的數(shù)據(jù)包時(shí),它將解析數(shù)據(jù)包報(bào)頭,并使用Packet_in 生成器、緩沖區(qū)隊(duì)列和分類器將它們存儲(chǔ)在適當(dāng)?shù)木彌_區(qū)隊(duì)列中。
圖4 SDN控制器體系結(jié)構(gòu)
(3)云層
在云層,基于區(qū)塊鏈技術(shù)的分布式云提供了對(duì)最具競(jìng)爭(zhēng)力的計(jì)算基礎(chǔ)設(shè)施的安全、低成本和按需訪問(wèn)。客戶端可以搜索、查找、提供、使用和自動(dòng)釋放所需的所有計(jì)算資源,如服務(wù)器、數(shù)據(jù)和應(yīng)用程序。與傳統(tǒng)使用PoW 共識(shí)協(xié)議的區(qū)塊鏈不一樣,工作量是在區(qū)塊鏈之外發(fā)生的一些操作,例如性能計(jì)算、文件傳輸或提供一組數(shù)據(jù)。因此,在基于區(qū)塊鏈的分布式云中使用PoS(Proof of Service)作為共識(shí)協(xié)議。云層中使用了一種匹配算法,根據(jù)資源請(qǐng)求的描述將請(qǐng)求鏈接到資源提供者。同時(shí),智能合約描述了執(zhí)行任務(wù)或部署VM實(shí)例的需求,如預(yù)期的管理程序、GPU 運(yùn)行時(shí)需求、RAM、最小磁盤(pán)空間等。分布式云中還使用了調(diào)度算法,可以根據(jù)可靠性、置信度、性能、成本等因素自定義客戶端的偏好。例如,某個(gè)客戶端希望獲得更好的計(jì)算性能,即使成本更高。而另一個(gè)客戶端希望最小化成本,即使數(shù)據(jù)計(jì)算需要更長(zhǎng)的時(shí)間。
本文總結(jié)了物聯(lián)網(wǎng)領(lǐng)域目前由于信息量爆炸式增長(zhǎng)而面臨的安全與隱私、計(jì)算資源缺乏、網(wǎng)絡(luò)傳輸延遲等問(wèn)題,分析了在物聯(lián)網(wǎng)中引入?yún)^(qū)塊鏈技術(shù)所帶來(lái)的優(yōu)勢(shì)與挑戰(zhàn)。基于邊緣計(jì)算的區(qū)塊鏈物聯(lián)網(wǎng)架構(gòu)提供了良好的解決方案,架構(gòu)中邊緣層IoT 設(shè)備采集海量的真實(shí)數(shù)據(jù),霧層的SDN 控制器對(duì)數(shù)據(jù)進(jìn)行處理,并將結(jié)果報(bào)告基于區(qū)塊鏈的分布式云層,從而提供可伸縮、安全可靠、網(wǎng)絡(luò)延遲低的高可用性BoT 系統(tǒng)服務(wù)。后續(xù)工作將進(jìn)一步緊縮Fog 節(jié)點(diǎn)體積,改進(jìn)面向IoT 的共識(shí)協(xié)議,結(jié)合5G 技術(shù)提高網(wǎng)絡(luò)帶寬,從而提供更快速、安全可信的區(qū)塊鏈物聯(lián)網(wǎng)服務(wù)。