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

        ?

        ShuffleParty:一種新的區(qū)塊鏈隱私保護(hù)機(jī)制

        2023-03-27 02:04:14胡鋒鳴趙紅武
        關(guān)鍵詞:機(jī)制用戶

        胡鋒鳴,趙紅武,金 瑜

        (1.武漢科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,湖北 武漢 430065;2.湖北省智能信息處理與實(shí)時工業(yè)系統(tǒng)重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430065)

        0 引 言

        2008年11月1日,中本聰(Satoshi Nakamoto)發(fā)布了比特幣白皮書,提出了比特幣概念[1]。而后2009年1月,中本聰創(chuàng)建了第一個區(qū)塊,被稱為“上帝區(qū)塊”,幾天后第二個區(qū)塊誕生,與創(chuàng)世區(qū)塊連接形成了鏈,標(biāo)志著區(qū)塊鏈誕生。區(qū)塊鏈作為一種具有去中心化、不可篡改、可追溯、可信特性的分布式數(shù)據(jù)庫,受到了廣泛關(guān)注[2]。經(jīng)過了十幾年時間,區(qū)塊鏈技術(shù)不斷發(fā)展革新,應(yīng)用廣泛,其所出現(xiàn)的隱私問題得到了許多研究者關(guān)注[3-5]。區(qū)塊鏈的可溯源、可驗(yàn)證等特性是基于系統(tǒng)中所有交易數(shù)據(jù)公開產(chǎn)生的,因此這導(dǎo)致惡意攻擊者可以通過分析數(shù)據(jù)窺探用戶隱私。

        近年來,由于研究者對區(qū)塊鏈系統(tǒng)中隱私問題的關(guān)注,區(qū)塊鏈隱私保護(hù)技術(shù)不斷出現(xiàn)。其中,混幣機(jī)制在保證原有交易結(jié)果不變的前提下對交易過程進(jìn)行混淆,從而抵抗攻擊者對賬本進(jìn)行分析。其中,去中心化混幣機(jī)制是目前最為流行的隱私保護(hù)技術(shù)之一。在該方法中,多方混幣機(jī)制CoinParty通過構(gòu)建門限托管賬戶,將參與者輸入資產(chǎn)作為抵押,提高了攻擊者拒絕服務(wù)攻擊成本。另一方面,CoinParty洗牌階段要求最后一個洗牌節(jié)點(diǎn)以字典序排序,避免了最后一個用戶操縱結(jié)果。但CoinParty存在一些不足:(1)引入了第三方節(jié)點(diǎn)來進(jìn)行洗牌,降低了安全性;(2)由第三方節(jié)點(diǎn)用地址的校驗(yàn)和驗(yàn)證輸出地址列表,導(dǎo)致最后一個洗牌節(jié)點(diǎn)可以用校驗(yàn)和相同的地址列表替換原有地址列表,從而盜取資產(chǎn);(3)效率低,每一個節(jié)點(diǎn)都需要進(jìn)行多層加密解密,洗牌結(jié)束后需要進(jìn)行廣播校驗(yàn)和驗(yàn)證,時間復(fù)雜度高。

        基于此,該文提出了一種新的隱私保護(hù)機(jī)制(ShuffleParty)。ShuffleParty在CoinParty的基礎(chǔ)上進(jìn)行改進(jìn),通過在混幣參與者內(nèi)部選出洗牌節(jié)點(diǎn),由洗牌節(jié)點(diǎn)進(jìn)行洗牌后,將輸出地址結(jié)果交給混幣參與者進(jìn)行驗(yàn)證,并生成最終置換。選出洗牌節(jié)點(diǎn)進(jìn)行洗牌,避免了第三方節(jié)點(diǎn)進(jìn)行校驗(yàn)和驗(yàn)證帶來的安全性問題,增強(qiáng)了對隱私的保護(hù),同時也減少了通信和洗牌所需時間,提高了混幣效率。

        1 相關(guān)工作

        1.1 區(qū)塊鏈隱私威脅

        區(qū)塊鏈技術(shù)為了保證區(qū)塊鏈上記錄數(shù)據(jù)的可溯源、可驗(yàn)證等特性,在分散節(jié)點(diǎn)之間維持?jǐn)?shù)據(jù)同步并對交易達(dá)成共識,區(qū)塊鏈上所有交易信息都存儲在公開的全局賬本中,攻擊者很容易獲取所有交易信息。攻擊者可以通過分析區(qū)塊鏈賬本中記錄的交易數(shù)據(jù),發(fā)掘其中規(guī)律,將用戶的不同地址、交易數(shù)據(jù)關(guān)聯(lián),并進(jìn)一步對應(yīng)到用戶的現(xiàn)實(shí)身份,嚴(yán)重威脅到用戶隱私。Reid和Harrigan[6]通過對公布的賬戶進(jìn)行數(shù)據(jù)分析,統(tǒng)計(jì)出了對應(yīng)地址的資金余額、資金來源、資金流向等信息,并對區(qū)塊鏈地址及IP地址對應(yīng)關(guān)系進(jìn)行分析,揭露了比特幣用戶與實(shí)際物理位置的對應(yīng)關(guān)系。Androulaki等人[7]提出了挖掘找零地址方法,如果一個交易擁有兩個輸出,其中一個為已出現(xiàn)過的地址,另一個為新地址,則將新地址視為找零地址。Ron和Shamir[8]獲取比特幣的交易數(shù)據(jù),通過研究用戶行為、比特幣輸入輸出情況,得到了一些交易規(guī)律,結(jié)果表明用戶無法通過資產(chǎn)轉(zhuǎn)移有效保護(hù)個人隱私。

        1.2 混幣機(jī)制

        為了解決區(qū)塊鏈隱私問題,研究者提出了一種交換資產(chǎn)、混淆地址的防御機(jī)制,即混幣機(jī)制?;鞄艡C(jī)制有著多種不同實(shí)現(xiàn)方式,根據(jù)混幣操作者不同,分為中心化混幣和去中心化混幣兩種技術(shù)。

        中心化混幣技術(shù)需要第三方節(jié)點(diǎn)中心化混幣服務(wù)商參與,幫助希望進(jìn)行混幣交易的用戶與其他用戶匹配,構(gòu)造混幣交易,并從中收取一定額度的手續(xù)費(fèi)。各個混幣用戶與混幣服務(wù)商進(jìn)行交易,混幣服務(wù)商收到用戶的資產(chǎn)后隨機(jī)混淆,然后返回給用戶指定的輸出地址?;鞄欧?wù)商作為混幣交易的中間者,讓攻擊者難以發(fā)現(xiàn)用戶的資金流向,通過分析僅僅只能將混幣參與者的地址聚類,無法分析出輸入地址和輸出地址之間對應(yīng)關(guān)系。但混幣服務(wù)提供商作為混幣交易第三方,在交易中會獲取所有用戶資金以及交易信息,存在安全隱患。最早的中心化服務(wù)例如BitLaundry采用最基礎(chǔ)的中心化混幣協(xié)議,平臺固定配置手續(xù)費(fèi)等參數(shù),導(dǎo)致攻擊者可以分析混幣交易的平臺地址和固定手續(xù)費(fèi)特征將其關(guān)聯(lián)在一起,并且也存在混幣服務(wù)商內(nèi)部做惡風(fēng)險[9]。Bonneau等人[10]提出了Mixcoin協(xié)議,通過基于電子簽名承諾機(jī)制增強(qiáng)資產(chǎn)安全性,在混幣過程中混幣服務(wù)商需要進(jìn)行簽名。若混幣服務(wù)商出現(xiàn)違規(guī)行為,用戶可以公布服務(wù)提供商的簽名舉報(bào)混幣服務(wù)商違規(guī),該混幣服務(wù)商將會失去信譽(yù)。但該方案保護(hù)用戶資產(chǎn)安全,無法保證用戶的信息不被服務(wù)提供商泄露。Valenta等人[11]提出了Blindcoin協(xié)議,在沿用Mixcoin協(xié)議的簽名機(jī)制的基礎(chǔ)上,用戶采用盲簽名技術(shù)進(jìn)行簽名交易,保證第三方混幣服務(wù)商無法獲取到用戶輸入輸出地址關(guān)聯(lián)關(guān)系,解決了混幣服務(wù)商泄露混幣用戶信息的問題。

        中心化混幣技術(shù)因?yàn)橹行幕鞄欧?wù)商的參與,方便用戶匹配其他混幣用戶,便于用戶使用。但與此同時帶來了安全性問題,中心化混幣服務(wù)提供商作為第三方節(jié)點(diǎn),存在安全隱患,會帶來一些潛在風(fēng)險,例如遭受黑客攻擊進(jìn)而盜竊用戶資產(chǎn)。為提高安全性,研究者提出了去中心化混幣技術(shù)。

        去中心化混幣技術(shù)不需要第三方節(jié)點(diǎn)參與,通過多方參與協(xié)議代替中心化混幣服務(wù)提供商,用戶在網(wǎng)絡(luò)中自行尋找其他需要混幣用戶,通過多方參與者運(yùn)行協(xié)議方式構(gòu)造混幣交易。從根本上解決了中心化混幣存在的安全問題,也替用戶節(jié)省了混幣服務(wù)提供商的手續(xù)費(fèi)。Gmaxwall[12]在2013年首先提出了第一個去中心化混幣方案CoinJoin,該協(xié)議通過將多個相同金額的輸入輸出放入同一交易中構(gòu)造混幣交易,將多筆相同金額的單出入-單輸出交易合并成一個輸入輸出都相同的多輸入-多輸出交易,使外部攻擊者無法通過分析該交易分辨不同的輸出,得到每個輸入和輸出地址之間的關(guān)聯(lián)關(guān)系,確保了外部隱私性。但由于沒有第三方節(jié)點(diǎn),混幣參與者需要自行進(jìn)行協(xié)商,在協(xié)商階段,參與用戶的輸入輸出地址關(guān)聯(lián)信息會被其他混幣用戶獲取,內(nèi)部隱私性不能得到保障[13]。

        為了解決CoinJoin方案的內(nèi)部隱私性問題,Ruffing等人[14]提出了CoinShuffle協(xié)議。該方案延續(xù)了CoinJoin核心思想,多個混幣參與者構(gòu)造一個金額相同的多輸入-輸出交易,保證外部隱私性。在CoinJoin基礎(chǔ)上,CoinShuffle增加了輸出地址洗牌機(jī)制,讓參與者按照一定順序進(jìn)行排列,每個參與者按照順序使用后面參與者的公鑰進(jìn)行加密,從第一個參與者開始將加密信息發(fā)給后面的參與者,后面的參與者接受用自己的私鑰進(jìn)行解密,并加入自己加密好的輸出地址進(jìn)行混淆,再發(fā)給下一個參與者,直到最后一個參與者,得到最終的輸出地址明文。將輸出地址列表交給參與者驗(yàn)證簽名后,創(chuàng)建混幣交易。CoinShuffle通過多層加密,使得中間的參與者無法看到明文,而最后一個參與者無法知道輸入輸出地址之間的關(guān)聯(lián),解決了內(nèi)部隱私性問題。但也存在一定缺陷:最后一個參與者可以決定輸出地址列表順序而非隨機(jī),攻擊者可以控制順序;多層加密解密、洗牌導(dǎo)致了該方案的效率偏低,若攻擊者進(jìn)行拒絕服務(wù)攻擊,整個洗牌過程又需要重新進(jìn)行[15]。

        Ziegeldorf等人[16]提出了去中心化混幣協(xié)議CoinParty,由多個第三方混合節(jié)點(diǎn)共同構(gòu)建托管賬戶,混幣參與者將混幣資產(chǎn)放入托管賬戶進(jìn)行抵押,從而提高拒絕服務(wù)攻擊的代價,一定程度上抵御拒絕服務(wù)攻擊。多個混合節(jié)點(diǎn)對輸出地址進(jìn)行洗牌,采用校驗(yàn)和對比所有輸出地址哈希值的和對洗牌結(jié)果進(jìn)行校驗(yàn)。并且要求最后一個洗牌節(jié)點(diǎn)按字典序排序生成地址列表,再以校驗(yàn)和作為偽隨機(jī)數(shù)生成器的依據(jù)生成最終隨機(jī)置換,在地址列表上加以最終置換得到最終混淆結(jié)果,避免了輸出地址列表被最后一個洗牌節(jié)點(diǎn)操縱。該方案成功解決了CoinShuffle中無法預(yù)防拒絕服務(wù)攻擊、最后一個洗牌節(jié)點(diǎn)操縱洗牌結(jié)果的問題,獲得了更好的安全性。但同時也引入了新的問題:CoinParty采取了多個第三方節(jié)點(diǎn)來進(jìn)行洗牌以及創(chuàng)建交易,第三方節(jié)點(diǎn)的加入帶來了安全性的降低;使用校驗(yàn)和對比所有輸出地址哈希值的和對洗牌結(jié)果進(jìn)行校驗(yàn),導(dǎo)致最后一個洗牌節(jié)點(diǎn)可以用相同哈希值和的輸出地址替換原有的輸出地址,從而盜取資產(chǎn),同時也帶來了額外的效率問題。TTShuffle[17]在CoinShuffle的基礎(chǔ)上進(jìn)行改進(jìn),將混幣參與者進(jìn)行分組,由組內(nèi)洗牌和組間洗牌兩階段完成洗牌過程,分散了洗牌操作,提高了混幣效率。但TTShuffle是在CoinShuffle基礎(chǔ)上改進(jìn),和CoinShuffle一樣無法防止拒絕服務(wù)攻擊。

        2 ShuffleParty

        2.1 機(jī)制概述

        ShuffleParty機(jī)制是在CoinParty的基礎(chǔ)上進(jìn)行改進(jìn),設(shè)計(jì)了基于洗牌節(jié)點(diǎn)選取的洗牌機(jī)制。該方案主要部分可以分成五個階段,即協(xié)商階段、承諾階段、洗牌階段、交易階段,以及混幣失敗時進(jìn)入問責(zé)階段(2.2節(jié)詳述)。ShuffleParty機(jī)制流程見圖1。

        圖1 ShuffleParty機(jī)制流程

        為解決CoinParty方案所存在的問題,本方案在保留CoinParty方案托管地址的機(jī)制的同時,去除了第三方節(jié)點(diǎn),由參與者內(nèi)部選出洗牌節(jié)點(diǎn)進(jìn)行洗牌,最后將洗牌結(jié)果交給其他參與者進(jìn)行驗(yàn)證,避免最后一個洗牌節(jié)點(diǎn)通過替換相同哈希值和的輸出地址盜取資金。

        在混幣參與者開始混幣方案后,由參與者協(xié)商,隨機(jī)選出M個洗牌節(jié)點(diǎn),并協(xié)商洗牌節(jié)點(diǎn)的洗牌順序,參與者計(jì)算出一組托管地址,將自己的資金轉(zhuǎn)入托管地址。然后,每個洗牌節(jié)點(diǎn)廣播其生成的密鑰(ek,dk)中的公鑰ek,每個普通參與者按照確認(rèn)好的洗牌順序,使用洗牌節(jié)點(diǎn)的公鑰ek對自己的輸出地址進(jìn)行層層加密,而洗牌節(jié)點(diǎn)使用后面洗牌節(jié)點(diǎn)的公鑰ek對輸出地址進(jìn)行層層加密。完成加密后,普通參與者將加密好的輸出地址發(fā)送給第一個洗牌節(jié)點(diǎn),第一個洗牌節(jié)點(diǎn)將收到的信息用自己的私鑰dk進(jìn)行一層解密,并加入自己加密好的輸出地址形成輸出地址列表,隨機(jī)洗牌后發(fā)送給下一個洗牌節(jié)點(diǎn)。層層解密后,最后一個洗牌節(jié)點(diǎn)加入自己的輸出地址,對輸出地址進(jìn)行字典序排序后,廣播最后的輸出地址列表。參與者檢查自己的輸出地址是否在列表中,地址列表是否是字典序排序。若輸出地址丟失或列表不是字典序排序,則洗牌無效,進(jìn)入責(zé)備階段找出違規(guī)者,托管地址中的資金退回到參與者輸入地址。反之,參與者以所有輸出地址哈希值的和作為偽隨機(jī)數(shù)生成器的依據(jù)生成公共隨機(jī)置換,得到最終混淆結(jié)果,按照最終結(jié)果生成交易。

        2.2 詳細(xì)描述

        (1)協(xié)商階段:N個混幣用戶在開始混幣機(jī)制后,形成初始節(jié)點(diǎn)集合U,公布自己的輸入地址In(n∈{1,2,…,N}),共同協(xié)商混幣金額v,洗牌節(jié)點(diǎn)數(shù)量M(M

        算法1:Shuffle nodes selection

        輸入:Collection of initial nodesU

        Number of Shuffle nodesM

        輸出:Collection of shuffle nodesS

        (1)S←null

        (2)foriin range (1,M)

        (3)node←random(U)

        (4)S.add(node)

        (5) returnS

        (2)承諾階段:混幣參與者共同生成一個托管賬戶T,為了防止托管資金被惡意的混幣參與者竊取,T由一個新的ECDSA密鑰對生成,T在混幣參與者的聯(lián)合控制下。參與者n將混幣金額v轉(zhuǎn)入對應(yīng)的托管賬戶T,{I1,I2,…,IM}→T,參與者可以互相驗(yàn)證是否將指定金額v轉(zhuǎn)入了托管賬戶T,確保每個參與者都完成承諾后進(jìn)入下一階段。托管地址T創(chuàng)建過程如下:

        (a)隨機(jī)生成一個值k作為托管地址T的私鑰,通過偽隨機(jī)秘密分享(Pseudo-Random Secret Sharing,PRSS)[18]使參與者i獲得私鑰d的份額[k]n。

        (b)每個參與者計(jì)算他的公鑰份額[Q]n=[d]n·G,G為橢圓曲線的基點(diǎn)。

        (c)每個參與者i將他的公鑰份額[Q]n廣播給其他參與者。

        (e)使用公鑰Q創(chuàng)建托管地址T。

        圖2 洗牌過程

        圖3 加密結(jié)構(gòu)

        算法2:Multilayered encryption

        輸入:Collection of common nodesS

        Collection of shuffle nodesS

        (1) forPiinP

        (2)mi←Oi

        (3) forjin range(1,M)

        (4)mi←AES.encrypt(mi,dkj)

        (6) forSjinS

        (7)mj←Oj

        (8) fornin range(j+1,M)

        (9)mj←AES.encrypt(mj,dkn)

        圖4 洗牌階段Message List結(jié)構(gòu)

        算法3:Shuffle

        輸入:Collection of common nodesS

        Collection of shuffle nodesS

        輸出:mlistM

        (1) forPiinP

        (3) forS1

        (5) mlist1.add(decryptedMsg)

        (7) mlist1←mlist1.random

        (8) send mlist1toS1

        (9) forSjinS(1

        (10)formnin mlistj-1

        (11) decryptedMsg←AES.decrypt(mn,dkj)

        (12) mlistj.add(decryptedMsg)

        (14) mlistj+1←mlistj.random

        (15) send mlistj+1toSj+1

        (16) forSM

        (17) mlistM-1={m1,m2,…,mN-1}

        (18)formM-1in mlistM-1

        (19) decryptedMsg←AES.decrypt(mM-1,dkM)

        (20) mlistM.add(decryptedMsg)

        (21) mlistM.add(Oi)

        (22) mlistM←mlistM.lexorder()

        (23) broadcast(mlistM)

        (24) return mlistM

        參與者收到輸出地址列表mlistM后,驗(yàn)證自己的輸出地址是否在輸出地址列表中,地址列表是否按字典序排序。若輸出地址不在或地址列表沒有按字典序排序,將托管地址Tn中的資金v轉(zhuǎn)移回輸入地址In,并進(jìn)入責(zé)備階段。反之,如果一切正常,將每個參與者計(jì)算輸出地址的哈希和,以此為偽隨機(jī)數(shù)生成器的依據(jù)生成公共隨機(jī)置換,在mlistM上增加公共隨機(jī)置換得到最終輸出地址列表AddressList。該過程如算法4所示:

        算法4:final permutation

        輸入:mlistM

        輸出:AdressList

        //校驗(yàn)成功后進(jìn)行最終置換

        (1) mlistM={m1,m2,…,mN}

        (2) formMin mlistM

        (3) hashsum←hashsum+hash(mM)

        (4) AdressList←mlistM.random.seed(hashsum)

        (4)交易階段:混幣參與者創(chuàng)建交易T→{O1,O2,…,OM},托管地址Ti的私鑰di由所有參與者共同生成,最終由混幣參與者合作簽署交易。由于參與者沒有自己對應(yīng)托管賬戶的私鑰,所以各參與者廣播出自己在承諾階段獲得的私鑰份額,重構(gòu)出托管地址T的私鑰k,然后生成有效的簽名,將交易廣播給區(qū)塊鏈。

        (a)生成托管地址到最終輸出地址列表的交易T→{O1,O2,…,OM}。

        (b)每個參與者驗(yàn)證交易的輸出地址列表是否與自己生成的最終輸出地址列表AddressList相同。若不同,交易取消,進(jìn)入責(zé)備階段。

        (c)每個參與者廣播自己的私鑰份額[k]n。

        (e)使用私鑰k生成對托管地址T的有效簽名。

        (f)將交易提交給區(qū)塊鏈。

        (5)問責(zé)階段:在整個混幣的流程中,每個參與者監(jiān)督著其他的參與者沒有進(jìn)行違規(guī)操作。一旦發(fā)現(xiàn)違規(guī)現(xiàn)象,誠信的參與者會通告這一現(xiàn)象,混幣流程將會停止并執(zhí)行該階段,識別出違規(guī)操作者并將其剔除,重新進(jìn)行混幣。這里分別討論每個階段的違規(guī)操作。

        (a)承諾階段:承諾階段是使參與者將混幣金額放入托管賬戶作為押金機(jī)制,是保證后續(xù)階段安全的基礎(chǔ),參與者之間互相通過輸入地址,在區(qū)塊鏈上驗(yàn)證是否每個參與者都將混幣金額v轉(zhuǎn)入了托管地址,若超時后,仍有參與者未完成承諾,則將其剔除。

        (b)洗牌階段:該階段會出現(xiàn)加密密鑰錯誤、最后一個參與者不按字典符排序等錯誤,若發(fā)現(xiàn)違規(guī)操作,洗牌節(jié)點(diǎn)可以廣播他們的解密密鑰,以及他們收到的消息,從而允許參與者對每個洗牌節(jié)點(diǎn)的操作進(jìn)行重放,找出其中的違規(guī)操作者。發(fā)現(xiàn)違規(guī)操作者后,將其剔除,然后將押金退回到輸入地址。

        若其中一個洗牌節(jié)點(diǎn)Sj宕機(jī),下個洗牌節(jié)點(diǎn)Sj+1在限定時間內(nèi)沒有接受到Sj加密消息,Sj+1將超時信息廣播給其他參與者,然后剔除掉宕機(jī)的參與者,退回押金,剩余參與者重新進(jìn)行混幣。若最后一個洗牌節(jié)點(diǎn)SM宕機(jī),SM沒有在限定時間內(nèi)廣播輸出地址列表,其他參與者將會判定超時,將其剔除,重新進(jìn)行混幣操作。

        3 分 析

        3.1 安全性分析

        ShuffleParty通過采取隨機(jī)選擇洗牌節(jié)點(diǎn)的方式,在混幣參與者內(nèi)部選出洗牌節(jié)點(diǎn),且洗牌節(jié)點(diǎn)排列順序隨機(jī),參與者無法自行參與洗牌過程。并沿用了CoinParty機(jī)制中的托管機(jī)制,由多個第三方節(jié)點(diǎn)共同生成托管賬戶改為參與者共同生成托管賬戶,在提高拒絕服務(wù)攻擊成本的同時,避免了第三方節(jié)點(diǎn)的參與,提高了安全性,解決了TTShuffle所存在的無法防止拒絕服務(wù)攻擊的問題,在安全性方面強(qiáng)于TTShuffle。

        在洗牌階段,ShuffleParty機(jī)制中加密方案使用AES-CBC加密,通過多層加密解密,使每個參與者的輸出地址加入到輸出地址列表的過程中,輸出地址明文不會被其他用戶知道,而最后一個洗牌節(jié)點(diǎn)解密得到明文后無法得知其他用戶與輸出地址的對應(yīng)關(guān)系,保障了內(nèi)部隱私性。與CoinParty相同,使用托管賬戶,要求最后一個洗牌節(jié)點(diǎn)以字典序排序,避免攻擊者可以控制輸出地址列表的順序。CoinParty在洗牌開始前將輸出地址的哈希值秘密分享給每一個洗牌節(jié)點(diǎn),洗牌結(jié)束后洗牌節(jié)點(diǎn)廣播自己的哈希份額,然后每個洗牌節(jié)點(diǎn)重構(gòu)輸出地址的哈希和,與洗牌結(jié)果的輸出地址列表哈希和進(jìn)行對比,如果相同,則進(jìn)行下一步。第三方節(jié)點(diǎn)使用校驗(yàn)和進(jìn)行輸出地址列表的驗(yàn)證,帶來了一定安全性問題:由于輸出地址列表是由最后一個洗牌節(jié)點(diǎn)產(chǎn)生的,最后一個洗牌節(jié)點(diǎn)可以將正確的輸出地址列表替換為哈希和相同的地址列表,從而最后通過驗(yàn)證,將混幣用戶的資金轉(zhuǎn)入到錯誤的輸出地址,竊取混幣用戶資金。而ShuffleParty沒有引入任何第三方節(jié)點(diǎn),驗(yàn)證環(huán)節(jié)由每一個混幣用戶進(jìn)行。最后一個洗牌節(jié)點(diǎn)將輸出地址列表廣播,每一個混幣用戶驗(yàn)證自己的輸出地址是否在輸出地址列表中,若不在,則進(jìn)入責(zé)備階段,反之則繼續(xù)進(jìn)行下一步。通過由每個混幣用戶參與驗(yàn)證,保證了輸出地址列表的正確性,避免了CoinParty中第三方節(jié)點(diǎn)帶來的安全性問題。

        3.2 實(shí)驗(yàn)分析

        3.2.1 實(shí)驗(yàn)環(huán)境

        操作系統(tǒng):64位Windows10;編程語言:Java;編程工具:Eclipse,jdk1.8.0_101;JXTA版本:2.4;JXTA CMS版本:2.4.1;加密API:bcprov-jdk14。

        實(shí)驗(yàn)使用JXTA模擬區(qū)塊鏈底層的P2P(Peer-to-Peer)網(wǎng)絡(luò),建立多個節(jié)點(diǎn)加入同一個PeerGroup,模擬多人進(jìn)行混幣的過程。洗牌過程中的多層加密采用AES-CBC模式。

        3.2.2 時間分析

        該文在CoinParty基礎(chǔ)上進(jìn)行改進(jìn),為了對比ShuffleParty機(jī)制和CoinParty機(jī)制的性能情況,在同樣實(shí)驗(yàn)環(huán)境下對ShuffleParty和CoinParty進(jìn)行多次實(shí)驗(yàn),分別從參與者數(shù)量和洗牌節(jié)點(diǎn)數(shù)量控制變量(ShuffleParty洗牌節(jié)點(diǎn)為參與者選出的洗牌節(jié)點(diǎn),CoinParty洗牌節(jié)點(diǎn)為第三方節(jié)點(diǎn)),記錄實(shí)驗(yàn)結(jié)果。并在控制混幣參與者數(shù)量相同的情況下,將ShuffleParty和其他混幣方案進(jìn)行對比實(shí)驗(yàn)1 固定混幣參與者數(shù)量,增加洗牌節(jié)點(diǎn)數(shù)量。分別統(tǒng)計(jì)ShuffleParty和CoinParty在30個混幣參與者參加混幣,有3,4,5,6,7,8個洗牌節(jié)點(diǎn)進(jìn)行洗牌操作時兩個方案正常運(yùn)行所需要的時間,兩個方案的時間對比如圖5所示。

        圖5 固定混幣參與者數(shù)量的運(yùn)行時間對比

        在圖5中,當(dāng)混幣參與者人數(shù)固定時,隨著洗牌節(jié)點(diǎn)的數(shù)量增多,ShuffleParty所需時間始終小于CoinParty,兩個方案的時間都在遞增,但ShuffleParty的遞增幅度不大。因?yàn)镾huffleParty和CoinParty增加一個洗牌節(jié)點(diǎn),就增加了一層加密解密洗牌的過程,CoinParty所有節(jié)點(diǎn)都需要加密洗牌節(jié)點(diǎn)數(shù)量的層數(shù),ShuffleParty只有普通節(jié)點(diǎn)需要加密全部層數(shù),而洗牌節(jié)點(diǎn)只需要進(jìn)行后續(xù)洗牌節(jié)點(diǎn)數(shù)量的多層加密。除此之外,CoinParty通過校驗(yàn)和驗(yàn)證輸出地址列表的機(jī)制,需要洗牌節(jié)點(diǎn)將所持有的校驗(yàn)和份額發(fā)送給其他洗牌節(jié)點(diǎn),每增加一個洗牌節(jié)點(diǎn),就增加了更多的時間消耗。

        實(shí)驗(yàn)2固定洗牌節(jié)點(diǎn)數(shù)量,增加混幣參與者數(shù)量。分別統(tǒng)計(jì)ShuffleParty和CoinParty在5個洗牌節(jié)點(diǎn)進(jìn)行洗牌,有10,15,20,25,30,35個混幣參與者參加混幣時所需要花費(fèi)的時間,兩個方案消耗時間對比如圖6所示。

        在圖6中,隨著混幣參與者人數(shù)的遞增,ShuffleParty和CoinParty兩個機(jī)制成功運(yùn)行時間沒有很大的波動,近乎平直,TTShuffle的運(yùn)行時間隨混幣參與者人數(shù)遞增而遞增。因?yàn)榛鞄艆⑴c者的增多并不會改變加密解密洗牌的層數(shù)變化,僅僅是在每一層洗牌增加了一個加密消息。而由于CoinParty多了一個洗牌節(jié)點(diǎn)發(fā)送校驗(yàn)和份額的過程,所需花費(fèi)的時間更多。TTShuffle隨著混幣參與者人數(shù)增加5人,分組會多出一個,組間洗牌階段將會多進(jìn)行一輪傳遞,導(dǎo)致了時間的增加。

        圖6 固定洗牌節(jié)點(diǎn)數(shù)的運(yùn)行時間對比

        結(jié)合圖5和6可以看出,由于ShuffleParty直接將輸出地址列表發(fā)給混幣參與者驗(yàn)證,沒有CoinParty洗牌節(jié)點(diǎn)之間互相發(fā)送校驗(yàn)和份額的過程,ShuffleParty機(jī)制的時間開銷比CoinParty小很多,洗牌節(jié)點(diǎn)數(shù)量越多,前者的混幣時間優(yōu)勢越明顯。并且ShuffleParty和CoinParty一樣,即使在參與人數(shù)眾多的情況下,依舊能夠保持自身的效率。TTShuffle盡管在CoinShuffle的基礎(chǔ)上有了提升,但ShuffleParty在效率上還是具有優(yōu)勢。

        4 結(jié)束語

        為了解決CoinParty機(jī)制中的第三方節(jié)點(diǎn)以及校驗(yàn)和驗(yàn)證輸出列表導(dǎo)致的安全問題,提出了ShuffleParty機(jī)制。通過在混幣參與者中隨機(jī)選取洗牌節(jié)點(diǎn),由洗牌節(jié)點(diǎn)按隨機(jī)順序進(jìn)行多層洗牌,最后將輸出列表發(fā)送給參與者驗(yàn)證,避免了第三方節(jié)點(diǎn)的參與,保證了混幣過程中的隱私安全和資產(chǎn)安全。通過實(shí)驗(yàn)表明,提出的ShuffleParty機(jī)制相對于CoinParty機(jī)制,在提升安全性的同時,也提高了混幣的效率,減少了所需要的時間。

        雖然解決了CoinParty所存在的一些問題,提高了運(yùn)行效率,但還存在著一些缺陷。比如,被選出的洗牌節(jié)點(diǎn)相較于普通參與者進(jìn)行了更多的工作量,應(yīng)設(shè)立一定獎勵機(jī)制對進(jìn)行洗牌操作的洗牌節(jié)點(diǎn)進(jìn)行獎勵。文中洗牌節(jié)點(diǎn)由普通參與者隨機(jī)選出,若有信譽(yù)值機(jī)制來選取洗牌節(jié)點(diǎn),然后洗牌節(jié)點(diǎn)獲得獎勵,能夠更好地提高混幣機(jī)制的穩(wěn)定性及安全性。

        猜你喜歡
        機(jī)制用戶
        構(gòu)建“不敢腐、不能腐、不想腐”機(jī)制的思考
        自制力是一種很好的篩選機(jī)制
        文苑(2018年21期)2018-11-09 01:23:06
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        定向培養(yǎng) 還需完善安置機(jī)制
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        破除舊機(jī)制要分步推進(jìn)
        Camera360:拍出5億用戶
        100萬用戶
        如何獲取一億海外用戶
        中文字幕一区二区三区乱码人妻| 久久狠狠高潮亚洲精品暴力打| 青榴社区国产精品| 蜜桃噜噜一区二区三区| 日本一区二区三区爆乳| 亚洲国产精品久久又爽av| 国产偷久久久精品专区| 日本人与黑人做爰视频网站 | 亚洲色欲久久久综合网| 欧美zozo另类人禽交| 国产二区中文字幕在线观看| 国产极品粉嫩福利姬萌白酱| 手机在线看永久av片免费| 欧美人与物videos另类xxxxx| jiZZ国产在线女人水多| 久亚洲精品不子伦一区| 人妻中文字幕无码系列| 97精品伊人久久大香线蕉app| 视频网站在线观看不卡| 国产特黄a三级三级三中国| 国产精品午夜福利视频234区| 免费无码毛片一区二区三区a片| 日本不卡一区二区高清中文| 成年人视频在线观看麻豆| 一本色道久久综合狠狠躁篇| av大片在线无码免费| 男女在线免费视频网站| 最新国产不卡在线视频| 一本一道av中文字幕无码| 2021国产精品久久| 国产精品国产三级厂七| 一级r片内射视频播放免费| 中文字幕精品一二三四五六七八| 在线亚洲综合| 一本色道久久88综合亚精品| 国产精品国产三级国产aⅴ下载| 狠狠色综合网站久久久久久久 | 国产一区二区三区毛片| 美女脱了内裤张开腿让男人桶网站 | 欧洲美熟女乱又伦av影片| 成人无码一区二区三区网站|