魏祥 張媛媛
摘要:智慧家庭正逐漸成為引領智慧生活的新時尚,介紹了一種基于區(qū)塊鏈和物聯網面向消息中間件(MOM)的智慧家庭體系結構的實現,該體系結構具有2個網關,用于內部家電的管理。對物聯網MOM、消息隊列遙測傳輸(MQTT)協議和區(qū)塊鏈體系結構進行基本概述,討論區(qū)塊鏈技術中以太坊智能合約的概念。提出了區(qū)塊鏈技術和物聯網設備集成方面的一些問題和挑戰(zhàn),介紹了智慧家庭應用程序實現的案例。
關鍵詞:區(qū)塊鏈;智慧家庭;應用
中圖分類號:TP393文獻標志碼:A文章編號:1008-1739(2022)09-60-4
智慧家庭本質上是一種基于物聯網技術的異構傳感器網絡。如今,智慧家庭中配備了許多智能電器,如洗衣機、冰箱、電視、烤箱、恒溫器等。為了實現這些設備之間的透明通信,需要使用網關進行協議轉換。在需求的響應、先進的計量基礎設施、分布式的發(fā)電和存儲中使用雙向通信。
一方面,許多網關的存在使傳感器和執(zhí)行器內部網絡中的系統(tǒng)變得復雜。附加協議轉換的存在降低了其功能,為了減少其數量,需要選擇與計算能力有限的終端設備兼容的協議。MQTT和COAP(受限應用協議)的存在滿足了計算資源有限的設備要求,并且非常方便用于構建內部傳感器網絡。另一方面,與外部世界的系統(tǒng)接口必須與不同的網絡提供商及其通信協議兼容。物聯網中許多異構設備的存在導致了內部和外部的兼容性和安全性出現問題。區(qū)塊鏈技術具有統(tǒng)一的協議集和內置安全性,不僅可以用作任何家庭網絡的外部鏈接,還可以用作存儲每項事務中包含的數據的分布式數據庫[1]。
1.1物聯網
隨著傳感器網絡、無線移動通信、嵌入式系統(tǒng)和云計算的發(fā)展,物聯網技術已廣泛應用于智能城市、智能農業(yè)和智慧家庭等領域。物聯網有3個基本組成部分:嵌入式設備(由低成本或低功耗設備和高性能網關組成)、可擴展連接(每個嵌入式設備都能連接)、基于云的大規(guī)模設備管理(分布式設備的集中管理)。
物聯網的基本理念是在周圍無處不在的各種事物或物體,如射頻識別(RFID)標簽、傳感器、執(zhí)行器和移動電話等,通過特殊的尋址方式,能夠交互,并與相鄰設備合作以實現共同目標。
1.2 MQTT
消息隊列遙測傳輸(MQTT)由訂閱者、發(fā)布者和代理3個組件組成。發(fā)布者將消息輸入到特定主題,代理將這些消息發(fā)送到訂閱的客戶端。客戶端訂閱與其相關的特定主題,并接收發(fā)布到這些主題的每條消息。代理通過授權發(fā)布者和訂閱者來實現安全性。
1.3區(qū)塊鏈
區(qū)塊鏈的核心是一個點對點的分布式賬本,加密安全、只可追加、不可更改,并且只能通過對等方之間的共識或協議進行更新[2]。根據不同的觀點,區(qū)塊鏈有不同的定義:從業(yè)務角度來看,區(qū)塊鏈可以定義為一個平臺,通過該平臺,對等方可以使用交易交換價值,而無需中間可信第三方;從技術角度來看,區(qū)塊鏈是運行在互聯網之上的分布式點對點網絡。
參與區(qū)塊鏈網絡的每個用戶都表示一個區(qū)塊鏈節(jié)點,該節(jié)點有一個地址,該地址表示一個唯一標識符。每個節(jié)點都可以在同一網絡內啟動事務,將值傳遞給其他節(jié)點。所有啟動的事務都分組到區(qū)塊中,由網絡中稱為礦工節(jié)點的特殊節(jié)點進行驗證。礦工節(jié)點通過執(zhí)行一致性算法來驗證新創(chuàng)建的區(qū)塊,所有的有效區(qū)塊都存儲在分布式分類賬本中。
分類賬本是一個區(qū)塊鏈,包含所有的有效交易鏈上的第一個塊(創(chuàng)世塊)。每個塊通過位于其頭部的Merkle樹根散列與前一個塊鏈接。作為一個分散的系統(tǒng),區(qū)塊鏈系統(tǒng)不需要可信第三方機構。相反,為了保證數據交易的可靠性和一致性,區(qū)塊鏈采用了分散共識機制。每一種共識機制的實質是讓礦工節(jié)點解決一個難題,證明數據的真實性。在現有的區(qū)塊鏈系統(tǒng)中,有4種主要的共識機制:工作證明(PoW)、股權證明(PoS)、實際拜占庭容錯(PBFT)和委托股權證明(DPO)。
PoW一致性算法迫使礦工通過基于nonce值、先前塊的散列和事務散列達到目標值來創(chuàng)建新塊,從而解決計算密集型易驗證任務。如果任務由網絡中的任何節(jié)點解決,則該節(jié)點將解決方案廣播給其他礦工節(jié)點,并且所有其他節(jié)點必須相互確認解決方案的正確性。如果區(qū)塊被驗證,其他礦工將把這個新區(qū)塊附加到自己的分類賬本副本中。
PoS共識算法是PoW的一種節(jié)能替代方案。該算法根據擁有的代幣數量隨機選擇負責創(chuàng)建新區(qū)塊的節(jié)點。事實上,擁有更多代幣的用戶對區(qū)塊鏈系統(tǒng)的正常運行更感興趣,這些所有者負責提供包含有效區(qū)塊的分類賬本。
PBFT是由Liskov和Castro提出的一種復制算法,用于解決分布式系統(tǒng)中的拜占庭式故障。在該算法中,副本節(jié)點通過一系列稱為“視圖”的配置來移動。在每一個視圖中,包含一個主節(jié)點,其他作為備份節(jié)點。當主服務器收到客戶機請求時,它會啟動一個三階段協議,以原子方式將請求多播到副本。這3個階段是預準備、準備和提交。即使提出請求排序的主視圖出現故障,預準備和準備階段也會對同一視圖中發(fā)送的請求進行排序。準備和提交階段用于確保提交的請求在視圖之間完全有序。
1.4以太坊和智能合約
以太坊是一種基于區(qū)塊鏈技術的開源軟件,重點是提供一個構建分布式區(qū)塊鏈應用程序的平臺。開發(fā)人員可以在以太坊網絡中實現、部署和執(zhí)行智能合約應用程序。智能合約應用程序由以太坊虛擬機執(zhí)行。以太坊提供2種類型的賬戶:用戶賬戶和智能合約賬戶。用戶帳戶不執(zhí)行任何代碼,此類型的帳戶只能通過使用其私鑰創(chuàng)建和簽署事務來向其他帳戶發(fā)送消息。智能合約帳戶始終執(zhí)行事務調用的已部署的相應智能合約中定義的任何方法的代碼。以太坊智能合約是用Solidity語言編寫的,合約的代碼被編譯成字節(jié)碼,然后部署到以太坊虛擬機。
2.1物聯網面臨的挑戰(zhàn)
物聯網及其中間件面臨的挑戰(zhàn)涉及動態(tài)異構資源發(fā)現和組合、可擴展性、可靠性、互操作性、安全性和隱私[3-4]。
資源發(fā)現:物聯網基礎設施的性質使集中式資源注冊和發(fā)現方法無效。如果物聯網應用程序中存在大量服務發(fā)現查詢,則可能會出現問題。
資源管理:共享資源的物聯網應用程序中可能會發(fā)生資源沖突。解決沖突需要解決多個并發(fā)服務或應用程序之間的資源分配沖突。
可擴展性:大多數現有的物聯網中間件都以無線傳感器網絡(WSN)為中心,其網絡級可擴展性也受到WSN的限制。在物聯網的超大規(guī)模網絡中,它們很有可能表現不佳。
可靠性:為了實現物聯網中間件的可靠性,中間件的每個組件或服務都需要易于更換。
互操作性:盡管大多數現有中間件都支持網絡互操作性,但也有一些中間件缺乏對語義和語法互操作性的支持。本體論缺乏標準,這給物聯網帶來了巨大挑戰(zhàn)。
安全和隱私:盡管物聯網中使用的所有技術中的所有安全、隱私和信任問題在物聯網環(huán)境中都有明確的體現,但它們并不十分完整。
2.2區(qū)塊鏈面臨的挑戰(zhàn)
區(qū)塊鏈技術解決了部分已經提到的物聯網挑戰(zhàn)。在這種情況下,需要了解區(qū)塊鏈挑戰(zhàn)。
存儲容量和可伸縮性:存儲容量和可伸縮性已在區(qū)塊鏈中得到深入研究。在這項技術中,以比特幣為例,鏈總是高速增長,并且在網絡中的節(jié)點之間存儲副本。雖然只有完整的節(jié)點存儲完整的鏈,但存儲需求非常重要。隨著規(guī)模的增長,節(jié)點需要越來越多的資源,從而降低了系統(tǒng)的容量規(guī)模。
安全性:此挑戰(zhàn)要求了解一些最常見的攻擊,例如51%攻擊或多數攻擊,即如果區(qū)塊鏈參與者能夠控制超過51%的采礦權,則可能發(fā)生這種攻擊。
匿名性和數據隱私:在公共區(qū)塊鏈中,分類賬是公開的。然而,區(qū)塊鏈網絡中的所有交易對所有人都是公開可見的。從隱私角度來看,這是一個很大的問題。
需要考慮與物聯網交互有關的另一個方面,即底層物聯網基礎設施之間的通信[5-6]。在集成區(qū)塊鏈時,需要確定將在何處發(fā)生交互:在物聯網內部、通過區(qū)塊鏈或涉及物聯網和區(qū)塊鏈的混合設計,區(qū)塊鏈與物聯網集成如圖1所示。
物聯網-物聯網:這種方法在延遲和安全性方面可能是最快的,因為它可以脫機工作。物聯網設備必須能夠相互通信,通常涉及路由機制。只有一部分物聯網數據存儲在區(qū)塊鏈中,而物聯網交互在不使用區(qū)塊鏈的情況下發(fā)生,如圖1(a)所示。這種方法在具有可靠物聯網數據的場景中非常有用,因為物聯網交互的延遲降低。
物聯網-區(qū)塊鏈:在這種方法中,所有交互都通過區(qū)塊鏈進行,從而實現交互記錄的不可變。這種方法確保所有選擇的交互都是可追蹤的,因為它們的詳細信息可以在區(qū)塊鏈中查詢,而且增加了物聯網設備的自主性。打算交易或租賃的物聯網應用程序可以利用這種方法提供服務。然而,記錄區(qū)塊鏈中的所有交互將導致帶寬和數據的增加,這是區(qū)塊鏈中眾所周知的挑戰(zhàn)之一,如圖1(b)所示。另一方面,與這些交易相關的所有物聯網數據也應存儲在區(qū)塊鏈中。
混合方式:混合設計中只有部分交互和數據發(fā)生在區(qū)塊鏈中,其余部分在物聯網設備之間直接共享。這種方法的挑戰(zhàn)之一是選擇哪些交互通過區(qū)塊鏈,并提供在運行時決定這一點的方法。這種方法的完美協調將是集成這2種技術的最佳方式,因為它利用了區(qū)塊鏈的優(yōu)勢和實時物聯網交互的優(yōu)勢。如圖1(c)所示,在這種方法中,霧計算甚至云計算都可以發(fā)揮作用,以補充區(qū)塊鏈和物聯網的局限性。
實現基于物聯網的智能家庭網絡,使用并集成物聯網和區(qū)塊鏈技術,利用“物聯網-物聯網”方法集成這2種技術,提出了一種智慧家庭體系結構,智能合約執(zhí)行如圖2所示,其中每個智慧家庭通過控制網關管理自己的專用傳感器網絡,它可以共享來自該內部網絡的數據,并通過部署在區(qū)塊鏈網絡內的智能合約提供對執(zhí)行機構的訪問。用戶或網絡提供商可以連接到相應的智慧家庭,并與提供的智能合約交換數據。區(qū)塊鏈網絡內的每個參與者都需要創(chuàng)建用于發(fā)送數據的交易。每個事務都使用非對稱安全算法進行數字簽名和加密。這一優(yōu)勢提供了用戶、網絡提供商與家庭網絡之間的安全連接。另一方面,交易記錄保存在分類賬簿中,并且共享數據也保存在同一位置可用于進一步分析。
智能合約提供了統(tǒng)一的接口,提高了智慧家庭與網絡提供商和用戶的互操作性。使用區(qū)塊鏈網絡,網絡提供商不需要在每個家庭安裝自己的智能電表,也不需要提供自己的安全基礎設施。智慧家庭可以將傳感器數據和執(zhí)行器狀態(tài)共享到自己的智能合約中。網絡提供商可以連接到同一智能合約以提取數據。智能合約還可以用作第三方軟件,供消費者通過互聯網安全連接到家庭中。
在區(qū)塊鏈網絡中,發(fā)起智能合約交易的參與者為智能合約的執(zhí)行支付天然氣費用。為了減少控制網關調用智能合同的天然氣付款數量,可以使用2種方法:在第1種方法中,如果傳感器數據發(fā)生任何變化,控制網關可以將所有數據的交易發(fā)送到區(qū)塊鏈網絡內的智能合約;在第2種方法中,消費者或網絡提供商可以發(fā)起請求傳感器數據的事務??刂凭W關從傳感器和執(zhí)行器提取所有數據,并創(chuàng)建一個事務以將這些數據發(fā)送到區(qū)塊鏈網絡。
專用家庭網絡基于2種網關體系結構:家庭內部每個設備的網關(設備網關)和單個控制網關,通過與以太坊區(qū)塊鏈網絡上部署的智能合約交換數據,提供與外部世界的連接。每個設備網關可以包含傳感器和執(zhí)行器,使用MQTT協議與控制網關通信。控制網關充當MQTT代理,并為其傳感器和執(zhí)行器的每個設備網關提供特定主題。在試驗實現中,設備網關由無線物聯網模塊ESP8266通過I2C接口連接TCN75A溫度傳感器實現。該平臺還提供WiFi網絡接口,用于連接控制網關,并發(fā)送特定主題的溫度數據。為了實現控制網關,使用了Olinuxino A20。它具有雙核A20處理器,1 GB的RAM和以太網接口,用于連接到Internet。控制網關已安裝go ethereum(geth)客戶端以連接區(qū)塊鏈,并安裝MQTT實現以充當MQTT代理。Olinixuno A20平臺從特定主題(例如溫度主題)提取數據,并通過JSON-RPC將這些數據發(fā)送到以太坊Ropsten測試區(qū)塊鏈網絡內的智能合約。
基于區(qū)塊鏈的智慧家庭內部網絡的構建,涵蓋了各種計算能力有限的設備,降低了通信成本。區(qū)塊鏈與MQTT結合降低了控制網關,維護大量協議與內外部的網絡通信,以及使用數據庫來存儲傳感器數據,為進一步分析提供條件。使用智能合約提供了統(tǒng)一的接口,也可以用作分布式計算。區(qū)塊鏈集成與智能合約功能相結合,有助于房屋與外部通信的安全性和互操作性。
參考文獻
[1]殷婷.賦能智能家居新體驗:區(qū)塊鏈能帶來什么?[J].機電信息,2019,(34):16.
[2]蔡曉晴,鄧堯,張亮,等.區(qū)塊鏈原理及其核心技術[J].計算機學報,2021,44(1):84-131.
[3]黃倩怡,李志洋,謝文濤,等.智能家居中的邊緣計算[J].計算機研究與發(fā)展,2020,57(9):1800-1809.
[4]王基策,李意蓮,賈巖,等.智能家居安全綜述[J].計算機研究與發(fā)展,2018,55(10):2111-2124.
[5]葉欣宇,李萌,趙鋮澤,等.區(qū)塊鏈技術應用于物聯網:發(fā)展與展望[J].高技術通訊,2021,31(1):48-63.
[6]宋鵬程,沈寓實,李昂達.基于區(qū)塊鏈技術的可信任設備及其在物聯網中的應用[J].中國科技信息,2018,(18):101-103.