亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于交易構(gòu)造和轉(zhuǎn)發(fā)機(jī)制的區(qū)塊鏈網(wǎng)絡(luò)隱蔽通信方法

        2022-09-03 10:30:42熊禮治朱蓉付章杰
        通信學(xué)報(bào) 2022年8期
        關(guān)鍵詞:比特秘密信道

        熊禮治,朱蓉,付章杰

        (1.南京信息工程大學(xué)計(jì)算機(jī)學(xué)院、軟件學(xué)院、網(wǎng)絡(luò)空間安全學(xué)院,江蘇 南京 210044;2.數(shù)字取證教育部工程研究中心,江蘇 南京 210044)

        0 引言

        在當(dāng)今信息爆炸的時(shí)代,用戶通信的隱私和信息的安全傳輸越來(lái)越被重視。傳統(tǒng)的加密通信方式是直接將明文轉(zhuǎn)換成密文來(lái)實(shí)現(xiàn)通信。但是,密文容易引起攻擊方的注意,使攻擊方試圖破解或者破壞密文信息,阻礙通信傳輸。因此,隱蔽通信提供了一種能讓秘密信息的通信過(guò)程不被察覺(jué)的解決方案。

        隱蔽通信模型最早源于Simmons[1]提出的囚徒模型,將其擴(kuò)展到計(jì)算機(jī)網(wǎng)絡(luò)通信[2]中,如圖1 所示,可以抽象為Alice 與Bob 通過(guò)接入網(wǎng)絡(luò)的計(jì)算機(jī)進(jìn)行交流,Alice 需要選擇一個(gè)看似平常的消息M,將秘密信息m 使用密鑰加密后嵌入載體M 中,并且不改變M 原有的特性,使攻擊方Wendy 無(wú)法獲悉通信雙方的身份,并且就算截取到載體M 也無(wú)法獲得秘密信息。

        圖1 網(wǎng)絡(luò)通信中的囚徒模型

        現(xiàn)有網(wǎng)絡(luò)系統(tǒng)中的存儲(chǔ)型隱蔽信道主要運(yùn)用網(wǎng)絡(luò)通信協(xié)議的冗余部分,例如在網(wǎng)絡(luò)協(xié)議、網(wǎng)絡(luò)數(shù)據(jù)包頭部的保留字段嵌入秘密信息;時(shí)間型隱蔽信道不改變網(wǎng)絡(luò)數(shù)據(jù)包的信息內(nèi)容,它運(yùn)用約定的協(xié)議數(shù)據(jù)單元中網(wǎng)絡(luò)流量的時(shí)間特征(例如,數(shù)據(jù)包到達(dá)的順序或者規(guī)定時(shí)間內(nèi)數(shù)據(jù)包到達(dá)的數(shù)量等),來(lái)傳遞秘密信息。

        隨著科學(xué)技術(shù)的迅速發(fā)展,傳統(tǒng)的網(wǎng)絡(luò)隱蔽信道面臨若干挑戰(zhàn)。1)存儲(chǔ)型隱蔽信道的可靠性和隱蔽性依賴于網(wǎng)絡(luò)數(shù)據(jù)包的傳輸,容易被支持向量機(jī)方法[3]檢測(cè),被基于內(nèi)容的方法識(shí)別[4],被通信歸一化等基于內(nèi)容修改的新技術(shù)消除[5-6]。2)時(shí)間型隱蔽信道受網(wǎng)絡(luò)環(huán)境影響很大,容易被數(shù)據(jù)延遲、數(shù)據(jù)包丟失、噪聲等問(wèn)題干擾。3)傳統(tǒng)的網(wǎng)絡(luò)隱蔽信道中,通信雙方都采用靜態(tài)且單一的路徑實(shí)現(xiàn)直接通信,其匿名性很難保證。

        2009 年,比特幣[7]一詞首次被提出,從中引申出了區(qū)塊鏈的概念,區(qū)塊鏈?zhǔn)且粋€(gè)由對(duì)等(P2P,peer to peer)節(jié)點(diǎn)共同參與的數(shù)據(jù)共享,不可篡改且不可偽造的分布式數(shù)據(jù)庫(kù)系統(tǒng),不存在中心節(jié)點(diǎn),由一串利用密碼學(xué)方式生成的數(shù)據(jù)區(qū)塊組成,每個(gè)區(qū)塊中包含交易、時(shí)間戳、上一區(qū)塊的哈希、困難目標(biāo)等信息,從創(chuàng)世區(qū)塊開(kāi)始通過(guò)哈希指針連接到當(dāng)前區(qū)塊,數(shù)據(jù)結(jié)構(gòu)類似于鏈表。比特幣網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都包含這些區(qū)塊,整個(gè)網(wǎng)絡(luò)被視為包含交易記錄的分布式賬本。賬本中的交易通過(guò)比特幣用戶的公鑰地址完成,每個(gè)用戶可擁有多個(gè)公鑰地址,且地址與實(shí)際身份無(wú)關(guān)。因此,比特幣區(qū)塊鏈具備數(shù)據(jù)同步、安全可信、匿名性強(qiáng)、去中心化的特點(diǎn),是構(gòu)建隱蔽信道的天然載體。

        然而,正是因?yàn)閰^(qū)塊鏈具有數(shù)據(jù)可追溯、永久存證[8]的特性,在區(qū)塊鏈中構(gòu)建隱蔽信道存在一些問(wèn)題。1)新產(chǎn)生的交易和區(qū)塊需要在全網(wǎng)節(jié)點(diǎn)間進(jìn)行廣播,網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都能查看交易和區(qū)塊內(nèi)容;2)交易和區(qū)塊被驗(yàn)證上鏈,意味著隱蔽通信的“證據(jù)”被永久記錄在區(qū)塊鏈賬本中,所有用戶都可以通過(guò)相關(guān)的應(yīng)用程序編程接口(API,application programming interface)無(wú)限次地獲取該“證據(jù)”,這對(duì)隱蔽通信的隱藏算法要求相當(dāng)高。

        針對(duì)區(qū)塊鏈網(wǎng)絡(luò)隱蔽通信技術(shù)存在的問(wèn)題,本文設(shè)計(jì)了一種基于交易構(gòu)造和轉(zhuǎn)發(fā)機(jī)制的區(qū)塊鏈網(wǎng)絡(luò)隱蔽通信方法。在本文方法中,隱蔽通信雙方首先利用比特幣底層節(jié)點(diǎn)的連接機(jī)制成為鄰居節(jié)點(diǎn);然后發(fā)送方借助比特幣交易的構(gòu)造機(jī)制創(chuàng)建無(wú)效交易,并將秘密信息嵌入其中;最后發(fā)送方利用比特幣交易的廣播機(jī)制向接收方發(fā)送含有秘密信息的無(wú)效交易。由于比特幣交易轉(zhuǎn)發(fā)機(jī)制的泛洪廣播特性,每次隱蔽通信中,發(fā)送方發(fā)出的包含秘密信息的無(wú)效交易只在其鄰居節(jié)點(diǎn)之間傳播。除隱蔽通信接收方之外的節(jié)點(diǎn)在交易驗(yàn)證不通過(guò)后會(huì)立刻拋棄該交易,因此,無(wú)效交易不會(huì)永久存儲(chǔ)在區(qū)塊鏈賬本中,隱蔽通信的“證據(jù)”在通信結(jié)束后立即消失。本文方法不僅解決了現(xiàn)有區(qū)塊鏈網(wǎng)絡(luò)中隱蔽通信技術(shù)存在的問(wèn)題,并且在一定程度上擴(kuò)大了隱藏容量,提高了通信效率。

        本文貢獻(xiàn)點(diǎn)可以總結(jié)如下。1)本文方法中傳遞秘密信息使用的交易不會(huì)廣播給區(qū)塊鏈網(wǎng)絡(luò)中的所有節(jié)點(diǎn),并且此交易不會(huì)永久存儲(chǔ)在區(qū)塊鏈的賬本中,隱蔽通信不會(huì)留下“證據(jù)”。2)利用比特幣的交易構(gòu)造機(jī)制來(lái)構(gòu)造無(wú)效交易,只需要保證數(shù)據(jù)格式和長(zhǎng)度與正常交易相同,所有可修改字段都能用于嵌入秘密信息,擴(kuò)大了隱蔽通信信道的隱藏容量。3)接收方作為發(fā)送方的鄰居節(jié)點(diǎn),在發(fā)送方廣播交易的第一輪能立刻收到無(wú)效交易,不需要等待交易廣播給所有節(jié)點(diǎn),隱蔽通信的通信效率得到了提升。

        1 研究現(xiàn)狀

        當(dāng)前的比特幣區(qū)塊鏈網(wǎng)絡(luò)隱蔽通信方案可以分為存儲(chǔ)型和時(shí)間型2 種?,F(xiàn)有的存儲(chǔ)型隱蔽通信方案中,包含秘密信息的交易在全網(wǎng)范圍的節(jié)點(diǎn)間廣播,且最終會(huì)被永久存儲(chǔ)在區(qū)塊鏈的賬本中,任何人可隨時(shí)查看,因此在構(gòu)建存儲(chǔ)型隱蔽通信信道時(shí),需要特別考慮其隱蔽性和不可感知性,難以兼顧隱藏容量高、通信效率快和隱蔽性強(qiáng)3 種性質(zhì)。

        Partala[9]通過(guò)犧牲隱蔽通信信道的隱藏容量和通信效率達(dá)到強(qiáng)隱蔽性,首次提出使用比特幣地址的最低有效位(LSB,least significant bit)嵌入秘密信息,在每個(gè)區(qū)塊中按順序存放一筆包含秘密信息的交易,從而初步完成了隱蔽通信,為相關(guān)研究提供了方向。不過(guò)該方案在一個(gè)區(qū)塊生成的時(shí)間間隔內(nèi)僅傳遞了1 bit 的秘密信息,信道的隱藏容量低,同時(shí),Cao 等[10]在區(qū)塊鏈中提出了一種基于哈希鏈的隱蔽數(shù)據(jù)嵌入方案,保證了嵌入數(shù)據(jù)的隱蔽性和安全性,但是每條交易也只能傳遞1 bit 的秘密信息,此類方案在效率和成本上均不盡人意[11]。

        DLchain[12]和ChainChannel[13]使用秘密信息代替簽名算法中的私鑰和隨機(jī)數(shù),保證了一定的嵌入容量和信道的隱蔽性,但是接收方在篩選和提取秘密信息時(shí)計(jì)算量較大,降低了信道的效率。

        Gao 等[14]、Plohmann 等[15]、呂婧淑等[16]使用比特幣交易中的默認(rèn)存儲(chǔ)字段OP_RETURN 和coinbase 嵌入秘密信息,只要保證數(shù)據(jù)格式和字段長(zhǎng)度正常,就能達(dá)到高隱蔽性和較高隱藏容量,但默認(rèn)存儲(chǔ)字段比較特殊,很容易引起攻擊方的注意,導(dǎo)致隱蔽信道被干擾。Zhang 等[17]利用vanitygen 生成特殊比特幣地址,地址中嵌入base58 編碼的信息,并將特殊地址的索引記錄在OP_RETURN 中,從而提高了信息嵌入效率以及默認(rèn)存儲(chǔ)字段的隱蔽性。

        上述關(guān)于區(qū)塊鏈網(wǎng)絡(luò)中存儲(chǔ)型隱蔽通信的方案中,包含秘密信息的交易都在區(qū)塊鏈賬本中永久存儲(chǔ),并且任何人都可以申請(qǐng)查看相關(guān)交易。隨著技術(shù)的發(fā)展和研究的深入,攻擊方有足夠的時(shí)間收集數(shù)據(jù)進(jìn)行分析,使以這種方案?jìng)鬏數(shù)拿孛苄畔⒂行孤兜娘L(fēng)險(xiǎn)。

        現(xiàn)有的時(shí)間型隱蔽通信方案中,李彥鋒等[18]提出基于業(yè)務(wù)操作時(shí)間間隔的區(qū)塊鏈網(wǎng)絡(luò)隱蔽信道,利用區(qū)塊鏈中的交易發(fā)送間隔的不同作為調(diào)制方式來(lái)傳遞秘密信息,其網(wǎng)絡(luò)流量波動(dòng)較大,與發(fā)送正常交易時(shí)的網(wǎng)絡(luò)流量不同,隱蔽性很低。呂婧淑等[16]提出的地址廣播信道通過(guò)比特幣交易中某些參數(shù)的排列方式與編碼方式進(jìn)行映射來(lái)傳遞秘密信息,隱蔽性極高,但是其容量和效率完全依賴于地址的個(gè)數(shù),可用性和可擴(kuò)展性不高。

        另外,以太坊的研究主要集中在它的安全通信協(xié)議——whisper 協(xié)議上,whisper 協(xié)議中特殊的數(shù)據(jù)包格式和廣播機(jī)制可以保證通信接收方的匿名性。Abdulaziz 等[19]利用whisper 協(xié)議構(gòu)造了去中心化的應(yīng)用程序,秘密信息可以在其中安全匿名地傳輸。Lee 等[20]在此基礎(chǔ)上提出了一種新的通信應(yīng)用程序,秘密信息通過(guò)whisper 協(xié)議進(jìn)行傳輸,解決了傳統(tǒng)隱蔽通信中的數(shù)據(jù)偽造和隱私侵犯等問(wèn)題。Zhang 等[21]使用whisper 協(xié)議中的payload 存儲(chǔ)秘密信息,生成的索引填充在padding 字段,從而在已有方案的基礎(chǔ)上增加了隱蔽通信的隱蔽性。

        2 預(yù)備知識(shí)

        比特幣以去中心化為基礎(chǔ),信息由網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)共同記錄和維護(hù)。一旦網(wǎng)絡(luò)中的某個(gè)節(jié)點(diǎn)花費(fèi)算力找到滿足比特幣共識(shí)機(jī)制的隨機(jī)值,就能獲得新區(qū)塊的記賬權(quán),選擇本地交易池中的交易打包進(jìn)新區(qū)塊,通過(guò)比特幣特有的廣播機(jī)制向網(wǎng)絡(luò)中的其他節(jié)點(diǎn)廣播。本文提出的區(qū)塊鏈網(wǎng)絡(luò)隱蔽通信方法涉及比特幣節(jié)點(diǎn)連接機(jī)制、比特幣廣播機(jī)制,以及比特幣交易,相關(guān)介紹如下。

        2.1 比特幣節(jié)點(diǎn)連接機(jī)制

        比特幣網(wǎng)絡(luò)的一個(gè)新節(jié)點(diǎn)為了能夠獲取網(wǎng)絡(luò)中的信息,必須主動(dòng)和網(wǎng)絡(luò)中已存在的節(jié)點(diǎn)進(jìn)行連接。連接方式有以下2 種。

        1)使用種子節(jié)點(diǎn)。新節(jié)點(diǎn)首先連接比特幣網(wǎng)絡(luò)所提供的域名系統(tǒng)種子(DNS,domain name system seed)節(jié)點(diǎn),向其請(qǐng)求所有比特幣活躍節(jié)點(diǎn)的IP 地址列表,新節(jié)點(diǎn)挑選活躍的比特幣節(jié)點(diǎn)進(jìn)行連接。

        2)使用-connect 選項(xiàng)。新節(jié)點(diǎn)在加入網(wǎng)絡(luò)之前,在配置文件中使用-connect 選項(xiàng)指定已知的若干個(gè)活躍的比特幣節(jié)點(diǎn)作為自己的鄰居節(jié)點(diǎn)。

        新節(jié)點(diǎn)A 確定好連接的對(duì)等節(jié)點(diǎn)B 后,會(huì)向目標(biāo)節(jié)點(diǎn)B 發(fā)送version 消息,目標(biāo)節(jié)點(diǎn)B 每次收到version 后必須回復(fù)verack 消息表示收到。若目標(biāo)節(jié)點(diǎn)B 同意被連接,會(huì)主動(dòng)向新節(jié)點(diǎn)A 發(fā)送自己的version 消息,新節(jié)點(diǎn)A 向目標(biāo)節(jié)點(diǎn)B 回復(fù)verack消息,即新節(jié)點(diǎn)A 和目標(biāo)節(jié)點(diǎn)B 通過(guò)圖2 所示的“握手”通信建立連接。

        圖2 節(jié)點(diǎn)“握手”通信過(guò)程

        連接完成后,節(jié)點(diǎn)A 向節(jié)點(diǎn)B 發(fā)出包含自己IP的addr 消息并要求節(jié)點(diǎn)B 向其鄰居節(jié)點(diǎn)進(jìn)行轉(zhuǎn)發(fā),使網(wǎng)絡(luò)中的更多節(jié)點(diǎn)知道新節(jié)點(diǎn)A 的加入,并且發(fā)出一個(gè)getaddr 消息,要求節(jié)點(diǎn)B 返回已知的活躍節(jié)點(diǎn)以便于尋找更多的節(jié)點(diǎn)進(jìn)行連接,如圖3 所示。

        圖3 地址請(qǐng)求過(guò)程

        已經(jīng)連接網(wǎng)絡(luò)的節(jié)點(diǎn)會(huì)定期發(fā)送addr 信息給鄰居節(jié)點(diǎn)來(lái)維持連接,若某一節(jié)點(diǎn)超過(guò)90 min 沒(méi)有與網(wǎng)絡(luò)中的其他節(jié)點(diǎn)進(jìn)行通信,則默認(rèn)此節(jié)點(diǎn)斷開(kāi)網(wǎng)絡(luò),連接此節(jié)點(diǎn)的其他節(jié)點(diǎn)會(huì)立刻尋找新的活躍節(jié)點(diǎn)進(jìn)行連接。

        2.2 比特幣廣播機(jī)制

        區(qū)塊鏈網(wǎng)絡(luò)中的所有新交易和區(qū)塊在創(chuàng)建后都必須向網(wǎng)絡(luò)中其他節(jié)點(diǎn)進(jìn)行廣播,在獲得足夠多節(jié)點(diǎn)的確認(rèn)之后,新增的交易和區(qū)塊才能被寫入?yún)^(qū)塊鏈賬本中。但是比特幣的每日交易量大約有60 萬(wàn),若隨意進(jìn)行交易廣播會(huì)造成網(wǎng)絡(luò)的擁堵和崩潰,為了使傳播和確認(rèn)效率最大化,比特幣網(wǎng)絡(luò)使用Gossip 協(xié)議[22]來(lái)在各個(gè)節(jié)點(diǎn)之間同步交易以及區(qū)塊的信息。Gossip 協(xié)議被設(shè)計(jì)用來(lái)在分布式數(shù)據(jù)庫(kù)的多個(gè)節(jié)點(diǎn)之間同步和復(fù)制數(shù)據(jù),讓數(shù)據(jù)到達(dá)網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn),達(dá)成“最終一致性”。

        在比特幣網(wǎng)絡(luò)中,Gossip 協(xié)議可認(rèn)為是包含以下3 個(gè)過(guò)程的一個(gè)簡(jiǎn)短循環(huán),直到網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)同步了相同的信息,如圖4 所示。1)從新交易或區(qū)塊的信息源開(kāi)始,選擇一個(gè)廣播周期,向其連接的鄰居節(jié)點(diǎn)發(fā)送inv 消息,其中包括新交易或新區(qū)塊的哈希值;2)在每個(gè)節(jié)點(diǎn)接收消息后,先遍歷本地存儲(chǔ)的交易或區(qū)塊的哈希值,若本地存在,則忽略;若不存在,則發(fā)送getdata 消息請(qǐng)求此哈希值的全部數(shù)據(jù),以驗(yàn)證交易或區(qū)塊的合法性;3)驗(yàn)證合法后,在下一周期里,向其他的鄰居節(jié)點(diǎn)發(fā)送相同的inv 消息。

        圖4 比特幣廣播過(guò)程

        2.3 比特幣交易

        區(qū)塊鏈交易在2 個(gè)“地址”之間進(jìn)行可靠的、具有公信力的數(shù)據(jù)傳遞。簡(jiǎn)單而言,就是原比特幣的擁有者授權(quán)把比特幣轉(zhuǎn)賬給他人,而新?lián)碛姓咭部梢岳^續(xù)授權(quán),轉(zhuǎn)賬給該區(qū)塊鏈網(wǎng)絡(luò)中的其他人,這個(gè)轉(zhuǎn)賬的過(guò)程就是交易。這里說(shuō)的“地址”是由用戶的公鑰通過(guò)橢圓加密算法計(jì)算得到的,對(duì)外公開(kāi),用于發(fā)送或接收交易。每個(gè)用戶可擁有多個(gè)公鑰地址,私鑰由用戶本人保存,用于對(duì)交易進(jìn)行簽名。

        根據(jù)比特幣源碼中的checktransaction 函數(shù)可知,一條有效的比特幣交易需要滿足以下所有條件,若有其中任意一條不滿足,則為無(wú)效交易。

        1)所有字段的語(yǔ)法和數(shù)據(jù)格式正確。

        2)鎖定時(shí)間在規(guī)定范圍內(nèi)。

        3)交易大小不低于100 B。

        4)解鎖腳本能正確解鎖前置交易。

        5)每一個(gè)輸入的前置交易不能在節(jié)點(diǎn)本地的交易池中。

        6)每一個(gè)輸入必須要有其前置交易存在,并且未被花費(fèi)。

        7)輸入的總值大于輸出的總值。

        8)交易費(fèi)用不能小于當(dāng)前網(wǎng)絡(luò)的最小值。

        比特幣的交易數(shù)據(jù)格式如表1 所示,包括版本號(hào)、輸入輸出數(shù)量、輸入輸出數(shù)組和鎖定時(shí)間。

        表1 比特幣的交易數(shù)據(jù)格式

        交易輸入列表的數(shù)據(jù)格式如表2 所示,包括前向交易的哈希值和索引、解鎖腳本及其長(zhǎng)度和交易序列號(hào)。

        表2 交易輸入列表的數(shù)據(jù)格式

        交易輸出列表的數(shù)據(jù)格式如表3 所示,包括每筆交易的比特幣數(shù)量、鎖定腳本及其長(zhǎng)度。

        表3 交易輸出列表的數(shù)據(jù)格式

        3 隱蔽通信方法設(shè)計(jì)

        本節(jié)首先定義一個(gè)基于交易構(gòu)造和轉(zhuǎn)發(fā)機(jī)制的區(qū)塊鏈網(wǎng)絡(luò)隱蔽通信模型,然后以此模型為基礎(chǔ),以比特幣的交易字段為隱蔽通信載體,利用比特幣的交易轉(zhuǎn)發(fā)機(jī)制在比特幣底層的 P2P網(wǎng)絡(luò)上構(gòu)建一個(gè)基于交易構(gòu)造和轉(zhuǎn)發(fā)機(jī)制的區(qū)塊鏈網(wǎng)絡(luò)隱蔽通信信道。在比特幣區(qū)塊鏈網(wǎng)絡(luò)中,同時(shí)擁有路由、交易轉(zhuǎn)發(fā)和交易驗(yàn)證的節(jié)點(diǎn)只有全節(jié)點(diǎn),因此,模型中出現(xiàn)的節(jié)點(diǎn)默認(rèn)為比特幣全節(jié)點(diǎn)。

        3.1 隱蔽通信模型

        基于交易構(gòu)造和轉(zhuǎn)發(fā)機(jī)制的區(qū)塊鏈網(wǎng)絡(luò)隱蔽通信模型包含信息發(fā)送方、信息接收方、秘密信息、交易傳播。對(duì)秘密信息的操作包括信息處理、嵌入、提取和恢復(fù),交易傳播包括有效交易的廣播和上鏈以及無(wú)效交易的廣播和拋棄。整體隱蔽通信模型分為偽裝階段和傳輸階段兩部分。

        偽裝階段的隱蔽通信模型如圖5 所示。

        圖5 偽裝階段的隱蔽通信模型

        1)隱蔽通信的發(fā)送方和接收方通過(guò)節(jié)點(diǎn)連接機(jī)制加入比特幣網(wǎng)絡(luò),進(jìn)行正常的路由通信。假設(shè)發(fā)送方Ps有x個(gè)一級(jí)鄰居節(jié)點(diǎn),節(jié)點(diǎn)關(guān)系表示為Ps?x,如式(1)所示。

        其中,Pr表示接收方。

        假設(shè)其一級(jí)鄰居節(jié)點(diǎn)的鄰居節(jié)點(diǎn)也有x個(gè),則發(fā)送方Ps的二級(jí)鄰居節(jié)點(diǎn)關(guān)系表示為Ps?x?x,如式(2)所示。

        2)通信雙方節(jié)點(diǎn)進(jìn)行正常交易的廣播和驗(yàn)證,維護(hù)網(wǎng)絡(luò)穩(wěn)定。比特幣網(wǎng)絡(luò)使用Gossip 協(xié)議,信息由起始節(jié)點(diǎn)發(fā)送給一級(jí)鄰居節(jié)點(diǎn),再由一級(jí)鄰居節(jié)點(diǎn)發(fā)送給二級(jí)鄰居節(jié)點(diǎn),迭代轉(zhuǎn)發(fā),直到所有的節(jié)點(diǎn)都收到信息。假設(shè)網(wǎng)絡(luò)中節(jié)點(diǎn)Po向鄰居節(jié)點(diǎn)Ps發(fā)送交易TX 表示為To,s,如式(3)所示。

        節(jié)點(diǎn)Ps對(duì)收到的交易進(jìn)行驗(yàn)證,將符合驗(yàn)證規(guī)則的交易繼續(xù)轉(zhuǎn)發(fā)給Po的二級(jí)鄰居節(jié)點(diǎn)(即Ps的一級(jí)鄰居節(jié)點(diǎn)),那么節(jié)點(diǎn)Po發(fā)送一條有效交易TX在網(wǎng)絡(luò)中的傳播可以表示為To,如式(4)所示。

        3)有效交易上鏈。網(wǎng)絡(luò)中的節(jié)點(diǎn)驗(yàn)證交易TX有效后,將其放入本地的交易池。礦工得到新區(qū)塊的記賬權(quán)后,選擇本地交易池中的交易打包進(jìn)新區(qū)塊,將新區(qū)塊添加到已經(jīng)形成鏈?zhǔn)酱鎯?chǔ)的區(qū)塊之后。

        傳輸階段的隱蔽通信模型如圖6 所示。

        圖6 傳輸階段的隱蔽通信模型

        1)發(fā)送方利用交易的構(gòu)造機(jī)制構(gòu)造無(wú)效交易。首先,發(fā)送方Ps利用某種加密方法E 加密原始秘密信息M(m1,m2,…,mn),再通過(guò)某種編碼方式R 處理密文M′,使它能更好地嵌入交易中,該過(guò)程分別表示為,如式(5)和式(6)所示。

        編碼完成后,通過(guò)某種方案F 將M′嵌入無(wú)效交易TX′中,得到含密無(wú)效交易TX′′,過(guò)程表示為M′,,如式(7)所示。

        2)發(fā)送方通過(guò)無(wú)效交易的轉(zhuǎn)發(fā)驗(yàn)證機(jī)制,向接收方傳輸秘密信息。發(fā)送方Ps得到處理完畢的含密無(wú)效交易TX′′后,向包含接收方節(jié)點(diǎn)Pr在內(nèi)的鄰居節(jié)點(diǎn)發(fā)送此交易,表示為,如式(8)所示。

        由于TX′′是不符合驗(yàn)證規(guī)則的無(wú)效交易,因此包括接收方Pr在內(nèi)的鄰居節(jié)點(diǎn)會(huì)拋棄該交易,并且返回拋棄信息給發(fā)送方Ps,驗(yàn)證交易無(wú)效后返回的拋棄信息表示為Merror,如式(9)所示。

        3)接收方提取信息。接收方Pr收到無(wú)效交易后先根據(jù)交易的公鑰判斷是否由發(fā)送方構(gòu)造,若是,根據(jù)協(xié)商好的方案F 對(duì)應(yīng)的提取方案F′對(duì)TX′′進(jìn)行提取,得到編碼后的密文M′,通過(guò)編碼規(guī)則R 對(duì)應(yīng)的解碼規(guī)則R′,以及加密方法E 對(duì)應(yīng)的解密方法E′對(duì)密文M′進(jìn)行解碼,得到最終的秘密信息M(m1,m2,…,mn),過(guò)程分別表示為,如式(10)和式(11)所示。

        3.2 隱蔽通信信道構(gòu)建

        根據(jù)以上隱蔽通信模型,構(gòu)建隱蔽通信信道的方式如下。

        首先,偽裝階段是指隱蔽通信的接收方節(jié)點(diǎn)先加入比特幣網(wǎng)絡(luò),進(jìn)行正常的路由通信以及交易(區(qū)塊)的轉(zhuǎn)發(fā)。

        在區(qū)塊鏈中有n個(gè)區(qū)塊的前提下,接收方節(jié)點(diǎn)加入網(wǎng)絡(luò)后,一條有效交易被轉(zhuǎn)發(fā)上鏈的過(guò)程如下。

        步驟1Alice創(chuàng)建一個(gè)向Bob轉(zhuǎn)賬的有效交易TX1。

        步驟2Alice 將構(gòu)造好的交易TX1交給網(wǎng)絡(luò)中任意一個(gè)節(jié)點(diǎn)進(jìn)行廣播。

        步驟3.1信息源節(jié)點(diǎn)根據(jù)2.3 節(jié)的規(guī)則驗(yàn)證TX1是否為有效交易,若為有效交易,則將交易TX1放入本地的交易池中,并且轉(zhuǎn)發(fā)給其一級(jí)鄰居節(jié)點(diǎn),執(zhí)行步驟3.2;若為無(wú)效交易,則拋棄交易TX1,并且給用戶Alice 返回信息表示交易被拋棄。

        步驟3.2一級(jí)鄰居節(jié)點(diǎn)接收到新交易TX1后,也會(huì)對(duì)其進(jìn)行驗(yàn)證,若有效,則將交易TX1放入本地的交易池中,并將交易發(fā)送給二級(jí)鄰居節(jié)點(diǎn)(此時(shí)接收方節(jié)點(diǎn)偽裝成正常節(jié)點(diǎn)隱藏在二級(jí)鄰居節(jié)點(diǎn)中),執(zhí)行步驟3.3;若無(wú)效,則拋棄交易并且向發(fā)送此交易的前一級(jí)節(jié)點(diǎn)返回交易無(wú)效的信息。

        步驟3.3二級(jí)鄰居節(jié)點(diǎn)(包括接收方節(jié)點(diǎn))執(zhí)行步驟3.2 的操作,向下一級(jí)節(jié)點(diǎn)發(fā)送有效交易或者拋棄無(wú)效交易。

        步驟3.4每一級(jí)鄰居節(jié)點(diǎn)重復(fù)步驟3.2 的操作,直到網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都接收到交易TX1。

        步驟4網(wǎng)絡(luò)中的某個(gè)礦工節(jié)點(diǎn)根據(jù)工作量證明協(xié)議(POW,proof of work)獲得第n+1 個(gè)區(qū)塊的記賬權(quán)后,將本地交易池中包括TX1交易在內(nèi)的m個(gè)交易打包成第n+1個(gè)區(qū)塊,區(qū)塊數(shù)據(jù)結(jié)構(gòu)如圖7所示。

        圖7 區(qū)塊數(shù)據(jù)結(jié)構(gòu)

        步驟5礦工節(jié)點(diǎn)將打包好的區(qū)塊廣播到網(wǎng)絡(luò)中。

        步驟6網(wǎng)絡(luò)中的其他節(jié)點(diǎn)對(duì)新生成的區(qū)塊進(jìn)行驗(yàn)證。

        步驟7當(dāng)新區(qū)塊被全網(wǎng)大多數(shù)節(jié)點(diǎn)驗(yàn)證合法之后,其中包含的交易(包括TX1交易)才被寫入整個(gè)區(qū)塊鏈賬本。

        發(fā)送方節(jié)點(diǎn)加入網(wǎng)絡(luò)時(shí),使用2.1 節(jié)中的節(jié)點(diǎn)連接方法2),指定接收方節(jié)點(diǎn)作為自己的一級(jí)鄰居節(jié)點(diǎn),其他的鄰居節(jié)點(diǎn)隨機(jī)連接。發(fā)送方加入網(wǎng)絡(luò)后和接收方節(jié)點(diǎn)類似,參與網(wǎng)絡(luò)中的所有活動(dòng),維持網(wǎng)絡(luò)穩(wěn)定。至此,隱蔽通信的偽裝階段結(jié)束,如圖8 所示。

        圖8 隱蔽通信的偽裝階段

        隱蔽通信的傳輸階段由發(fā)送方節(jié)點(diǎn)創(chuàng)建包含秘密信息的無(wú)效交易TX2開(kāi)始,傳輸階段分為信息嵌入階段、交易廣播階段和信息提取階段。

        1)信息嵌入階段主要是根據(jù)2.3 節(jié)中列舉的條件來(lái)構(gòu)造無(wú)效交易。為了簡(jiǎn)化發(fā)送方和接收方對(duì)信息的處理,選擇將秘密信息編碼后,作為交易相應(yīng)字段的參數(shù),直接嵌入發(fā)送方構(gòu)造的無(wú)效交易中,如文獻(xiàn)[14-15]。

        發(fā)送方在構(gòu)建無(wú)效交易時(shí),可以將處理后的秘密信息嵌入比特幣交易規(guī)定的所有可變字段,例如前置交易哈希、簽名、接收方公鑰等。但是,選擇交易的所有可變字段進(jìn)行秘密信息的嵌入會(huì)增加無(wú)效交易的特殊性。為了最大化隱蔽信道的不可感知性以及最大化單次通信的隱藏容量,本文把秘密信息嵌入用戶可自定義字段中容量最大的解鎖腳本(或鎖定腳本)字段,如表2 所示,且遵循其數(shù)據(jù)格式。

        解鎖腳本由數(shù)字簽名、公鑰和一些操作碼組成,最后經(jīng)過(guò)編碼變成hex 格式,這樣可以確保只有持有私鑰的用戶才能將交易解鎖,在構(gòu)造多輸入交易時(shí),解鎖腳本的長(zhǎng)度會(huì)隨著輸入的個(gè)數(shù)線性增加。因此,交易包含的輸入個(gè)數(shù)越多,可以用來(lái)進(jìn)行數(shù)據(jù)嵌入的空間就越大。

        當(dāng)構(gòu)造一個(gè)輸入一個(gè)輸出的有效交易時(shí),轉(zhuǎn)換為hex 格式的解鎖腳本大約占100~120 B,如圖9 所示。

        圖9 一個(gè)輸入一個(gè)輸出的有效交易

        發(fā)送方先將秘密信息編碼,然后在編碼完的信息后加上endflag 作為秘密信息結(jié)束的標(biāo)志,未滿足正常解鎖腳本長(zhǎng)度的部分使用冗余字段填補(bǔ),保證字段長(zhǎng)度為100~120 B,如圖10 所示。

        圖10 含密解鎖腳本的生成

        發(fā)送方將生成的解鎖腳本使用接收方的公鑰加密,嵌入無(wú)效交易中的解鎖腳本字段,生成的無(wú)效交易如圖11 所示。

        圖11 嵌入秘密數(shù)據(jù)后的無(wú)效交易

        2)交易廣播階段由發(fā)送方節(jié)點(diǎn)發(fā)起,向其一級(jí)鄰居節(jié)點(diǎn)(包括接收方節(jié)點(diǎn))發(fā)送構(gòu)造的無(wú)效交易TX2,接收方收到交易TX2后,對(duì)其進(jìn)行驗(yàn)證,由于交易TX2不滿足有效交易的驗(yàn)證規(guī)則,因此其為一條無(wú)效交易。接收方再驗(yàn)證無(wú)效交易TX2創(chuàng)建者的公鑰,若公鑰與發(fā)送方一致,則表示交易TX2是一條包含秘密信息的無(wú)效交易,對(duì)它進(jìn)行信息提取。其他一級(jí)鄰居節(jié)點(diǎn)驗(yàn)證交易TX2無(wú)效后將其拋棄,并且返回一條交易被拒絕的消息給發(fā)送方節(jié)點(diǎn)。

        3)信息提取階段是指接收方節(jié)點(diǎn)收到發(fā)送方節(jié)點(diǎn)發(fā)送的含密無(wú)效交易后,用其私鑰解密無(wú)效交易的解鎖腳本,解密成功后,接收方根據(jù)endflag找到發(fā)送方編碼后的秘密信息,使用通信雙方約定的編碼規(guī)則還原秘密信息。至此,隱蔽通信的傳輸階段結(jié)束,如圖12 所示。

        圖12 隱蔽通信的傳輸階段

        4 隱蔽通信信道分析

        隱蔽信道的評(píng)價(jià)從2 個(gè)方面進(jìn)行:安全性和傳輸效率。安全性是指對(duì)于普通節(jié)點(diǎn)來(lái)說(shuō),包含秘密信息的無(wú)效交易是無(wú)法感知的,并且其特征在統(tǒng)計(jì)上不可區(qū)分,即在不影響網(wǎng)絡(luò)通信和不被普通節(jié)點(diǎn)發(fā)覺(jué)的前提下進(jìn)行秘密信息的傳輸。傳輸效率包括2 個(gè)方面,一是信道單次通信的隱藏容量,二是信道單次通信所需的時(shí)間。本節(jié)將從安全性和傳輸效率2 個(gè)方面分析本文提出的隱蔽通信信道。

        4.1 安全性

        4.1.1 抗檢測(cè)性

        在傳統(tǒng)網(wǎng)絡(luò)隱蔽通信中,通常從以下2 個(gè)方面檢測(cè)是否存在隱蔽信道。1)分析網(wǎng)絡(luò)流量。一些時(shí)間型隱蔽信道,通常以時(shí)間特性為調(diào)制方式,會(huì)在網(wǎng)絡(luò)中造成短暫的流量異常,攻擊方可以通過(guò)流量的波動(dòng)情況檢測(cè)出隱蔽信道。2)分析數(shù)據(jù)包。一些存儲(chǔ)型隱蔽信道,使用協(xié)議數(shù)據(jù)包的冗余字段嵌入秘密信息,攻擊方可以根據(jù)數(shù)據(jù)包內(nèi)容的規(guī)律性和相關(guān)性檢測(cè)隱蔽信道。

        在區(qū)塊鏈網(wǎng)絡(luò)中,由于嵌入數(shù)據(jù)時(shí)完全按照交易字段的數(shù)據(jù)格式,且交易內(nèi)容經(jīng)過(guò)已有規(guī)則層層加密,攻擊方想要通過(guò)分析交易內(nèi)容識(shí)別隱蔽信道比較困難,因此常用分析網(wǎng)絡(luò)流量的方法檢測(cè)隱蔽信道,即攻擊方會(huì)持續(xù)監(jiān)控網(wǎng)絡(luò)中節(jié)點(diǎn)造成的流量波動(dòng)。當(dāng)發(fā)送方節(jié)點(diǎn)受到持續(xù)監(jiān)控時(shí),攻擊方分析其發(fā)送交易的頻率。假設(shè)比特幣區(qū)塊鏈的正常網(wǎng)絡(luò)活動(dòng)中,節(jié)點(diǎn)發(fā)送每條交易的正常時(shí)間間隔為σ,5 min 內(nèi)正常轉(zhuǎn)發(fā)ε條交易,分別使用以下3 種方案(方案A、方案B 和方案C)在網(wǎng)絡(luò)中發(fā)送秘密信息“001110110110”,造成的網(wǎng)絡(luò)流量波動(dòng)與正常情況的對(duì)比如圖13 所示。

        圖13 不同方案與正常網(wǎng)絡(luò)流量對(duì)比

        方案A發(fā)送方使用每5 min 發(fā)送的交易個(gè)數(shù)“ε?5,ε,ε+5,ε+10”分別表示“00,01,10,11”,那么發(fā)送方在傳遞秘密信息時(shí),每5 min 的時(shí)間間隔內(nèi)分別發(fā)送的交易個(gè)數(shù)為“ε?5,ε+10,ε+5,ε+10,ε,ε+5”。

        方案 B發(fā)送方使用發(fā)送交易的時(shí)間間隔“σ?10,σ?5,σ+5,σ+10”分別表示“00,01,10,11”,那么發(fā)送方在傳遞秘密信息時(shí),發(fā)送交易的間隔為“σ?10,σ+10,σ+5,σ+10,σ?5,σ+5”。

        方案C發(fā)送方使用本文方案將秘密信息嵌入無(wú)效交易中,在傳遞秘密信息時(shí),仿照網(wǎng)絡(luò)中正常的交易間隔σ發(fā)出含有秘密信息的無(wú)效交易。

        從圖13(a)中可以發(fā)現(xiàn),前25 min 正常通信狀態(tài),每5 min 的交易個(gè)數(shù)在ε上下波動(dòng);25~55 min 時(shí),使用方案A 時(shí)每5 min 的交易個(gè)數(shù)顯著增加,網(wǎng)絡(luò)流量波動(dòng)很大,直到55 min 后通信結(jié)束,網(wǎng)絡(luò)流量才趨于穩(wěn)定。從圖13(b)中可以發(fā)現(xiàn),在發(fā)送前5 個(gè)交易時(shí),方案B 遵循正常交易發(fā)送的時(shí)間間隔,在σ上下波動(dòng);進(jìn)入信息傳遞階段,在發(fā)送第6~第11 個(gè)交易的時(shí)間內(nèi),發(fā)送交易的時(shí)間間隔與正常時(shí)間間隔區(qū)別較大,直到發(fā)送完第11 個(gè)交易后通信結(jié)束,網(wǎng)絡(luò)流量才趨于平緩。然而,使用本文方法的方案C 在正常通信過(guò)程中夾雜著含密交易,整個(gè)過(guò)程不受時(shí)間性質(zhì)的影響,與正常的交易頻率相似,攻擊方無(wú)法通過(guò)分析網(wǎng)絡(luò)流量的方法檢測(cè)到方案C 使用的隱蔽信道。

        4.1.2 不可感知性

        為了確定網(wǎng)絡(luò)中正常節(jié)點(diǎn)發(fā)送交易的時(shí)間間隔,通過(guò)調(diào)用比特幣測(cè)試網(wǎng)絡(luò)的開(kāi)放接口bitcoincore 接入Bitcoin Testnet,設(shè)置探針節(jié)點(diǎn)監(jiān)測(cè)鄰居節(jié)點(diǎn)的活動(dòng)狀況。當(dāng)監(jiān)測(cè)x個(gè)鄰居節(jié)點(diǎn)時(shí),若它們?cè)趆h 內(nèi)向探針節(jié)點(diǎn)發(fā)送y條交易,那么網(wǎng)絡(luò)中的節(jié)點(diǎn)每秒大約發(fā)送N條交易,如式(12)所示。

        實(shí)驗(yàn)設(shè)置探針節(jié)點(diǎn)對(duì)其8 個(gè)鄰居節(jié)點(diǎn)[23]進(jìn)行監(jiān)測(cè),在24 h 內(nèi)收到了275 440 條交易,因此可知,一個(gè)正常比特幣網(wǎng)絡(luò)節(jié)點(diǎn)每2.5 s 轉(zhuǎn)發(fā)一條交易。則隱蔽通信的發(fā)送方仿照正常發(fā)送交易的頻率,每間隔2.5 s 發(fā)送一條交易,將無(wú)效交易夾雜其中發(fā)送,不會(huì)造成網(wǎng)絡(luò)流量的波動(dòng),對(duì)于其他節(jié)點(diǎn)來(lái)說(shuō)是不可感知的。

        另外,本文方案中的發(fā)送方節(jié)點(diǎn)和接收方節(jié)點(diǎn)是通過(guò)網(wǎng)絡(luò)提供的協(xié)議正常加入比特幣節(jié)點(diǎn)網(wǎng)絡(luò)的,沒(méi)有修改協(xié)議本身的內(nèi)容,加入之后參與網(wǎng)絡(luò)正?;顒?dòng),維護(hù)網(wǎng)絡(luò)的穩(wěn)定性。因此在偽裝階段,發(fā)送方節(jié)點(diǎn)和接收方節(jié)點(diǎn)都是無(wú)法感知的。在數(shù)據(jù)傳輸階段,本文提出的隱蔽信道利用了無(wú)效交易作為秘密信息的載體,但是沒(méi)有改變交易的數(shù)據(jù)格式和長(zhǎng)度,因此不影響網(wǎng)絡(luò)的正常通信。所以,對(duì)于普通節(jié)點(diǎn)來(lái)說(shuō),隱蔽信道是無(wú)法感知的。

        由于比特幣為公鏈性質(zhì)的區(qū)塊鏈,網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都能夠隨意加入和退出,它們對(duì)于交易和區(qū)塊的廣播沒(méi)有第三方可以控制,因此會(huì)出現(xiàn)作惡節(jié)點(diǎn)——占用帶寬以及發(fā)布不實(shí)消息、浪費(fèi)計(jì)算資源的節(jié)點(diǎn)(廣播無(wú)效交易也是其中之一)。然而,得益于交易轉(zhuǎn)發(fā)機(jī)制的泛洪廣播特性,作惡節(jié)點(diǎn)每一次的惡行只會(huì)影響其鄰居節(jié)點(diǎn),為了網(wǎng)絡(luò)中節(jié)點(diǎn)的穩(wěn)定,比特幣網(wǎng)絡(luò)設(shè)計(jì)了對(duì)鄰居節(jié)點(diǎn)的懲罰機(jī)制,偽代碼如算法1 所示。

        由算法1 可以發(fā)現(xiàn),當(dāng)作惡節(jié)點(diǎn)發(fā)送一條惡意消息后,其鄰居節(jié)點(diǎn)不一定會(huì)立即斷開(kāi)。只有當(dāng)作惡節(jié)點(diǎn)的分?jǐn)?shù)減少到閾值以下后,鄰居節(jié)點(diǎn)會(huì)斷開(kāi)與它的連接,默認(rèn)斷開(kāi)24 h,之后斷開(kāi)的鄰居節(jié)點(diǎn)可以重新連接。此時(shí),作惡節(jié)點(diǎn)不會(huì)斷開(kāi)整個(gè)比特幣網(wǎng)絡(luò),它會(huì)選擇其他節(jié)點(diǎn)進(jìn)行連接。

        假設(shè)節(jié)點(diǎn)將懲罰閾值設(shè)為T,懲罰值設(shè)為S,那么它可以收到鄰居節(jié)點(diǎn)發(fā)送的無(wú)效交易M條,如式(13)所示。

        因此,隱蔽通信雙方連接后,接收方在本地配置文件中將懲罰閾值調(diào)整為T<100?MS,即可保持與發(fā)送方的穩(wěn)定連接。

        區(qū)塊鏈網(wǎng)絡(luò)中攻擊方對(duì)于網(wǎng)絡(luò)流量和交易的監(jiān)測(cè)是通過(guò)部署探針節(jié)點(diǎn)完成的,假設(shè)整個(gè)網(wǎng)絡(luò)中有α個(gè)節(jié)點(diǎn),攻擊方擁有β個(gè)節(jié)點(diǎn),若想監(jiān)測(cè)發(fā)送方發(fā)送的無(wú)效交易,攻擊方必須作為發(fā)送方的鄰居節(jié)點(diǎn),因?yàn)闊o(wú)效交易會(huì)在第一輪轉(zhuǎn)發(fā)后被拋棄。假設(shè)發(fā)送方有γ個(gè)鄰居節(jié)點(diǎn),那么攻擊方作為發(fā)送方鄰居節(jié)點(diǎn)的概率為P1,如式(14)所示,其中C 表示組合數(shù)。以此類推,在第i輪中,攻擊方有節(jié)點(diǎn)作為發(fā)送方鄰居節(jié)點(diǎn)的概率為Pi。

        隱蔽通信中,若發(fā)送方有鄰居節(jié)點(diǎn)斷開(kāi)連接,則替換新的鄰居節(jié)點(diǎn)。當(dāng)進(jìn)行V輪通信時(shí),攻擊方節(jié)點(diǎn)在V輪中一直作為發(fā)送方鄰居節(jié)點(diǎn)的概率為PV,如式(15)所示。PV隨著通信輪次的增加而逐步減小,因此隱蔽信道對(duì)于攻擊方節(jié)點(diǎn)來(lái)說(shuō)是不可感知的。

        4.2 傳輸效率

        隱蔽通信的共同目標(biāo)是高效、隱蔽、安全地在用戶之間秘密地傳遞秘密信息。本節(jié)從以下幾個(gè)方面將本文提出的隱蔽通信方法與現(xiàn)有區(qū)塊鏈環(huán)境下的隱蔽通信方法進(jìn)行比較,如表4 所示。

        表4 隱蔽通信方法對(duì)比

        4.2.1 隱藏容量

        由于隱蔽通信每輪只通過(guò)一條交易完成,因此隱藏容量定義為每條交易可以嵌入的秘密信息比特?cái)?shù)(bpt)。

        BLOCCE[9]使用交易接收方比特幣地址的最低有效位嵌入秘密信息,每條交易的接收地址只有一個(gè),因此一條交易只能傳輸1 bit 的信息。DLchain[12]通過(guò)生成簽名時(shí)使用的橢圓曲線算法隱藏秘密信息,用秘密信息代替簽名時(shí)的私鑰,由于私鑰固定是 256 bit,則實(shí)現(xiàn)了 256 bpt 的隱藏容量。ChainChannels[13]與DLchain 類似,用秘密信息代替簽名時(shí)使用的隨機(jī)數(shù),由于隨機(jī)數(shù)固定為256 bit,則它也只實(shí)現(xiàn)了 256 bpt 的隱藏容量。KBCC(kleptography-based covert channel )[14]使用交易的OP_RETURN 字段嵌入信息,OP_RETURN 字段的最大容量為40 B,若全部使用可實(shí)現(xiàn)320 bpt 的隱藏容量。BDTX[16]使用交易的coinbase 字段嵌入信息,coinbase 字段最大容量為69 B,全部使用可以實(shí)現(xiàn)552 bpt 的隱藏容量。

        本文方案由于無(wú)效交易只在與發(fā)送方連接的鄰居節(jié)點(diǎn)間傳播,不被區(qū)塊鏈賬本永久保存,大部分其他節(jié)點(diǎn)無(wú)法獲取,因此可以選擇交易的多個(gè)字段進(jìn)行秘密信息嵌入。

        當(dāng)構(gòu)造一個(gè)輸入一個(gè)輸出的無(wú)效交易時(shí),交易中的前置交易(TXHASH)字段的32 B、解鎖腳本字段120 B、輸出的目的地址字段20 B 都是可變字段,可以用來(lái)嵌入秘密信息,若都投入使用,一條交易可以實(shí)現(xiàn)172 B 即1 376 bpt 的隱藏容量。另外在構(gòu)造無(wú)效交易時(shí),可以選擇構(gòu)造多輸入多輸出的交易。因此,本文提出的方案,隱藏容量至少為1 376 bpt,是BDTX 方案的兩倍以上。

        4.2.2 通信時(shí)間

        單次通信時(shí)間即發(fā)送方傳遞一條密文,從發(fā)送方創(chuàng)建交易開(kāi)始到接收方收到交易為止所需的時(shí)間。

        比特幣網(wǎng)絡(luò)中為了區(qū)塊穩(wěn)定,減少分叉,通過(guò)調(diào)整難度系數(shù)Difficulty 來(lái)平衡全網(wǎng)算力,保證新區(qū)塊的平均出塊時(shí)間為10 min,計(jì)算式如式(16)所示,其中Time2016為生成過(guò)去2 016 個(gè)區(qū)塊的時(shí)間。若網(wǎng)絡(luò)中不產(chǎn)生新的有效交易,那么每10 min 新生成的區(qū)塊中只包含創(chuàng)塊交易,即輸出地址為礦工賬戶的區(qū)塊獎(jiǎng)勵(lì)。

        BLOCCE[9]要求接收方等待發(fā)送方發(fā)送的交易被包含進(jìn)新生成的區(qū)塊后,才能從大量交易中篩選出含密交易,因此該方案的單次通信時(shí)間即新區(qū)塊生成需要的時(shí)間。BDTX[16]使用交易的coinbase 字段嵌入信息,但是只有創(chuàng)塊交易含有這個(gè)字段,即發(fā)送方處理完秘密信息后需要等待新區(qū)塊生成,才能隨著創(chuàng)塊交易發(fā)出秘密信息。因此,這2 個(gè)方案的單次通信時(shí)間都為10 min。

        DLchain[12]、ChainChannels[13]和KBCC[14]這3 種方案都需要發(fā)送方發(fā)出交易后,接收方在網(wǎng)絡(luò)中監(jiān)聽(tīng)篩選特殊交易,當(dāng)網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都收到發(fā)送方發(fā)出的交易后,才能確保接收方節(jié)點(diǎn)能夠收到此交易。比特幣網(wǎng)絡(luò)使用的是Gossip 協(xié)議,節(jié)點(diǎn)周期性地向8 個(gè)鄰居節(jié)點(diǎn)廣播交易信息,當(dāng)網(wǎng)絡(luò)中共有k個(gè)節(jié)點(diǎn)時(shí),一條有效交易廣播給全網(wǎng)節(jié)點(diǎn)需要K=log8k個(gè)輪次。目前比特幣網(wǎng)絡(luò)中存在節(jié)點(diǎn)36 186 個(gè),一條交易廣播給所有的節(jié)點(diǎn)需要接近5.05 個(gè)輪次。由式(15)可知,交易的一輪廣播需要2.5 s,因此DLchain[12]、ChainChannels[13]和KBCC[14]3 種方案的單次通信時(shí)間約為12.5 s。

        在本文方案中,接收方的身份是發(fā)送方的鄰居節(jié)點(diǎn),接收方可以在發(fā)送方廣播交易的第一輪收到含密交易,因此單次通信時(shí)間為2.5 s。

        5 結(jié)束語(yǔ)

        本文針對(duì)現(xiàn)有區(qū)塊鏈網(wǎng)絡(luò)下隱蔽信道存在的問(wèn)題,提出了一種基于交易構(gòu)造和轉(zhuǎn)發(fā)機(jī)制的區(qū)塊鏈網(wǎng)絡(luò)隱蔽通信方法。利用比特幣交易的構(gòu)造機(jī)制,將秘密信息嵌入交易的可自定義字段,來(lái)構(gòu)造無(wú)效交易。由于構(gòu)造無(wú)效交易時(shí)不需要遵循復(fù)雜的交易規(guī)則,只需數(shù)據(jù)格式和長(zhǎng)度滿足條件。因此,可根據(jù)秘密信息的長(zhǎng)度選擇嵌入秘密信息的字段,隱藏容量是BDTX 方案的兩倍以上。利用交易轉(zhuǎn)發(fā)機(jī)制,使無(wú)效交易只在發(fā)送方的鄰居節(jié)點(diǎn)之間傳播,并且不存儲(chǔ)于區(qū)塊鏈的賬本中,不會(huì)留下隱蔽通信的“證據(jù)”,安全性高。此外,本文通過(guò)實(shí)驗(yàn)和理論分析論證了該方法的抗檢測(cè)性和不可感知性,并且通過(guò)計(jì)算分析得到,所提方案的隱藏容量和通信效率皆優(yōu)于現(xiàn)有方案。之后的研究重點(diǎn)是將提出的方法擴(kuò)展到群隱蔽通信中,在保證含有秘密信息的交易不被保存的前提下,實(shí)現(xiàn)多個(gè)接收者共同接收秘密信息。

        猜你喜歡
        比特秘密信道
        比特幣還能投資嗎
        海峽姐妹(2017年10期)2017-12-19 12:26:20
        比特幣分裂
        比特幣一年漲135%重回5530元
        銀行家(2017年1期)2017-02-15 20:27:20
        愿望樹(shù)的秘密(二)
        手心里有秘密
        基于導(dǎo)頻的OFDM信道估計(jì)技術(shù)
        我心中的秘密
        第十三章 進(jìn)化的秘密!
        一種改進(jìn)的基于DFT-MMSE的信道估計(jì)方法
        基于MED信道選擇和虛擬嵌入塊的YASS改進(jìn)算法
        国产精品亚洲综合久久婷婷| 国产欧美精品aaaaaa片| 国产精品白浆一区二区免费看| 人妻精品视频一区二区三区| 亚洲s色大片在线观看| 国产精品免费av片在线观看| 日韩精品一区二区亚洲av| 色综合88| 亚洲无AV码一区二区三区| 中文字幕视频一区懂色| 伊人青青草综合在线视频免费播放| 人妻丰满熟妇av无码区app| 久久香蕉国产线看观看精品yw | 丰满熟女人妻中文字幕免费| 国产99页| 中文亚洲成a人片在线观看| 五月婷婷开心六月激情| 国产成人av一区二区三区不卡| 精品深夜av无码一区二区| 丰满人妻妇伦又伦精品国产| 国产自精品在线| 日本免费一区二区在线看片| 国产伦精品免编号公布| 五月天激情综合网| 久久久精品国产亚洲av网| 国产中文字幕亚洲精品| 成人亚洲精品777777| 成 人 免费 黄 色 视频 | 国产成人自拍小视频在线| 少妇高潮精品正在线播放| 国产av一区二区三区无码野战| 国产精品美女久久久久久久久| 国产亚洲精久久久久久无码苍井空 | 漂亮人妻出轨中文字幕| 公和我做好爽添厨房| 挺进朋友人妻雪白的身体韩国电影| 欲妇荡岳丰满少妇岳 | 一区二区在线观看精品在线观看| 女局长白白嫩嫩大屁股| 成人区视频| 扒下语文老师的丝袜美腿|