何正源,段田田,張 穎,張瀚文,孫 毅
1.同濟大學軟件學院,上海201804
2.中科院計算技術研究所網(wǎng)絡技術研究中心,北京100190
近年來隨著物聯(lián)網(wǎng)技術的飛速發(fā)展,物聯(lián)網(wǎng)設備的使用規(guī)模呈現(xiàn)爆炸式增長.據(jù)統(tǒng)計,2017年物聯(lián)網(wǎng)設備同比增長31%,達到了84 億.預計到2020年,這個數(shù)字將增長至300億[1].物聯(lián)網(wǎng)技術的廣泛應用為物理世界更直接地整合到計算機網(wǎng)絡世界創(chuàng)造了機會,從而減少人力消耗,提升生產(chǎn)效率和經(jīng)濟效益[2].物聯(lián)網(wǎng)綜合了傳統(tǒng)互聯(lián)網(wǎng)、移動網(wǎng)絡、傳感器網(wǎng)絡等,擴展了新的互聯(lián)網(wǎng)概念,從而將萬物互聯(lián)互通.然而,物聯(lián)網(wǎng)在帶來開放性、包容性的同時也不可避免地引入了安全性、匿名性等隱患.為了完善網(wǎng)絡安全、更好地實現(xiàn)用戶隱私保護以及信任管理,物聯(lián)網(wǎng)安全技術仍有待進一步研究[3].
目前,大多數(shù)物聯(lián)網(wǎng)解決方案都依賴于集中式的服務器-客戶端范例,以云計算的方式接入物聯(lián)網(wǎng)設備.在這種中心化的模式下,線性增長的集中式云計算能力無法匹配爆炸式增長的設備及數(shù)據(jù)規(guī)模;網(wǎng)絡邊緣設備與云服務器的傳輸帶寬限制了網(wǎng)絡性能,其網(wǎng)絡延遲也帶來了更多安全問題;數(shù)據(jù)的集中化管理使得隱私安全問題變得突出;網(wǎng)絡邊緣設備與云服務器的數(shù)據(jù)傳輸給物聯(lián)網(wǎng)設備帶來了較大的開銷[4].因此,相繼出現(xiàn)了一些基于分布式P2P 的物聯(lián)網(wǎng)架構[5],可以解決中心化網(wǎng)絡架構存在的問題.然而,直至引入?yún)^(qū)塊鏈技術并將其與物聯(lián)網(wǎng)相結合,才有效地解決了物聯(lián)網(wǎng)存在的許多問題.比如:物聯(lián)網(wǎng)設備之間存在敏感的數(shù)據(jù)生成、交換、存儲,可以憑借區(qū)塊鏈的P2P 特性確保其隱私性、魯棒性、單點故障容錯性;物聯(lián)網(wǎng)中數(shù)據(jù)的創(chuàng)建、修改、刪除等每個操作,可以在區(qū)塊鏈中進行注冊和驗證來實現(xiàn)對物聯(lián)網(wǎng)數(shù)據(jù)篡改、濫用行為的檢測.此外,還可以通過區(qū)塊鏈定制和實施訪問策略,從而實現(xiàn)對數(shù)據(jù)的訪問控制.在區(qū)塊鏈框架中,物聯(lián)網(wǎng)設備無需人為干預就可以將數(shù)據(jù)安全地存儲在不同的節(jié)點中,并利用區(qū)塊鏈的特性保證其去中心化信任、真實性、安全性、隱私性等.本文將綜述相關文獻,并主要介紹了區(qū)塊鏈技術在物聯(lián)網(wǎng)中的應用.
區(qū)塊鏈是一種以密碼學算法為基礎的點對點分布式賬本技術,其本質是一種互聯(lián)網(wǎng)共享數(shù)據(jù)庫.區(qū)塊鏈首次從技術上解決了基于信任的中心化模型帶來的安全問題,它基于密碼學算法保證數(shù)據(jù)與價值的安全轉移,基于哈希鏈及時間戳機制保證數(shù)據(jù)的可追溯和不可篡改的特性,基于共識算法保證節(jié)點間區(qū)塊數(shù)據(jù)的一致性.區(qū)塊鏈技術自2008年比特幣提出以來迅速得到了應用[6].最初,區(qū)塊鏈技術主要應用在數(shù)字貨幣領域,并出現(xiàn)了多種類比特幣的數(shù)字貨幣.2014年后,越來越多的領域開始嘗試與區(qū)塊鏈相結合,催生了廣闊的應用前景.
區(qū)塊鏈是由包含交易信息的區(qū)塊從后向前有序鏈接起來的數(shù)據(jù)結構.每個區(qū)塊頭都包含它的父區(qū)塊哈希值,這樣把每個區(qū)塊鏈接到各自父區(qū)塊的哈希值序列就創(chuàng)建了一條一直可以追溯到第1 個區(qū)塊(創(chuàng)世區(qū)塊)的鏈條.隨著鏈上新區(qū)塊的產(chǎn)生,該區(qū)塊鏈的本地副本會不斷地更新維護這個鏈,并通過共識算法和其他同步機制來保證每個區(qū)塊鏈副本的最終一致性.區(qū)塊鏈網(wǎng)絡是一個分布式的點對點網(wǎng)絡,其中每個完整節(jié)點都存儲了所有交易數(shù)據(jù),而不需要第3 方或中心化的節(jié)點來控制交易或數(shù)據(jù).這種分布式的數(shù)據(jù)管理架構賦予了區(qū)塊鏈應用去中心化、開放性、自治性、信息不可篡改性和匿名性等優(yōu)勢[7].
現(xiàn)有的區(qū)塊鏈架構一般從下到上分為數(shù)據(jù)層、網(wǎng)絡層、共識層、合約層、應用層,如圖1所示.
區(qū)塊鏈數(shù)據(jù)層一般是基于levelDB 等數(shù)據(jù)庫實現(xiàn)的.區(qū)塊體以Merkle 樹的形式存儲了交易數(shù)據(jù)和賬戶數(shù)據(jù)等,而區(qū)塊頭則存儲了區(qū)塊父哈希值和Merkle 樹的根以及用于挖礦的nonce 值等數(shù)據(jù),形成了區(qū)塊鏈基礎的鏈式結構.除此之外,數(shù)據(jù)層還包括了時間戳技術和非對稱加密技術等,是區(qū)塊鏈實現(xiàn)數(shù)據(jù)可溯源且不可篡改的基礎.
圖1 區(qū)塊鏈架構圖Figure 1 Architecture of blockchain
網(wǎng)絡層則決定了區(qū)塊鏈的分布式點對點網(wǎng)絡拓撲.這一層包括了節(jié)點間的分布式P2P 通信協(xié)議、區(qū)塊同步算法、數(shù)據(jù)傳播與數(shù)據(jù)驗證機制,負責網(wǎng)絡中的節(jié)點發(fā)現(xiàn)、消息廣播、數(shù)據(jù)傳輸?shù)裙δ?
(1)轉變觀念,提高認識,全員參與。通過定期組織內部控制宣傳、培訓工作,提高全體人員對內部控制的重視程度,增強員工自身的風險防范意識,增強員工在內部控制工作中的主人公精神和責任意識,從意識上徹底改變將內部控制等同于會計控制的陳舊觀念,建立多部門協(xié)同的內部控制體系。
共識層主要涉及區(qū)塊鏈的共識算法,包括了區(qū)塊驗證、礦工競爭出塊、最長鏈確認等.較為成熟的共識算法有:工作量證明算法(proof of work, PoW)、權益證明算法(proof of stake, PoS)、股份授權證明算法(delegate proof of stake, DPoS)以及實用拜占庭容錯算法(practical Byzantine fault tolerance, PBFT).共識算法是區(qū)塊鏈的核心機制.各類共識算法各有利弊,目前已有許多工作針對共識算法進行了創(chuàng)新與優(yōu)化[8].
合約層包括了智能合約的部署、合約測試、日志管理、實例管理、合約接口等.智能合約即在區(qū)塊鏈上運行的圖靈完備腳本語言,無需人工干預就可以在約束條件下自動觸發(fā),執(zhí)行事先約定好的一切條款.這也是區(qū)塊鏈能夠解決去信任的關鍵技術之一.
應用層則包括了運行在區(qū)塊鏈上的去中心化應用程序(decentralized application,DAPP),以及一些接口調用.應用層封裝了各種應用和案例,支撐區(qū)塊鏈實現(xiàn)在金融貨幣、供應鏈、物聯(lián)網(wǎng)、征信、社交娛樂等領域的應用落地.
當前區(qū)塊鏈技術已用于多種物聯(lián)網(wǎng)場景,涉及了如傳感器、數(shù)據(jù)存儲、身份管理、時間戳服務、可穿戴設備、供應鏈管理等多種技術,涵蓋了農(nóng)業(yè)、金融、醫(yī)療、交通等各個領域,如圖2所示.
在無人機領域中,無人機技術的廣泛應用受到了安全和數(shù)據(jù)隱私等因素的制約,而區(qū)塊鏈可以為無人機管控提供更高水平的透明度、安全性、可信度和效率[9].例如沃爾瑪在2019年8月1日公布了此前申請的名為“使用區(qū)塊鏈克隆無人機”的專利,旨在以區(qū)塊鏈技術保障無人機包裹遞送系統(tǒng)的數(shù)據(jù)完整和安全.文獻[10]通過哈希算法實現(xiàn)數(shù)字簽名,并提供了一種圖像和傳感器采集數(shù)據(jù)的加密方法,通過時間戳機制記錄包含了GPS 位置信息的交易日志,基于區(qū)塊鏈實現(xiàn)了一個通用、可擴展且易于管理的無人機訪問控制系統(tǒng).相信在不久的將來,這項技術可以在對消費者友好的小型無人機上實現(xiàn),并且其服務器可以在諸如手機等移動設備上運行.
圖2 區(qū)塊鏈在物聯(lián)網(wǎng)中的應用場景Figure 2 Application scenario of blockchain in IoT
區(qū)塊鏈在車聯(lián)網(wǎng)領域也得到了廣泛應用.在車聯(lián)網(wǎng)中,車輛需要收集并共享數(shù)據(jù)以提高駕駛安全性,提供更好的服務質量.區(qū)塊鏈技術的引入一方面解決了集中式管理架構中車輛因擔心單點故障和數(shù)據(jù)操控而不愿意將數(shù)據(jù)上傳至基礎設施的問題,另一方面也解決了分布式管理架構中未授權的數(shù)據(jù)訪問和安全保護問題[11].文獻[12]利用區(qū)塊鏈建立分布式數(shù)據(jù)庫來管理車輛數(shù)據(jù),通過部署智能合約來保證路側基礎設施(roadside units, RSUs)數(shù)據(jù)存儲的安全與高效,通過基于信譽的數(shù)據(jù)分享方案來選擇更加可靠的數(shù)據(jù)源以提高數(shù)據(jù)可信度.車輛可以選擇高質量、高可信的數(shù)據(jù)提供者,確保了數(shù)據(jù)存儲和數(shù)據(jù)共享的安全性.結果表明:相比于傳統(tǒng)方法,該方案在提高異常車輛的檢測率以及確保數(shù)據(jù)共享的安全性方面具有很大優(yōu)勢.
在未來電網(wǎng)中,除了主電網(wǎng)之外,間歇性能源和微電網(wǎng)也將成為能源供應的重要組成部分.文獻[13]將區(qū)塊鏈與智能電網(wǎng)相結合,創(chuàng)建了一個更加高效的系統(tǒng),通過人工智能和微交易來匹配電力需求和供應,更加合理地利用了分布在整個網(wǎng)絡中的電力資源.文獻[14]提出了一個基于區(qū)塊鏈的安全、透明、分布式的電力交易模型以消除傳統(tǒng)能源市場的壟斷,促進了能源和信用的合理交易,實現(xiàn)了平穩(wěn)的能源管理需求.現(xiàn)有的項目比如Energo 就是通過代幣的形式評估能源的占有量和消耗量,通過智能合約調整交易規(guī)則和電網(wǎng)切換策略;基于區(qū)塊鏈和本地微電網(wǎng)實現(xiàn)了一個清潔能源計量、登記、管理、交易與結算的去中心化系統(tǒng).目前,該系統(tǒng)已在東南亞和澳洲得到了推廣與部署.
在農(nóng)產(chǎn)品運輸?shù)任锫?lián)網(wǎng)場景下,傳感器數(shù)據(jù)是重要的組成部分,物聯(lián)網(wǎng)的正常運行依賴于大量傳感器數(shù)據(jù)的傳輸,而區(qū)塊鏈與傳感器技術相結合可以實現(xiàn)傳感器數(shù)據(jù)的存證和溯源,是提高物聯(lián)網(wǎng)去中心化信任和安全的有效手段.文獻[15]分析了在實際運輸鏈應用場景中,基于區(qū)塊鏈的谷物質量跟蹤系統(tǒng)的可行性.文章指出:該系統(tǒng)可以將巴西的大豆出口收益額度提高約15%.加拿大的Transport Genie 公司通過傳感器檢測運輸車輛車廂內微氣候,應用區(qū)塊鏈技術保存與傳輸數(shù)據(jù),使供應商、運輸單位、食品公司都能實時掌握運輸途中生鮮家畜的狀況.同時,該系統(tǒng)還實現(xiàn)了傳感器數(shù)據(jù)的不可篡改與供應鏈數(shù)據(jù)的可溯源,在很大程度上確保了農(nóng)產(chǎn)品供應的安全.
區(qū)塊鏈技術可以解決物聯(lián)網(wǎng)的許多問題,但區(qū)塊鏈本身并不是專門為物聯(lián)網(wǎng)而設計的,怎樣將區(qū)塊鏈技術與物聯(lián)網(wǎng)可行有效地結合是一個值得研究的問題.目前,已有很多研究對這個問題進行了討論.文獻[16]分析了區(qū)塊鏈基礎設施在物聯(lián)網(wǎng)設備更新場景下的應用,提出合理地設計區(qū)塊鏈系統(tǒng)可以有效提升物聯(lián)網(wǎng)設備更新的可用性,降低設備承受惡意攻擊的風險,提高設備的持久性.文獻[17]提出:在物聯(lián)網(wǎng)中,區(qū)塊鏈和其他技術的結合可以有效地應用于物聯(lián)網(wǎng)邊緣計算架構,解決隱私與安全問題.此外,區(qū)塊鏈本身也存在一些短板亟待解決,例如交易通量受限導致的系統(tǒng)性能低下,使得其不能滿足物聯(lián)網(wǎng)中需要頻繁數(shù)據(jù)交換的應用場景;共識算法缺陷導致的系統(tǒng)去中心化不完全,使得物聯(lián)網(wǎng)應用不能完全發(fā)揮區(qū)塊鏈的去中心化優(yōu)勢;區(qū)塊生成的冗余計算導致的大量能源消耗,使得傳感器網(wǎng)絡等能源受限網(wǎng)絡的壽命減少;鏈上數(shù)據(jù)公開以及交易過程中的數(shù)據(jù)泄露,導致物聯(lián)網(wǎng)數(shù)據(jù)的隱私安全問題等.因此,在物聯(lián)網(wǎng)領域應用區(qū)塊鏈技術的同時仍需針對實際場景對區(qū)塊鏈進行一定的優(yōu)化與改進.
設計新的系統(tǒng)架構、共識算法、智能合約、加密算法、時間戳技術、數(shù)據(jù)存儲結構等,可以使得區(qū)塊鏈更加適用于物聯(lián)網(wǎng)領域.例如文獻[18]提出了一種優(yōu)化的區(qū)塊鏈,可以解決經(jīng)典區(qū)塊鏈中的高資源消耗、低擴展性、長處理時間的問題,同時為物聯(lián)網(wǎng)保留了安全性與隱私性.為了更好地與物聯(lián)網(wǎng)結合,現(xiàn)有的針對物聯(lián)網(wǎng)場景下區(qū)塊鏈底層技術的研究大多從以下三方面展開:系統(tǒng)架構、共識算法、智能合約.
物聯(lián)網(wǎng)架構的發(fā)展經(jīng)歷了從服務器-客戶端到開放式云中心,再到分布式P2P 的過程,如圖3所示.傳統(tǒng)的基于云服務器的物聯(lián)網(wǎng)存在一些固有的安全隱患,服務器若出錯或被攻擊將直接影響整個網(wǎng)絡系統(tǒng).此外,若單個物聯(lián)網(wǎng)設備被攻擊,則可能通過拒絕服務(denial of service, DoS)攻擊破壞整個網(wǎng)絡,從而影響到網(wǎng)絡安全.相比之下,基于區(qū)塊鏈的分布式P2P網(wǎng)絡架構則不依賴于某個中心節(jié)點或云服務器,且事務或交易在網(wǎng)絡中以加密的形式操作和驗證,因此在單個惡意節(jié)點存在的情況下可以拒絕該節(jié)點對鏈上數(shù)據(jù)的操作.
圖3 物聯(lián)網(wǎng)網(wǎng)絡架構發(fā)展Figure 3 Development of IoT architecture
針對適用于物聯(lián)網(wǎng)的區(qū)塊鏈架構,研究者們提出了許多解決方案.例如文獻[19]考慮到典型的智能家居環(huán)境,基于區(qū)塊鏈技術提出了一種新的輕量級體系架構.該系統(tǒng)結構分為3層:智能家居、覆蓋網(wǎng)絡、云存儲.智能家居層在區(qū)塊中加入Policy Header,解決了身份認證和訪問控制等問題;覆蓋網(wǎng)絡層通過簽名與驗簽、賬戶公鑰與ID 解決了隱私問題;云存儲層通過數(shù)據(jù)的哈希簽名解決分布式節(jié)點的信任問題.文獻[20]基于區(qū)塊鏈技術實現(xiàn)了一個新的物聯(lián)網(wǎng)分布式訪問控制系統(tǒng),使用區(qū)塊鏈存儲并分發(fā)訪問控制信息.該系統(tǒng)由管理中心節(jié)點將多個約束網(wǎng)絡同時連接至區(qū)塊鏈網(wǎng)絡,因此具有很好的擴展性與靈活性,能夠適用于各種物聯(lián)網(wǎng)場景.文獻[21]提出了IoTChain,結合了基于對象的物聯(lián)網(wǎng)安全架構(object security architecture for the Internet of Things)和ACE 授權框架,使ACE 授權階段變得可信而靈活.該文以區(qū)塊鏈替換單個ACE 授權服務器,由智能合約處理授權請求,使用自我修復的密鑰分發(fā)方案實現(xiàn)了物聯(lián)網(wǎng)的高效管理.文獻[22]提出了一個多層分布式網(wǎng)絡模型,有機地結合了區(qū)塊鏈技術的安全性、可靠性和云服務器架構的高性能和管控能力.該模型將網(wǎng)絡分為邊緣層和高級層.邊緣層包括了本地物聯(lián)網(wǎng)實體,并提供與高級層的接口.邊緣層與當前的集中式網(wǎng)絡模型一致:云服務器管理設備數(shù)據(jù)并處理請求,相當于實現(xiàn)IoT 的局域網(wǎng).高級層連接邊緣層并實現(xiàn)IoT 的廣域網(wǎng)功能.在高級層中,同一層的所有節(jié)點均以分布式方式運行,基于拜占庭容錯(Byzantine fault tolerance, BFT)算法來維護分布式記錄的數(shù)據(jù),使同一層的節(jié)點實現(xiàn)了自我管理和一定程度的容錯;針對跨層通信,該模型也設計了特定的跨層尋址與數(shù)據(jù)傳輸方法.這種網(wǎng)絡架構為建立廣域安全物聯(lián)網(wǎng)網(wǎng)絡提供了可行的解決方案.
設計更適合物聯(lián)網(wǎng)的區(qū)塊鏈系統(tǒng)架構,是兩個技術領域交叉融合的基礎.據(jù)現(xiàn)有的研究來看,完全分布式的網(wǎng)絡架構并不是最適合物聯(lián)網(wǎng)應用場景的架構,而多層可擴展的區(qū)塊鏈架構能夠在擁有區(qū)塊鏈優(yōu)勢的情況下更有效地兼容物聯(lián)網(wǎng)原有的功能,如圖4所示.同時,隨著下一代物聯(lián)網(wǎng)邊緣計算的快速發(fā)展,分層結構的霧計算將成為更高效的物聯(lián)網(wǎng)架構[23].區(qū)塊鏈與霧計算結合將是未來區(qū)塊鏈物聯(lián)網(wǎng)系統(tǒng)架構研究的重要發(fā)展方向.
圖4 結合霧計算的區(qū)塊鏈物聯(lián)網(wǎng)多層架構Figure 4 Multi-layer blockchain IoT architecture combined with fog computing
在區(qū)塊鏈中,共識機制用于分布式P2P 網(wǎng)絡能確保各節(jié)點維護相同內容和順序的交易記錄.在共識過程中,各節(jié)點獨立構造候選區(qū)塊,獲得記賬權的節(jié)點將自身構造的區(qū)塊廣播至其他節(jié)點,而其他節(jié)點將收到的有效區(qū)塊加入各自區(qū)塊鏈.共識算法是區(qū)塊鏈的核心技術之一,在保證其去中心化、維護其安全性等方面發(fā)揮著重要作用.類似傳統(tǒng)PoW 的共識算法具有較高的安全性,但其挖礦過程給區(qū)塊鏈帶來了低通量、低可擴展性以及高能耗的問題[24],這在物聯(lián)網(wǎng)場景中是不可接受的.因此,優(yōu)化或設計更適合物聯(lián)網(wǎng)應用的共識算法已經(jīng)成為區(qū)塊鏈落地的關鍵問題.
文獻[25]對比了傳統(tǒng)區(qū)塊鏈與有向無環(huán)圖(directed acyclic graph, DAG)區(qū)塊鏈的共識算法,DAG(即以網(wǎng)狀拓撲而非鏈式結構存儲區(qū)塊鏈數(shù)據(jù))概念作為共識算法,最早在2013年由以色列希伯來大學學者提出.文章認為:在沒有礦工參與的情況下,交易有向無環(huán)圖(transaction directed acyclic graph, TDAG)區(qū)塊鏈的共識過程相比于PoW 具有更好的去中心化程度、更小的能源消耗以及更高的可擴展性.提出區(qū)塊鏈應用DAG的共識算法,可以給邊緣設備為主的物聯(lián)網(wǎng)提供完整有效的解決方案.文獻[26]提出了一種適用于物聯(lián)網(wǎng)的輕量級區(qū)塊鏈共識算法:身份認證證明.它包括了兩個認證步驟:1)認證區(qū)塊以及區(qū)塊的源.2)在可信節(jié)點成功認證區(qū)塊之后,第1 個認證該區(qū)塊的節(jié)點信任值增加一個單位.之后所有節(jié)點更新區(qū)塊,在此過程中區(qū)塊內的非法交易會被識別出,任何對這個區(qū)塊進行過錯誤認證的節(jié)點將失去一個單位的信任值,直至成為一個普通節(jié)點.身份認證證明不需要逆Hash 計算,從而減少了能源消耗,使區(qū)塊鏈可以有效地集成到資源約束網(wǎng)絡,并且在分層網(wǎng)絡和霧計算場景中依然有效.文獻[27]為物聯(lián)網(wǎng)應用場景提出了一種混合區(qū)塊鏈Hybrid-IoT.在Hybrid-IoT中,IoT 設備以PoW 區(qū)塊鏈的形式組成若干小組,而各PoW 區(qū)塊鏈之間使用BFT 共識算法連接,這種共識類似于跨鏈交互的Polkadot[28]或Cosmos[29].文獻[27]分析了PoW 共識算法在子區(qū)塊鏈應用的有效性,證明了PoW 與BFT 混合共識的安全性,為針對物聯(lián)網(wǎng)的區(qū)塊鏈共識算法設計提供了新的解決方案.共識算法作為區(qū)塊鏈的核心技術,其優(yōu)化與改進對區(qū)塊鏈物聯(lián)網(wǎng)的性能表現(xiàn)起重要作用.在大多數(shù)情況下,PoW 類的共識算法不再適用于物聯(lián)網(wǎng)環(huán)境.相比之下,在網(wǎng)絡規(guī)模大且安全性要求高的環(huán)境下,可以使用PoS 共識算法.在網(wǎng)絡規(guī)模小、安全性要求不太嚴苛的環(huán)境下,可以使用DPoS 和PBFT 等共識算法.總的來說,更多的工作應針對更高效、更節(jié)能、更大交易吞吐量的共識算法進一步研究;而更加前沿的DAG 無鏈結構共識算法,省去了打包區(qū)塊的時間,在效率方面有了質的飛躍.使區(qū)塊鏈的容量和速度有了質的提升,DAG 共識算法的應用也將成為區(qū)塊鏈物聯(lián)網(wǎng)的新趨勢.
區(qū)塊鏈在去中心化數(shù)字貨幣等領域取得成功后,支持各類智能合約的區(qū)塊鏈設計使得區(qū)塊鏈技術在其他領域得到了更廣泛的應用.智能合約是一種使用區(qū)塊鏈來實現(xiàn)各方之間協(xié)議的方法.通過使用加密算法和其他區(qū)塊鏈安全機制,智能合約允許在沒有第3方的情況下執(zhí)行可信交易.這些交易是可追蹤的,也是不可逆轉的.因此,智能合約提供了優(yōu)于傳統(tǒng)合約的安全性,并降低了與合同相關的其他交易成本.
智能合約本質上是在區(qū)塊鏈的特定地址上記錄的預定義指令和數(shù)據(jù)的集合.合約操作的結果通過礦工的共識打包進區(qū)塊中,保證了整個網(wǎng)絡同步更新數(shù)據(jù).由智能合約定義的公共函數(shù)或應用程序二進制接口(application binary interface, ABI)允許用戶在給定預定義的業(yè)務邏輯或合同協(xié)議的情況下與它們進行交互.智能合約將操作邏輯封裝為字節(jié)碼并對分布式礦工執(zhí)行圖靈完整計算,允許用戶將更復雜的業(yè)務模型轉化為區(qū)塊鏈網(wǎng)絡上的新類型的交易,因此可以提供可擴展的解決方案,允許物聯(lián)網(wǎng)設備在區(qū)塊鏈網(wǎng)絡上完成更靈活、更細粒度、更復雜的業(yè)務[30].
文獻[31]在以太坊基礎上根據(jù)智能合約定義的訪問控制方法,通過檢查對象的行為來實現(xiàn)基于預定義策略的靜態(tài)/動態(tài)訪問權限驗證.訪問控制框架包括了多個訪問控制合約(access control contracts, ACC)、一個裁決合約(judge contract, JC)和一個注冊合約(register contract, RC).ACC 為每對主體-客體提供一種訪問控制方法,通過檢測主體的行為來實現(xiàn)基于預定義策略的靜態(tài)/動態(tài)訪問權限驗證.JC 實現(xiàn)了一個非法行為的判斷算法,通過接收ACC 的行為報告來輔助ACC 進行動態(tài)驗證并懲罰非法行為.RC 注冊登記訪問控制以及非法行為判斷方法的信息,并提供管理這些方法的接口.該訪問控制系統(tǒng)的實現(xiàn),證明了利用區(qū)塊鏈智能合約實現(xiàn)分布式物聯(lián)網(wǎng)設備訪問控制的可行性.文獻[32]基于以太坊區(qū)塊鏈開發(fā)了一個物聯(lián)網(wǎng)設備管理系統(tǒng).該系統(tǒng)將密碼公鑰存儲在區(qū)塊鏈上,而將私鑰保存在各個設備上,通過圖靈完備語言編寫的智能合約輕松管理物聯(lián)網(wǎng)設備的配置并構建密鑰管理系統(tǒng).智能合約的應用使得物聯(lián)網(wǎng)設備的管理達到了更細的粒度.
通過智能合約區(qū)塊鏈能靈活地實現(xiàn)物聯(lián)網(wǎng)應用功能,因此智能合約已經(jīng)成為區(qū)塊鏈技術在各個領域落地的關鍵點.除了訪問控制和設備管理等,當前區(qū)塊鏈物聯(lián)網(wǎng)中供應鏈產(chǎn)品溯源、傳感器質量控制、分布式智能電網(wǎng)等應用都依賴于智能合約來實現(xiàn),可見智能合約在物聯(lián)網(wǎng)中的應用場景仍有待開發(fā).與此同時,物聯(lián)網(wǎng)環(huán)境下的智能合約代碼審計和代碼安全等問題也將成為重要的研究方向.
區(qū)塊鏈技術與物聯(lián)網(wǎng)的有效結合,為物聯(lián)網(wǎng)帶來了去中心化信任、安全、不可篡改、可溯源等優(yōu)勢;同時區(qū)塊鏈本身作為一個尚在發(fā)展的新技術,也為物聯(lián)網(wǎng)帶來了新的問題和挑戰(zhàn),這意味著對區(qū)塊鏈進行進一步設計的同時對區(qū)塊鏈物聯(lián)網(wǎng)也有了更高的技術要求.目前,大部分工作將重點放在隱私安全、節(jié)能高效、通量性能等方面.
如今物聯(lián)網(wǎng)與人們的日常生活息息相關,物聯(lián)網(wǎng)設備遍布城市各個角落.各類傳感器以及通信設備承載的海量數(shù)據(jù)信息也引起了人們對于隱私安全方面的擔憂,尤其在區(qū)塊鏈系統(tǒng)中交易數(shù)據(jù)公開透明地存儲在鏈上,雖然地址與用戶真實身份是匿名對應的關系,但仍然帶來了嚴重的安全隱患.在涉及敏感數(shù)據(jù)的應用中,如何確保數(shù)據(jù)隱私安全是區(qū)塊鏈物聯(lián)網(wǎng)需要研究的重要問題.
文獻[33]首次提出了用區(qū)塊鏈來保障物聯(lián)網(wǎng)數(shù)據(jù)隱私安全的方法——FairAccess,利用分布式賬本的一致性來解決物聯(lián)網(wǎng)中集中式和分布式訪問控制的問題,開辟了區(qū)塊鏈新的使用領域,即物聯(lián)網(wǎng)訪問控制.文獻[34]提出了ControlChain,這是一種基于區(qū)塊鏈的訪問控制架構.該架構不但可以保護物聯(lián)網(wǎng)的隱私安全,而且可以與物聯(lián)網(wǎng)中的各種訪問控制模型兼容.文獻[35]提出了一種區(qū)塊鏈連接網(wǎng)關的設計,可以自適應地保護用戶隱私安全.區(qū)塊鏈在用戶和物聯(lián)網(wǎng)設備之間起著中介的作用,用戶可以獲得連接到區(qū)塊鏈網(wǎng)關的設備信息以及隱私策略.用戶通過網(wǎng)關訪問設備,而不是直接訪問以免數(shù)據(jù)泄露.此外,區(qū)塊鏈網(wǎng)關將存儲用戶對于物聯(lián)網(wǎng)設備的隱私偏好.由于區(qū)塊鏈數(shù)據(jù)的不可篡改性,存儲的用戶偏好信息可用于解決用戶和物聯(lián)網(wǎng)服務提供者之間的隱私爭議.該區(qū)塊鏈網(wǎng)關的設計在不改變傳統(tǒng)物聯(lián)網(wǎng)結構的情況下,為提高用戶隱私安全和物聯(lián)網(wǎng)應用信任做出了貢獻.然而,即使在區(qū)塊鏈架構下,如果數(shù)據(jù)是通過高級加密標準(advanced encryption standard, AES)等對稱密鑰方案加密的,那么在礦工驗證出塊的過程中,密鑰與數(shù)據(jù)也會一起共享,這意味著區(qū)塊鏈物聯(lián)網(wǎng)的數(shù)據(jù)隱私性依然是個問題.文獻[36]基于屬性加密算法(attribute-based encryption, ABE)提出了一種隱私保護的區(qū)塊鏈物聯(lián)網(wǎng)架構,將ABE 加密技術應用于區(qū)塊鏈以重構區(qū)塊鏈協(xié)議,為物聯(lián)網(wǎng)生態(tài)系統(tǒng)提供了端到端的隱私保護方案,為解決實際應用問題提供了新的思路.然而,基于加密算法的隱私安全優(yōu)化也會為物聯(lián)網(wǎng)設備帶來更多的計算開銷,需要根據(jù)實際應用場景權衡利弊.
在分布式P2P 網(wǎng)絡中,物聯(lián)網(wǎng)設備大多是嵌入式終端或傳感器節(jié)點,具有較低的計算能力和存儲能力.在使用電池供能的無線傳感器網(wǎng)絡中,能源消耗甚至直接影響到整個網(wǎng)絡的壽命.設備性能的影響極大地限制了區(qū)塊鏈在物聯(lián)網(wǎng)中的應用,因此如何保障區(qū)塊鏈的節(jié)能高效是一個必須解決的問題.
文獻[37]分析了物聯(lián)網(wǎng)設備應用區(qū)塊鏈的3 個限制條件:一是區(qū)塊鏈挖礦需要大量的計算資源,使物聯(lián)網(wǎng)設備不適合成為礦工節(jié)點;二是區(qū)塊鏈的任何設備都需要一套完整的加密功能,這提高了硬件設備的最低門檻;三是每個完整節(jié)點需要存儲區(qū)塊鏈副本,但一般的物聯(lián)網(wǎng)設備可能無法提供如此大的存儲容量.因此,該文提出了基于Twitter 概念的Tweetchain,使用類似推文的結構對交易和狀態(tài)進行編碼,重新制定共識協(xié)議以取代工作量證明,從而大幅降低區(qū)塊鏈的性能開銷.文獻[38]認為區(qū)塊鏈計算開銷昂貴,可擴展性有限,并且有顯而易見的帶寬開銷和延遲,不適合物聯(lián)網(wǎng)場景,于是提出了一個分層的輕量級可擴展區(qū)塊鏈(lightweight scalable blockchain, LSB).LSB 針對物聯(lián)網(wǎng)需求進行優(yōu)化,包括輕量級的共識算法、分布式信任和通量管理算法以及交易路由和數(shù)據(jù)流的分離,大大降低了能源消耗,使得區(qū)塊鏈能夠適用于低性能的物聯(lián)網(wǎng)設備.
據(jù)當前已有的研究來看,共識算法依然是制約物聯(lián)網(wǎng)設備能耗開銷的最主要的問題.在一般的物聯(lián)網(wǎng)應用場景下,采用輕量級的共識協(xié)議可以有效降低物聯(lián)網(wǎng)設備計算、通信和存儲的負擔,但在類似無線傳感器網(wǎng)絡等更加嚴苛的能源受限環(huán)境中,針對區(qū)塊鏈物聯(lián)網(wǎng)的節(jié)能高效問題仍有待進一步研究.
通量和性能的提升是目前區(qū)塊鏈領域的熱點問題.現(xiàn)有區(qū)塊鏈通量有限,比特幣平均每秒只能處理7 筆交易,以太坊平均每秒只能處理15 筆交易.雖然使用效率更高的共識算法可以在一定程度上提升每秒交易數(shù)量(transactions per second, TPS),但仍難以滿足業(yè)務需求.在物聯(lián)網(wǎng)的某些場景下,提升區(qū)塊鏈的通量性能也是應用區(qū)塊鏈技術的重要前提.文獻[39]提出網(wǎng)絡吞吐量是物聯(lián)網(wǎng)協(xié)議的一個重要指標.文獻[40]就適用于物聯(lián)網(wǎng)的區(qū)塊鏈進行了評估,認為基于拜占庭容錯共識的大規(guī)模區(qū)塊鏈在物聯(lián)網(wǎng)應用中表現(xiàn)為通量性能存在很大的不足,并且該不足隨節(jié)點規(guī)模的增長越發(fā)明顯.
當前許多區(qū)塊鏈的交易通量并不足以支持物聯(lián)網(wǎng)應用,因此出現(xiàn)了許多針對區(qū)塊鏈物聯(lián)網(wǎng)提升交易通量的工作.文獻[38]對區(qū)塊鏈的優(yōu)化在一定程度上減少了帶寬要求和處理時間,提升了網(wǎng)絡通量.文獻[41]實現(xiàn)了一種基于物聯(lián)網(wǎng)霧計算的區(qū)塊鏈云架構,并通過通量、響應時間和網(wǎng)絡延遲來評估系統(tǒng).實驗顯示該架構可以有效提升區(qū)塊鏈數(shù)據(jù)通量,但從目前的工作來看,區(qū)塊鏈物聯(lián)網(wǎng)在通量上的改進并不明顯.通量性能可能還需要在區(qū)塊鏈基礎設施的大幅優(yōu)化之后才能得到明顯的提升.目前比特幣、以太坊等團隊也正在著重針對這個問題進行優(yōu)化.
隨著數(shù)字驅動的互聯(lián)網(wǎng)世界高速發(fā)展,萬物互聯(lián)的概念越來越接近現(xiàn)實.在物聯(lián)網(wǎng)設備數(shù)量呈爆炸式增長同時區(qū)塊鏈技術日益進步的情況下,物聯(lián)網(wǎng)與區(qū)塊鏈技術的結合已經(jīng)成為非常值得關注的研究問題.在物聯(lián)網(wǎng)生態(tài)下,區(qū)塊鏈可以提供一個分布式去中心化信任平臺.借助密碼學、哈希鏈、時間戳、共識算法等技術解決了物聯(lián)網(wǎng)存在的安全、隱私、信任等舊問題,賦予了物聯(lián)網(wǎng)數(shù)據(jù)去中心化、可追溯、不可篡等新特性,從而使區(qū)塊鏈物聯(lián)網(wǎng)在智能家居、智慧城市、可穿戴醫(yī)療設備、物流保障、傳感器數(shù)據(jù)安全等眾多領域有了廣泛的應用前景.
本文針對區(qū)塊鏈技術在物聯(lián)網(wǎng)場景下的應用與優(yōu)化、提升與挑戰(zhàn),綜述了目前的研究成果和熱點問題.可以看到,區(qū)塊鏈在有效提升物聯(lián)網(wǎng)表現(xiàn)的同時也存在需要研究和解決的問題.近年來,學術界也針對區(qū)塊鏈及其在實際應用中的核心問題與關鍵技術開展了相關研究.但目前區(qū)塊鏈物聯(lián)網(wǎng)仍處于起步階段,并沒有一個完美的解決方案,因此針對物聯(lián)網(wǎng)的區(qū)塊鏈底層技術,尤其是共識算法的研究十分重要.可以說在這個研究領域機遇與挑戰(zhàn)并存,仍需對關鍵技術進一步深入探索,使區(qū)塊鏈技術在物聯(lián)網(wǎng)領域可以得到更好的應用與發(fā)展.