劉江,霍如,李誠(chéng)成,鄒貴今,黃韜,劉韻潔
?
基于命名數(shù)據(jù)網(wǎng)絡(luò)的區(qū)塊鏈信息傳輸機(jī)制
劉江1,2,霍如2,李誠(chéng)成1,2,鄒貴今1,2,黃韜1,2,劉韻潔1,2
(1.北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,北京 100876;2.北京工業(yè)大學(xué)北京未來(lái)網(wǎng)絡(luò)科技高精尖創(chuàng)新中心,北京 100124)
近年來(lái)關(guān)于區(qū)塊鏈的研究得到極大關(guān)注,然而基于TCP/IP的通信對(duì)這種大量數(shù)據(jù)內(nèi)容廣播模式的支撐并不充分?;诿麛?shù)據(jù)網(wǎng)絡(luò),設(shè)計(jì)全新的支持區(qū)塊鏈推送服務(wù)的節(jié)點(diǎn)模型和特殊的讀寫表過(guò)程,提出完善的信息傳輸機(jī)制,通過(guò)請(qǐng)求聚合和數(shù)據(jù)緩存減少網(wǎng)內(nèi)冗余流量并加速通信傳輸。同時(shí)給出基于本架構(gòu)的虛擬貨幣應(yīng)用實(shí)例,并通過(guò)仿真驗(yàn)證本方案性能的優(yōu)勢(shì),進(jìn)一步展望未來(lái)相關(guān)的研究方向。
命名數(shù)據(jù)網(wǎng)絡(luò);區(qū)塊鏈;信息推送;內(nèi)容廣播;反向讀寫表項(xiàng)
2015年下半年,區(qū)塊鏈的概念迅速崛起,全球許多金融機(jī)構(gòu)和相關(guān)的IT企業(yè)掀起了一場(chǎng)在經(jīng)濟(jì)和互聯(lián)網(wǎng)方面區(qū)塊鏈技術(shù)帶來(lái)的商機(jī)熱潮。如果說(shuō)互聯(lián)網(wǎng)是實(shí)現(xiàn)了信息的傳播,那么區(qū)塊鏈就是進(jìn)一步實(shí)現(xiàn)了價(jià)值的轉(zhuǎn)移,可以說(shuō)區(qū)塊鏈技術(shù)是互聯(lián)網(wǎng)后下一代發(fā)展的顛覆性技術(shù)之一。該技術(shù)將某個(gè)時(shí)間段內(nèi)的數(shù)據(jù)存儲(chǔ)在一個(gè)區(qū)塊內(nèi),不同的區(qū)塊按照時(shí)間順序就形成了一個(gè)鏈狀結(jié)構(gòu),同時(shí)使用非對(duì)稱密鑰和散列算法等密碼學(xué)方法加密這些信息數(shù)據(jù),保證數(shù)據(jù)的不可篡改和安全性,在沒(méi)有第三方信任機(jī)構(gòu)的情況下,全網(wǎng)也能達(dá)成共識(shí)和完全的信任,形成了一個(gè)去中心化的分布式數(shù)據(jù)庫(kù)。目前,區(qū)塊鏈技術(shù)不僅在金融行業(yè)體現(xiàn)了巨大的應(yīng)用前景,而且在大數(shù)據(jù)、物聯(lián)網(wǎng)、人工智能等信息技術(shù)領(lǐng)域也有著互相影響的助力。
區(qū)塊鏈技術(shù)越火,應(yīng)用的范圍越廣,就對(duì)這個(gè)通信網(wǎng)絡(luò)的要求越高,從而保證其相關(guān)業(yè)務(wù)的性能。對(duì)于這種大量的數(shù)據(jù)在網(wǎng)絡(luò)中同步傳輸?shù)哪J?,人們希望有更加匹配這種模式的網(wǎng)絡(luò)架構(gòu),來(lái)優(yōu)化區(qū)塊鏈技術(shù)相關(guān)業(yè)務(wù)的傳輸?,F(xiàn)有的IP網(wǎng)絡(luò)需要2個(gè)主機(jī)端多次握手連接后才能進(jìn)行后續(xù)數(shù)據(jù)分組的轉(zhuǎn)發(fā),且就廣播而言,一個(gè)主機(jī)如果要將數(shù)據(jù)廣播給網(wǎng)絡(luò)中的所有個(gè)節(jié)點(diǎn),就需要封裝個(gè)數(shù)據(jù)分組,分別發(fā)送給這個(gè)節(jié)點(diǎn),造成統(tǒng)一數(shù)據(jù)的冗余傳輸,如果發(fā)生分組丟失現(xiàn)象,則更增加網(wǎng)絡(luò)的負(fù)擔(dān)。在未來(lái)網(wǎng)絡(luò)解決數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)架構(gòu)中,命名數(shù)據(jù)網(wǎng)絡(luò)(NDN, named-data networking)一直是備受關(guān)注的重點(diǎn)研究架構(gòu),它作為一個(gè)分布式的網(wǎng)絡(luò)架構(gòu),盡管沿用了IP網(wǎng)絡(luò)的沙漏模型,但是卻是以內(nèi)容名字作為“細(xì)腰”,實(shí)現(xiàn)了基于內(nèi)容命名的路由和轉(zhuǎn)發(fā),更加符合用戶對(duì)互聯(lián)網(wǎng)的直觀使用方式。命名數(shù)據(jù)網(wǎng)絡(luò)請(qǐng)求聚合和內(nèi)容緩存的優(yōu)良特性,能夠?yàn)閰^(qū)塊鏈技術(shù)信息傳輸提供更好的加速服務(wù)并且減輕整個(gè)網(wǎng)絡(luò)的流量負(fù)載。
盡管命名數(shù)據(jù)網(wǎng)絡(luò)在屬性上符合解決區(qū)塊鏈技術(shù)信息傳輸問(wèn)題的思路,但是目前區(qū)塊鏈技術(shù)是一種基于點(diǎn)對(duì)點(diǎn)的主動(dòng)推送數(shù)據(jù)的通信模式,而命名數(shù)據(jù)網(wǎng)絡(luò)則是一種基于用戶主動(dòng)請(qǐng)求從內(nèi)容源端拉取內(nèi)容的網(wǎng)絡(luò)架構(gòu)。為了讓命名數(shù)據(jù)網(wǎng)絡(luò)能夠更好地支撐區(qū)塊鏈技術(shù)的相關(guān)業(yè)務(wù),本文提出了一種新穎的基于命名數(shù)據(jù)網(wǎng)絡(luò)的區(qū)塊鏈技術(shù)信息傳輸機(jī)制,在原有支持內(nèi)容分發(fā)業(yè)務(wù)的基礎(chǔ)上,引入了推送服務(wù)業(yè)務(wù),改進(jìn)了原有的命名數(shù)據(jù)網(wǎng)絡(luò)節(jié)點(diǎn)模型,當(dāng)節(jié)點(diǎn)收到請(qǐng)求分組后,首先判斷請(qǐng)求分組的業(yè)務(wù)類型,對(duì)于推送服務(wù)類型的業(yè)務(wù),通過(guò)設(shè)計(jì)的推送服務(wù)待定興趣表來(lái)進(jìn)行讀寫表處理,并且通過(guò)反向?qū)懕眄?xiàng)的過(guò)程一次完成由推送方主動(dòng)發(fā)起數(shù)據(jù)分組推送過(guò)程。在這種大量數(shù)據(jù)傳輸?shù)膮^(qū)塊鏈技術(shù)相關(guān)業(yè)務(wù)中,本文提出的機(jī)制可以為這類實(shí)時(shí)性的推送業(yè)務(wù)提供加速服務(wù),并減輕整個(gè)網(wǎng)絡(luò)重復(fù)的冗余流量傳輸。
區(qū)塊鏈由一系列根據(jù)時(shí)間順序生成的記錄交易數(shù)據(jù)的區(qū)塊(block)鏈接組合形成,構(gòu)成了系統(tǒng)內(nèi)所有節(jié)點(diǎn)共享的交易數(shù)據(jù)庫(kù)。通過(guò)區(qū)塊鏈技術(shù)形成存儲(chǔ)的數(shù)據(jù)具有不可篡改和無(wú)法偽造的時(shí)間戳,任何交易都有完整的證據(jù)鏈和可信任的追溯環(huán)節(jié)。區(qū)塊鏈技術(shù)起源于虛擬貨幣,2008年虛擬貨幣誕生,緊接著,2009年出現(xiàn)了序號(hào)為0的虛擬貨幣創(chuàng)世區(qū)塊,并與序號(hào)為1的區(qū)塊相連形成了鏈,標(biāo)志著區(qū)塊鏈的誕生[1]。
區(qū)塊鏈的宗旨是要去中心化和實(shí)現(xiàn)匿名,建立自己系統(tǒng)內(nèi)公開(kāi)的信任機(jī)制[2]。其信任機(jī)制建立在非對(duì)稱密碼學(xué)基礎(chǔ)上,系統(tǒng)使用者不需要了解對(duì)方基本信息即可進(jìn)行可信任的價(jià)值交換,即在沒(méi)有中心機(jī)構(gòu)的情況下達(dá)成共識(shí),提高了傳統(tǒng)網(wǎng)絡(luò)交易的效率。任何人在任何時(shí)間都能夠通過(guò)相同的技術(shù)在區(qū)塊鏈上錄入自己的信息,而區(qū)塊鏈在數(shù)據(jù)透明的基礎(chǔ)上對(duì)所有交易對(duì)象都是匿名存在的,一定程度上保證了私人信息的安全性。它不依賴第三方,而是通過(guò)自身分布式節(jié)點(diǎn)進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)的存儲(chǔ)、驗(yàn)證、傳遞和交流,解決了傳統(tǒng)互聯(lián)網(wǎng)交易中基于信任而存在的第三方中介運(yùn)營(yíng)成本過(guò)大、網(wǎng)絡(luò)信息安全性不高的問(wèn)題[3]。
區(qū)塊鏈技術(shù)是具有普適性的底層技術(shù)框架,目前,一般認(rèn)為區(qū)塊鏈技術(shù)正處于2.0模式(可編程金融)的初期,眾多如智能合約、電子商務(wù)、證券交易、股權(quán)眾籌、物聯(lián)網(wǎng)和P2P借貸等各類基于區(qū)塊鏈技術(shù)的互聯(lián)網(wǎng)金融應(yīng)用相繼涌現(xiàn),發(fā)展前景廣闊。未來(lái)區(qū)塊鏈將更多地應(yīng)用于如新型寬帶網(wǎng)絡(luò)、保險(xiǎn)行業(yè)風(fēng)險(xiǎn)評(píng)估、藝術(shù)交易、法律公證、數(shù)字資產(chǎn)等生產(chǎn)、生活中的各個(gè)方面。
區(qū)塊鏈技術(shù)是基于密碼學(xué)中橢圓曲線數(shù)字簽名算法(ECDSA)實(shí)現(xiàn)去中心化的點(diǎn)對(duì)點(diǎn)系統(tǒng)設(shè)計(jì),將區(qū)塊以鏈的方式組合在一起形成數(shù)據(jù)結(jié)構(gòu),以參與者對(duì)全網(wǎng)交易記錄的事件順序和當(dāng)前狀態(tài)建立共識(shí)為基礎(chǔ),存儲(chǔ)有先后關(guān)系的、能在系統(tǒng)內(nèi)驗(yàn)證的數(shù)據(jù),并用密碼學(xué)保證這些數(shù)據(jù)不可篡改和不可偽造。區(qū)塊鏈技術(shù)原理如圖1所示,區(qū)塊鏈由一系列按時(shí)間順序排列的區(qū)塊組成,每個(gè)區(qū)塊由上個(gè)區(qū)塊的散列值與本區(qū)塊的內(nèi)容、時(shí)間戳、數(shù)字簽名和共識(shí)機(jī)制共同組成,對(duì)于不同的應(yīng)用來(lái)說(shuō),主要體現(xiàn)在存儲(chǔ)內(nèi)容和共識(shí)機(jī)制不同。
圖1 區(qū)塊鏈技術(shù)原理
區(qū)塊鏈的核心技術(shù)主要包括4個(gè)方面。
1) 區(qū)塊+鏈
區(qū)塊鏈改進(jìn)了傳統(tǒng)的數(shù)據(jù)庫(kù)結(jié)構(gòu),將數(shù)據(jù)分成若干區(qū)塊,每個(gè)區(qū)塊記錄著它被創(chuàng)建期間發(fā)生的所有交易活動(dòng)信息,這些區(qū)塊按照時(shí)間的先后順序鏈接在一起,形成一個(gè)完整且不可篡改的交易數(shù)據(jù)庫(kù),并被系統(tǒng)內(nèi)的所有節(jié)點(diǎn)共享。
2) 非對(duì)稱加密算法和授權(quán)技術(shù)
區(qū)塊鏈技術(shù)的密鑰對(duì)中的公鑰全網(wǎng)公開(kāi),所有人都可以用自己的公鑰來(lái)加密一段內(nèi)容,驗(yàn)證內(nèi)容的真實(shí)性;私鑰只有信息擁有者可知,被加密的內(nèi)容只有通過(guò)相應(yīng)的私鑰才能解密,保證內(nèi)容的安全性。在區(qū)塊鏈應(yīng)用的交易中,公鑰加密交易信息,私鑰解密交易信息;同時(shí)私鑰對(duì)信息簽名,公鑰驗(yàn)證簽名,通過(guò)公鑰簽名驗(yàn)證信息可以確認(rèn)該交易信息是否由私鑰持有人發(fā)出。整個(gè)過(guò)程中,交易信息是透明公開(kāi)的,但賬戶信息采用純數(shù)學(xué)方式高度加密,實(shí)現(xiàn)交易匿名,保證隱私安全。
3) 共識(shí)機(jī)制
由于點(diǎn)對(duì)點(diǎn)網(wǎng)絡(luò)下存在較高的網(wǎng)絡(luò)時(shí)延,各個(gè)節(jié)點(diǎn)所觀察到的事務(wù)先后順序不可能完全一致,因此,區(qū)塊鏈技術(shù)需要一種機(jī)制使所有通信節(jié)點(diǎn)對(duì)于在差不多時(shí)間內(nèi)發(fā)生的事務(wù)的先后順序達(dá)成共識(shí)。這種對(duì)一個(gè)時(shí)間窗口內(nèi)事務(wù)的先后順序達(dá)成一致的算法被稱為共識(shí)機(jī)制。常用的共識(shí)算法類別有工作量證明(POW)、權(quán)益證明(POS)、代議制權(quán)益證明(DPOS)和過(guò)去時(shí)間證明(POeT)等。
4) 腳本
一個(gè)腳本本質(zhì)上是眾多指令的列表,具有可編程性,這些指令記錄著每一次價(jià)值交換活動(dòng)中,交易雙方進(jìn)行交易需要滿足的附加條件,而在去中心化的環(huán)境下,所有的協(xié)議都需要提前取得共識(shí),而腳本的引入就使區(qū)塊鏈技術(shù)能有機(jī)會(huì)去處理一些系統(tǒng)中無(wú)法預(yù)見(jiàn)到的交易模式,增加了該技術(shù)的實(shí)用性。
區(qū)塊鏈技術(shù)與金融市場(chǎng)應(yīng)用有很高的契合度,R3CEV、納斯達(dá)克等各金融機(jī)構(gòu)相繼投入?yún)^(qū)塊鏈技術(shù)的研發(fā)中。區(qū)塊鏈在很大程度上實(shí)現(xiàn)了金融脫媒,這對(duì)第三方支付、資金托管等存在中介機(jī)構(gòu)的商業(yè)模式來(lái)說(shuō)是顛覆性的變革[1];基于區(qū)塊鏈的智能寬帶網(wǎng)絡(luò)也正致力于從集中式轉(zhuǎn)變?yōu)榉植际?,使共享的沒(méi)有信任關(guān)系的網(wǎng)絡(luò)節(jié)點(diǎn)實(shí)現(xiàn)安全的信息傳輸[4];在醫(yī)療方面,區(qū)塊鏈的非對(duì)稱加密技術(shù)可以使健康數(shù)據(jù)被更好地保護(hù)起來(lái),防止非正常泄露帶來(lái)的嚴(yán)重后果,便于建立一個(gè)全人類安全的健康數(shù)據(jù)庫(kù);而且在如今發(fā)展迅速的物流供應(yīng)領(lǐng)域,區(qū)塊鏈技術(shù)能為供應(yīng)鏈中的物流信息提供認(rèn)證服務(wù),通過(guò)區(qū)塊鏈數(shù)據(jù)庫(kù)的源頭追蹤功能就可以很快地找到問(wèn)題所在,實(shí)時(shí)追蹤商品流轉(zhuǎn)信息,實(shí)現(xiàn)全透明消費(fèi)[5]??梢灶A(yù)見(jiàn),未來(lái)區(qū)塊鏈技術(shù)將更多地被應(yīng)用到人們生活的方方面面。
可以看出,區(qū)塊鏈的推廣日益增長(zhǎng),隨著區(qū)塊鏈應(yīng)用的不斷普及,更多的數(shù)據(jù)會(huì)在網(wǎng)絡(luò)中傳輸,為了給用戶提供更好的體驗(yàn)并且保證應(yīng)用業(yè)務(wù)的實(shí)時(shí)性,如何保證高效良好的區(qū)塊鏈信息傳輸成為未來(lái)一個(gè)值得研究的問(wèn)題。在這個(gè)問(wèn)題的研究過(guò)程中,要充分考慮到支持分布式網(wǎng)絡(luò)、支持點(diǎn)對(duì)點(diǎn)通信、支持內(nèi)容推送、很好地支持內(nèi)容廣播、更好地緩解網(wǎng)絡(luò)信息傳輸壓力等特征。
隨著內(nèi)容的增多和終端設(shè)備不斷地加入,互聯(lián)網(wǎng)逐漸由一個(gè)傳統(tǒng)的端到端通信網(wǎng)絡(luò)向一個(gè)分布式內(nèi)容分發(fā)網(wǎng)絡(luò)的方向發(fā)展。由于在TCP/IP網(wǎng)絡(luò)架構(gòu)下,IP地址數(shù)量是有限的,這將越來(lái)越難以滿足日益增多的互聯(lián)網(wǎng)終端設(shè)備,同時(shí)基于端到端連接的通信模式將會(huì)導(dǎo)致路由條目的急劇增多,增大骨干網(wǎng)的流量壓力,原有的“細(xì)腰”IP層將會(huì)成為限制網(wǎng)絡(luò)內(nèi)容增長(zhǎng)、接入設(shè)備增多以及網(wǎng)絡(luò)流量增加的瓶頸。
命名數(shù)據(jù)網(wǎng)絡(luò)借鑒并保留了原有TCP/IP網(wǎng)絡(luò)體系架構(gòu)的沙漏模型,但NDN在沙漏模型的“細(xì)腰”部位采用了內(nèi)容塊(content chunk),也就是將網(wǎng)絡(luò)中的內(nèi)容資源等信息與IP地址之間的關(guān)系解耦,轉(zhuǎn)而與內(nèi)容的命名綁定,將網(wǎng)絡(luò)的關(guān)注點(diǎn)從“在哪里”轉(zhuǎn)變成“是什么”,適應(yīng)了當(dāng)前互聯(lián)網(wǎng)對(duì)內(nèi)容需求不斷增加的趨勢(shì)。NDN屬于信息中心網(wǎng)絡(luò)(ICN, information-centric networking)中分布式架構(gòu)的代表,即NDN中的每一個(gè)節(jié)點(diǎn)都擁有全網(wǎng)的狀態(tài)信息,可以獨(dú)立地實(shí)現(xiàn)路由計(jì)算、路由選擇以及轉(zhuǎn)發(fā)。此外,ICN體系中還有集中式架構(gòu),主要有面向數(shù)據(jù)的網(wǎng)絡(luò)體系架構(gòu)[6]、發(fā)布/訂閱式網(wǎng)絡(luò)體系架構(gòu)[7,8]等,這些架構(gòu)以集中式路由選擇策略為核心,由網(wǎng)絡(luò)控制系統(tǒng)收集全網(wǎng)狀態(tài)信息并實(shí)現(xiàn)路由計(jì)算和路由選擇。在經(jīng)歷概念提出、協(xié)議棧定義、數(shù)據(jù)結(jié)構(gòu)與關(guān)鍵技術(shù)設(shè)計(jì)以及命名鏈路狀態(tài)路由協(xié)議[9]的設(shè)計(jì)之后,目前,NDN項(xiàng)目組將研究的重點(diǎn)放在NDN轉(zhuǎn)發(fā)守護(hù)進(jìn)程[10,11]上,并且基于上述的研究完成了一張全球范圍的NDN試驗(yàn)床的搭建工作,并在不斷地更新與維護(hù)。
此外,學(xué)術(shù)界和產(chǎn)業(yè)界也在積極地將NDN與物聯(lián)網(wǎng)、車聯(lián)網(wǎng)等概念進(jìn)行結(jié)合,希望將NDN內(nèi)容分發(fā)的優(yōu)勢(shì)運(yùn)用到現(xiàn)有的網(wǎng)絡(luò)中。
NDN中交互的分組分為2類,分別是Interest(請(qǐng)求)分組和Data(數(shù)據(jù))分組。NDN作為請(qǐng)求方驅(qū)動(dòng)的網(wǎng)絡(luò),Interest分組是由內(nèi)容請(qǐng)求方向內(nèi)容源發(fā)出的、用于請(qǐng)求相應(yīng)內(nèi)容的請(qǐng)求分組;Data分組則是由內(nèi)容源或內(nèi)容緩存節(jié)點(diǎn)返回的內(nèi)容。命名數(shù)據(jù)網(wǎng)絡(luò)單個(gè)節(jié)點(diǎn)通信流程如圖2所示,每個(gè)NDN節(jié)點(diǎn)都包含3種數(shù)據(jù)結(jié)構(gòu),分別是內(nèi)容緩存庫(kù)(CS, content store)、待定興趣表(PIT, pending interest table)和轉(zhuǎn)發(fā)信息表(FIB, forwarding information base)[12]。CS用于緩存節(jié)點(diǎn)收到的數(shù)據(jù)分組內(nèi)容,相同的內(nèi)容請(qǐng)求可能會(huì)在路由器節(jié)點(diǎn)得到快速及時(shí)的響應(yīng),從而減少了內(nèi)容請(qǐng)求對(duì)于內(nèi)容源的訪問(wèn)次數(shù)并避免冗余流量的重復(fù)傳輸。PIT用于記錄已經(jīng)轉(zhuǎn)發(fā)出去但未被響應(yīng)的請(qǐng)求分組的內(nèi)容名及其來(lái)源的接口,PIT可以讓經(jīng)過(guò)一個(gè)節(jié)點(diǎn)并請(qǐng)求具有相同內(nèi)容請(qǐng)求分組匯聚在一個(gè)表項(xiàng)中,這個(gè)過(guò)程僅轉(zhuǎn)發(fā)一個(gè)該請(qǐng)求分組,返回的數(shù)據(jù)分組按照PIT的指示,沿請(qǐng)求分組轉(zhuǎn)發(fā)的路徑反向返回,準(zhǔn)確到達(dá)請(qǐng)求方。FIB類似于TCP/IP網(wǎng)絡(luò)中的FIB,都是依靠路由協(xié)議生成,記錄著當(dāng)前節(jié)點(diǎn)通往內(nèi)容源或內(nèi)容緩存節(jié)點(diǎn)的下一跳接口,是節(jié)點(diǎn)轉(zhuǎn)發(fā)請(qǐng)求分組的依據(jù)。
圖2 命名數(shù)據(jù)網(wǎng)絡(luò)單個(gè)節(jié)點(diǎn)通信流程
因此,NDN的通信流程可以分成2種情況,如圖3所示。
圖3 命名數(shù)據(jù)網(wǎng)絡(luò)全網(wǎng)通信流程
1) 當(dāng)NDN節(jié)點(diǎn)收到一個(gè)請(qǐng)求分組時(shí),首先檢查CS中是否有請(qǐng)求分組所需請(qǐng)求的內(nèi)容,若有,則將內(nèi)容從請(qǐng)求分組到來(lái)的端口轉(zhuǎn)發(fā)回請(qǐng)求方;若沒(méi)有,則檢查PIT中是否已經(jīng)記錄著所請(qǐng)求的內(nèi)容名,若已有記錄,說(shuō)明已經(jīng)有請(qǐng)求相同內(nèi)容的請(qǐng)求分組經(jīng)過(guò)該節(jié)點(diǎn)并轉(zhuǎn)發(fā)出去,此時(shí),只需要將當(dāng)前請(qǐng)求分組到來(lái)的端口記錄到PIT中即可;若PIT中無(wú)匹配的表項(xiàng),則在PIT中添加完整的表項(xiàng)并基于FIB和轉(zhuǎn)發(fā)策略將請(qǐng)求分組向內(nèi)容源方向進(jìn)行轉(zhuǎn)發(fā)。
2) 當(dāng)NDN節(jié)點(diǎn)收到一個(gè)數(shù)據(jù)分組時(shí),首先通過(guò)最長(zhǎng)前綴匹配的方式找到匹配的PIT,并將數(shù)據(jù)分組按照匹配表項(xiàng)給出的端口向請(qǐng)求方轉(zhuǎn)發(fā);若沒(méi)有匹配的PIT,說(shuō)明當(dāng)前節(jié)點(diǎn)以及相關(guān)的請(qǐng)求方不需要該數(shù)據(jù)分組中的內(nèi)容,則丟棄該數(shù)據(jù)分組。每當(dāng)NDN節(jié)點(diǎn)收到并轉(zhuǎn)發(fā)一個(gè)數(shù)據(jù)分組,都會(huì)將PIT中匹配的表項(xiàng)刪除,同時(shí)將數(shù)據(jù)分組中的內(nèi)容緩存在該節(jié)點(diǎn)的CS中。
由于NDN的每一個(gè)數(shù)據(jù)分組自身都攜帶著命名前綴和簽名,內(nèi)容的請(qǐng)求和獲取與請(qǐng)求方、發(fā)布方的身份以及位置都沒(méi)有關(guān)系,因此,通過(guò)緩存內(nèi)容的方式可就近響應(yīng)內(nèi)容的請(qǐng)求,不僅可以減少請(qǐng)求與響應(yīng)之間的時(shí)間間隔,減輕請(qǐng)求對(duì)內(nèi)容源服務(wù)器的訪問(wèn)壓力,同時(shí)在出現(xiàn)分組丟失時(shí),可以向最近的緩存節(jié)點(diǎn)請(qǐng)求并獲取內(nèi)容,而不需要再次向遠(yuǎn)處的服務(wù)器請(qǐng)求,在多播和請(qǐng)求重傳場(chǎng)景下的內(nèi)容轉(zhuǎn)發(fā)性能得以提升[12]。與TCP/IP網(wǎng)絡(luò)中需要事先建立端到端連接的緩存機(jī)制不同,NDN中內(nèi)容的請(qǐng)求和獲取不依賴于端到端連接的傳輸模式,而是一種內(nèi)容分發(fā)式的查找與傳輸。如圖3所示,當(dāng)查找最近的緩存節(jié)點(diǎn)沒(méi)有相應(yīng)可用的緩存內(nèi)容時(shí),請(qǐng)求分組會(huì)最終到達(dá)內(nèi)容源服務(wù)器(過(guò)程①和②)。若發(fā)現(xiàn)節(jié)點(diǎn)緩存有可用的內(nèi)容時(shí),緩存節(jié)點(diǎn)會(huì)就近響應(yīng)請(qǐng)求,并將內(nèi)容返回給請(qǐng)求方(過(guò)程③和④)。
作為一個(gè)請(qǐng)求方驅(qū)動(dòng)的內(nèi)容分發(fā)網(wǎng)絡(luò),NDN具有網(wǎng)內(nèi)緩存機(jī)制,可以加速內(nèi)容數(shù)據(jù)的同步;并且NDN關(guān)注的是內(nèi)容本身,NDN分組結(jié)構(gòu)可以將數(shù)據(jù)安全細(xì)化到分組層面,即對(duì)每一個(gè)分組進(jìn)行簽名和驗(yàn)證,很好地細(xì)化了安全粒度并保證安全性;同時(shí)鏈路狀態(tài)與緩存內(nèi)容狀態(tài)保持一致性,基于命名數(shù)據(jù)鏈路狀態(tài)路由協(xié)議(NLSR, named-data link state routing protocol),不僅可以保證NDN中各節(jié)點(diǎn)鏈路狀態(tài)的全網(wǎng)一致性,同時(shí)可以保證NDN各節(jié)點(diǎn)緩存內(nèi)容狀態(tài)的一致性,即運(yùn)行NLSR的NDN中的任意一個(gè)NDN節(jié)點(diǎn),通過(guò)維持一個(gè)鏈路狀態(tài)數(shù)據(jù)庫(kù)(LSDB, link state database),可以知道某個(gè)內(nèi)容的內(nèi)容源和內(nèi)容緩存節(jié)點(diǎn)在網(wǎng)絡(luò)中的位置以及如何到達(dá)這部分節(jié)點(diǎn)。
區(qū)塊鏈技術(shù)作為一個(gè)去中心化的分布式數(shù)據(jù)廣播通信模式,在解決其信息傳輸問(wèn)題方面,如果采用NDN模型,將有以下優(yōu)勢(shì)。
1) NDN的網(wǎng)內(nèi)緩存機(jī)制可以緩解新區(qū)塊全網(wǎng)同步在IP網(wǎng)絡(luò)端到端連接產(chǎn)生的大量通信開(kāi)銷,還可以減少訪問(wèn)區(qū)塊所在節(jié)點(diǎn)的網(wǎng)絡(luò)流量,避免網(wǎng)絡(luò)擁塞,同時(shí)加快區(qū)塊同步的速度。
2) NDN基于名字的路由和轉(zhuǎn)發(fā),在安全隱私方面相對(duì)于現(xiàn)在的IP網(wǎng)絡(luò)是一個(gè)很大的優(yōu)勢(shì),與區(qū)塊鏈“隱藏交易各方信息,公開(kāi)交易內(nèi)容”的設(shè)計(jì)思想高度吻合。
3) NDN中鏈路狀態(tài)與緩存內(nèi)容狀態(tài)的一致性,可以滿足區(qū)塊鏈技術(shù)需要全網(wǎng)各節(jié)點(diǎn)備份相同的區(qū)塊鏈數(shù)據(jù)的需求一致。同時(shí)也是去中心化的表現(xiàn),符合區(qū)塊鏈技術(shù)的設(shè)計(jì)思路。
傳統(tǒng)的命名數(shù)據(jù)網(wǎng)絡(luò)是基于用戶“分發(fā)”(pull)的模式來(lái)完成通信過(guò)程的,即用戶會(huì)主動(dòng)在網(wǎng)絡(luò)中發(fā)起對(duì)數(shù)據(jù)對(duì)象的請(qǐng)求分組,再通過(guò)路由器節(jié)點(diǎn)的路由和轉(zhuǎn)發(fā),將該請(qǐng)求分組送達(dá)內(nèi)容源,進(jìn)而獲取到用戶的數(shù)據(jù)對(duì)象。然而,對(duì)于區(qū)塊鏈技術(shù)而言,其應(yīng)用場(chǎng)景都是基于點(diǎn)對(duì)點(diǎn)傳輸?shù)膶?shí)時(shí)通信,即每個(gè)通信節(jié)點(diǎn)主動(dòng)將自己產(chǎn)生的數(shù)據(jù)對(duì)象“推”(push)送給對(duì)應(yīng)應(yīng)用場(chǎng)景里的所有其他通信節(jié)點(diǎn)。因此,如果人們基于命名數(shù)據(jù)網(wǎng)絡(luò)來(lái)解決區(qū)塊鏈信息傳輸?shù)膯?wèn)題,就需要命名數(shù)據(jù)網(wǎng)絡(luò)也支持這種用戶訂閱的模式,通信節(jié)點(diǎn)僅會(huì)將其本身產(chǎn)生的數(shù)據(jù)對(duì)象推送給已知的訂閱用戶(即應(yīng)用場(chǎng)景中的其他點(diǎn)對(duì)點(diǎn)通信節(jié)點(diǎn))。
因此,在基于命名數(shù)據(jù)網(wǎng)絡(luò)的區(qū)塊鏈信息傳輸架構(gòu)中,人們?nèi)匀辉诩嫒菝麛?shù)據(jù)網(wǎng)絡(luò)現(xiàn)有通信模式(即保留其支持分發(fā)服務(wù)的特征)的情況下,同時(shí)增加其支持推送服務(wù)的能力。通過(guò)構(gòu)造特殊的請(qǐng)求分組格式,觸發(fā)通信節(jié)點(diǎn)將其產(chǎn)生的數(shù)據(jù)對(duì)象推送給應(yīng)用場(chǎng)景內(nèi)的所有其他目標(biāo)通信節(jié)點(diǎn)。
對(duì)于區(qū)塊鏈應(yīng)用場(chǎng)景的每個(gè)通信節(jié)點(diǎn)(用戶終端或服務(wù)器)在命名數(shù)據(jù)網(wǎng)絡(luò)通信環(huán)境中,如果想接收到產(chǎn)生數(shù)據(jù)對(duì)象的節(jié)點(diǎn)“推”送的數(shù)據(jù)對(duì)象,就需要所有的通信節(jié)點(diǎn)定期向網(wǎng)絡(luò)中發(fā)送請(qǐng)求分組,這部分請(qǐng)求分組的類型即控制信令類型,路由建立算法如算法1所示,用于表達(dá)自身節(jié)點(diǎn)的活躍狀態(tài)(繼續(xù)參與被動(dòng)推送和主動(dòng)請(qǐng)求的應(yīng)用場(chǎng)景或退出該應(yīng)用場(chǎng)景)。如果請(qǐng)求分組中節(jié)點(diǎn)表達(dá)自身為活躍狀態(tài),則路由器中相應(yīng)添加此條路由項(xiàng),再轉(zhuǎn)發(fā)到下一路由器重復(fù)上述過(guò)程;如果請(qǐng)求分組中節(jié)點(diǎn)表達(dá)自身為退出狀態(tài),則路由器刪除相應(yīng)的路由項(xiàng)。接收到該種請(qǐng)求分組的節(jié)點(diǎn)再繼續(xù)響應(yīng)一個(gè)表明已添加該節(jié)點(diǎn)到接收“推”送信息聯(lián)系人列表或已刪除該聯(lián)系人的數(shù)據(jù)分組。因此,命名數(shù)據(jù)網(wǎng)絡(luò)中的路由器就是根據(jù)節(jié)點(diǎn)發(fā)送的請(qǐng)求分組帶有的信息來(lái)建立整個(gè)網(wǎng)絡(luò)中的初始路由,便于后續(xù)通信的路由和轉(zhuǎn)發(fā)。
算法1 基于命名數(shù)據(jù)網(wǎng)絡(luò)的區(qū)塊鏈信息傳輸架構(gòu)節(jié)點(diǎn)路由建立算法
1) /*判斷請(qǐng)求分組類型*/
if 請(qǐng)求分組類型 = 控制信令類型then
goto 3)
2) /*非控制信令類型請(qǐng)求分組處理*/
if 請(qǐng)求分組類型 = 推送服務(wù)類型then
查詢PPIT處理
else /*請(qǐng)求分組類型 = 內(nèi)容分發(fā)類型*/
查詢PIT處理
goto 4)
3) /* 區(qū)塊鏈應(yīng)用場(chǎng)景驅(qū)動(dòng)節(jié)點(diǎn)動(dòng)態(tài)路由表建立*/
if 通信節(jié)點(diǎn)狀態(tài) = positive then
if FIB中不存在該通信節(jié)點(diǎn)信息then
在FIB中添加該通信節(jié)點(diǎn)名字和請(qǐng)求分組來(lái)的端口號(hào)
else /* FIB中存在該通信節(jié)點(diǎn)信息*/
goto 5)
else /*通信節(jié)點(diǎn)狀態(tài) = negative*/
在FIB中刪除該通信節(jié)點(diǎn)名字和請(qǐng)求分組來(lái)的端口號(hào)
goto 5)
4) 根據(jù)FIB轉(zhuǎn)發(fā)請(qǐng)求分組到下一節(jié)點(diǎn)
exit
5) 控制信令請(qǐng)求分組轉(zhuǎn)發(fā)到下一節(jié)點(diǎn)
在基于命名數(shù)據(jù)網(wǎng)絡(luò)的區(qū)塊鏈信息傳輸架構(gòu)的設(shè)計(jì)中,將區(qū)分“推”送類型的請(qǐng)求服務(wù)和“分發(fā)”類型的請(qǐng)求服務(wù)。因此,在原有命名數(shù)據(jù)網(wǎng)絡(luò)節(jié)點(diǎn)模塊的原型基礎(chǔ)上,增加推送服務(wù)待定興趣表(PPIT),用于記錄實(shí)時(shí)“推”送類型服務(wù)的請(qǐng)求分組信息,而待定興趣表(PIT)仍然只負(fù)責(zé)記錄非實(shí)時(shí)“分發(fā)”類業(yè)務(wù)的請(qǐng)求分組信息。PPIT的功能類似于PIT,負(fù)責(zé)指導(dǎo)數(shù)據(jù)分組“回傳”的路徑,需要在請(qǐng)求分組發(fā)的過(guò)程中記錄下請(qǐng)求的“推”送內(nèi)容名和數(shù)據(jù)分組回傳應(yīng)該經(jīng)過(guò)的端口號(hào)??紤]到“推”送類型業(yè)務(wù)主動(dòng)將自己產(chǎn)生的數(shù)據(jù)內(nèi)容“推”送給應(yīng)用場(chǎng)景中的其他通信節(jié)點(diǎn)的特征,為了減少交互次數(shù),提高鏈路利用率并減小內(nèi)容傳輸時(shí)延,通過(guò)“推”送方主動(dòng)發(fā)送的請(qǐng)求分組來(lái)構(gòu)造一個(gè)假的接收方發(fā)來(lái)的對(duì)該“推”送內(nèi)容的請(qǐng)求,建立一個(gè)反向的寫待定興趣表過(guò)程,如算法2所示,這樣不需要接收方請(qǐng)求就可以將內(nèi)容推送過(guò)去。同時(shí)考慮到實(shí)時(shí)類業(yè)務(wù)的持續(xù)推送,避免對(duì)同一內(nèi)容的后續(xù)內(nèi)容塊再重復(fù)發(fā)送請(qǐng)求分組或數(shù)據(jù)分組造成時(shí)延、體驗(yàn)差等問(wèn)題,在數(shù)據(jù)回傳的過(guò)程中,PPIT將不會(huì)刪除已完成記錄條目,同時(shí)會(huì)增加記錄數(shù)據(jù)分組序列號(hào)的功能。具體通信流程如圖4所示。
算法2 “推”送類型業(yè)務(wù)PPIT建立算法
1) /*判斷請(qǐng)求分組類型*/
if 請(qǐng)求分組類型 = push類then
goto 2)
else /*請(qǐng)求分組類型 = pull類*/
執(zhí)行PIT表建立過(guò)程
exit
2) /*推送方主動(dòng)發(fā)送特殊請(qǐng)求分組,建立PPIT*/
if PPIT中不存在該待推送內(nèi)容信息then
PPIT記錄推送內(nèi)容名字
/*構(gòu)造反向的寫待定興趣表過(guò)程*/
PPIT記錄從本節(jié)點(diǎn)發(fā)送出去的端口號(hào)到相應(yīng)的入端口表項(xiàng)中
/*記錄時(shí)間戳,便于區(qū)分同一數(shù)據(jù)內(nèi)容的不同的內(nèi)容塊*/
PPIT記錄數(shù)據(jù)對(duì)象序列號(hào)
else /* PPIT中存在該待推送內(nèi)容信息,判斷該請(qǐng)求分組出端口號(hào)和入端口號(hào)是否匹配*/
if out port = in port then
exit
else
記錄出端口號(hào)在入端口表項(xiàng)中
當(dāng)有請(qǐng)求分組到達(dá)時(shí),首先在內(nèi)容緩存器CS中查找是否已經(jīng)緩存該內(nèi)容,若有則直接返回該內(nèi)容數(shù)據(jù)分組,否則判定該請(qǐng)求分組的類型。若為區(qū)塊鏈應(yīng)用(即推送類型)請(qǐng)求分組,則查詢推送服務(wù)待定興趣表PPIT,如果該請(qǐng)求內(nèi)容的名字已經(jīng)在PPIT中存在,則相應(yīng)地進(jìn)行寫反向待定興趣表過(guò)程;如果該請(qǐng)求內(nèi)容的名字在PPIT中不存在,則相應(yīng)地添加該請(qǐng)求分組全部信息條目(內(nèi)容名字、寫反向待定興趣表入端口表項(xiàng)端口號(hào)、推送內(nèi)容序列號(hào)),再通過(guò)路由信息表進(jìn)行路由轉(zhuǎn)發(fā)到下一節(jié)點(diǎn)。如果判定該請(qǐng)求分組類型為分發(fā)類服務(wù)請(qǐng)求分組,則按照常規(guī)的待定興趣表PIT操作進(jìn)行處理。而在數(shù)據(jù)分組處理的過(guò)程中,首先判斷數(shù)據(jù)分組的類型,如果是分發(fā)類業(yè)務(wù)的數(shù)據(jù)分組,則按照常規(guī)的命名數(shù)據(jù)網(wǎng)絡(luò)流程處理;如果是區(qū)塊鏈業(yè)務(wù)的數(shù)據(jù)分組,則在相應(yīng)的PPIT中進(jìn)行查詢,若數(shù)據(jù)分組中的內(nèi)容序列號(hào)不小于PPIT中對(duì)應(yīng)條目的序列號(hào),則按照PPIT中記錄的端口號(hào)進(jìn)行轉(zhuǎn)發(fā),表明該數(shù)據(jù)分組中包含的是其他用戶實(shí)時(shí)請(qǐng)求的當(dāng)前最新產(chǎn)生的業(yè)務(wù)數(shù)據(jù)或者相應(yīng)業(yè)務(wù)數(shù)據(jù)后續(xù)內(nèi)容塊的持續(xù)推送;若數(shù)據(jù)分組中的內(nèi)容序列號(hào)小于PPIT中對(duì)應(yīng)條目的序列號(hào),盡管該數(shù)據(jù)分組也是推送類型的,但是卻不是實(shí)時(shí)業(yè)務(wù),則通過(guò)PIT進(jìn)行下一步的處理。
圖4 基于命名數(shù)據(jù)網(wǎng)絡(luò)的區(qū)塊鏈信息傳輸通信流程
盡管這里增加了新的表結(jié)構(gòu),但是通過(guò)反向?qū)懘ㄅd趣表的過(guò)程,使支持推送類型業(yè)務(wù)的NDN仍然只需發(fā)送一次請(qǐng)求就可以對(duì)應(yīng)獲得一個(gè)數(shù)據(jù)分組,這意味著建立新表本身不會(huì)帶來(lái)附加的分組開(kāi)銷。事實(shí)上,引入新表增加的是路由器的處理能力,要求路由器在收到請(qǐng)求分組時(shí),首先分析分組類型,一方面基于現(xiàn)有硬件的發(fā)展能力,另一方面基于NDN本身的以數(shù)據(jù)命名的思想和方式,所以這并不會(huì)給路由器的處理過(guò)程增加太多的復(fù)雜度,就能實(shí)現(xiàn)新的業(yè)務(wù)支撐能力。
正如第2節(jié)所述,隨著區(qū)塊鏈技術(shù)的不斷發(fā)展,其衍生出多種形態(tài),包括公有鏈、私有鏈、聯(lián)盟鏈和側(cè)鏈。結(jié)合區(qū)塊鏈技術(shù)目前主要的應(yīng)用趨勢(shì),本節(jié)主要以公有鏈的形式為代表,詳細(xì)介紹虛擬貨幣這種基于區(qū)塊鏈技術(shù)的應(yīng)用場(chǎng)景是如何在本文提出的基于命名數(shù)據(jù)網(wǎng)絡(luò)的區(qū)塊鏈信息傳輸架構(gòu)之上實(shí)現(xiàn)通信和交易過(guò)程的。
虛擬貨幣作為一個(gè)典型的公有鏈形式,是區(qū)塊鏈技術(shù)最早且最有代表性的應(yīng)用場(chǎng)景。在基于命名數(shù)據(jù)網(wǎng)絡(luò)的區(qū)塊鏈信息傳輸架構(gòu)之上部署的虛擬貨幣應(yīng)用場(chǎng)景如圖5所示。當(dāng)用戶A使用虛擬貨幣向商家Z付款完成一筆交易時(shí),首先A發(fā)送正常的請(qǐng)求分組給Z獲取Z的收款地址(該地址用于存放虛擬貨幣),Z收到該請(qǐng)求分組后創(chuàng)建一個(gè)新地址用于接收A的款項(xiàng),并將該地址通過(guò)數(shù)據(jù)分組回傳給A。A收到Z的數(shù)據(jù)分組后,在自己的“錢包”(包含多個(gè)虛擬貨幣地址)中選擇付款地址,并用相應(yīng)的私鑰(每個(gè)地址對(duì)應(yīng)一個(gè)私鑰)加密該筆交易申請(qǐng)。這里假定參與虛擬貨幣交易的礦工為圖5中所示的礦工C~礦工G,用戶A已經(jīng)添加礦工C~礦工G為自己的聯(lián)系人列表。此時(shí)用戶A發(fā)送push類型請(qǐng)求分組給所有聯(lián)系人列表成員(包括所有的礦工和商家Z),網(wǎng)絡(luò)中的路由器節(jié)點(diǎn)進(jìn)行反向?qū)慞PIT過(guò)程,構(gòu)造一種所有礦工和商家Z向用戶A共同發(fā)起對(duì)該筆交易申請(qǐng)的請(qǐng)求分組的“假象”,然后用戶A將該筆交易申請(qǐng)以push類型數(shù)據(jù)分組的形式發(fā)送出去,網(wǎng)絡(luò)中的路由器節(jié)點(diǎn)根據(jù)PPIT中記錄的信息轉(zhuǎn)發(fā)該數(shù)據(jù)分組到所有虛擬貨幣應(yīng)用場(chǎng)景中的通信節(jié)點(diǎn)。礦工C~礦工G收到數(shù)據(jù)分組后,使用相應(yīng)的公鑰驗(yàn)證該筆交易的合法性,將一段時(shí)間內(nèi)的交易數(shù)據(jù)打包成一個(gè)新的交易塊,計(jì)算新的散列值,從而形成新的賬本,最先計(jì)算出符合規(guī)則的散列值的礦工(比如礦工D),會(huì)獲得虛擬貨幣獎(jiǎng)勵(lì),包含在這個(gè)新的區(qū)塊中,礦工D同樣發(fā)送push類型請(qǐng)求分組給所有其他礦工,建立PPIT之后,D再發(fā)送它計(jì)算好的區(qū)塊以push類型數(shù)據(jù)分組形式給其他礦工,以記錄下這筆交易,保證交易生效和賬本不可篡改。
在這個(gè)過(guò)程中,賬本中每個(gè)區(qū)塊都會(huì)在網(wǎng)絡(luò)路由器節(jié)點(diǎn)中緩存下來(lái),便于后續(xù)新加入虛擬貨幣應(yīng)用中的任何人來(lái)獲取區(qū)塊,存儲(chǔ)完整的賬本或去加入驗(yàn)證交易的礦工行列,減少用戶獲取數(shù)據(jù)的時(shí)延并且更好地保證用戶體驗(yàn)。同時(shí),基于命名數(shù)據(jù)網(wǎng)絡(luò)特有的路由器PIT和本文提出的PPIT結(jié)構(gòu)和設(shè)計(jì),請(qǐng)求分組具有聚合的特征,避免了數(shù)據(jù)分組大量的重復(fù)傳輸,緩解了網(wǎng)絡(luò)的壓力,更適合未來(lái)內(nèi)容量和數(shù)據(jù)傳輸量大幅度增加的場(chǎng)景。
圖5 在基于命名數(shù)據(jù)網(wǎng)絡(luò)的區(qū)塊鏈信息傳輸架構(gòu)中部署虛擬貨幣應(yīng)用場(chǎng)景
命名數(shù)據(jù)網(wǎng)絡(luò)基于名字路由、路由器PIT聚合特征、路由器緩存能力的設(shè)計(jì)原理,能夠天然支持多播和廣播,相比IP網(wǎng)絡(luò)基于端到端的連接通信設(shè)計(jì)相比,可以在一定程度上減少網(wǎng)絡(luò)流量的冗余、擁塞和傳輸?shù)拈_(kāi)銷,優(yōu)化網(wǎng)絡(luò)性能。這里采用如圖5所示的應(yīng)用場(chǎng)景,采用一個(gè)典型的星型拓?fù)溥B接一個(gè)用戶、一個(gè)商家和5個(gè)礦工,在規(guī)定的7×104s時(shí)間內(nèi)由用戶A向商家Z發(fā)起100筆交易,5個(gè)礦工配有相同且充足的計(jì)算和存儲(chǔ)能力,假定每個(gè)區(qū)塊數(shù)據(jù)分組的固定大小為1 MB。
如圖6所示,隨著時(shí)間的變化,交易不斷發(fā)生,每發(fā)生一筆交易,由礦工進(jìn)行驗(yàn)證和記賬,生成區(qū)塊,一般一個(gè)區(qū)塊的生成平均大概在10~15 min左右。對(duì)于不同的網(wǎng)絡(luò)而言,由于通信模式的不同,區(qū)塊鏈信息在傳輸過(guò)程中會(huì)有不同的通信開(kāi)銷,如圖7所示,由于命名數(shù)據(jù)網(wǎng)絡(luò)的設(shè)計(jì)充分支持多播,基于命名數(shù)據(jù)網(wǎng)絡(luò)的區(qū)塊鏈信息傳輸相比基于IP網(wǎng)絡(luò)的區(qū)塊鏈信息傳輸可以降低網(wǎng)內(nèi)流量達(dá)到17%左右。
圖6 規(guī)定時(shí)間內(nèi)形成區(qū)塊鏈的區(qū)塊數(shù)目變化
圖7 形成區(qū)塊鏈過(guò)程中網(wǎng)絡(luò)中流量占比統(tǒng)計(jì)結(jié)果
綜上所述,本文提出的改進(jìn)的命名數(shù)據(jù)網(wǎng)絡(luò)模式在解決區(qū)塊鏈信息傳輸問(wèn)題上有明顯優(yōu)勢(shì),源端可以主動(dòng)推送數(shù)據(jù)內(nèi)容給所有的接收方,并且利用NDN聚合的特性,一份數(shù)據(jù)可以通過(guò)分叉的方式發(fā)送給所有的接收方,數(shù)據(jù)發(fā)送失敗或再次被請(qǐng)求都可能在路由器中得到命中,可以很好地支撐基于區(qū)塊鏈技術(shù)的各類交易記賬型應(yīng)用,從通信的角度看,保證這些業(yè)務(wù)具有更好的實(shí)時(shí)性。盡管命名數(shù)據(jù)網(wǎng)絡(luò)對(duì)于區(qū)塊鏈技術(shù)的通信問(wèn)題可以提供很好的解決方案,但是仍然希望可以使更多有前景的未來(lái)網(wǎng)絡(luò)技術(shù)與區(qū)塊鏈技術(shù)進(jìn)行融合,讓未來(lái)網(wǎng)絡(luò)技術(shù)和區(qū)塊鏈技術(shù)更好地服務(wù)彼此,進(jìn)一步推廣應(yīng)用。
軟件定義網(wǎng)絡(luò)是目前應(yīng)用最為廣泛的未來(lái)網(wǎng)絡(luò)技術(shù)之一,通過(guò)控制平面和數(shù)據(jù)平面的分離,能夠通過(guò)中央控制器以全局的視角智能化地管理整個(gè)網(wǎng)絡(luò)。而在區(qū)塊鏈的分類中,包括公有鏈、聯(lián)盟鏈和私有鏈等,它們各自具有不同的去中心化程度,企業(yè)級(jí)的聯(lián)盟鏈和用戶級(jí)的私有鏈算是部分去中心化的模式,少數(shù)級(jí)別較高的用戶系統(tǒng)甚至具有修改或者讀取其他普通用戶系統(tǒng)的能力。例如,在智能電網(wǎng)的應(yīng)用中,普通用戶不僅可以消耗電能,也可以產(chǎn)生電能并把自產(chǎn)的電能賣給其他用戶,這些普通用戶的交易可以通過(guò)區(qū)塊鏈技術(shù)來(lái)完成共享賬本的建立,同時(shí)在電網(wǎng)級(jí)的私有鏈中需要有更高級(jí)別的管理系統(tǒng),結(jié)合軟件定義網(wǎng)絡(luò)集中管控的能力,可以實(shí)現(xiàn)對(duì)整個(gè)電網(wǎng)進(jìn)行全局實(shí)時(shí)監(jiān)管。因此,在未來(lái)的研究中,可以從區(qū)塊鏈技術(shù)(私有鏈)和軟件定義網(wǎng)絡(luò)結(jié)合的角度去考慮如何加速智能業(yè)務(wù)的快速部署和實(shí)現(xiàn)。
隨著互聯(lián)網(wǎng)規(guī)模的不斷壯大及其使用的普及化,復(fù)雜多樣的信息內(nèi)容源源不斷地產(chǎn)生,因此,“大數(shù)據(jù)”這一概念是在互聯(lián)網(wǎng)發(fā)展到一定的階段自然呈現(xiàn)出來(lái)的現(xiàn)象和特征。而如果想讓這些大數(shù)據(jù)產(chǎn)生出更多真實(shí)的價(jià)值,就涉及方方面面諸如隱私安全權(quán)益等的問(wèn)題。為了讓大數(shù)據(jù)發(fā)揮其更大的價(jià)值,未來(lái)可以利用區(qū)塊鏈這種具有高可信任性、安全性和不可篡改性的特征來(lái)解決這一問(wèn)題。例如區(qū)塊鏈技術(shù)中采用非對(duì)稱加密技術(shù)和散列加密算法能夠保證數(shù)據(jù)私密性,可以杜絕數(shù)據(jù)共享中的信息安全問(wèn)題,大數(shù)據(jù)在被利用的同時(shí)又不會(huì)暴露數(shù)據(jù)來(lái)源的任何個(gè)人信息。同時(shí)區(qū)塊鏈技術(shù)作為基于全網(wǎng)共識(shí)的特殊數(shù)據(jù)庫(kù)能夠保證數(shù)據(jù)的不可篡改。如此,在未來(lái)的研究中,可以從區(qū)塊鏈技術(shù)和大數(shù)據(jù)技術(shù)結(jié)合的角度展開(kāi)研究,讓大數(shù)據(jù)的角色更加活躍起來(lái)。
本文簡(jiǎn)要綜述了區(qū)塊鏈技術(shù)和命名數(shù)據(jù)網(wǎng)絡(luò)的原理并詳細(xì)分析了各自的特征、優(yōu)勢(shì)以及應(yīng)用前景?;诔浞值难芯坎⑨槍?duì)區(qū)塊鏈技術(shù)信息傳輸問(wèn)題,提出了一種基于命名數(shù)據(jù)網(wǎng)絡(luò)的區(qū)塊鏈信息傳輸?shù)募軜?gòu),改進(jìn)了原有的僅支持用戶“分發(fā)”模式的命名數(shù)據(jù)網(wǎng)絡(luò)模型,設(shè)計(jì)了新的增加支持源端“推”送模式的節(jié)點(diǎn)模型和特殊的寫表項(xiàng)過(guò)程,使區(qū)塊鏈技術(shù)在命名數(shù)據(jù)網(wǎng)絡(luò)上的部署達(dá)到了更好的契合度。同時(shí),就虛擬貨幣場(chǎng)景,給出了完整的基于本文提出架構(gòu)的應(yīng)用場(chǎng)景實(shí)例,有助于更好地理解本架構(gòu)的實(shí)施原理,并且通過(guò)仿真驗(yàn)證本方案的性能優(yōu)勢(shì)。最后,就未來(lái)網(wǎng)絡(luò)技術(shù)與區(qū)塊鏈技術(shù)彼此推動(dòng)的一些領(lǐng)域給出一定的研究展望,并將進(jìn)一步展開(kāi)研究工作。
[1] SWAN M. Blockchain: blueprint for a new economy[M]. USA: O Reilly Media Inc, 2015.
[2] SCHNEIDER J, BLOSTEIN A, LEE B, et al. Blockchain: putting theory into practice[R]. USA: the Goldman Sachs Group Inc, 2016.
[3] 林小馳, 胡葉倩雯. 關(guān)于區(qū)塊鏈技術(shù)的研究綜述[J]. 金融市場(chǎng)研究, 2016, 45(2): 97-109. LIN X C, HU Y Q W. A summary of blockchain technology[J]. Financial Market Research, 2016, 45(2): 97-109.
[4] 楊輝, 張杰. 傳統(tǒng)寬帶網(wǎng)絡(luò)面臨挑戰(zhàn), 區(qū)塊鏈技術(shù)為其轉(zhuǎn)型升級(jí)[J]. 通信世界, 2016(21): 48-50. YANG H, ZHANG J. Traditional broadband networks are facing challenges, using blockchain technology for transformation and upgrading[J]. Communication World, 2016(21): 48-50.
[5] 唐文劍. 區(qū)塊鏈將如何重新定義世界[M]. 北京: 機(jī)械工業(yè)出版社, 2016. TANG W J. How will blockchain redefine the world[M]. Beijing: China Machine Press, 2016.
[6] TEEMU K, MOHIT C, BYUNG-GON C, et al. A data-oriented (and beyond) network architecture[C]//The 2007 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications (SIGCOMM’07). 2007: 181-192.
[7] FOTIOUS N, TROSSEN D, POLYZOS G. Illustrating a publish-subscribe Internet architecture[J]. Journal on Telecommunication Systems, 2012, 51(4): 233-245.
[8] DOMINGUEZ A M, NOVO O, WONG W, et al. Publish/subscribe communication mechanisms over PSIRP[C]//The 2011 7th International Conference on Next Generation Web Services Practices (NWeSP). 2011: 268-273.
[9] HOQUE A K M M, AMIN S O, ALYYAN A, et al. NLSR: named-data link state routing protocol[C]//The 3rd ACM SIGCOMM Workshop on Information-Centric Networking (ICN’13). 2013: 15-20.
[10] AFANASYEV A, SHI J, ZHANG B, et al. NFD developer’s guide[R]. Technical Report NDN-0021, NDN, 2015.
[11] MASTORAKIS S, AFANASYEV A, ZHANG L. On the evolution of ndnSIM: an open-source simulator for NDN experimentation[J]. ACM SIGCOMM Computer Communication Review, 2017, 47(3): 19-33.
[12] ZHANG L, AFANASYYEV A, BURKE J, et al. Named data networking[J]. ACM SIGCOMM Computer Communication Review, 2014, 44(3): 66-73.
Information transmission mechanism of Blockchain technology based on named-data networking
LIU Jiang1,2, HUO Ru2, LI Chengcheng1,2, ZOU Guijin1,2, HUANG Tao1,2, LIU Yunjie1,2
1. State Key Laboratory of Networking and Switching Technology, Beijing University of Posts and Telecommunications, Beijing 100876, China 2. Beijing Advanced Innovation Center for Future Internet Technology, Beijing University of Technology, Beijing 100124, China
Recent researches on blockchain have been greatly concerned by academia and industry, while the communication based on TCP/IP protocol was not enough for broadcasting a large volume of data in blockchain technology. Therefore, a novel node model supporting push service for blockchain technology and a special procedure reading-writing the table of the node model were designed based on the named-data networking, which was a distributed network architecture supporting data transmission naturally. And then the information transmission architecture of blockchain technology via named-data networking was proposed. With the aggregation of the requests and data caching, this architecture could reduce the traffic redundancy and accelerate the communication speed. Meanwhile, a use case of bitcoin based on the proposed architecture was given, in order to better understand the architecture. A numerical simulation was used to verify the performance advantages of the proposed scheme. In addition, some related future research directions were presented.
named-data networking, blockchain, information pushing, content broadcasting, read and write the table entry reversely
TP302
A
10.11959/j.issn.1000-436x.2018005
劉江(1983-),男,河南鄭州人,博士,北京郵電大學(xué)副教授,主要研究方向?yàn)榫W(wǎng)絡(luò)體系架構(gòu)、網(wǎng)絡(luò)虛擬化、軟件定義網(wǎng)絡(luò)、信息中心網(wǎng)絡(luò)等。
霍如(1988-),女,黑龍江哈爾濱人,博士,北京工業(yè)大學(xué)講師,主要研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)、信息中心網(wǎng)絡(luò)、網(wǎng)絡(luò)緩存策略與算法等。
李誠(chéng)成(1989-),男,河北石家莊人,北京郵電大學(xué)博士生,主要研究方向?yàn)檐浖x網(wǎng)絡(luò)、信息中心網(wǎng)絡(luò)、5G網(wǎng)絡(luò)架構(gòu)等。
鄒貴今(1993-),男,廣東揭西人,北京郵電大學(xué)碩士生,主要研究方向?yàn)樾畔⒅行木W(wǎng)絡(luò)、計(jì)算機(jī)網(wǎng)絡(luò)。
黃韜(1980-),男,重慶人,博士,北京郵電大學(xué)教授,主要研究方向?yàn)槁酚膳c交換、軟件定義網(wǎng)絡(luò)、內(nèi)容分發(fā)網(wǎng)絡(luò)等。
劉韻潔(1943-),男,山東煙臺(tái)人,中國(guó)工程院院士,北京郵電大學(xué)教授,主要研究方向?yàn)槲磥?lái)網(wǎng)絡(luò)技術(shù)、網(wǎng)絡(luò)體系架構(gòu)、網(wǎng)絡(luò)融合與演進(jìn)等。
2017-04-20;
2017-12-21
國(guó)家高技術(shù)研究發(fā)展計(jì)劃(“863”計(jì)劃)基金資助項(xiàng)目(No.2015AA016101);北京市科技新星基金資助項(xiàng)目(No.Z151100000315078);信息網(wǎng)絡(luò)領(lǐng)域開(kāi)源平臺(tái)及技術(shù)發(fā)展戰(zhàn)略基金資助項(xiàng)目(No.2016-XY-09);我國(guó)未來(lái)網(wǎng)絡(luò)技術(shù)、平臺(tái)、體制創(chuàng)新戰(zhàn)略研究基金資助項(xiàng)目(No.2013-ZX-04)
: The National High Technology Research and Development Program of China (863 Program) (No.2015AA016101), Beijing New-Star Plan of Science and Technology (No.Z151100000315078), Open Source Platform and Technology Development Strategy of Information and Networks Foundation (No.2016-XY-09), Research on Future Network Technology, Platform and System Innovation Strategy Foundation of China (No.2013-ZX-04)