劉 江,沈蘇彬
(1.南京郵電大學(xué) 物聯(lián)網(wǎng)學(xué)院,江蘇 南京 210046;2.南京郵電大學(xué) 通信與網(wǎng)絡(luò)技術(shù)國(guó)家工程研究中心,江蘇 南京 210046)
自1950年以來(lái),全球人口的快速增長(zhǎng)造成嚴(yán)重的環(huán)境問(wèn)題[1]。雖然環(huán)保組織面對(duì)環(huán)境惡化問(wèn)題,不斷健全環(huán)保措施,為保護(hù)環(huán)境做出巨大的貢獻(xiàn),但是仍然需要更加具有應(yīng)用價(jià)值的環(huán)境監(jiān)測(cè)管理的解決方案,建立更加全面的環(huán)境監(jiān)測(cè)的管理機(jī)制,以促進(jìn)改善環(huán)境污染。
目前,地方環(huán)境機(jī)構(gòu)負(fù)責(zé)管理運(yùn)作當(dāng)?shù)氐谋O(jiān)測(cè)系統(tǒng)并承擔(dān)環(huán)境保護(hù)的大部分責(zé)任,地方機(jī)構(gòu)會(huì)實(shí)施環(huán)境監(jiān)測(cè),通過(guò)對(duì)環(huán)境數(shù)據(jù)合理的分析制定相關(guān)的策略[2]。但是,這種由地方主管部門(mén)維護(hù)和運(yùn)營(yíng)的中心化管理方式,導(dǎo)致環(huán)境監(jiān)測(cè)數(shù)據(jù)的采集、存儲(chǔ)、使用對(duì)外界缺乏透明度,外界并不知道監(jiān)測(cè)數(shù)據(jù)的真實(shí)性、完整性[3],不同部門(mén)間協(xié)同工作困難。因此,缺乏透明度的中心化的環(huán)境監(jiān)管產(chǎn)生的環(huán)境監(jiān)測(cè)數(shù)據(jù)脆弱、易篡改,影響監(jiān)測(cè)數(shù)據(jù)的可信度,可能導(dǎo)致分析員對(duì)環(huán)境污染做出不正確的評(píng)估[4]。針對(duì)此問(wèn)題,區(qū)塊鏈[5]的去中心化[6]、去信任化、不可偽造[7]、數(shù)據(jù)透明[8]等特點(diǎn)為該文解決環(huán)境監(jiān)測(cè)的管理問(wèn)題提供了解決方案。增加環(huán)境監(jiān)測(cè)數(shù)據(jù)管理的透明度,保證環(huán)境監(jiān)測(cè)數(shù)據(jù)的可信。
該文對(duì)現(xiàn)有環(huán)境監(jiān)測(cè)的區(qū)塊鏈應(yīng)用技術(shù)方案進(jìn)行了分析,做了以下具有創(chuàng)新性的研究工作:
(1)由于區(qū)塊鏈應(yīng)用更多涉及數(shù)據(jù)的存儲(chǔ)和使用,導(dǎo)致環(huán)境監(jiān)測(cè)的區(qū)塊鏈應(yīng)用將區(qū)塊鏈作為一類數(shù)據(jù)庫(kù)使用,忽略區(qū)塊鏈具有密碼、安全等相關(guān)的技術(shù)特征,無(wú)法保證數(shù)據(jù)源上鏈的真實(shí)性。該文將區(qū)塊鏈應(yīng)用于環(huán)境監(jiān)測(cè)的信任管理,在保證環(huán)境數(shù)據(jù)共享、透明、不可篡改、可追溯的前提下,提出環(huán)境監(jiān)測(cè)數(shù)據(jù)源的真實(shí)性驗(yàn)證機(jī)制,保證監(jiān)測(cè)數(shù)據(jù)源的真實(shí)性。此外,目前基于區(qū)塊鏈的環(huán)境監(jiān)測(cè)的研究,僅僅關(guān)注環(huán)境相關(guān)數(shù)據(jù)上鏈存儲(chǔ),往往忽略采集設(shè)施的監(jiān)管。該文提出將采集設(shè)備的運(yùn)行狀態(tài)信息(如電量狀態(tài)、開(kāi)關(guān)狀態(tài))一同上鏈存儲(chǔ),提高非現(xiàn)場(chǎng)監(jiān)管效率,增強(qiáng)監(jiān)測(cè)結(jié)果的可信程度。
(2)環(huán)境數(shù)據(jù)是海量的,不及時(shí)的處理往往造成數(shù)據(jù)的堆積甚至丟失,另外部分不合格的環(huán)境狀況需要實(shí)時(shí)的應(yīng)對(duì),尤其是污染源存在急性危害的情況,所以環(huán)境問(wèn)題需要得到高效的處理。為了保證管理效率,通過(guò)對(duì)現(xiàn)有的共識(shí)機(jī)制進(jìn)行研究對(duì)比,從理論上選用實(shí)用拜占庭容錯(cuò) (Practical Byzantine Fault Tolerance,PBFT) 機(jī)制進(jìn)行鏈的構(gòu)建與更新。但是目前相關(guān)的研究比較少,此外,在環(huán)境監(jiān)測(cè)這種網(wǎng)絡(luò)規(guī)模應(yīng)用中,節(jié)點(diǎn)數(shù)量過(guò)多導(dǎo)致PBFT共識(shí)算法通信開(kāi)銷過(guò)大、延遲高。針對(duì)此問(wèn)題,該文提出基于位置分組的實(shí)用拜占庭容錯(cuò)(Practical Byzantine Fault Tolerance based on Location Grouping,LG-PBFT)共識(shí)算法,通過(guò)組內(nèi)組間兩層共識(shí)結(jié)構(gòu)分解共識(shí)任務(wù),提高通信效率。
(3)通過(guò)以上的研究結(jié)果,借助以太坊平臺(tái)及其智能合約技術(shù),構(gòu)建仿真實(shí)驗(yàn)的方案。通過(guò)現(xiàn)有的實(shí)驗(yàn)平臺(tái)模擬數(shù)據(jù)上鏈,仿真實(shí)驗(yàn)證明了取得的技術(shù)研究結(jié)論的有效性和實(shí)用性。同時(shí),從通信開(kāi)銷、容錯(cuò)能力等方面分析驗(yàn)證LG-PBFT的優(yōu)越性。
傳統(tǒng)的環(huán)境監(jiān)測(cè)系統(tǒng)仍然采用關(guān)系數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)監(jiān)測(cè)數(shù)據(jù),然而這種數(shù)據(jù)集中控制的方式造成數(shù)據(jù)的管理缺乏透明度[9]。雖然有關(guān)學(xué)者已經(jīng)使用大數(shù)據(jù)以及云存儲(chǔ)技術(shù)來(lái)改進(jìn)監(jiān)控和存儲(chǔ)方法[10],但是數(shù)據(jù)被篡改的問(wèn)題仍未解決。文獻(xiàn)[11-13]提出區(qū)塊鏈技術(shù)如何用于環(huán)境管理,并論述了區(qū)塊鏈應(yīng)用有助于解決全世界關(guān)注的環(huán)境問(wèn)題。
EMChain[9]創(chuàng)造讓用戶與用戶、用戶與CP直接對(duì)接結(jié)算的生態(tài)圈。EMChain利用區(qū)塊鏈的防偽、防篡改特性,記錄每一筆交易和用戶點(diǎn)擊,使各行業(yè)的環(huán)境監(jiān)測(cè)系統(tǒng)行業(yè)上下游鏈條透明、高效。但是,其無(wú)法保證環(huán)境數(shù)據(jù)源上鏈的真實(shí)性。文獻(xiàn)[14]提出一種環(huán)境監(jiān)測(cè)數(shù)據(jù)傳輸方案,利用智能合約對(duì)環(huán)境監(jiān)測(cè)數(shù)據(jù)實(shí)時(shí)分析并對(duì)外發(fā)布結(jié)果。其中,將區(qū)塊鏈作為一類數(shù)據(jù)庫(kù)使用,缺乏對(duì)區(qū)塊鏈特有的技術(shù)特征的討論。文獻(xiàn)[15]將區(qū)塊鏈引入工業(yè)領(lǐng)域,結(jié)合區(qū)塊鏈和物聯(lián)網(wǎng)兩大關(guān)鍵技術(shù),不僅提高了效率、透明度和可視性,還提供了新的商業(yè)機(jī)會(huì),為工業(yè)領(lǐng)域帶來(lái)商業(yè)價(jià)值。其未考慮物聯(lián)網(wǎng)設(shè)備在區(qū)塊鏈應(yīng)用中存在的計(jì)算和存儲(chǔ)能力的局限性。文獻(xiàn)[16]通過(guò)使用基于私有區(qū)塊鏈的安全訪問(wèn)控制進(jìn)行農(nóng)業(yè)環(huán)境監(jiān)控,為環(huán)境監(jiān)測(cè)管理提供一種新穎的遠(yuǎn)程用戶身份驗(yàn)證方案。該方案通過(guò)私有區(qū)塊鏈訪問(wèn)控制算法授權(quán),并使用超級(jí)賬本進(jìn)行應(yīng)用。此外,方案中使用PBFT共識(shí)算法完成共識(shí),但是并未考慮在參與方過(guò)多的情況下開(kāi)銷過(guò)大的問(wèn)題。文獻(xiàn)[17]利用區(qū)塊鏈技術(shù)建立水質(zhì)信息系統(tǒng),將關(guān)鍵的水質(zhì)信息上傳至區(qū)塊鏈,實(shí)現(xiàn)鏈上的信息存取。其中,上鏈的信息不包括設(shè)備本身的狀態(tài),本方案認(rèn)為設(shè)備的狀態(tài)信息是提高非現(xiàn)場(chǎng)監(jiān)管的關(guān)鍵信息之一。
該文在第2章提出了基于區(qū)塊鏈去中心化環(huán)境監(jiān)測(cè)的可信管理解決方案,方案中明確區(qū)塊鏈應(yīng)用于環(huán)境監(jiān)測(cè)管理存在的一些困難和挑戰(zhàn),即如何保證環(huán)境監(jiān)測(cè)數(shù)據(jù)源的真實(shí)性以及如何管理監(jiān)測(cè)數(shù)據(jù)等相關(guān)技術(shù)問(wèn)題需要進(jìn)一步解決,研究?jī)?nèi)容如下:
首先,如何界定基于區(qū)塊鏈的環(huán)境監(jiān)測(cè)的信任管理的操作方與參與方。信任操作對(duì)應(yīng)比特幣系統(tǒng)中的“交易”,在環(huán)境監(jiān)測(cè)的應(yīng)用場(chǎng)景中,將“環(huán)境監(jiān)測(cè)數(shù)據(jù)的采集、存儲(chǔ)”作為可信管理的信任操作,需要研究定義其數(shù)據(jù)結(jié)構(gòu)以及處理過(guò)程。
其次,如何構(gòu)建區(qū)塊。參照比特幣中塊的構(gòu)建與形成對(duì)環(huán)境數(shù)據(jù)塊進(jìn)行構(gòu)建。而區(qū)塊的構(gòu)建與形成涉及監(jiān)測(cè)數(shù)據(jù)執(zhí)行方身份的真實(shí)性驗(yàn)證和數(shù)據(jù)的完整性驗(yàn)證,所以監(jiān)測(cè)數(shù)據(jù)塊中包含數(shù)據(jù)源所有者和完整性驗(yàn)證相關(guān)數(shù)據(jù)項(xiàng),以此實(shí)現(xiàn)對(duì)環(huán)境數(shù)據(jù)的可信管理。
最后,如何通過(guò)形成的區(qū)塊完成鏈的構(gòu)建。雖然鏈結(jié)構(gòu)可以依據(jù)比特幣系統(tǒng),但是基于專有鏈的環(huán)境監(jiān)測(cè)的可信管理利用工作量證明機(jī)制這類強(qiáng)共識(shí)算法進(jìn)行鏈的構(gòu)建與更新,無(wú)法及時(shí)高效地處理數(shù)據(jù),因此,為了保證應(yīng)用效率,通過(guò)對(duì)現(xiàn)有的共識(shí)機(jī)制進(jìn)行研究對(duì)比,選擇合適的共識(shí)機(jī)制完成鏈的構(gòu)造與更新。
本章的研究?jī)?nèi)容是根據(jù)前文需要解決的理論和技術(shù)問(wèn)題,提出基于區(qū)塊鏈環(huán)境監(jiān)測(cè)的可信管理方法,分析環(huán)境監(jiān)測(cè)應(yīng)用場(chǎng)景下的需求,對(duì)環(huán)境監(jiān)測(cè)管理的總體框架、功能、流程等進(jìn)行研究設(shè)計(jì),實(shí)現(xiàn)環(huán)境監(jiān)測(cè)數(shù)據(jù)的可信管理。
區(qū)塊鏈的去中心化、開(kāi)放、防篡改特性是實(shí)現(xiàn)物聯(lián)網(wǎng)設(shè)備采集的環(huán)境監(jiān)測(cè)數(shù)據(jù)真實(shí)性和有效性的關(guān)鍵,其去中心化的驗(yàn)證為采集數(shù)據(jù)的可信管理提供了有效保證。該文明確環(huán)境監(jiān)測(cè)可信管理的對(duì)象是監(jiān)測(cè)數(shù)據(jù),需要對(duì)監(jiān)測(cè)數(shù)據(jù)進(jìn)行采集、存儲(chǔ)、訪問(wèn)。
采集方主要指環(huán)境監(jiān)測(cè)設(shè)備,它負(fù)責(zé)獲取環(huán)境監(jiān)測(cè)數(shù)據(jù)并上傳,主要對(duì)水、空氣等污染源進(jìn)行監(jiān)測(cè),保證環(huán)境數(shù)據(jù)是所在監(jiān)測(cè)點(diǎn)的監(jiān)測(cè)數(shù)據(jù)。監(jiān)管方主要指環(huán)境管理中涉及的相關(guān)方,例如環(huán)境監(jiān)管方、第三方運(yùn)維機(jī)構(gòu)、司法機(jī)構(gòu)等等,共同參與環(huán)境監(jiān)測(cè)數(shù)據(jù)的正確性評(píng)估。它將區(qū)塊鏈去中心化的驗(yàn)證與存儲(chǔ)方式應(yīng)用于環(huán)境管理,負(fù)責(zé)收集環(huán)境監(jiān)測(cè)數(shù)據(jù)并進(jìn)行真實(shí)性驗(yàn)證,實(shí)現(xiàn)監(jiān)測(cè)數(shù)據(jù)共通共享。使用方指環(huán)境監(jiān)測(cè)數(shù)據(jù)的需求者,可以通過(guò)相關(guān)服務(wù)平臺(tái)訪問(wèn)監(jiān)測(cè)數(shù)據(jù),或是校驗(yàn)監(jiān)測(cè)數(shù)據(jù)。
本節(jié)研究一種基于區(qū)塊鏈的環(huán)境監(jiān)測(cè)的功能管理模型,研究環(huán)境監(jiān)測(cè)數(shù)據(jù)的采集方、監(jiān)管方、使用方之間的聯(lián)系和各自的職能,研究基于區(qū)塊鏈的環(huán)境監(jiān)測(cè)數(shù)據(jù)的可信采集、可信存儲(chǔ)、可信訪問(wèn)及其驗(yàn)證的功能結(jié)構(gòu)。如圖1所示,基于區(qū)塊鏈環(huán)境監(jiān)測(cè)可信管理的功能應(yīng)用結(jié)構(gòu)模塊分成兩類,一種是通過(guò)虛線表示的實(shí)體,主要包括采集方、監(jiān)管方、使用方等;另一種是實(shí)線表示的功能部件,這些功能部件包括:區(qū)塊鏈應(yīng)用控制、區(qū)塊鏈應(yīng)用監(jiān)管、網(wǎng)絡(luò)的創(chuàng)建、信任操作的驗(yàn)證、身份注冊(cè)、區(qū)塊鏈的構(gòu)造等。
該方案依據(jù)比特幣應(yīng)用系統(tǒng),構(gòu)建環(huán)境監(jiān)測(cè)的功能管理模型。在模型中,“采集方”通過(guò)“身份注冊(cè)”功能,獲得授權(quán)并發(fā)現(xiàn)網(wǎng)絡(luò)中存在的其他節(jié)點(diǎn),加入?yún)^(qū)塊鏈網(wǎng)絡(luò),成為網(wǎng)絡(luò)中可以被探查的應(yīng)用存在?!氨O(jiān)管方”作為系統(tǒng)的初始運(yùn)行節(jié)點(diǎn),自身具備可信的身份標(biāo)識(shí),并提供對(duì)采集方上傳環(huán)境監(jiān)測(cè)數(shù)據(jù)的驗(yàn)證操作。監(jiān)管方同時(shí)為“使用方”提供環(huán)境數(shù)據(jù)訪問(wèn)服務(wù),滿足使用方對(duì)環(huán)境監(jiān)測(cè)數(shù)據(jù)的需求。
圖1 功能模型示意圖
參與方通過(guò)“網(wǎng)絡(luò)的創(chuàng)建”功能發(fā)現(xiàn)其他參與方節(jié)點(diǎn)、連接對(duì)等網(wǎng)絡(luò)、獲得待驗(yàn)證的環(huán)境監(jiān)測(cè)數(shù)據(jù)、廣播已驗(yàn)證成功的區(qū)塊,這個(gè)功能對(duì)應(yīng)比特幣中對(duì)等節(jié)點(diǎn)網(wǎng)絡(luò)的建立。“信任操作的驗(yàn)證”功能指環(huán)境監(jiān)測(cè)數(shù)據(jù)的驗(yàn)證,通過(guò)采集方提供環(huán)境監(jiān)測(cè)數(shù)據(jù)結(jié)構(gòu)和約定的驗(yàn)證邏輯,實(shí)現(xiàn)環(huán)境數(shù)據(jù)的可信操作,這是區(qū)塊鏈構(gòu)建和更新的前提。監(jiān)管方通過(guò)去中心化的可信操作驗(yàn)證功能實(shí)現(xiàn)可信“交易”,完成“區(qū)塊鏈的構(gòu)造”的功能?!皡^(qū)塊鏈的構(gòu)造”的功能指環(huán)境監(jiān)測(cè)數(shù)據(jù)塊和鏈的形成與更新,參照比特幣系統(tǒng)的塊和鏈結(jié)構(gòu),進(jìn)行環(huán)境數(shù)據(jù)塊和鏈的結(jié)構(gòu)設(shè)計(jì),進(jìn)而選用共識(shí)機(jī)制完成鏈的構(gòu)建?!皡^(qū)塊鏈應(yīng)用控制”和“區(qū)塊鏈應(yīng)用監(jiān)管”保證環(huán)境監(jiān)測(cè)應(yīng)用服務(wù)可以被監(jiān)管,且不會(huì)違反隱私保護(hù)以及互聯(lián)網(wǎng)安全的法律法規(guī)。
通過(guò)Hash函數(shù)SHA-256實(shí)現(xiàn)數(shù)字簽名可以保證消息的完整性。節(jié)點(diǎn)在擁有來(lái)源于橢圓曲線加密算法公私鑰的前提下,使用Hash函數(shù)簽名并驗(yàn)證消息的完整性[13]。在環(huán)境監(jiān)測(cè)的應(yīng)用場(chǎng)景中,采集方摒棄中心化服務(wù)機(jī)構(gòu),提供可識(shí)別的環(huán)境監(jiān)測(cè)數(shù)據(jù)和身份,與此同時(shí)監(jiān)管方作為接收方需要驗(yàn)證監(jiān)測(cè)數(shù)據(jù)的真實(shí)性,也就是需要采集方提供證明,保證環(huán)境監(jiān)測(cè)數(shù)據(jù)是由數(shù)據(jù)持有方上傳的。采集方發(fā)送至區(qū)塊鏈的交易數(shù)據(jù)通過(guò)加密的方式,可以證明數(shù)據(jù)的出處,并且不會(huì)被篡改。為了保證采集方身份可信,該文設(shè)置只有經(jīng)過(guò)授權(quán)的采集設(shè)備才可以上鏈存儲(chǔ)數(shù)據(jù)。采集方在注冊(cè)身份時(shí)會(huì)擁有自己的公私鑰對(duì),將物聯(lián)網(wǎng)設(shè)備廠家的生產(chǎn)標(biāo)識(shí)和公鑰相互映射,由此作為參與方的唯一身份標(biāo)識(shí),將它保存在本地訪問(wèn)控制身份列表中,從而表明該設(shè)備已經(jīng)被授權(quán)。而私鑰由采集設(shè)備保存,不對(duì)外公布。本課題可以通過(guò)判斷采集設(shè)備的身份是否存在本地身份列表中,找到對(duì)應(yīng)的公鑰驗(yàn)證環(huán)境監(jiān)測(cè)數(shù)據(jù)的真實(shí)性。
環(huán)境數(shù)據(jù)采集方會(huì)遇到以下問(wèn)題,如修改設(shè)備參數(shù)、移動(dòng)設(shè)備采樣位置、更改設(shè)備工作狀態(tài)等。環(huán)境監(jiān)測(cè)數(shù)據(jù)除了包含一些常規(guī)的環(huán)境數(shù)據(jù),也可以將一些存在安全隱患且能夠獲取的數(shù)據(jù)參數(shù)一同打包上傳,實(shí)時(shí)了解設(shè)備工作狀態(tài),避免問(wèn)題的產(chǎn)生。因此,環(huán)境監(jiān)測(cè)數(shù)據(jù)結(jié)構(gòu)包括:采集設(shè)備的唯一虛擬身份標(biāo)識(shí)(DID)、采集設(shè)備的參數(shù)(PARA)、環(huán)境監(jiān)測(cè)數(shù)據(jù)結(jié)果(Info)、監(jiān)測(cè)位置(GPS)、時(shí)間戳(Timestamp)、采集方的數(shù)字簽名(sign)。
區(qū)塊鏈節(jié)點(diǎn)的基本功能是維護(hù)一個(gè)賬本,新的數(shù)據(jù)只能在賬本的末尾添加但不會(huì)立刻添加,待解決的數(shù)據(jù)會(huì)被定期組成一個(gè)塊。因此,采集方發(fā)送的監(jiān)測(cè)數(shù)據(jù)不會(huì)立刻上鏈,而是定期地組成區(qū)塊等待驗(yàn)證。如圖2所示,環(huán)境監(jiān)測(cè)數(shù)據(jù)通過(guò)監(jiān)管方的驗(yàn)證生成區(qū)塊上鏈,區(qū)塊包括父塊哈希、區(qū)塊高度、時(shí)間戳。塊n-1的加密哈希包括在塊n內(nèi),塊n的加密哈希包括在塊n+1內(nèi),意味著每個(gè)塊的內(nèi)容可以經(jīng)過(guò)一條哈希鏈有序地找到下一個(gè)區(qū)塊,并通過(guò)時(shí)間戳給區(qū)塊一個(gè)唯一標(biāo)識(shí),使它們的內(nèi)容是不可變的。在區(qū)塊生成過(guò)程中,Merkle根哈希值是環(huán)境監(jiān)測(cè)數(shù)據(jù)的哈希記錄通過(guò)Merkle樹(shù)的哈希過(guò)程產(chǎn)生的。隨著時(shí)間的流逝,帶有時(shí)間戳唯一憑證的區(qū)塊不斷生成,將會(huì)增強(qiáng)環(huán)境監(jiān)測(cè)數(shù)據(jù)鏈的安全。
圖2 塊和鏈結(jié)構(gòu)
環(huán)境監(jiān)測(cè)的區(qū)塊鏈應(yīng)用中,選擇適用于環(huán)境監(jiān)測(cè)的共識(shí)算法是完成環(huán)境數(shù)據(jù)區(qū)塊鏈的更新與構(gòu)建的前提。PBFT算法是Castro和Liskov[18]在1999年提出的,將對(duì)等網(wǎng)絡(luò)中的節(jié)點(diǎn)分為主節(jié)點(diǎn)和副節(jié)點(diǎn),主節(jié)點(diǎn)通過(guò)視圖編號(hào)和節(jié)點(diǎn)個(gè)數(shù)來(lái)確定。p=vmod|R|,v指視圖編號(hào),p指主節(jié)點(diǎn)號(hào),|R|指節(jié)點(diǎn)數(shù)??蛻舳素?fù)責(zé)發(fā)送共識(shí)請(qǐng)求消息,由主節(jié)點(diǎn)作為記賬節(jié)點(diǎn)生成環(huán)境監(jiān)測(cè)數(shù)據(jù)區(qū)塊發(fā)起共識(shí)。副節(jié)點(diǎn)負(fù)責(zé)驗(yàn)證主節(jié)點(diǎn)和其他副節(jié)點(diǎn)上傳的消息,并將最終的執(zhí)行結(jié)果返回客戶端。如表1所示,該文對(duì)以下共識(shí)算法進(jìn)行對(duì)比研究,如工作量證明(Proof of Work,PoW)算法、權(quán)益證明(Proof of Stake,PoS)算法、股份授權(quán)證明(Delegated Proof of Stake,DPoS)算法。
表1 共識(shí)算法對(duì)比
PBFT工作流程如圖3(a)所示。
(1)請(qǐng)求階段:客戶端上傳數(shù)據(jù),請(qǐng)求主節(jié)點(diǎn)發(fā)起共識(shí)。
(2)預(yù)準(zhǔn)備階段:對(duì)等網(wǎng)絡(luò)中每一個(gè)節(jié)點(diǎn)收到上傳的消息后繼續(xù)廣播,主節(jié)點(diǎn)收到共識(shí)請(qǐng)求后,為請(qǐng)求數(shù)據(jù)分配編號(hào),然后發(fā)出預(yù)準(zhǔn)備階段消息<
(3)準(zhǔn)備階段:副節(jié)點(diǎn)收到預(yù)準(zhǔn)備階段消息后進(jìn)行驗(yàn)證。驗(yàn)證通過(guò)后該節(jié)點(diǎn)將會(huì)向其他節(jié)點(diǎn)發(fā)送的準(zhǔn)備階段消息<
mess>。其中,pre表示消息處于準(zhǔn)備階段,id是數(shù)字簽名。同時(shí)需要接收來(lái)自其他節(jié)點(diǎn)的準(zhǔn)備消息并驗(yàn)證其合法性。倘若驗(yàn)證收集超過(guò)總節(jié)點(diǎn)數(shù)三分之二的正確消息,則該節(jié)點(diǎn)可進(jìn)入準(zhǔn)備狀態(tài)。(4)確定階段:當(dāng)節(jié)點(diǎn)進(jìn)入準(zhǔn)備階段,可以廣播確認(rèn)消息,進(jìn)入最終的確定階段告訴其他節(jié)點(diǎn)自己已經(jīng)處于消息準(zhǔn)備階段。進(jìn)入準(zhǔn)備狀態(tài)的節(jié)點(diǎn)如果能夠集齊超過(guò)三分之二驗(yàn)證通過(guò)的準(zhǔn)備階段消息,表示主節(jié)點(diǎn)的提案通過(guò)。
(5)回復(fù)階段:副本節(jié)點(diǎn)驗(yàn)證提案通過(guò)后,給客戶端回復(fù)消息。一旦收到超過(guò)總節(jié)點(diǎn)數(shù)的三分之一,則說(shuō)明驗(yàn)證通過(guò),本輪共識(shí)結(jié)束。
PBFT算法隨著節(jié)點(diǎn)數(shù)的增多,通信次數(shù)會(huì)呈指數(shù)級(jí)增長(zhǎng)。由于在環(huán)境監(jiān)測(cè)的應(yīng)用場(chǎng)景中,參與共識(shí)的節(jié)點(diǎn)會(huì)形成大規(guī)模的網(wǎng)絡(luò)。為了克服該P(yáng)BFT共識(shí)算法節(jié)點(diǎn)數(shù)多、通信開(kāi)銷大的問(wèn)題。在本應(yīng)用場(chǎng)景下,根據(jù)環(huán)境監(jiān)測(cè)參與方位置相對(duì)分散且固定的特性,提出一種基于位置分組的PBFT共識(shí)算法(Practical Byzantine Fault Tolerance based on location grouping,LG-PBFT),改進(jìn)措施如下:
(1)在參與共識(shí)節(jié)點(diǎn)位置相對(duì)分散且固定的情況下,根據(jù)位置將所有的節(jié)點(diǎn)分成k個(gè)數(shù)量均等的小組。每個(gè)小組內(nèi)通過(guò)PBFT共識(shí)算法達(dá)成共識(shí),小組主節(jié)點(diǎn)之間也通過(guò)PBFT共識(shí)達(dá)成最終消息的一致性。記賬節(jié)點(diǎn)在主節(jié)點(diǎn)間通過(guò)輪換的方式進(jìn)行選舉,以此提高系統(tǒng)的安全性。
(a)PBFT共識(shí)流程
LG-PBFT共識(shí)算法流程如圖3(b)所示。
初始準(zhǔn)備階段:LG-PBFT首先根據(jù)共識(shí)節(jié)點(diǎn)的位置情況,通過(guò)區(qū)域位置形成初始分組,事先約定初始分組每一個(gè)小組節(jié)點(diǎn)數(shù)量的范圍,并且選定各個(gè)小組的主節(jié)點(diǎn)以及防止主節(jié)點(diǎn)故障的備用主節(jié)點(diǎn),每一輪共識(shí)需要從所有小組主節(jié)點(diǎn)中隨機(jī)性選出記賬節(jié)點(diǎn)發(fā)起共識(shí)。
執(zhí)行階段:記賬節(jié)點(diǎn)將信息分發(fā)給各個(gè)主節(jié)點(diǎn)。首先在組內(nèi),小組主節(jié)點(diǎn)帶領(lǐng)組內(nèi)副節(jié)點(diǎn)進(jìn)入PBFT共識(shí)。其次組內(nèi)完成共識(shí)后,記賬節(jié)點(diǎn)帶領(lǐng)各個(gè)小組主節(jié)點(diǎn)進(jìn)入組間PBFT共識(shí)。算法通過(guò)組內(nèi)和組間兩層共識(shí)結(jié)構(gòu)分解共識(shí)任務(wù),減少通信開(kāi)銷。
2.5 環(huán)境監(jiān)測(cè)數(shù)據(jù)的真實(shí)性驗(yàn)證流程
如圖4所示,在初始化階段,監(jiān)管方作為區(qū)塊鏈的初始節(jié)點(diǎn)運(yùn)行,只有經(jīng)過(guò)授權(quán)的采集方才可發(fā)布監(jiān)測(cè)數(shù)據(jù),采集方注冊(cè)時(shí)會(huì)生成自己的公私鑰對(duì)(PKi,SKi),其中PKi、SKi分別代表設(shè)備的公鑰、私鑰。采集方的唯一標(biāo)識(shí)DID完成注冊(cè)時(shí)會(huì)配備其公鑰保存至區(qū)塊鏈。只有被授權(quán)的采集方才可以采集環(huán)境監(jiān)測(cè)數(shù)據(jù)并發(fā)布至區(qū)塊鏈網(wǎng)絡(luò)等待驗(yàn)證。
圖4 環(huán)境監(jiān)測(cè)時(shí)序圖
采集方運(yùn)行后,通過(guò)網(wǎng)絡(luò)的創(chuàng)建和維護(hù),可以感知其他節(jié)點(diǎn)的存在。采集方負(fù)責(zé)把自動(dòng)采集的環(huán)境監(jiān)測(cè)數(shù)據(jù)進(jìn)行哈希處理獲得數(shù)字摘要,通過(guò)自己的私鑰對(duì)數(shù)字摘要簽名,最后將身份、數(shù)字摘要、簽名以及相關(guān)數(shù)據(jù)一同打包發(fā)送至區(qū)塊鏈網(wǎng)絡(luò)。公式如下:
hash=Hash(GPS,Info,para,timestamp)
(1)
sign = SignSKi(hash)
(2)
其中,GPS是環(huán)境監(jiān)測(cè)點(diǎn)位,Info是監(jiān)測(cè)數(shù)據(jù),para是設(shè)備參數(shù),timestamp是監(jiān)測(cè)時(shí)間。采集方獲得環(huán)境監(jiān)測(cè)數(shù)據(jù)通過(guò)Hash計(jì)算獲得數(shù)字摘要hash,并使用自己的私鑰對(duì)數(shù)字摘要簽名Sign獲得sign。最后采集方將所有的數(shù)據(jù)項(xiàng)打包,上傳至區(qū)塊鏈網(wǎng)絡(luò)等待驗(yàn)證。
真實(shí)性驗(yàn)證前提:私鑰用于簽名,公鑰用于解密驗(yàn)證。私鑰簽名的信息只有公鑰可以解密。私鑰由持有者保管,公鑰對(duì)外公布。當(dāng)數(shù)據(jù)持有者身份被授權(quán)并提供監(jiān)測(cè)數(shù)據(jù)的身份證明,身份驗(yàn)證通過(guò)則監(jiān)測(cè)數(shù)據(jù)真實(shí)。公式如下:
?x?y(K(x,y)?D(x,S(y,m)))
(3)
?x(V(x)?R(x))
(4)
?x?y?z(K(x,y)∧R(z))
(5)
其中,x、y、z為變?cè)?,m為明文,K(x,y)指一對(duì)公私鑰(x,y),S(y,m)指用私鑰y對(duì)明文m簽名,D(x,s)指用公鑰x對(duì)密文s解密,V(x)指身份x驗(yàn)證通過(guò),R(x)指身份x確認(rèn)。公式3、4是驗(yàn)證成立前提。公式3指公鑰能夠解密私鑰加密的內(nèi)容,表明數(shù)據(jù)持有者擁有對(duì)應(yīng)私鑰驗(yàn)證通過(guò)。公式4指身份驗(yàn)證通過(guò)可以確認(rèn)身份是真實(shí)的。公式5作為結(jié)論說(shuō)明持有者身份被授權(quán)并且有公鑰對(duì)應(yīng)的私鑰驗(yàn)證通過(guò),數(shù)據(jù)真實(shí)。
監(jiān)管方探測(cè)到采集方發(fā)來(lái)的監(jiān)測(cè)數(shù)據(jù)后通過(guò)信任操作的驗(yàn)證功能,對(duì)環(huán)境監(jiān)測(cè)數(shù)據(jù)進(jìn)行真實(shí)性驗(yàn)證,真實(shí)性驗(yàn)證過(guò)程主要分為兩個(gè)部分。首先,驗(yàn)證發(fā)送數(shù)據(jù)的監(jiān)測(cè)設(shè)備身份的真實(shí)性,提取數(shù)據(jù)中的身份,并查看身份是否被授權(quán),驗(yàn)證通過(guò)后利用身份找出對(duì)應(yīng)的公鑰并驗(yàn)證監(jiān)測(cè)數(shù)據(jù)的完整性。根據(jù)前提,真實(shí)性驗(yàn)證過(guò)程公式如下:
?x(V(x)?R(x))
(6)
V(DID)?R(DID)
(7)
R(DID)
(8)
?x?y(K(x,y)?D(x,S(y,m)))
(9)
K(PKi,SKi)?D(PKi,S(SKi,hash))
(10)
K(PKi,SKi)
(11)
K(PKi,SKi)∧R(DID)
(12)
其中,PKi為公鑰,SKi為私鑰,DID為授權(quán)身份。公式7、8通過(guò)全稱量詞消去原則表示只要身份被授權(quán)則采集方身份確認(rèn)。公式10、11通過(guò)存在量詞消去原則表示若存在公鑰可以解密數(shù)字簽名信息,則這是一對(duì)公私鑰。公式12表示采集方已經(jīng)被授權(quán),并且授權(quán)的身份攜帶的私鑰與本地保存的公鑰是一對(duì)公私鑰。通過(guò)以上推理過(guò)程可得數(shù)據(jù)持有者身份驗(yàn)證通過(guò),持有者擁有該公鑰相對(duì)應(yīng)的私鑰,數(shù)據(jù)驗(yàn)證通過(guò),監(jiān)測(cè)數(shù)據(jù)真實(shí)。
在所有參與方節(jié)點(diǎn)中按照預(yù)定的協(xié)議選擇主節(jié)點(diǎn)發(fā)起共識(shí),在交易池中選擇一個(gè)經(jīng)過(guò)驗(yàn)證的交易被打包到新的區(qū)塊中。建立新的區(qū)塊后,用私鑰數(shù)字簽名,并向其他節(jié)點(diǎn)發(fā)送新的區(qū)塊和簽名,以驗(yàn)證區(qū)塊中的交易是否有效,并驗(yàn)證指向前區(qū)塊的哈希指針是否有效。該文采用實(shí)用拜占庭容錯(cuò)共識(shí)機(jī)制,就提出的新區(qū)塊達(dá)成共識(shí),各參加者可以將新區(qū)塊連接到當(dāng)前環(huán)境數(shù)據(jù)鏈的尾部。若交易成功上鏈,則交易真實(shí)可信,最終完成區(qū)塊鏈的構(gòu)造與更新。
環(huán)境監(jiān)測(cè)數(shù)據(jù)的訪問(wèn)者,也可通過(guò)上鏈的數(shù)據(jù)獲得存證編號(hào)和原文,若有校驗(yàn)的需求,可以將存證編號(hào)和原文上傳,通過(guò)與上述類似的驗(yàn)證過(guò)程獲得驗(yàn)證后的結(jié)果,實(shí)現(xiàn)監(jiān)測(cè)數(shù)據(jù)的可信訪問(wèn)。
3 仿真實(shí)驗(yàn)與模擬
基于第2章的研究結(jié)果,本章構(gòu)建仿真實(shí)驗(yàn)的方案。仿真實(shí)驗(yàn)主要包括:實(shí)驗(yàn)環(huán)境搭建、仿真實(shí)現(xiàn)、仿真測(cè)試與分析。仿真通過(guò)選用測(cè)試環(huán)境,制定測(cè)試用例,得出相應(yīng)的測(cè)試結(jié)果。與此同時(shí),本課題對(duì)優(yōu)化后的LG-PBFT共識(shí)算法從通信開(kāi)銷、容錯(cuò)能力等方面進(jìn)行性能分析與模擬,驗(yàn)證其優(yōu)越性。
3.1 測(cè)試環(huán)境與合約部署
仿真實(shí)驗(yàn)環(huán)境Intel(R) Pentium(R) Gold G5400 CPU@3.7 GHz,運(yùn)行內(nèi)存為 8G,64位操作系統(tǒng)。當(dāng)前區(qū)塊鏈開(kāi)發(fā)平臺(tái)主要是以太坊平臺(tái)[19]和Hyperledger Fabric超級(jí)賬戶平臺(tái)[20]。該文選擇了以太坊為開(kāi)發(fā)平臺(tái),實(shí)驗(yàn)環(huán)境是基于Ubuntu18.0.4系統(tǒng),利用Ganache客戶端快速生成一個(gè)具有10個(gè)節(jié)點(diǎn)的本地私有區(qū)塊鏈網(wǎng)絡(luò)。利用Ganache客戶端,用Solidity語(yǔ)言編寫(xiě)了智能合約,并借助Truffle框架。用truffle compile命令編譯該合約,編譯后生成一個(gè)擴(kuò)展名為.json的文件,最后使用truffle migrate命令將智能合約部署到啟動(dòng)的區(qū)塊鏈上。
3.2 測(cè)試方案與結(jié)果分析
環(huán)境監(jiān)測(cè)系統(tǒng)運(yùn)行,智能合約實(shí)現(xiàn)采集方填寫(xiě)注冊(cè)信息完成注冊(cè),已經(jīng)注冊(cè)授權(quán)的身份可以實(shí)現(xiàn)環(huán)境監(jiān)測(cè)數(shù)據(jù)上傳。采集設(shè)備上傳的數(shù)據(jù)通過(guò)合約指定的驗(yàn)證邏輯對(duì)收到的環(huán)境數(shù)據(jù)進(jìn)行真實(shí)性驗(yàn)證,確定信息中的身份和監(jiān)測(cè)數(shù)據(jù)都是可信的。如果采集設(shè)備身份存在問(wèn)題或是監(jiān)測(cè)數(shù)據(jù)被改動(dòng),則驗(yàn)證無(wú)法通過(guò)。針對(duì)該環(huán)境監(jiān)測(cè)數(shù)據(jù)可信管理的功能設(shè)計(jì)的測(cè)試用例如表2所示,測(cè)試結(jié)果如圖5所示。
表2 測(cè)試用例
圖5 智能合約測(cè)試結(jié)果
上述測(cè)試結(jié)果說(shuō)明,環(huán)境監(jiān)測(cè)數(shù)據(jù)在基于區(qū)塊鏈的去中心化方式下可以實(shí)現(xiàn)監(jiān)測(cè)數(shù)據(jù)的可信采集和真實(shí)性驗(yàn)證,保證了環(huán)境監(jiān)測(cè)數(shù)據(jù)的可信管理。證明了基于區(qū)塊鏈環(huán)境監(jiān)測(cè)的可信管理方案的有效性和實(shí)用性。
3.3 LG-PBFT性能分析
(1)通信開(kāi)銷分析。
通過(guò)MATLAB結(jié)合上文LG-PBFT的研究對(duì)結(jié)果進(jìn)行分析處理。若參與共識(shí)節(jié)點(diǎn)總數(shù)為N,分為k個(gè)小組。由記賬節(jié)點(diǎn)發(fā)起共識(shí),將消息發(fā)送給所有小組的主節(jié)點(diǎn),主節(jié)點(diǎn)間所需要的通信次數(shù)記為G,共識(shí)通信的三個(gè)階段通信次數(shù)記為G1、G2、G3,可得:
G1=k-1
(13)
G2=(k-1)2
(14)
G3=k(k-1)
(15)
G=G1+G2+G3=2k(k-1)
(16)
小組主節(jié)點(diǎn)收到信息發(fā)起組內(nèi)共識(shí),每個(gè)小組有N/k個(gè)節(jié)點(diǎn),組內(nèi)的共識(shí)通信總數(shù)記為M,三個(gè)階段的通信次數(shù)記為M1、M2、M3,可得:
(17)
(18)
(19)
(20)
若全部節(jié)點(diǎn)通過(guò)PBFT算法三階段共識(shí)次數(shù)記為Q,可得:
Q=2N(N-1)
(21)
由公式16、20、21將PBFT與LG-PBFT的通信次數(shù)比記為Z,可得:
(22)
如圖6所示,當(dāng)k=1或N時(shí),PBFT與LG-PBFT通信開(kāi)銷一樣,Z=1。若k增大到一個(gè)極值點(diǎn),則小組間的通信開(kāi)銷明顯增多。但是總的來(lái)說(shuō),LG-PBFT的通信開(kāi)銷會(huì)小于PBFT。
圖6 通信次數(shù)對(duì)比曲線
(2)容錯(cuò)能力分析。
情況一:若惡意節(jié)點(diǎn)均勻分布,這種情況下,LG-PBFT共識(shí)算法中的惡意節(jié)點(diǎn)占節(jié)點(diǎn)總數(shù)的1/3。若共識(shí)結(jié)果正確,則能夠容忍的惡意節(jié)點(diǎn)數(shù)可得如下公式:
(23)
其中,f是能夠容忍的惡意節(jié)點(diǎn)數(shù)量,k是小組數(shù)量,N是節(jié)點(diǎn)總數(shù)。
情況二:若惡意節(jié)點(diǎn)是集中在某幾個(gè)小組,由于小組內(nèi)使用PBFT共識(shí)。只要能夠控制超過(guò)1/3的主節(jié)點(diǎn),就可以控制最終的結(jié)果,控制一個(gè)主節(jié)點(diǎn)必須控制一個(gè)小組內(nèi)超過(guò)1/3的副節(jié)點(diǎn)。所以可得公式如下:
(24)
情況三:直接控制主節(jié)點(diǎn),若能直接控制超過(guò)1/3的主節(jié)點(diǎn),則直接影響最終的結(jié)果??傻霉饺缦拢?/p>
(25)
結(jié)合以上三種情況分析,三種情況的容錯(cuò)性對(duì)比如圖7所示。由于LG-PBFT共識(shí)算法中主節(jié)點(diǎn)的選舉是動(dòng)態(tài)輪換的,并且節(jié)點(diǎn)位置是均勻分布的,所以在環(huán)境監(jiān)測(cè)的應(yīng)用場(chǎng)景中,排除大面積集中的節(jié)點(diǎn)損壞或是被攻擊的情況下,仍然可以保持情況一具有較高的容錯(cuò)性。在本課題的應(yīng)用場(chǎng)景中,設(shè)備的損壞具有隨機(jī)性,表明LG-PBFT共識(shí)算法的應(yīng)用具有優(yōu)越性。
圖7 容錯(cuò)能力對(duì)比曲線
4 結(jié)束語(yǔ)
針對(duì)目前環(huán)境監(jiān)測(cè)數(shù)據(jù)不透明、易篡改等問(wèn)題,提出了基于區(qū)塊鏈的環(huán)境監(jiān)測(cè)可信管理方案,通過(guò)對(duì)環(huán)境數(shù)據(jù)結(jié)構(gòu)、區(qū)塊和鏈結(jié)構(gòu)及其構(gòu)造的研究與設(shè)計(jì),解決了環(huán)境監(jiān)測(cè)數(shù)據(jù)源的真實(shí)性以及如何管理監(jiān)測(cè)數(shù)據(jù)等相關(guān)技術(shù)問(wèn)題。上述方案首先利用區(qū)塊鏈特性,實(shí)現(xiàn)去中心化的驗(yàn)證過(guò)程,保證了環(huán)境采集方獲取的數(shù)據(jù)能夠?qū)崟r(shí)上傳存證,從而在一個(gè)可信的環(huán)境下實(shí)現(xiàn)環(huán)境監(jiān)測(cè)數(shù)據(jù)的可信管理。其次,上述方案借助以太坊平臺(tái)通過(guò)智能合約技術(shù)進(jìn)行仿真實(shí)驗(yàn),驗(yàn)證了方案的有效性、可行性與正確性。最后,針對(duì)本課題選用的PBFT共識(shí)算法通信開(kāi)銷過(guò)大、高延遲、低吞吐量等問(wèn)題,提出LG-PBFT共識(shí)算法,減少了通信開(kāi)銷,提高了通信效率。但是,如何實(shí)現(xiàn)位置上的最優(yōu)分組,在接下來(lái)的工作中,將會(huì)對(duì)分組的方法進(jìn)一步研究,以提高系統(tǒng)的共識(shí)效率。
猜你喜歡長(zhǎng)期鍛煉創(chuàng)造體內(nèi)抑癌環(huán)境 中老年保健(2021年12期)2021-08-24 03:30:40一種用于自主學(xué)習(xí)的虛擬仿真環(huán)境 中國(guó)傳媒大學(xué)學(xué)報(bào)(自然科學(xué)版)(2021年1期)2021-06-09 08:43:00孕期遠(yuǎn)離容易致畸的環(huán)境 中國(guó)生殖健康(2020年6期)2020-02-01 06:28:50不能改變環(huán)境,那就改變心境 新世紀(jì)智能(英語(yǔ)備考)(2019年12期)2020-01-13 06:07:18環(huán)境與保護(hù) 瘋狂英語(yǔ)·新策略(2019年9期)2019-10-17 01:51:34環(huán)境 中國(guó)生殖健康(2019年11期)2019-01-07 01:28:02孕期遠(yuǎn)離容易致畸的環(huán)境 中國(guó)生殖健康(2018年6期)2018-11-06 07:09:28高等院校環(huán)境類公選課的實(shí)踐和探討 濰坊學(xué)院學(xué)報(bào)(2017年2期)2017-04-20 08:44:31掌握“三個(gè)三” 兜底環(huán)境信訪百分百 中國(guó)環(huán)境監(jiān)察(2016年5期)2016-10-24 05:25:52我國(guó)環(huán)境會(huì)計(jì)初探 中國(guó)商論(2016年33期)2016-03-01 01:59:38