









收稿日期:2022-02-14;修回日期:2022-04-06" 基金項(xiàng)目:國(guó)家自然科學(xué)基金資助項(xiàng)目(61802454)
作者簡(jiǎn)介:楊昌霖(1990-),男(通信作者),河南平頂山人,講師,碩導(dǎo),博士,主要研究方向?yàn)槲锫?lián)網(wǎng)和區(qū)塊鏈(changlin1@outlook.com);王繼光(1995-),男,河南濮陽(yáng)人,碩士研究生,主要研究方向?yàn)閰^(qū)塊鏈;汪清(1982-),女,浙江常山人,副教授,博導(dǎo),博士,主要研究方向?yàn)橥ㄐ爬走_(dá)一體化、智能信息處理等.
摘 要:
為了減少中數(shù)據(jù)的存儲(chǔ)需求和傳輸消耗,提出一種基于有向無(wú)環(huán)圖(directed acyclic graph,DAG)的局部有向無(wú)環(huán)圖區(qū)塊鏈方案(local DAG blockchain,LDB)。該方案通過(guò)使節(jié)點(diǎn)只需存儲(chǔ)本身的數(shù)據(jù)區(qū)塊以及鄰居節(jié)點(diǎn)的區(qū)塊哈希值,解決了節(jié)點(diǎn)的存儲(chǔ)限制與傳輸消耗問(wèn)題,并在保證數(shù)據(jù)安全的前提下減少數(shù)據(jù)驗(yàn)證的過(guò)程,提升了網(wǎng)絡(luò)的整體使用率。同時(shí),提出一種惡意節(jié)點(diǎn)檢測(cè)機(jī)制,有效地檢測(cè)網(wǎng)絡(luò)中的惡意節(jié)點(diǎn)。仿真實(shí)驗(yàn)中,通過(guò)與IOTA在不同網(wǎng)絡(luò)模型中對(duì)比,比較了LDB和IOTA的存儲(chǔ)需求、傳輸消耗和鏈路負(fù)載。實(shí)驗(yàn)結(jié)果表明,在網(wǎng)絡(luò)規(guī)模為500個(gè)節(jié)點(diǎn)時(shí),LDB相比IOTA在節(jié)點(diǎn)存儲(chǔ)空間上減少99.8%,平均傳輸消耗降低66.2%,最大負(fù)載減少約28倍。
關(guān)鍵詞:局部有向無(wú)環(huán)圖區(qū)塊鏈; ; 數(shù)據(jù)完整性
中圖分類(lèi)號(hào):TP311.1"" 文獻(xiàn)標(biāo)志碼:A"" 文章編號(hào):1001-3695(2022)09-005-2597-06
doi: 10.19734/j.issn.1001-3695.2022.02.0063
Local directed acyclic graph blockchain in wireless Internet of Things
Yang Changlin1,2,Wang Jiguang1,Wang Qing3
(1.School of Computer Science, Zhongyuan University of Technology, Zhengzhou 451191, China; 2.School of Software Engineering, Sun Yat-Sen University, Zhuhai Guangdong 519082, China; 3.School of Electrical amp; Information Engineering, Tianjin University, Tianjin 300072, China)
Abstract:This paper proposed a local directed acyclic graph blockchain (LDB) to reduce the storage and communication requirements of blockchain,which could be applied in wireless Internet of Things (WIoT). In the proposed LDB,a WIoT node only needed to store its own generated data and hash values that derived from the data of its neighbor nodes. This enables sto-rage and transmission resourced restricted WIoT nodes to operate blockchain. The proposed LDB included a simple data verification procedure to guarantee data integrity. In particular,this paper proposed a malicious nodes detection mechanism to effectively discover data manipulation. The simulation results show that when there are 500 nodes,LDB reduces the average storage cost by 99.8%,the average transmission cost by 66.2%,and the maximum link capacity by 28 times compared with state-of-art DAG blockchains.
Key words:local directed acyclic graph blockchain; wireless Internet of Things; data integrity
0 引言
物聯(lián)網(wǎng)是一個(gè)涵蓋所有與互聯(lián)網(wǎng)相連事務(wù)的總稱[1],隨著物聯(lián)網(wǎng)設(shè)備的不斷升級(jí)與無(wú)線通信技術(shù)的不斷發(fā)展,在醫(yī)療保健、能源、汽車(chē)、環(huán)保和交通等領(lǐng)域得到廣泛應(yīng)用[2],根據(jù)Juniper Research的數(shù)據(jù)顯示,全球連接的設(shè)備將由2020年的385億臺(tái)增長(zhǎng)到2023年的500億臺(tái)[3],設(shè)備的不斷增加給人們生活帶來(lái)極大便利的同時(shí),也帶來(lái)了各種安全問(wèn)題。設(shè)備能夠生成、處理和交換大量數(shù)據(jù)和隱私敏感信息[4],這些數(shù)據(jù)信息與人們的生活關(guān)系密切,此外,設(shè)備節(jié)點(diǎn)之間通過(guò)無(wú)線連接,安全性較低,并且節(jié)點(diǎn)的功率、存儲(chǔ)和計(jì)算能力有限,導(dǎo)致設(shè)備的數(shù)據(jù)容易被攻擊者竊取、盜用或偽造虛假身份竄改設(shè)備,對(duì)人們的生活帶來(lái)極大的威脅。
區(qū)塊鏈作為可融合多種技術(shù)的分布式計(jì)算和存儲(chǔ)系統(tǒng),以其去中心化、不可竄改、可溯源等特性被廣泛應(yīng)用于安全中[5]。此外,區(qū)塊鏈?zhǔn)褂眉用芄K惴▽?duì)系統(tǒng)中存儲(chǔ)的交易實(shí)現(xiàn)良好的隱私保護(hù)。然而,區(qū)塊鏈的安全性依賴其區(qū)塊鏈高度冗余的特性,即每個(gè)節(jié)點(diǎn)需存儲(chǔ)完整的交易歷史以確保數(shù)據(jù)的安全[6]。同時(shí),設(shè)備通常設(shè)計(jì)簡(jiǎn)單、內(nèi)存較小,難以存儲(chǔ)區(qū)塊鏈的全部數(shù)據(jù),以比特幣區(qū)塊鏈[7]為例,2022年初,單個(gè)節(jié)點(diǎn)的存儲(chǔ)需求已經(jīng)接近380 GB[8],這對(duì)節(jié)點(diǎn)的存儲(chǔ)空間是一個(gè)巨大挑戰(zhàn)。
為了降低區(qū)塊鏈節(jié)點(diǎn)的存儲(chǔ)需求問(wèn)題,目前應(yīng)用較為廣泛的方案有輕節(jié)點(diǎn)、壓縮區(qū)塊鏈、分片區(qū)塊鏈和編碼區(qū)塊鏈[9]。其中,輕節(jié)點(diǎn)[7]不存儲(chǔ)區(qū)塊數(shù)據(jù),當(dāng)其驗(yàn)證某一個(gè)具體交易時(shí),需依賴普通節(jié)點(diǎn)存儲(chǔ)的數(shù)據(jù),這導(dǎo)致區(qū)塊鏈系統(tǒng)分布性降低,造成安全隱患[10]。壓縮區(qū)塊鏈通過(guò)刪除部分區(qū)塊鏈信息來(lái)降低存儲(chǔ)需求,節(jié)點(diǎn)僅存儲(chǔ)驗(yàn)證新區(qū)塊所需要的交易信息[7]、用戶余額[11]或區(qū)塊摘要[12],這導(dǎo)致一些區(qū)塊數(shù)據(jù)永久丟失,破壞區(qū)塊鏈數(shù)據(jù)完整性。分片區(qū)塊鏈[13]將區(qū)塊鏈劃分為多個(gè)子鏈,其存儲(chǔ)需求根據(jù)分片數(shù)量增加等比例降低。但跨鏈交易和子鏈合并等操作對(duì)節(jié)點(diǎn)功能復(fù)雜度要求較高。同時(shí),子鏈網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)量較少會(huì)降低子鏈的安全性[14]。編碼區(qū)塊鏈[15]利用糾錯(cuò)碼技術(shù)將區(qū)塊鏈數(shù)據(jù)編碼,分布式地存儲(chǔ)在節(jié)點(diǎn)中。然而,編碼區(qū)塊鏈需要節(jié)點(diǎn)具備強(qiáng)大的編解碼計(jì)算能力,增加區(qū)塊鏈運(yùn)行成本。
與傳統(tǒng)區(qū)塊鏈相比,有向無(wú)環(huán)圖(DAG)區(qū)塊鏈的高并發(fā)性被認(rèn)為是解決區(qū)塊鏈可擴(kuò)展性問(wèn)題最具前景的研究方向,并得到學(xué)術(shù)界和產(chǎn)業(yè)界越來(lái)越多的關(guān)注與重視[16]。同時(shí),也為的存儲(chǔ)問(wèn)題帶來(lái)新的解決思路,例如IOTA(Internet of Things application cryptocurrency)[17]、Byteball[18]和Hashgraph[19]。其中,文獻(xiàn)[6]針對(duì)資源受限的車(chē)載社交網(wǎng)絡(luò)提出一種基于輕量級(jí)的有向無(wú)環(huán)圖區(qū)塊鏈,每個(gè)節(jié)點(diǎn)只將感興趣的數(shù)據(jù)存儲(chǔ)在感興趣的主題組中,同時(shí),為了避免具有大量數(shù)據(jù)的大規(guī)模組內(nèi)帶來(lái)巨大存儲(chǔ)成本,進(jìn)一步提出了組內(nèi)的歷史數(shù)據(jù)剪枝方法,減少每個(gè)節(jié)點(diǎn)中存儲(chǔ)的重復(fù)數(shù)量來(lái)滿足存儲(chǔ)需求。文獻(xiàn)[20]提出一種基于有向無(wú)環(huán)圖區(qū)塊鏈的IIoT結(jié)構(gòu),并結(jié)合微分隱私技術(shù)進(jìn)一步確保數(shù)據(jù)的隱私和完整性,同時(shí)還提出了一種負(fù)載平衡算法,有效地平衡節(jié)點(diǎn)能耗和網(wǎng)絡(luò)壽命之間的關(guān)系。文獻(xiàn)[21]提出一種輕量級(jí)、可擴(kuò)展的分布式賬本(LSDI),將大型P2P網(wǎng)絡(luò)劃分為較小的P2P網(wǎng)絡(luò)來(lái)減少的計(jì)算開(kāi)銷(xiāo),并且通過(guò)刪除足夠舊的事務(wù)來(lái)減少中的存儲(chǔ)開(kāi)銷(xiāo)。實(shí)驗(yàn)表明,LSDI系統(tǒng)在有效管理的存儲(chǔ)和計(jì)算開(kāi)銷(xiāo)的同時(shí),實(shí)現(xiàn)了高事務(wù)吞吐量和可擴(kuò)展性。
文獻(xiàn)[22]對(duì)基于有向無(wú)環(huán)圖技術(shù)的區(qū)塊鏈進(jìn)行分析與比較,得出IOTA最適合系統(tǒng),因?yàn)樗鼘?shí)現(xiàn)了零交易費(fèi)用,確保數(shù)據(jù)完整性,同時(shí)避免傳統(tǒng)區(qū)塊鏈易受到的雙重支出等攻擊。然而,IOTA是面向交易的區(qū)塊鏈,需要對(duì)交易進(jìn)行驗(yàn)證,且區(qū)塊產(chǎn)生時(shí)需復(fù)雜的計(jì)算權(quán)重過(guò)程。另一方面,IOTA具有極快的存儲(chǔ)擴(kuò)張速度,并且在產(chǎn)生新區(qū)塊時(shí)和傳統(tǒng)區(qū)塊鏈一樣需要全網(wǎng)廣播。由于設(shè)備資源的限制,IOTA無(wú)法直接運(yùn)行在節(jié)點(diǎn)上。
目前應(yīng)用中,節(jié)點(diǎn)并不需要對(duì)其他節(jié)點(diǎn)采集到的數(shù)據(jù)進(jìn)行驗(yàn)證和判斷[23],如溫度、濕度等。這些數(shù)據(jù)發(fā)送到用戶時(shí),由用戶根據(jù)這些數(shù)據(jù)作出最終決定,例如發(fā)起火災(zāi)警報(bào)[24]、進(jìn)行人工降雨[25]等。因此,將與區(qū)塊鏈結(jié)合,需要保證數(shù)據(jù)不被竄改的同時(shí),網(wǎng)絡(luò)管理員不會(huì)因?yàn)楣粽咝薷牡臄?shù)據(jù)進(jìn)行錯(cuò)誤的判斷。
為了減少中數(shù)據(jù)的存儲(chǔ)需求和傳輸消耗,在確保數(shù)據(jù)安全的情況下,本文提出一種局部有向無(wú)環(huán)圖區(qū)塊鏈方案(local DAG blockchain,LDB),為資源受限的提供安全的數(shù)據(jù)存儲(chǔ)解決方案并具有較低的存儲(chǔ)和傳輸需求。簡(jiǎn)單來(lái)說(shuō),LDB將有向無(wú)環(huán)圖區(qū)塊鏈作為底層的數(shù)據(jù)結(jié)構(gòu),以數(shù)據(jù)為單位,相比面向塊的傳統(tǒng)區(qū)塊鏈具有更高效和可擴(kuò)展的特性。與IOTA相比,LDB中節(jié)點(diǎn)僅需把數(shù)據(jù)的摘要發(fā)送給物理空間較近的鄰居節(jié)點(diǎn),不進(jìn)行全網(wǎng)廣播,降低了傳輸消耗,同時(shí),節(jié)點(diǎn)存儲(chǔ)自身產(chǎn)生的數(shù)據(jù)區(qū)塊以及少量鄰居數(shù)據(jù)區(qū)塊的摘要,大幅降低了網(wǎng)絡(luò)的存儲(chǔ)需求。
1 系統(tǒng)模型
本文提出的LDB從區(qū)塊結(jié)構(gòu)、工作模式、復(fù)雜度以及安全性進(jìn)行優(yōu)化整合,在確保數(shù)據(jù)安全的情況下,滿足節(jié)點(diǎn)低能耗低存儲(chǔ)的需求,使得該系統(tǒng)具有安全、低資源需求等特點(diǎn)。
傳統(tǒng)區(qū)塊鏈中,節(jié)點(diǎn)需要獨(dú)立存儲(chǔ)所有區(qū)塊,建立從創(chuàng)始區(qū)塊到最新區(qū)塊之間的單向鏈接,對(duì)于來(lái)說(shuō),節(jié)點(diǎn)資源有限,難以將所有區(qū)塊保存在節(jié)點(diǎn)中。針對(duì)這一問(wèn)題,將LDB劃分為物理層面和邏輯層面,即和有向無(wú)環(huán)圖區(qū)塊鏈兩大部分。在物理層面,由傳感器節(jié)點(diǎn)和用戶組成,傳感器節(jié)點(diǎn)僅存儲(chǔ)本地產(chǎn)生數(shù)據(jù)區(qū)塊和少量鄰居摘要信息,減少節(jié)點(diǎn)存儲(chǔ)需求。在邏輯層面,有向無(wú)環(huán)圖區(qū)塊鏈負(fù)責(zé)將傳感器節(jié)點(diǎn)收集的數(shù)據(jù)鏈接起來(lái),達(dá)到不可竄改的目的。本文使用的符號(hào)如表1所示。
h()計(jì)算數(shù)據(jù)的摘要及區(qū)塊哈希f父區(qū)塊哈希字節(jié)長(zhǎng)度ti,Zi傳感器節(jié)點(diǎn)i產(chǎn)生區(qū)塊Z的時(shí)間戳Adx區(qū)塊x的地址Mx區(qū)塊x的簽名R傳感器節(jié)點(diǎn)的傳輸半徑d(i,j)傳感器節(jié)點(diǎn)i、j之間的歐幾里德距離F()區(qū)塊大小以及字段長(zhǎng)度Euclid Math OneNAp()傳感器節(jié)點(diǎn)的鄰居集合Zi傳感器節(jié)點(diǎn)i產(chǎn)生的區(qū)塊數(shù)量θ網(wǎng)絡(luò)的平均傳輸消耗Si區(qū)塊占節(jié)點(diǎn)i的存儲(chǔ)空間ηi,j傳感器節(jié)點(diǎn)i的鄰居j的狀態(tài)區(qū)塊哈希值
物理層面上,將表示為G(Euclid Math OneVAp,Euclid Math OneEAp),其中,Euclid Math OneVAp表示傳感器節(jié)點(diǎn)的集合,Euclid Math OneEAp表示傳感器節(jié)點(diǎn)間的鏈路集,假設(shè)每個(gè)節(jié)點(diǎn)i∈Euclid Math OneVAp都有相同的傳輸范圍R,如果網(wǎng)絡(luò)中兩個(gè)節(jié)點(diǎn)i、j的歐幾里德距離小于它們傳輸半徑之間的最小值,則這兩個(gè)節(jié)點(diǎn)互為鄰居,由Euclid Math OneNAp(i)表示,其定義為
Euclid Math OneNAp(i)={ j|d(i,j)lt;R,j∈Euclid Math OneVAp}(1)
節(jié)點(diǎn)集Euclid Math OneVAp通過(guò)鏈路集Euclid Math OneEAp構(gòu)成。
邏輯層面上,用D(Euclid Math OneBAp,Euclid Math OneLAp)表示基于數(shù)據(jù)的DAG分布式賬本結(jié)構(gòu),其中Euclid Math OneBAp={b1,b2,…,bn}表示D中數(shù)據(jù)區(qū)塊的集合,Euclid Math OneBAp中的每一個(gè)元素bα(α=1,2,…,n)為有向無(wú)環(huán)圖區(qū)塊鏈中的數(shù)據(jù)區(qū)塊,Euclid Math OneLAp={l1,l2,…,lm}表示Euclid Math OneBAp中數(shù)據(jù)區(qū)塊之間的鏈路集,Euclid Math OneLAp中的每一個(gè)元素lk(即Euclid Math OneBAp中某兩個(gè)元素bα、bβ的有序?qū)Γ┯洖閘k=(bα,bβ)(k=1,2,…,m),表示數(shù)據(jù)區(qū)塊之間的鏈路。對(duì)于任意一個(gè)節(jié)點(diǎn)bα∈Euclid Math OneBAp,都不存在一條路徑(l1,l2,…,lm),lk∈Euclid Math OneLAp使得從Euclid Math OneBAp出發(fā)到Euclid Math OneBAp終止,即數(shù)據(jù)區(qū)塊之間建立一個(gè)有向無(wú)環(huán)圖。
用b〈i,ti,Zi〉表示傳感器節(jié)點(diǎn)i在時(shí)間ti,Zi產(chǎn)生的區(qū)塊,其中Zi是該節(jié)點(diǎn)產(chǎn)生的最新區(qū)塊序號(hào),設(shè)置b〈i,ti,Zi-1〉為該傳感器節(jié)點(diǎn)i的當(dāng)前狀態(tài)區(qū)塊,h(b〈i,ti,Zi-1〉)為該區(qū)塊哈希值。每個(gè)節(jié)點(diǎn)i的第1組區(qū)塊b〈i,ti,1〉為初始區(qū)塊,使用ηi,j表示為傳感器節(jié)點(diǎn)i鄰居節(jié)點(diǎn)j的當(dāng)前狀態(tài)區(qū)塊的哈希值,所以ηi,j=h(b〈i,ti,Zi-1〉)。假設(shè)節(jié)點(diǎn)i數(shù)據(jù)生成的速率為ri,當(dāng)其產(chǎn)生P字的數(shù)據(jù)時(shí)即打包為一個(gè)區(qū)塊,區(qū)塊數(shù)據(jù)部分大小為F(P),其中,時(shí)間戳ti,Zi為
ti,Zi=Zi×F(P)ri(2)
LDB區(qū)塊鏈?zhǔn)纠鐖D1所示。圖1上半部分是由三個(gè)節(jié)點(diǎn)1~3各產(chǎn)生三個(gè)區(qū)塊共九個(gè)區(qū)塊的有向無(wú)環(huán)圖區(qū)塊鏈,可以轉(zhuǎn)換為傳統(tǒng)的有向無(wú)環(huán)圖區(qū)塊鏈,例如文獻(xiàn)[17]IOTA的共識(shí)機(jī)制tangle,如下半部分所示,即b1=b〈1,1〉,b2=b〈2,1〉,…,b9=b〈3,3〉。
2 局部有向無(wú)環(huán)圖區(qū)塊鏈(LDB)
2.1 IOTA區(qū)塊結(jié)構(gòu)
IOTA中,交易是基本數(shù)據(jù)單元,每個(gè)區(qū)塊包含一個(gè)交易,全部區(qū)塊的組合包含交易的所有相關(guān)信息,以IOTA為例的有向無(wú)環(huán)圖區(qū)塊鏈區(qū)塊結(jié)構(gòu)如圖2所示。IOTA區(qū)塊主要由區(qū)塊地址、tag、兩個(gè)父區(qū)塊哈希值、時(shí)間戳、nonce、bundle、簽名和信息列表組成,根據(jù)使用場(chǎng)景的不同,信息列表不同,在加密貨幣中為交易的信息,在設(shè)備中則為需要存儲(chǔ)的數(shù)據(jù)。與單鏈區(qū)塊鏈不同的是,IOTA的每個(gè)區(qū)塊中包含兩個(gè)父區(qū)塊哈希值。
當(dāng)傳感器節(jié)點(diǎn)采集到一組新的數(shù)據(jù)時(shí),就有了生成區(qū)塊的需求。其中,區(qū)塊地址用來(lái)唯一表示該區(qū)塊,tag為交易標(biāo)簽,bundle為交易的單位,父區(qū)塊哈希值用來(lái)將該區(qū)塊與其他區(qū)塊相鏈接,時(shí)間戳不能更改,用來(lái)記錄當(dāng)前時(shí)間區(qū)塊發(fā)生的事情,同時(shí)增加竄改區(qū)塊的難度;簽名方法使用Winternitz one-time signature (W-OTS)簽名算法,這是一種后量子簽名算法,可以抵御量子攻擊;工作量證明是傳感器節(jié)點(diǎn)產(chǎn)生數(shù)據(jù)區(qū)塊時(shí)查找nonce,以避免惡意節(jié)點(diǎn)的泛洪攻擊,且該工作量證明只是一個(gè)定量,不會(huì)像區(qū)塊鏈的工作量證明一樣產(chǎn)生很多額外的交易費(fèi)用[16];數(shù)據(jù)信息部分就是用來(lái)存儲(chǔ)傳感器節(jié)點(diǎn)采集到的數(shù)據(jù)內(nèi)容。
IOTA中一個(gè)區(qū)塊b1的大小為
FIOTA=F(Adb1)+F(tag)+F(ti,Zi)+F(bundle)+2F(f)+F(nonce)+F(Mb1)+F(P)(3)
在基于IOTA的傳感網(wǎng)節(jié)點(diǎn)中, 區(qū)塊占傳感網(wǎng)節(jié)點(diǎn)的存儲(chǔ)空間計(jì)算公式為
S1=S2=…=Si=∑i∈Euclid Math OneVAp ∑ZiZ=1F(b〈i,ti,Zi〉)(4)
每個(gè)傳感器節(jié)點(diǎn)在產(chǎn)生一個(gè)區(qū)塊時(shí)要將新區(qū)塊發(fā)送到所有節(jié)點(diǎn)Euclid Math OneVAp,所以IOTA的平均傳輸消耗為
θ=∑i∈Euclid Math OneVAp ∑ZiZ=1|Euclid Math OneEAp|F(b〈i,ti,Zi〉)|Euclid Math OneEAp|(5)
2.2 LDB區(qū)塊結(jié)構(gòu)
考慮到在實(shí)際的應(yīng)用中,節(jié)點(diǎn)并不需要驗(yàn)證網(wǎng)絡(luò)中其他節(jié)點(diǎn)的歷史數(shù)據(jù)[23],為了使LDB更適用于,本節(jié)重新定義了LDB區(qū)塊的結(jié)構(gòu)。與IOTA不同,LDB存儲(chǔ)和傳輸?shù)氖菙?shù)據(jù)信息,所以LDB區(qū)塊結(jié)構(gòu)刪除了IOTA中與交易相關(guān)的tag和bundle兩部分,并將交易信息改為數(shù)據(jù)信息,然而,由于節(jié)點(diǎn)需要存儲(chǔ)來(lái)自鄰居節(jié)點(diǎn)的摘要信息,所以將原本IOTA中區(qū)塊的兩個(gè)父區(qū)塊哈希值擴(kuò)展為|Euclid Math OneNAp(i)|個(gè)父區(qū)塊哈希值,同時(shí)保留了區(qū)塊的一些基本結(jié)構(gòu)。因此,LDB區(qū)塊的結(jié)構(gòu)包括區(qū)塊地址、|Euclid Math OneNAp(i)|個(gè)父區(qū)塊哈希值、時(shí)間戳、nonce、簽名和數(shù)據(jù)信息,如圖3所示。
交易地址tag時(shí)間戳bundlenonce父區(qū)塊1哈希值
父區(qū)塊2哈希值簽名交易信息
與IOTA類(lèi)似,LDB區(qū)塊結(jié)構(gòu)同樣需要父區(qū)塊哈希值,不同之處在于LDB區(qū)塊包含|Euclid Math OneNAp(i)|個(gè)父區(qū)塊哈希值,|Euclid Math OneNAp(i)|的值取決于區(qū)塊所屬傳感器節(jié)點(diǎn)i的鄰居傳感器節(jié)點(diǎn)數(shù)量。因此LDB區(qū)塊也可以保證數(shù)據(jù)的安全,抵御女巫攻擊、重放攻擊和DDoS攻擊。
2.3 LDB工作模式
在LDB中,當(dāng)傳感器節(jié)點(diǎn)收集到一定的數(shù)據(jù)時(shí),只需要對(duì)其鄰居傳感器節(jié)點(diǎn)進(jìn)行廣播,不需要對(duì)全網(wǎng)廣播,而且每個(gè)傳感器節(jié)點(diǎn)不需要存儲(chǔ)網(wǎng)絡(luò)中所有的數(shù)據(jù)信息,只需要存儲(chǔ)自己的區(qū)塊和鄰居節(jié)點(diǎn)廣播給自己的區(qū)塊哈希值。下面是LDB的工作模式。
a)傳感器節(jié)點(diǎn)i在一定時(shí)間內(nèi)采集到數(shù)據(jù)P;
b)根據(jù)數(shù)據(jù)地址的私鑰獲取區(qū)塊簽名;
c)傳感器節(jié)點(diǎn)i將其存儲(chǔ)的鄰居節(jié)點(diǎn)最新?tīng)顟B(tài)區(qū)塊哈希ηi,j;j∈Euclid Math OneNAp(i)作為父哈希值f,然后做一定量的工作量證明查找合適的nonce值;
d)傳感器節(jié)點(diǎn)i將P、區(qū)塊地址、|Euclid Math OneNAp(i)|個(gè)父節(jié)點(diǎn)哈希值f、nonce、簽名、時(shí)間戳ti,Zi組成新的區(qū)塊b〈i,ti,Zi〉,接著對(duì)新區(qū)塊進(jìn)行哈希計(jì)算,得到h(b〈i,ti,Zi〉),將h(b〈i,ti,Zi〉)廣播給傳感器節(jié)點(diǎn)i的鄰居節(jié)點(diǎn)j∈Euclid Math OneNAp(i),同時(shí)傳感器節(jié)點(diǎn)i將b〈i,ti,Zi〉以及傳感器節(jié)點(diǎn)i與鄰居節(jié)點(diǎn)j∈Euclid Math OneNAp(i)的鏈接信息存儲(chǔ)在本地;
e)鄰居節(jié)點(diǎn)j∈Euclid Math OneNAp(i)將接收到的h(b〈i,ti,Zi〉)保存在本地存儲(chǔ)單元并更新鄰居狀態(tài)區(qū)塊,ηi,j=h(b〈i,ti,Zi〉)←h(b〈i,ti,Zi-1〉), j∈Euclid Math OneNAp(i)。
圖4為L(zhǎng)DB工作流程,為了簡(jiǎn)化符號(hào),把區(qū)塊表示為bi,同時(shí),Euclid Math OneNAp(A)={B,C},Euclid Math OneNAp(E)={D}。當(dāng)傳感器節(jié)點(diǎn)E采集一組P后,根據(jù)數(shù)據(jù)地址的私鑰對(duì)區(qū)塊簽名,然后將傳感器節(jié)點(diǎn)D當(dāng)前狀態(tài)區(qū)塊b5的哈希值進(jìn)行一定量的工作量證明查找到nonce,將h(b5)、P、Adb12、Mb12、nonce和tE,ZE打包成區(qū)塊b12,然后計(jì)算h(b12),并將h(b12)廣播給傳感器節(jié)點(diǎn)D,當(dāng)傳感器節(jié)點(diǎn)D接收到h(b12)后更新ηD,E=h(b12)。同樣,傳感器節(jié)點(diǎn)A采集一組P后,根據(jù)交易地址的私鑰對(duì)區(qū)塊簽名,然后將傳感器節(jié)點(diǎn)B和C當(dāng)前狀態(tài)區(qū)塊b10和b11的哈希值進(jìn)行一定量的工作量證明查找到nonce,將h(b10)、h(b11)、P、Adb13、Mb13、nonce和tA,ZA打包成區(qū)塊b13,然后計(jì)算h(b13),并將h(b13)轉(zhuǎn)發(fā)給傳感器節(jié)點(diǎn)B和C,當(dāng)傳感器節(jié)點(diǎn)B和C接收到h(b13)后更新ηA,B=h(b13),ηA,C=h(b13)。每個(gè)傳感器節(jié)點(diǎn)只需向其鄰居節(jié)點(diǎn)發(fā)送區(qū)塊,不需要進(jìn)行全網(wǎng)廣播,鄰居節(jié)點(diǎn)之間形成一個(gè)局部的區(qū)塊鏈系統(tǒng),但是所有節(jié)點(diǎn)的區(qū)塊數(shù)據(jù)組成一個(gè)完整的有向無(wú)環(huán)圖區(qū)塊鏈,保證了數(shù)據(jù)的安全。
網(wǎng)絡(luò)中的所有數(shù)據(jù)會(huì)通過(guò)鄰居節(jié)點(diǎn)之間哈希摘要相互鏈接形成一個(gè)有向無(wú)環(huán)圖區(qū)塊鏈,在此基礎(chǔ)上,提出一種惡意節(jié)點(diǎn)檢測(cè)機(jī)制,當(dāng)用戶在收集傳感器節(jié)點(diǎn)i中數(shù)據(jù)時(shí),用戶會(huì)驗(yàn)證鄰居節(jié)點(diǎn)j∈Euclid Math OneNAp(i)發(fā)送的h(b〈j,tj,Zj〉)與傳感器節(jié)點(diǎn)i接收的h(b〈j,tj,Zj〉),當(dāng)j.h(b〈j,tj,Zj〉)≠i.h(b〈j,tj,Zj〉)時(shí),則說(shuō)明傳感器節(jié)點(diǎn)i可能會(huì)被惡意攻擊,這種機(jī)制使基于LDB的系統(tǒng)數(shù)據(jù)與傳統(tǒng)的有向無(wú)環(huán)圖區(qū)塊鏈具有同樣的安全性。
在采用LDB的傳感網(wǎng)節(jié)點(diǎn)中,區(qū)塊占傳感網(wǎng)節(jié)點(diǎn)的存儲(chǔ)空間計(jì)算公式為
S′i=∑ZiZ=1F(b〈i,ti,Zi〉)+∑ZjZ=1F(h(b〈j,tj,Zj〉))
i∈Euclid Math OneVAp,j∈Euclid Math OneNAp(i)(7)
在LDB中,每個(gè)新區(qū)塊僅發(fā)送其哈希到鄰居節(jié)點(diǎn),因此,平均傳輸消耗的公式為
θ′=∑i∈Euclid Math OneVAp ∑ZiZ=1F(h(b〈i,ti,Zi〉))×|Euclid Math OneNAp(i)||Euclid Math OneEAp|(8)
2.4 存儲(chǔ)與傳輸復(fù)雜度分析
為了評(píng)估LDB的性能,本文對(duì)兩種方法在存儲(chǔ)和傳輸消耗上的對(duì)比進(jìn)行研究。
已知網(wǎng)絡(luò)中傳感器節(jié)點(diǎn)數(shù)量為|Euclid Math OneVAp|,每個(gè)區(qū)塊由區(qū)塊頭和區(qū)塊體組成,例如在比特幣中,區(qū)塊頭包含的是創(chuàng)建區(qū)塊的元數(shù)據(jù)與前一個(gè)區(qū)塊的鏈接,區(qū)塊體為所有交易信息。由于區(qū)塊體遠(yuǎn)大于區(qū)塊頭[17],假設(shè)存儲(chǔ)和傳輸區(qū)塊體的復(fù)雜度為Euclid Math OneOAp(1),假設(shè)存儲(chǔ)和傳輸區(qū)塊頭的復(fù)雜度為Euclid Math OneOAp(α),1gt;gt;α→0。IOTA的存儲(chǔ)和傳輸復(fù)雜度是Euclid Math OneOAp(|Euclid Math OneVAp|(1+α)),在LDB中,每個(gè)節(jié)點(diǎn)存儲(chǔ)所有區(qū)塊頭以及自己產(chǎn)生的數(shù)據(jù),即極小一部分區(qū)塊體。同時(shí),LDB中節(jié)點(diǎn)也只需向鄰居節(jié)點(diǎn)發(fā)送區(qū)塊頭和區(qū)塊體,無(wú)須進(jìn)行全網(wǎng)廣播。因此,LDB的存儲(chǔ)復(fù)雜度是Euclid Math OneOAp(1+α),傳輸復(fù)雜度是Euclid Math OneOAp(|N(i)|(1+α))。在最?lèi)毫訔l件下,網(wǎng)絡(luò)中全部節(jié)點(diǎn)互為鄰居,即|Euclid Math OneVAp|=|Euclid Math OneNAp(i)|,此時(shí),LDB的存儲(chǔ)復(fù)雜度遠(yuǎn)小于IOTA,傳輸復(fù)雜度相同。然而,在實(shí)際網(wǎng)絡(luò)中,全部節(jié)點(diǎn)互為鄰居節(jié)點(diǎn)的概率很低,|Euclid Math OneNAp(i)|遠(yuǎn)小于|Euclid Math OneVAp|,因此LDB的實(shí)際傳輸復(fù)雜度小于IOTA(見(jiàn)3.5和3.6節(jié))。
2.5 安全性分析
本節(jié)分析LDB在中的安全性,并討論了三種攻擊模式。
1)抵抗女巫攻擊
在P2P網(wǎng)絡(luò)中如果存在一個(gè)惡意節(jié)點(diǎn),那么該惡意節(jié)點(diǎn)可以具有多重身份,并且利用多重身份偽裝成大量節(jié)點(diǎn),在這種情況下,它們可以拒絕接收或傳輸區(qū)塊,從而有效阻止其他用戶進(jìn)入網(wǎng)絡(luò),當(dāng)攻擊者已控制系統(tǒng)中51%的節(jié)點(diǎn),在這種情況下,它們可以輕易更改交易的順序,并防止交易被確認(rèn)。在LDB系統(tǒng)中,當(dāng)網(wǎng)絡(luò)存在至少一個(gè)誠(chéng)實(shí)節(jié)點(diǎn)時(shí),哈希摘要在誠(chéng)實(shí)節(jié)點(diǎn)邏輯有向無(wú)環(huán)圖中的鏈接存在斷路,從而發(fā)現(xiàn)攻擊。假設(shè)中傳感器節(jié)點(diǎn)i被攻擊,導(dǎo)致網(wǎng)絡(luò)中存在大量的惡意節(jié)點(diǎn),攻擊者向網(wǎng)絡(luò)中發(fā)送虛假數(shù)據(jù)哈希摘要,將h(b〈i,ti,Zi〉)改為h′(b〈i,ti,Zi〉),若其鄰居傳感器節(jié)點(diǎn)j為誠(chéng)實(shí)節(jié)點(diǎn),則j中存在區(qū)塊b〈j,tj,Zj〉且tj,Zjgt;ti,Zi,其中父區(qū)塊哈希h(b〈i,ti,Zi〉)≠h′(b〈i,ti,Zi〉)。因此,網(wǎng)絡(luò)管理員獲取節(jié)點(diǎn)j的數(shù)據(jù)后能夠發(fā)現(xiàn)邏輯有向無(wú)環(huán)圖的鏈接錯(cuò)誤。此外,LDB在節(jié)點(diǎn)形成區(qū)塊時(shí)也會(huì)進(jìn)行一個(gè)定量的工作量證明來(lái)確保區(qū)塊的有效性,所以LDB可以抵抗女巫攻擊。
2)抵抗重放攻擊
重放攻擊指攻擊者發(fā)送一個(gè)目的節(jié)點(diǎn)已接收過(guò)的包來(lái)達(dá)到欺騙系統(tǒng)的目的,主要用于身份認(rèn)證過(guò)程,破壞認(rèn)證的正確性。重放攻擊可以由發(fā)起者,也可以由攔截并重發(fā)該數(shù)據(jù)的敵方進(jìn)行。攻擊者利用網(wǎng)絡(luò)監(jiān)聽(tīng)或者其他方式盜取認(rèn)證憑據(jù),之后再把它重新發(fā)給認(rèn)證服務(wù)器。LDB中傳感器節(jié)點(diǎn)i每產(chǎn)生一個(gè)區(qū)塊b〈i,ti,Zi〉,都會(huì)帶有一個(gè)時(shí)間戳ti,Zi,并且只需將h(b〈i,ti,Zi〉)廣播給Euclid Math OneNAp(i),使得數(shù)據(jù)傳輸時(shí)延小,容易做到精準(zhǔn)的時(shí)間同步,即使是大型網(wǎng)絡(luò)也不會(huì)受影響。例如在圖4中,傳感器節(jié)點(diǎn)A被攻擊者攻擊,將之前發(fā)送給傳感器節(jié)點(diǎn)B和C的區(qū)塊哈希h(b13)重新發(fā)送,第一次發(fā)送h(b13)時(shí)時(shí)間戳為tA,ZA,再次發(fā)送時(shí)時(shí)間戳為t′A,ZA,由于h(b13)相同,tA,ZA≠t′A,ZA,所以傳感器節(jié)點(diǎn)B和C可以拒絕接收重復(fù)發(fā)送的h(b13),從而有效抵抗重放攻擊。
3)抵抗DDoS攻擊
DDoS攻擊指處于不同位置的多個(gè)攻擊者同時(shí)向一個(gè)或數(shù)個(gè)目標(biāo)發(fā)動(dòng)攻擊,或者一個(gè)攻擊者控制位于不同位置的多臺(tái)機(jī)器并利用這些機(jī)器對(duì)受害者同時(shí)實(shí)施攻擊。在LDB中,每個(gè)區(qū)塊都有屬于自己的時(shí)間戳ti,Zi,如果攻擊者在一個(gè)傳感器節(jié)點(diǎn)上同時(shí)發(fā)送大量區(qū)塊的話很容易被發(fā)現(xiàn),同時(shí)傳感器網(wǎng)絡(luò)大多為廉價(jià)設(shè)備,如果發(fā)現(xiàn)網(wǎng)絡(luò)中有傳感器節(jié)點(diǎn)已經(jīng)被惡意攻擊,可以將被攻擊節(jié)點(diǎn)更換為新的傳感器節(jié)點(diǎn)。所以DDoS攻擊對(duì)其影響不大。
3 實(shí)驗(yàn)
3.1 實(shí)驗(yàn)環(huán)境
本文實(shí)驗(yàn)在PyCharm,Python 3.7環(huán)境上進(jìn)行仿真實(shí)驗(yàn)的代碼編寫(xiě),所有仿真實(shí)驗(yàn)均在Intel Core i7-7500u CPU,8 GB內(nèi)存的Windows 10系統(tǒng)中運(yùn)行。為了確保實(shí)驗(yàn)的準(zhǔn)確性,每個(gè)實(shí)驗(yàn)數(shù)據(jù)均取自于100個(gè)獨(dú)立仿真實(shí)驗(yàn)的均值。
3.2 主要參數(shù)設(shè)置
為了充分探討LDB在中的性能,本文在仿真實(shí)驗(yàn)中以有向無(wú)環(huán)圖區(qū)塊鏈為基礎(chǔ),實(shí)現(xiàn)所提出的LDB方案,并通過(guò)與IOTA對(duì)比,驗(yàn)證LDB的可行性。為了使實(shí)驗(yàn)結(jié)果更具代表性,網(wǎng)絡(luò)模型采取隨機(jī)組合方式,然后分別給定網(wǎng)絡(luò)中傳感器節(jié)點(diǎn)的傳輸范圍R=20 m,在半徑為50 m的圓形范圍內(nèi)隨機(jī)放置傳感器節(jié)點(diǎn),傳感器節(jié)點(diǎn)采集數(shù)據(jù)的平均速率為r′i=50 bps,由于IOTA的尺寸較?。?7],實(shí)驗(yàn)中設(shè)置一組固定大小的區(qū)塊F(b〈i,ti,Zi〉)=1 024 bit,區(qū)塊的哈希長(zhǎng)度為f=h(F(h(b〈i,ti,Zi〉)))=256 bit,區(qū)塊的數(shù)據(jù)部分為F(P)=500 bit,所以平均生成一個(gè)區(qū)塊的時(shí)間為ti,Zi÷Zi=10 s。在IOTA中,傳感器節(jié)點(diǎn)廣播區(qū)塊采用的是gossip算法,節(jié)點(diǎn)將更新的賬本狀態(tài)發(fā)送給鄰居節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)將請(qǐng)求與其當(dāng)前已知的分類(lèi)賬版本進(jìn)行比較,并再次檢查是否存在沖突。如果沒(méi)有發(fā)現(xiàn)沖突,節(jié)點(diǎn)更新它的賬本狀態(tài)并再次將更新后的狀態(tài)發(fā)送給他的鄰居。在基于LDB的系統(tǒng)中,節(jié)點(diǎn)只需將區(qū)塊發(fā)送給其鄰居節(jié)點(diǎn),簡(jiǎn)化了廣播的過(guò)程。
首先,由于LDB相對(duì)比IOTA區(qū)塊頭多存儲(chǔ)|Euclid Math OneNAp(i)|-2個(gè)哈希值,所以3.3節(jié)展示區(qū)塊頭相比數(shù)據(jù)部分對(duì)節(jié)點(diǎn)存儲(chǔ)空間有很小的影響。3.4節(jié)中對(duì)比LDB和IOTA中區(qū)塊頭對(duì)節(jié)點(diǎn)存儲(chǔ)的影響,并顯示了兩種方法下節(jié)點(diǎn)存儲(chǔ)量的比值。3.5節(jié)在隨機(jī)的中評(píng)估了LDB與IOTA存儲(chǔ)量和傳輸消耗上的差異,其中從存儲(chǔ)的對(duì)比可以明顯看出LDB的存儲(chǔ)量遠(yuǎn)小于IOTA。最后,3.6節(jié)對(duì)兩種方法下網(wǎng)絡(luò)的鏈路負(fù)載情況進(jìn)行分析與比較。
3.3 區(qū)塊頭對(duì)存儲(chǔ)空間的影響
首先,在數(shù)據(jù)的分布情況中,為了使實(shí)驗(yàn)更具真實(shí)性,數(shù)據(jù)產(chǎn)生速率為泊松分布,實(shí)驗(yàn)假設(shè)網(wǎng)絡(luò)最初有V=500個(gè)節(jié)點(diǎn),網(wǎng)絡(luò)中一共生成Z=1 000個(gè)區(qū)塊,在圖5中展示了傳感器節(jié)點(diǎn)數(shù)據(jù)分布情況。由于LDB區(qū)塊中父哈希值的數(shù)量要大于IOTA中區(qū)塊頭的兩個(gè)父哈希值,所以進(jìn)一步分析區(qū)塊頭對(duì)節(jié)點(diǎn)存儲(chǔ)空間的影響,根據(jù)式(5)(8),記錄了使用LDB與IOTA的傳感器節(jié)點(diǎn)的比值,并在圖6中顯示不同比值出現(xiàn)的頻率。實(shí)驗(yàn)結(jié)果表明,在網(wǎng)絡(luò)節(jié)點(diǎn)Euclid Math OneVAp=500時(shí),區(qū)塊頭比值相比較沒(méi)有區(qū)塊頭也只增加0.1%,并會(huì)隨著網(wǎng)絡(luò)規(guī)模的變大比值縮小,所以區(qū)塊頭對(duì)節(jié)點(diǎn)整體存儲(chǔ)量的影響不大。
3.4 節(jié)點(diǎn)存儲(chǔ)量比較與分析
圖7描述了在中LDB和IOTA的節(jié)點(diǎn)存儲(chǔ)量的總體趨勢(shì)對(duì)比。實(shí)驗(yàn)假設(shè)網(wǎng)絡(luò)中有Euclid Math OneVAp=500個(gè)傳感器節(jié)點(diǎn),每個(gè)傳感器節(jié)點(diǎn)產(chǎn)生Z=40個(gè)區(qū)塊。根據(jù)式(4)(7)結(jié)合圖7可以看出,節(jié)點(diǎn)存儲(chǔ)量隨著傳感器節(jié)點(diǎn)不斷地采集數(shù)據(jù)區(qū)塊,以及接收到其他節(jié)點(diǎn)發(fā)送過(guò)來(lái)的區(qū)塊不斷增加,兩種方法的總體趨勢(shì)都是逐漸增加,當(dāng)時(shí)間戳ti,Zi=50 h時(shí),采用LDB的的節(jié)點(diǎn)存儲(chǔ)量約為S′i=3.9×104 bit,采用IOTA的的節(jié)點(diǎn)存儲(chǔ)量約為Si=2.0×107 bit,采用IOTA的的節(jié)點(diǎn)存儲(chǔ)量約為L(zhǎng)DB的節(jié)點(diǎn)存儲(chǔ)量的500倍,隨著節(jié)點(diǎn)個(gè)數(shù)的增加,采用LDB的的節(jié)點(diǎn)存儲(chǔ)量相對(duì)比IOTA網(wǎng)絡(luò)節(jié)點(diǎn)規(guī)模數(shù)減少。這是由于IOTA在節(jié)點(diǎn)廣播區(qū)塊時(shí),網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)都需要進(jìn)行本地存儲(chǔ),即網(wǎng)絡(luò)中的每一個(gè)節(jié)點(diǎn)都需要存儲(chǔ)所有的區(qū)塊,而采用LDB的中的每個(gè)節(jié)點(diǎn)只需存儲(chǔ)來(lái)自于其鄰居節(jié)點(diǎn)的哈希值即可。實(shí)驗(yàn)結(jié)果表明,相對(duì)比IOTA,LDB可以減少中節(jié)點(diǎn)存儲(chǔ)空間的99.8%,且當(dāng)中節(jié)點(diǎn)個(gè)數(shù)越多,減少比例越大。
3.5 傳輸消耗比較與分析
圖8顯示了中LDB和IOTA平均傳輸消耗的整體趨勢(shì)對(duì)比,主要分析區(qū)塊的大小對(duì)傳輸消耗的影響。在式(5)(8)中,采用LDB的中鏈路是指鄰居節(jié)點(diǎn)之間的鏈路,而采用IOTA的中鏈路指全網(wǎng)鏈路。整體趨勢(shì)表明,隨著時(shí)間的不斷增多,兩種方法的傳輸消耗都在不斷增加,但是LDB的傳輸消耗要遠(yuǎn)小于IOTA,當(dāng)時(shí)間戳ti,Zi=50 h時(shí),采用LDB的的平均傳輸消耗約為θ′=1.96×106 bit,采用IOTA的的平均傳輸消耗約為θ=5.81×106 bit,平均傳輸消耗降低約為66.2%。原因是IOTA在節(jié)點(diǎn)采集到的數(shù)據(jù)并打包成區(qū)塊后,會(huì)將自己的區(qū)塊發(fā)送給鄰居節(jié)點(diǎn),鄰居節(jié)點(diǎn)在接收到區(qū)塊后,會(huì)再向其鄰居節(jié)點(diǎn)的鄰居節(jié)點(diǎn)轉(zhuǎn)發(fā),如此循環(huán)下去,直到網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都接收到該節(jié)點(diǎn)發(fā)送的區(qū)塊,而LDB則只需將區(qū)塊哈希值發(fā)送給鄰居節(jié)點(diǎn)即可,不用發(fā)送到全網(wǎng)的節(jié)點(diǎn)。實(shí)驗(yàn)結(jié)果表明,相對(duì)比IOTA,LDB可以減少區(qū)塊在傳輸中平均傳輸消耗的66.2%。
3.6 鏈路負(fù)載比較與分析
圖9描述了兩種方法下鏈路流量的變化情況,即每條鏈路上經(jīng)過(guò)的區(qū)塊數(shù)量。實(shí)驗(yàn)假設(shè)網(wǎng)絡(luò)規(guī)模為Euclid Math OneVAp=100個(gè)傳感器節(jié)點(diǎn),一共產(chǎn)生Z=2 000個(gè)區(qū)塊和Euclid Math OneEAp=1 500條鏈路,然后給每條鏈路一個(gè)編號(hào)。由圖9可以在采用IOTA的中看出,鏈路1傳輸?shù)膮^(qū)塊數(shù)量最多,約為2 000個(gè),而且鏈路的分布沒(méi)有規(guī)律且流量很大,在采用LDB的中,鏈路流量較為平均,說(shuō)明LDB相對(duì)于IOTA而言,不會(huì)對(duì)網(wǎng)絡(luò)鏈路造成過(guò)高負(fù)載。實(shí)驗(yàn)結(jié)果表明,LDB相比IOTA鏈路最大負(fù)載減少約28倍,LDB可以有效地解決中鏈路擁堵問(wèn)題,同時(shí)減少網(wǎng)絡(luò)鏈路的負(fù)載。
4 結(jié)束語(yǔ)
本文研究了基于有向無(wú)環(huán)圖區(qū)塊鏈的數(shù)據(jù)安全傳輸方案:a)提出一個(gè)安全的數(shù)據(jù)傳輸模型(LDB),利用區(qū)塊鏈技術(shù)實(shí)現(xiàn)了中數(shù)據(jù)的不可竄改;b)LDB引入有向無(wú)環(huán)圖區(qū)塊鏈技術(shù)并將其拆分到局部節(jié)點(diǎn)中,取消數(shù)據(jù)全網(wǎng)驗(yàn)證的過(guò)程,不僅減少了中節(jié)點(diǎn)的存儲(chǔ)空間需求,也解決了節(jié)點(diǎn)間數(shù)據(jù)的傳輸消耗問(wèn)題;c)與IOTA相比,LDB有效提高了網(wǎng)絡(luò)整體的吞吐量,在鏈路流量分布情況中,LDB明顯優(yōu)于IOTA。
未來(lái)工作將繼續(xù)研究區(qū)塊鏈在物聯(lián)網(wǎng)領(lǐng)域的數(shù)據(jù)安全問(wèn)題,尤其是在領(lǐng)域。為了解決有向無(wú)環(huán)圖區(qū)塊鏈的存儲(chǔ)瓶頸問(wèn)題,需要針對(duì)有向無(wú)環(huán)圖區(qū)塊鏈的存儲(chǔ)技術(shù)進(jìn)行提升研究。目前,本文給出IOTA與LDB在安全和性能方面的分析,后面將繼續(xù)研究LDB應(yīng)用到中的具體實(shí)現(xiàn)過(guò)程??紤]到的特點(diǎn),在下一步的工作中,可以考慮在該模型中給每一個(gè)節(jié)點(diǎn)設(shè)置信用評(píng)分機(jī)制來(lái)檢測(cè)節(jié)點(diǎn)被攻擊的可能性。
參考文獻(xiàn):
[1]史慧洋,劉玲,張玉清. 物鏈網(wǎng)綜述: 區(qū)塊鏈在物聯(lián)網(wǎng)中的應(yīng)用[J]. 信息安全學(xué)報(bào),2019,4(5): 76-91. (Shi Huiyang,Liu Ling,Zhang Yuqing. A review of BoT: blockchain for the Internet of Things[J]. Cyber Security,2019,4(5): 76-91.)
[2]Chen Min,Hao Yixue. Task offloading for mobile edge computing in software defined ultra-dense network[J]. IEEE Journal on Selec-ted Areas in Communications,2018,36(3): 587-597.
[3]Fakhri D,Mutijarsa K. Secure IoT communication using blockchain technology [C]// Proc of International Symposium on Electronics and Smart Devices. Piscataway,NJ: IEEE Press,2018: 1-6.
[4]Qu Chao,Tao Ming,Zhang Jie,et al. Blockchain based credibility verification method for IoT entities[J]. Security and Communication Networks,2018,2018: 1-11.
[5]Restuccia F,Kanhere S D A S,Melodia T, et al. Blockchain for the Internet of Things: present and future [EB/OL]. (2019-03-18). https://arxiv.org/abs/1903.07448.
[6]Yang Wenhui,Dai Xiaohai,Xiao Jiang,et al. LDV: a lightweight DAG-based blockchain for vehicular social networks[J]. IEEE Trans on Vehicular Technology,2020,69(6): 5749-5759.
[7]Nakamoto S. Bitcoin: a peer-to-peer electronic cash system[EB/OL]. (2008-10-31)[2019-10-02]. http://bitcoin.org.bitcoin.pdf.
[8]Blockchain. Blockchain charts[EB/OL]. (2022) [2022-04-04]. https://www.blockchain.com/charts.
[9]孫知信,張?chǎng)危喾?,?區(qū)塊鏈存儲(chǔ)可擴(kuò)展性研究進(jìn)展[J].軟件學(xué)報(bào),2021,32(1): 1-20. (Sun Zhixin,Zhang Xin,Xiang Feng,et al. Survey of storage scalability on blockchain[J]. Journal of Software,2021,32(1): 1-20.)
[10]Karame G O,Androulaki E. Bitcoin and blockchain security[M]. [S.l.]: Artech House,2016.
[11]Nadiya U,Mutijarsa K,Rizqi C Y. Block summarization and compression in bitcoin blockchain[C]// Proc of International Symposium on Electronics and Smart Devices. Piscataway,NJ: IEEE Press,2018: 1-4.
[12]Kim T,Noh J,Cho S. SCC: storage compression consensus for blockchain in lightweight IoT network [C]// Proc of IEEE International Conference on Consumer Electronics. Piscataway,NJ: IEEE Press,2019: 1-4.
[13]Zamani M,Movahedi M,Raykova M. Rapidchain: scaling blockchain via full sharding[C]// Proc of ACM SIGSAC Conference on Computer and Communications Security. 2018: 931-948.
[14]Das S,Kolluri A,Saxena P,et al. On the security of blockchain consensus protocols[C]// Proc of International Conference on Information Systems Security. Cham: Springer,2018: 465-480.
[15]Dai Mingjun,Zhang Shengli,Wang Hui,et al. A low storage room requirement framework for distributed ledger in blockchain[J]. IEEE Access,2018,6: 22970-22975.
[16]高政風(fēng),鄭繼來(lái),湯舒揚(yáng),等. 基于DAG的分布式賬本共識(shí)機(jī)制研究[J]. 軟件學(xué)報(bào),2020,31(4): 1124-1142. (Gao Zhengfeng,Zheng Jilai,Tang Shuyang,et al. State-of-the-art survey of consensus mechanisms on DAG-based distributed ledger[J]. Journal of Software,2020,31(4): 1124-1142.)
[17]Popov S. The tangle[EB/OL]. (2015). https://www.iota.hr/main/media/ docs/IOTA_Whitepaper.pdf.
[18]Churyumov A. Byteball: a decentralized system for storage and transfer of value[EB/OL]. (2016). https://obyte.org/Byteball.pdf.
[19]Baird L. The swirlds hashgraph consensus algorithm: fair,fast,Byzantine fault tolerance,SWIRLDS-TR-2016-01[R/OL]. (2016-05-31). https://www.swirlds.com/downloads/SWIRLDS-TR-2016-01.pdf.
[20]Zeng Pengjie,Wang Xiaoliang,Dong Liangzuo, et al. A blockchain scheme based on DAG structure security solution for IoT [C]// Proc of the 20th International Conference on Trust,Security and Privacy in Computing and Communications. Piscataway,NJ: IEEE Press,2021: 935-943.
[21]Cherupally S R,Boga S,Podili P, et al. Lightweight and scalable dag based distributed ledger for verifying IoT data integrity[C]// Proc of International Conference on Information Networking. Piscataway,NJ: IEEE Press,2021: 267-272.
[22]Bhandary M,Parmar M,Ambawade D. A blockchain solution based on directed acyclic graph for IoT data security using IOTA tangle [C]// Proc of the 5th International Conference on Communication and Electronics Systems. Piscataway,NJ: IEEE Press,2020: 827-832.
[23]郭才,李續(xù)然,陳炎華,等. 區(qū)塊鏈技術(shù)在物聯(lián)網(wǎng)中的應(yīng)用概述[J]. 物聯(lián)網(wǎng)學(xué)報(bào),2021,5(1): 72-89. (Guo Cai,Li Xuran,Chen Yanhua,et al. Blockchain technology for Internet of Things: an overview[J]. Chinese Journal on Internet of Things,2021,5(1): 72-89.)
[24]Mahgoub A,Tarrad N,Elsherif R, et al. IoT-based fire alarm system[C]// Proc of the 3rd World Conference on Smart Trends in Systems Security and Sustainability. Piscataway,NJ: IEEE Press,2019: 162-166.
[25]Malhotra A,Som S,Khatri S K. IoT based predictive model for cloud seeding[C]// Proc of Amity International Conference on Artificial Intelligence. 2019: 669-773.
[26]Sarfraz U,Alam M,Zeadally S,et al. Privacy aware IOTA ledger: decentralized mixing and unlinkable IOTA transactions[J]. Computer Networks,2019,148: 361-372.