(南京郵電大學(xué) 江蘇 210003)
物聯(lián)網(wǎng)是繼計算機、互聯(lián)網(wǎng)與移動通信網(wǎng)之后信息產(chǎn)業(yè)的第三次浪潮,被視為第四次工業(yè)革命的核心支撐。物聯(lián)網(wǎng)層次結(jié)構(gòu)自底向上可分為3 層:感知層、網(wǎng)絡(luò)層和應(yīng)用層。感知層主要負責(zé)數(shù)據(jù)采集;網(wǎng)絡(luò)層利用無線或有線的網(wǎng)絡(luò)將來自感知層的各類數(shù)據(jù)信息進行組網(wǎng)傳輸匯聚;應(yīng)用層作為結(jié)構(gòu)模型的頂層,通過云計算平臺等對所獲得的數(shù)據(jù)進行處理,為用戶提供基于數(shù)據(jù)的應(yīng)用。引入?yún)^(qū)塊鏈技術(shù)后,設(shè)計出了可信物聯(lián)網(wǎng)架構(gòu)。
圖1 可信物聯(lián)網(wǎng)架構(gòu)
從這個頂層架構(gòu)中,第一層是資產(chǎn)層,用戶的設(shè)備將與物理資產(chǎn)相連,用戶的物理資產(chǎn)狀態(tài)數(shù)據(jù)會被發(fā)送到云后端,也就是第二層,云后端將托管所有必要的安全服務(wù)和其他服務(wù),管理用戶的物聯(lián)網(wǎng)解決方案,第三層是區(qū)塊鏈層,用來存儲不同類型的應(yīng)用程序的資產(chǎn)相關(guān)的數(shù)據(jù),一個混合架構(gòu)將云和區(qū)塊鏈共同組成一個非常強大的后端以支持物聯(lián)網(wǎng)應(yīng)用程序,將區(qū)塊鏈整合到物聯(lián)網(wǎng)生態(tài)系統(tǒng)。涵蓋了大量的物聯(lián)網(wǎng)應(yīng)用程序和用例,第一種是從資產(chǎn)到物聯(lián)網(wǎng)云,再到區(qū)塊鏈,這是企業(yè)和工業(yè)物聯(lián)網(wǎng)應(yīng)用中非常流行并且典型的集成模式,第二種模式更側(cè)重于低功耗的物聯(lián)網(wǎng)設(shè)備,需要通過物聯(lián)網(wǎng)網(wǎng)關(guān)或fog節(jié)點到達后端,此外,一些集成模式更注重于考慮未來的計算范式,如邊緣計算和fog 計算。
物聯(lián)網(wǎng)中的設(shè)備層是接入層,為保證物聯(lián)網(wǎng)中的設(shè)備之間可以實現(xiàn)安全的數(shù)據(jù)交流,在信息發(fā)送到這些平臺之前,能夠通過物聯(lián)網(wǎng)網(wǎng)關(guān)來改善物聯(lián)網(wǎng)數(shù)據(jù)的隱私保護。因此,需要物聯(lián)網(wǎng)網(wǎng)關(guān)更好的控制私有物聯(lián)網(wǎng)資源集,保護收集的個人數(shù)據(jù)及其隱私。為此,我們提出通過物聯(lián)網(wǎng)網(wǎng)關(guān)節(jié)點,來實現(xiàn)物聯(lián)網(wǎng)聯(lián)合區(qū)塊鏈領(lǐng)域動態(tài)、靈活的隱私保護解決方案。
網(wǎng)關(guān)節(jié)點可以是網(wǎng)關(guān)、存儲或公共節(jié)點。這些節(jié)點需要高內(nèi)存和存儲能力來存儲公共區(qū)塊鏈。每個物聯(lián)網(wǎng)網(wǎng)絡(luò)節(jié)點都有一對唯一的公鑰和私鑰。公鑰是物聯(lián)網(wǎng)中的其他公共節(jié)點網(wǎng)絡(luò)中公開的,作為一個獨特的通信節(jié)點的標識符,發(fā)送/接收事務(wù)的公共物聯(lián)網(wǎng)網(wǎng)絡(luò)中的其他節(jié)點。私鑰是保密的,用于簽署交易之前發(fā)送它們產(chǎn)生的簽名。
隨著越來越多的物聯(lián)網(wǎng)設(shè)備接入物聯(lián)網(wǎng),分布式網(wǎng)絡(luò)中互不信任節(jié)點間需要建立共識的規(guī)則與方法。在各種公鏈不斷介入的同時,跨鏈資產(chǎn)之間的交易需求也是日益增長。此前區(qū)塊鏈間呈現(xiàn)出來的是孤島效應(yīng),價值無法自由快速流通,生態(tài)無法快速對接,體系無法增長。
開放聯(lián)盟網(wǎng)關(guān)協(xié)議OFGP(Open Federated Gateway Protocol 簡稱“OFGP”)是iBitcome 錢包聯(lián)合去中心化交易所DEx.top 開發(fā)的一個開源的網(wǎng)關(guān)協(xié)議。開放聯(lián)盟網(wǎng)關(guān)協(xié)議OFGP 是一個通用的去中心化網(wǎng)關(guān)系統(tǒng),可以完成公有鏈上的資產(chǎn)抵押認證,將價值傳遞到側(cè)鏈,依托側(cè)鏈所具備的高性能及能夠支持復(fù)雜場景應(yīng)用的特性。
不同區(qū)塊鏈間的交互過程中,會出現(xiàn)跨鏈用戶的作惡情況,如何降低或杜絕跨鏈用戶的作惡情況值得深思。同時拜占庭容錯包含的側(cè)鏈節(jié)點之間的信任問題,在出現(xiàn)少數(shù)節(jié)點作惡的情況下依然能夠保證整條側(cè)鏈的安全。當(dāng)出現(xiàn)普通跨鏈用戶增多,節(jié)點數(shù)量無法滿足需求,用戶通過向中間人提交信息,中間人再將信息傳遞至節(jié)點。
基于OFGP 協(xié)議,其開放的聯(lián)盟網(wǎng)關(guān)協(xié)議,任何機構(gòu)或者組織都可以通過開源代碼部署自己的網(wǎng)關(guān)聯(lián)盟,完成主鏈上的數(shù)字化資質(zhì)以及信用審查認證,將該信息傳遞到側(cè)鏈,實現(xiàn)跨鏈的系統(tǒng)管理交互,解決了不同區(qū)塊鏈之間的拓展問題,實現(xiàn)多個公有鏈孤島的信息交互。
網(wǎng)絡(luò)層作為OFGP 基礎(chǔ)部分,每個賬本形成獨立的一個側(cè)鏈,成為鏈1 到鏈n。每個鏈與鏈之間相應(yīng)的形成每個節(jié)點,會生成帶節(jié)點多簽地址,具有多簽密鑰的安全管理。每個節(jié)點作為OFGP 協(xié)議軟件程序的運行節(jié)點,承擔(dān)數(shù)據(jù)驗證,維護節(jié)點的責(zé)任;main 鏈是具有獨立區(qū)塊數(shù)據(jù),共識協(xié)議的公共區(qū)塊鏈系統(tǒng),OFGP 協(xié)議承擔(dān)著連接各個公鏈的責(zé)任。
共識層作為各條公鏈信息交互以及維護節(jié)點間需要遵守的協(xié)議,維護著整個OFGP 協(xié)議系統(tǒng)信息安全傳遞及穩(wěn)定運行。各個節(jié)點依托權(quán)益算法,達到拜占庭容錯的目的;跨鏈協(xié)議包括監(jiān)聽,信息傳遞,合約注冊,權(quán)限管理等多事務(wù)。數(shù)字化的信用機制通過共識流程,將節(jié)點動態(tài)加入退出機制,使得在跨鏈運算時,主/側(cè)鏈進行同時監(jiān)聽,各個區(qū)塊鏈之間的信息得以交互,通過交易簽名,將簽名信息傳遞,通過交易廣播、驗證,主/側(cè)鏈之間得到響應(yīng),最終形成穩(wěn)定數(shù)據(jù)庫。
多重簽名技術(shù)通過多個用戶同時對一個數(shù)字資產(chǎn)進行簽名,一個數(shù)字資產(chǎn)賬戶多個人擁有簽名權(quán)和支付權(quán)。私鑰管理方案分為三大部分,密鑰存儲服務(wù),密鑰管理服務(wù),私鑰代理服務(wù)。OFGP 的多簽名流程實現(xiàn)復(fù)雜,保障了在私鑰安全的情況下完成簽名,加強了多簽地址中資產(chǎn)的安全性。
基于OFGP 跨鏈技術(shù)權(quán)益算法,支持拜占庭容錯,在不超過(n-1)/3 個節(jié)點(節(jié)點總數(shù)為n,n>=4)出現(xiàn)異常的情況下可以正常運行。協(xié)議保證在正常運行時區(qū)塊鏈不會出現(xiàn)暫時或永久的分叉,一次確認即為可靠確認。且交易確認速度可以達到秒級,節(jié)點運營方均為實名,并且有嚴格的增刪節(jié)點機制,以保證網(wǎng)絡(luò)質(zhì)量以及異常情況可追責(zé)。
Main 鏈數(shù)最少為3 個,且需要滿足2f+1(f >0,且為整數(shù))的限制,惡意節(jié)點數(shù)小于等于f 時,網(wǎng)絡(luò)可以正常運行;當(dāng)需要有新的數(shù)據(jù)寫入?yún)^(qū)塊時必須有超過2f+1 個節(jié)點的驗證同意。Side 鏈分為Leader,Candidate,F(xiàn)ollower。服務(wù)器節(jié)點處于三種狀態(tài)之一,正常狀態(tài)下只有一個服務(wù)器作為Leader,剩下的節(jié)點都可以被定義為Follower,Candidate 從Follower 中產(chǎn)生,Candidate 作為一個狀態(tài),在正常運行沒有出現(xiàn)選舉的情況下節(jié)點中不會產(chǎn)生Candidate,且Candidate 過程非常短暫。Leader 負責(zé)打包區(qū)塊并廣播給所有的Follower,F(xiàn)ollower 負責(zé)對打包區(qū)塊進行驗證。
區(qū)塊鏈技術(shù)實現(xiàn)之后,智能合約才真正得到實踐。智能合約以代碼為依據(jù),從構(gòu)建到存儲再到最后的執(zhí)行都在區(qū)塊鏈上被所有節(jié)點共同監(jiān)督,實現(xiàn)了高度自治的邏輯閉環(huán)。智能合約系統(tǒng)會定期進行自動機狀態(tài)檢查,定時檢查是否已經(jīng)發(fā)生相關(guān)事件,產(chǎn)生了合約執(zhí)行的觸發(fā)條件。如果滿足觸發(fā)條件,經(jīng)過節(jié)點驗證后達成共識后,智能合約系統(tǒng)會自動執(zhí)行合約內(nèi)容并通知用戶?;趨^(qū)塊鏈的智能合約構(gòu)建及執(zhí)行包括如下幾個方面。
注冊成為區(qū)塊鏈用戶,區(qū)塊鏈返回給用戶一對公鑰和私鑰;多個用戶根據(jù)需要共同商定一份承諾,承諾中包含了各方的權(quán)利和義務(wù),智能合約語言會將權(quán)利和義務(wù)數(shù)字化,并編譯成字節(jié)碼。將簽名后的智能合約發(fā)送到區(qū)塊鏈網(wǎng)絡(luò)。
智能合約通過P2P 的方式在區(qū)塊鏈全網(wǎng)中擴散,區(qū)塊鏈中驗證節(jié)點會將收到的智能合約先保存在內(nèi)存中,等待新一輪的共識時間,觸發(fā)對該份智能合約的共識和處理。共識時間到了,驗證節(jié)點會集中最近一段時間內(nèi)保存的所有智能合約,并算出這個智能合約集合的哈希值,將這個智能合約集合的哈希值組裝成一個區(qū)塊結(jié)構(gòu),擴散到全網(wǎng),比較哈希值。最新達成的合約集合會以區(qū)塊的形式擴散到全網(wǎng),如下圖所示,每個區(qū)塊包含以下信息:當(dāng)前區(qū)塊的哈希值、前一區(qū)塊的哈希值、達成共識時間的時間戳,以及其他描述信息。
智能合約會定期檢查自動機狀態(tài),逐條遍歷每個智能合約內(nèi)包含的狀態(tài)機、事務(wù)以及觸發(fā)條件;將條件滿足的事務(wù)推送到待驗證的隊列中,等待共識;未滿足觸發(fā)條件的事務(wù)將繼續(xù)存放在區(qū)塊鏈上。進入最新一輪驗證的事務(wù),會擴散到每一個驗證節(jié)點,驗證節(jié)點首先進行簽名驗證,確保事務(wù)的有效性;驗證通過的事務(wù)會進入待共識集合,等驗證節(jié)點達成共識后,事務(wù)會成功執(zhí)行并通知用戶。
圖2 合約區(qū)塊鏈
區(qū)塊鏈智能合約可以在不同的物聯(lián)網(wǎng)進程之間建立信任,降低系統(tǒng)成本,在圖中看到,通過區(qū)塊鏈技術(shù)和智能合約,我們可以構(gòu)建可信的物聯(lián)網(wǎng)系統(tǒng),以支持不同領(lǐng)域的物聯(lián)網(wǎng)大規(guī)模應(yīng)用。同時,基于區(qū)塊鏈的可信物聯(lián)網(wǎng)安全模型有效解決數(shù)據(jù)隱私安全問題、中心服務(wù)器單點故障問題等,以此來構(gòu)建數(shù)據(jù)安全的生態(tài)系統(tǒng)。