摘 要:混幣機(jī)制是區(qū)塊鏈隱私保護(hù)技術(shù)之一,目前面臨效率低下、安全性不足、容易遭受拒絕服務(wù)攻擊等問題,因此提出了一種基于中間人的區(qū)塊鏈混幣機(jī)制,稱為IMShuffle。該混幣機(jī)制首先對(duì)混幣交易的參與者隨機(jī)分組,每個(gè)小組成員都需要從小組中選擇一位參與者作為中間人發(fā)送自己的輸出地址,這些中間人將接收到的輸出地址發(fā)送給小組的最后節(jié)點(diǎn);然后運(yùn)用多層加密的思想完成小組間最后節(jié)點(diǎn)輸出地址的傳遞;最后一組的最后節(jié)點(diǎn)接收到所有參與者的輸出地址完成混幣交易。經(jīng)過實(shí)驗(yàn)分析表明,IMShuffle在參與者達(dá)到70名時(shí)混幣時(shí)間僅11 s,與CoinShuffle、TTShuffle機(jī)制的運(yùn)行時(shí)間相比,大大提升了混幣交易的效率,縮短了混幣交易消耗的時(shí)間,同時(shí)保護(hù)了交易過程中參與者的隱私,并降低了遭受拒絕服務(wù)攻擊的風(fēng)險(xiǎn)。
關(guān)鍵詞:區(qū)塊鏈; 隱私保護(hù); 混幣機(jī)制; 中間人; 多層加密
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1001-3695(2022)03-039-0868-06
doi:10.19734/j.issn.1001-3695.2021.08.0405
基金項(xiàng)目:國(guó)家自然科學(xué)基金資助項(xiàng)目(61977021);湖北省技術(shù)創(chuàng)新專項(xiàng)重大項(xiàng)目(2019ACA144,2020AEA008)
作者簡(jiǎn)介:宋建華(1973-),女,湖北襄陽(yáng)人,教授,碩導(dǎo),博士,主要研究方向?yàn)樾畔踩?、網(wǎng)絡(luò)安全;李智凱(1997-),男(通信作者),湖北孝感人,碩士研究生,主要研究方向?yàn)閰^(qū)塊鏈安全、信息安全(511353271@qq.com);張柏晨(1996-),男,吉林遼源人,碩士研究生,主要研究方向?yàn)樾畔踩?、網(wǎng)絡(luò)安全.
Coin mixing mechanism in blockchain based on intermediator
Song Jianhua1,2,3, Li Zhikai1?, Zhang Baichen1
(1.School of Computer Science amp; Information Engineering, Hubei University, Wuhan 430062, China; 2.Engineering amp; Technical Research Center of Hubei Province in Educational Informatization, Wuhan 430062, China; 3.Hubei Province Project of Key Research Institute of Humanities amp; Social Sciences at Universities (Research Center of Information Management for Performance Evaluation), Wuhan 430062, China)
Abstract:Coin mixing mechanism is one of the privacy protection technologies of the blockchain, which faces some issues such as low efficiency, insufficient security and DoS attacks. Therefore, this paper proposed a blockchain coin mixing mechanism based on intermediator, called IMShuffle. Firstly, it divided the participants in the coin mixing transaction into different groups at random. Each group member took the initiative to broadcast and sent its own output address to its intermediator, these intermediators sent the received output address to the last node of the group. Then it used the idea of multi-layer encryption to complete the transfer of the output address of the last node between the groups. The last node of the last group received the output addresses of all participants to complete the coin mixing transaction. Experimental analysis shows that the IMShuffle has a mixing time of only 11 s when the participants reach 70. Compared with the running time of the CoinShuffle and TTShuffle mixing mechanism, it greatly improves the efficiency of the mixing transaction and shortens the time of mixing transaction. It protects the privacy of participants in the transaction process and reduces the risk of DoS attacks.
Key words:blockchain; privacy protection; mixing mechanism; intermediator; multi-layer encryption
0 引言
2008年以來,中本聰[1]提出的比特幣快速進(jìn)入人們的視野,其底層技術(shù)區(qū)塊鏈也越來越受到關(guān)注。區(qū)塊鏈作為一種分布式賬本,因其具有去中心化、不可竄改、可溯源以及公開性等特點(diǎn)而受到了研究人員的重點(diǎn)關(guān)注,并在金融、數(shù)字貨幣、醫(yī)療、保險(xiǎn)等多個(gè)領(lǐng)域廣泛應(yīng)用[2]。隨著區(qū)塊鏈技術(shù)的快速發(fā)展,其隱私保護(hù)問題也逐漸暴露出來,在比特幣、以太坊等虛擬貨幣的應(yīng)用中,用戶在區(qū)塊鏈網(wǎng)絡(luò)上的交易記錄、賬戶地址、交易金額等敏感信息都是公開透明的,攻擊者可以利用這些公開的賬本分析出用戶的個(gè)人信息,達(dá)到竊取個(gè)人隱私的目的,因此區(qū)塊鏈技術(shù)存在隱私泄露的問題[3]。
混幣機(jī)制是解決區(qū)塊鏈隱私保護(hù)問題的重要手段之一[4~6],其主要思想是通過不同用戶相互交換資產(chǎn)的方式將交易者之間的關(guān)系分散在不相關(guān)的地址中,隱藏區(qū)塊鏈的交易過程以增加攻擊者的分析難度,達(dá)到隱私保護(hù)的目的[7]。現(xiàn)有的混幣機(jī)制主要分為兩類[8]:a)以Mixcoin[9]、Blindcoin[10]等為代表的中心化的混幣機(jī)制,用戶需要通過提供混幣服務(wù)的提供商來實(shí)現(xiàn)混幣交易,雖然在一定程度上能夠?qū)崿F(xiàn)地址混淆的目的,但是無(wú)法保證第三方混幣服務(wù)提供商的可信度[11];b)以CoinJoin[12]、CoinShuffle[13]等為代表的去中心化的混幣機(jī)制,用戶無(wú)須第三方服務(wù)商的參與就能夠完成地址混淆,從根本上解決了中心化混幣機(jī)制存在的可信度問題,但是也存在惡意節(jié)點(diǎn)監(jiān)聽混幣關(guān)系、容易遭受拒絕服務(wù)攻擊等不足之處[14]。
基于現(xiàn)有混幣機(jī)制存在的問題,本文提出了一種基于中間人的混幣機(jī)制(IMShuffle),采用隨機(jī)分組和選取中間人的方式降低了混幣交易的運(yùn)行時(shí)間,提升了混幣機(jī)制的效率,同時(shí)保證了參與者輸出地址的隱秘性,減少了遭受拒絕服務(wù)攻擊的風(fēng)險(xiǎn)。
1 相關(guān)研究
CoinSwap[15]是一種基于區(qū)塊鏈系統(tǒng)中哈希時(shí)間鎖定合約的中心化混幣機(jī)制,通過引入第三方用戶作為交易雙方的媒介,同時(shí)借助哈希時(shí)間鎖定合約來限制第三方用戶竊取參與者的資產(chǎn),交易雙方可以在無(wú)信任環(huán)境下實(shí)現(xiàn)輸入輸出地址的混淆,但是該方案需要發(fā)起多次交易完成混幣過程,帶來了額外的gas費(fèi)用,并且交易雙方的資產(chǎn)需要更長(zhǎng)的時(shí)間解鎖,導(dǎo)致混幣交易的效率較低。Mixcoin是由Bonneau等人[9]在2014年提出中心化混幣機(jī)制,該混幣機(jī)制通過引進(jìn)第三方混幣服務(wù)提供商實(shí)現(xiàn)隱藏交易雙方的關(guān)聯(lián)關(guān)系?;鞄沤灰椎膮⑴c者將交易資產(chǎn)、輸入輸出地址等交給中心化的提供商,由提供商來完成輸出地址的混淆操作。該方案一定程度上保護(hù)了用戶的隱私,但是無(wú)法保證提供商的可信度,可能導(dǎo)致用戶資產(chǎn)損失和隱私泄露。Valenta等人[10]提出了基于盲簽名技術(shù)的Blindcoin混幣機(jī)制。該機(jī)制采用盲簽名技術(shù)保障了交易過程中的匿名性,隱藏輸入輸出地址的關(guān)聯(lián)關(guān)系,解決了Mixcoin混幣機(jī)制中參與者的輸入輸出地址對(duì)第三方混幣服務(wù)提供商可見的問題。但是該混幣機(jī)制仍無(wú)法杜絕中心化提供商放棄聲譽(yù)進(jìn)行違規(guī)行為的情況。Heilman等人[16]提出了TumbleBit混幣機(jī)制,利用Tumbler節(jié)點(diǎn)建立混幣交易的支付渠道,Tumbler節(jié)點(diǎn)無(wú)法獲取匿名用戶的身份和交易信息,保障了混幣交易參與者的隱私,解決了中心化混幣交易無(wú)法保證內(nèi)部隱私的缺陷,但是參與者需要支付高昂的費(fèi)用,同時(shí)也存在用戶資產(chǎn)被侵吞的風(fēng)險(xiǎn)。
針對(duì)中心化混幣機(jī)制存在的缺陷,Maxwell[12]提出了CoinJoin去中心化混幣機(jī)制,主要思想是將區(qū)塊鏈中傳統(tǒng)的多筆一對(duì)一的交易封裝為一筆多對(duì)多的交易,從而隱藏交易雙方輸入輸出地址的關(guān)聯(lián)關(guān)系,從根本上杜絕了中心化混幣機(jī)制存在的第三方提供商作弊的問題,但是存在容易遭遇拒絕服務(wù)攻擊或者其他節(jié)點(diǎn)的隱私被泄露的問題。為了解決CoinJoin方案無(wú)法保障內(nèi)部隱私的問題,Ruffing等人[13]提出了去中心化的混幣機(jī)制CoinShuffle,針對(duì)混幣交易中輸入輸出地址傳遞過程進(jìn)行改進(jìn),通過多層加密的方式隱藏輸入輸出地址的關(guān)聯(lián)關(guān)系以保障交易過程中的內(nèi)部隱私性。該方案提供了內(nèi)部隱私性,也繼承了CoinJoin機(jī)制的外部隱私性,但是也導(dǎo)致消耗的算力較大,效率低下。Ziegeldorf等人[17]在2015年提出了CoinParty混幣機(jī)制,采取安全多方計(jì)算技術(shù)對(duì)混幣交易參與者的輸入輸出地址進(jìn)行保護(hù),并通過模擬可信第三方的方式實(shí)現(xiàn)了參與者之間安全、匿名的地址混淆。該混淆機(jī)制不需要支付混淆費(fèi)用,因此容易遭受拒絕服務(wù)攻擊,同時(shí)計(jì)算量的增加也導(dǎo)致了更多的混幣交易時(shí)長(zhǎng)。TTShuffle[18]在CoinShuffle混幣機(jī)制的基礎(chǔ)上對(duì)混幣交易的參與者進(jìn)行分組,改進(jìn)了CoinShuffle混幣機(jī)制面臨的單點(diǎn)故障問題,但是當(dāng)參與者增加時(shí)運(yùn)行效率存在明顯下降的問題。
IMShuffle采用隨機(jī)分組和選取中間人的方式實(shí)現(xiàn)輸出地址安全、高效的傳遞。在該方案中混淆階段被分為三步。首先每個(gè)小組成員在小組中選取一位參與者作為中間人,并向其發(fā)送自己的輸出地址,這些中間人將接收到的輸出地址發(fā)送給本小組的最后節(jié)點(diǎn);然后利用多層加密的思想完成小組間最后節(jié)點(diǎn)輸出地址的傳遞;最后一組的最后節(jié)點(diǎn)接收到所有參與者的輸出地址完成混幣交易。該方案與其他去中心化的混幣機(jī)制相比,不僅提升了混幣機(jī)制的效率性,也降低了混幣交易遭受拒絕服務(wù)攻擊的風(fēng)險(xiǎn),減少了算力資源的浪費(fèi)。
2 IMShuffle
IMShuffle機(jī)制主要分為協(xié)商階段、混淆階段、確認(rèn)階段以及責(zé)備階段四個(gè)階段,其中混淆階段的機(jī)制架構(gòu)如圖1所示。
2.1 概述
在協(xié)商階段,參與者需要協(xié)商統(tǒng)一的輸出金額以及分組組數(shù),公布自己的輸入地址、密鑰對(duì)中的公鑰;接著進(jìn)入混淆階段,所在小組中選取各自的中間人,分別使用除中間人以外其他小組成員的公鑰對(duì)自己的輸出地址加密,并將它們廣播給中間人,中間人可以被多個(gè)參與者同時(shí)選擇;接收到最少輸出地址的中間人將作為該小組的最后節(jié)點(diǎn),每個(gè)中間人需要將接收到的加密信息廣播給該小組的最后節(jié)點(diǎn);小組最后節(jié)點(diǎn)接收到匯總之后的加密消息后使用自己的私鑰對(duì)其進(jìn)行解密,剔除掉發(fā)送給自己的參與者的輸出地址,得到小組成員的輸出地址;在每個(gè)小組的最后節(jié)點(diǎn)確定完畢并接收到小組成員的輸出地址之后,各小組最后節(jié)點(diǎn)采用多層加密廣播傳遞接收到的輸出地址,直至最后一個(gè)小組的最后節(jié)點(diǎn)接收到前一小組廣播的加密信息,使用自己的私鑰進(jìn)行解密得到輸出地址列表;因選取的中間人成為了小組最后節(jié)點(diǎn)而被剔除掉的參與者同樣利用多層加密思想傳遞輸出地址,直到最后一個(gè)參與者接收到所有被剔除掉參與者的輸出地址列表,然后將這些輸出列表發(fā)送給最后一個(gè)小組的最后節(jié)點(diǎn);最后節(jié)點(diǎn)獲取到了所有的參與者輸出地址后開始輸出地址的混淆,完成混幣交易;在驗(yàn)證階段,每個(gè)參與者需要驗(yàn)證自己的輸出地址是否在列表中并進(jìn)行簽名,如果出現(xiàn)異常導(dǎo)致混幣交易失敗則進(jìn)入責(zé)備階段找出違規(guī)參與者。
2.2 協(xié)商階段
首先,混幣交易的參與者ni(i∈{1,2,3,…})要在區(qū)塊鏈上廣播自己的輸出地址di(i∈{1,2,3,…}),同時(shí)每個(gè)參與者生成一個(gè)公鑰私鑰密鑰對(duì)(ki,pi)(i∈{1,2,3,…}),以用于混淆階段對(duì)輸出地址di等信息進(jìn)行加密解密;參與者還需要協(xié)商此次混幣交易涉及到的交易金額,避免因?yàn)榛鞄沤灰讌⑴c者的交易金額差異導(dǎo)致被攻擊者獲取用戶輸入輸出地址之間的關(guān)聯(lián)。
2.3 混淆階段
步驟Ⅰ 如圖2所示,小組參與者選取中間人并向其廣播加密后的輸出地址,中間人再將接收到的數(shù)據(jù)發(fā)送給小組的最后節(jié)點(diǎn)。
首先每個(gè)小組中的參與者ni從所在小組選擇一位成員up作為中間人,并使用除up以外的其他小組成員公鑰分別對(duì)自己的輸出地址di進(jìn)行加密,并使用自己的私鑰對(duì)其簽名,得到加密之后的輸出地址信息k(ali),表達(dá)式如式(1)所示。小組中的所有參與者在完成了對(duì)輸出信息的加密操作之后,將k(ali)廣播給各自選取的中間人up。
其中:di是參與者ni的輸出地址;kj是除up以外該小組參與者的公鑰,kj∈Sk∩Skp , Sk是小組中所有參與者的公鑰的集合,Skp是小組參與者ni在小組中選取的中間人up的公鑰kp的集合(集合Skp只有kp一個(gè)元素)。
小組中的所有中間人共同組成集合Sup,集合Sup中接收到最少輸出地址的參與者被稱為最后節(jié)點(diǎn)ldm;集合Sup中其余中間人把接收到的輸出地址打包成k(alm′)一起發(fā)送給最后節(jié)點(diǎn)ldm,k(alm′)表達(dá)式如式(2)所示;最后節(jié)點(diǎn)ldm接收到k(al′m)之后,解密得到其他所有小組參與者的輸出地址列表alm′。
選取的中間人被確定為最后節(jié)點(diǎn)ldm的小組參與者nldl共同組成集合Snld,地址列表alm′中不包含參與者nldl的輸出地址。
混淆階段步驟Ⅰ算法流程。
輸入:m,di //m表示分組數(shù),di表示每組參與者的輸出地址
輸出:alm′ //alm′表示小組參與者傳遞的輸出地址
k(ali)=(k1(di),k2(di),…,kj(di)) //對(duì)輸出地址加密
for up in Sup // up表示中間人,Sup表示中間人集合
up←k(ali) //小組參與者選取中間人并廣播加密信息
ldm←up(k(ali)) //中間人將加密信息傳遞給小組最后節(jié)點(diǎn)
alm′=alm′.append(decrypt(k(ali))) //解密得到輸出地址
步驟Ⅱ 如圖3所示每個(gè)小組的最后節(jié)點(diǎn)對(duì)輸出地址進(jìn)行多層加密并按照順序逐級(jí)傳遞。
第一個(gè)小組的最后節(jié)點(diǎn)ld1使用其他小組最后節(jié)點(diǎn)的公鑰對(duì)輸出地址列表al′1進(jìn)行多層加密得到k(lda1),用私鑰簽名后將k(lda1)發(fā)送給第二個(gè)小組的最后節(jié)點(diǎn)ld2。k(lda1)表達(dá)式如式(3)所示。
第二個(gè)小組最后節(jié)點(diǎn)ld2首先使用自己的密鑰對(duì)k(lda1)進(jìn)行解密得到de(k(lda1)),然后進(jìn)行相同的操作,對(duì)輸出地址列表al′2進(jìn)行多層加密插入到解密信息中得到k(lda2)并使用私鑰簽名,發(fā)送給下一個(gè)小組的最后節(jié)點(diǎn)。de(k(lda1))和k(lda2)的表達(dá)式如下:
依此類推,直到第m個(gè)小組的最后節(jié)點(diǎn)ldm接收到加密的輸出地址信息k(ldam-1),最后節(jié)點(diǎn)ldm使用自己的私鑰對(duì)k(ldam-1)進(jìn)行解密得到前m-1個(gè)小組的輸出地址列表,此時(shí)最后節(jié)點(diǎn)ldm接收到了除集合Snld中參與者以外的參與者輸出地址列表address1。k(ldam-1)和address1如式(6)(7)所示。
混淆階段步驟Ⅱ算法流程:
輸入:ldai //第i組最后節(jié)點(diǎn)接收到的輸出地址信息,m為分組數(shù)
輸出:address1 //最后一組最后節(jié)點(diǎn)接收到的輸出地址
k(ldai)=kldi+1(…(kldm-1(kldm(al′1)))) //多層加密
for i in (2,m) // m為分組數(shù)
ldm←decrypt(k(ldai-1)) //解密得到上一組參與者輸出地址
k(ldai)=kldi+1(…(kldm-1(kldm(al′1)))) //對(duì)輸出地址多層加密
ldi+1←k(ldai) //將加密信息傳遞給下一組的最后節(jié)點(diǎn)
address1=address1.append(decrypt(kldm-1)) //多層解密
ldm←address1//將解密后的輸出地址發(fā)送給最后一組的最后節(jié)點(diǎn)
步驟Ⅲ 如圖4所示,每個(gè)小組中選取的中間人被確定為小組最后節(jié)點(diǎn)的參與者對(duì)各自的輸出地址進(jìn)行多層加密,并按照順序逐個(gè)傳遞。
集合Snld中的參與者在第m小組的最后節(jié)點(diǎn)接收到輸出地址address1后,按照上述操作進(jìn)行相同的操作,第一個(gè)參與者將自己的輸出地址使用集合Snld中其他參與者的公鑰進(jìn)行多層加密,使用私鑰簽名后發(fā)送給第二個(gè)參與者,第二個(gè)參與者使用自己的私鑰解密,并插入自己的輸出地址,再使用其余參與者的公鑰進(jìn)行加密得到加密信息,使用私鑰簽名后發(fā)送給集合Snld的第三個(gè)參與者,依此類推直到最后一個(gè)參與者接收到前一個(gè)參與者發(fā)送的加密信息,解密后得到集合Snld中所有參與者的輸出地址address2,使用私鑰簽名后將輸出地址address2發(fā)送給最后節(jié)點(diǎn)ldm。最后節(jié)點(diǎn)ldm將接收到的輸出地址插入到address1中,得到所有參與者的輸出地址列表address,表達(dá)式為
2.4 確認(rèn)階段
最后節(jié)點(diǎn)ldm將輸出地址列表address向所有參與者廣播;參與者接收到輸出地址列表address之后,驗(yàn)證自己的輸出地址是否在列表中,如果存在,則使用自己的私鑰對(duì)address進(jìn)行簽名并廣播,直到每個(gè)參與者接收到由所有參與者簽名的輸出地址列表address,確認(rèn)無(wú)誤后生成混幣交易,提交給區(qū)塊鏈網(wǎng)絡(luò)完成混幣交易;如果參與者發(fā)現(xiàn)自己的輸出地址不在列表中,則拒絕簽名,混幣交易則無(wú)法生成,從而進(jìn)入責(zé)備階段找出違規(guī)者。
2.5 責(zé)備階段
責(zé)備階段主要的任務(wù)是判斷導(dǎo)致混幣交易失敗的環(huán)節(jié)和違規(guī)參與者?;鞄艆⑴c者在混淆階段和確認(rèn)階段都需要對(duì)自己的操作進(jìn)行簽名,以確保每個(gè)階段的操作都有據(jù)可查,保證混幣機(jī)制能夠在最快的時(shí)間內(nèi)定位到錯(cuò)誤階段和違規(guī)參與者。責(zé)備階段通過分析以下幾種情況來判斷錯(cuò)誤階段和違規(guī)參與者:
a)協(xié)商階段出現(xiàn)違規(guī)現(xiàn)象。該階段的主要任務(wù)是參與者之間相互廣播各自的輸出地址和公鑰,以確保每一個(gè)參與者都能夠完成混幣交易。當(dāng)違規(guī)節(jié)點(diǎn)拒絕廣播輸出地址和公鑰時(shí),合法的參與者可以通過驗(yàn)證其他參與者的簽名來找出并剔除未廣播相關(guān)信息的違規(guī)參與者。
b)混淆階段發(fā)現(xiàn)錯(cuò)誤輸出地址。若節(jié)點(diǎn)發(fā)現(xiàn)輸出地址列表address中存在錯(cuò)誤的輸出地址,則通過查找該錯(cuò)誤輸出地址的簽名來追溯到具體的小組最后節(jié)點(diǎn),該小組最后節(jié)點(diǎn)再查找接收到的輸出地址列表addrlistm,找到發(fā)送包含該錯(cuò)誤輸出地址的小組成員um,p;小組成員um,p驗(yàn)證簽名找到廣播錯(cuò)誤輸出地址的參與者,最后剔除掉該輸出地址。
c)中間人為惡意節(jié)點(diǎn)或者中途退出協(xié)議流程。在混淆階段各小組參與者會(huì)選定某個(gè)節(jié)點(diǎn)作為中間人來接收自己的輸出地址,當(dāng)選定的中間人為惡意節(jié)點(diǎn)并且拒絕發(fā)送、漏報(bào)、竄改參與者輸出地址甚至中途退出流程時(shí),會(huì)導(dǎo)致部分參與者無(wú)法完成混幣交易;當(dāng)中間人拒絕發(fā)送、漏報(bào)輸出地址或者中途退出流程時(shí),可以通過查找缺失的參與者簽名來回溯到該參與者選定的中間人,從而將該惡意中間人剔除混幣流程;當(dāng)中間人竄改某個(gè)參與者輸出地址時(shí),其無(wú)法偽造該參與者的簽名,因此也會(huì)被發(fā)現(xiàn)并剔除出流程。
d)確認(rèn)階段出現(xiàn)未確認(rèn)的現(xiàn)象。確認(rèn)階段所有的參與者都需要確認(rèn)輸出地址列表有自己的輸出地址并對(duì)其進(jìn)行簽名,若有違規(guī)參與者始終不確認(rèn)簽名,參與者可以通過檢查輸出地址列表中缺失的參與者簽名來定位違規(guī)的參與者,并將其輸出地址剔除。
3 實(shí)驗(yàn)與分析
為了驗(yàn)證IMShuffle機(jī)制的性能是否較其他混幣方案有優(yōu)勢(shì),本文從影響IMShuffle機(jī)制性能的因素以及IMShuffle與CoinShuffle、TTShuffle機(jī)制的效率差異兩個(gè)方面進(jìn)行實(shí)驗(yàn)與分析。本章設(shè)置了四個(gè)仿真實(shí)驗(yàn)和多個(gè)對(duì)照組,對(duì)分組數(shù)、每組參與者數(shù)等可能會(huì)影響IMShuffle性能因素進(jìn)行分析,并對(duì)比IMShuffle與CoinShuffle、TTShuffle機(jī)制的性能差異。
3.1 實(shí)驗(yàn)環(huán)境
本文采用AMD Ryzen7-4800H@2.9 GHz處理器、6 GB內(nèi)存、操作系統(tǒng)為64位Windows 10的環(huán)境展開實(shí)驗(yàn),通過搭建P2P網(wǎng)絡(luò)生成多個(gè)參與者節(jié)點(diǎn)加入混幣交易,使用RSA加密算法保證參與者輸出地址的安全,同時(shí)利用橢圓曲線數(shù)字簽名算法確?;鞄沤灰醉樌瓿?。
3.2 性能分析
IMShuffle的性能分析主要分為三個(gè)部分:a)設(shè)計(jì)了兩個(gè)實(shí)驗(yàn)來分析能夠影響IMShuffle機(jī)制運(yùn)行性能的因素(包括分組數(shù)、小組成員數(shù));b)在第一個(gè)實(shí)驗(yàn)的基礎(chǔ)上設(shè)計(jì)實(shí)驗(yàn)與其他混幣機(jī)制進(jìn)行對(duì)比,進(jìn)一步評(píng)估該方案的效率;c)針對(duì)該方案在混幣交易過程中消耗的通信代價(jià)以及各節(jié)點(diǎn)之間進(jìn)行的交互輪次進(jìn)行了統(tǒng)計(jì)和分析。
實(shí)驗(yàn)1 固定每組參與者數(shù)為3,設(shè)置分組數(shù)分別為8、9、10、…、19、20(參與者總數(shù)為24、27、30、…、57、60)。如圖5所示,通過不斷增加分組數(shù)來完成不同分組數(shù)與混淆階段中Ⅰ、Ⅱ、Ⅲ三個(gè)步驟的運(yùn)行時(shí)間對(duì)比,分析分組數(shù)對(duì)IMShuffle機(jī)制運(yùn)行性能的影響。
在圖5中可以看出,隨著組數(shù)的增加,步驟Ⅰ的運(yùn)行時(shí)間一直保持在大約2 s以內(nèi);步驟Ⅱ和步驟Ⅲ運(yùn)行時(shí)間隨著組數(shù)的增加有著明顯的上升趨勢(shì),組數(shù)由2增加到20,步驟Ⅱ的運(yùn)行時(shí)間從0 s增長(zhǎng)到25 s,步驟Ⅲ的運(yùn)行時(shí)間從0 s增長(zhǎng)到9 s。出現(xiàn)上述現(xiàn)象的原因在于IMShuffle機(jī)制混淆階段的步驟Ⅰ中,組數(shù)對(duì)每個(gè)小組輸出地址廣播的次數(shù)并無(wú)影響,每一個(gè)小組的普通參與者只需要在區(qū)塊鏈網(wǎng)絡(luò)中廣播1次,該小組被普通參與者選定為中間人的參與者接收到信息后,也僅需要進(jìn)行1次廣播發(fā)送給該小組的最后節(jié)點(diǎn),并且伴隨著廣播而產(chǎn)生的加密解密時(shí)間也隨著廣播次數(shù)的減少而降低,因此步驟Ⅰ的運(yùn)行時(shí)間遞增的幅度并不明顯;混淆階段的步驟Ⅱ、Ⅲ中,最后節(jié)點(diǎn)的數(shù)量與組數(shù)呈正相關(guān),而小組的最后節(jié)點(diǎn)之間需要進(jìn)行多層加密逐個(gè)傳遞的形式對(duì)輸出地址進(jìn)行廣播,這就導(dǎo)致了廣播的次數(shù)、加密解密的次數(shù)會(huì)隨著組數(shù)的增加而增長(zhǎng),因此這兩個(gè)步驟的運(yùn)行時(shí)間隨著組數(shù)的增加有著明顯上升的趨勢(shì)。
通過對(duì)實(shí)驗(yàn)1數(shù)據(jù)的分析可得:在固定每組參與者數(shù)量的情況下,組數(shù)的增加會(huì)對(duì)混淆階段的步驟Ⅱ、Ⅲ運(yùn)行時(shí)間產(chǎn)生明顯影響,從而導(dǎo)致方案整體的性能下降。
實(shí)驗(yàn)1僅得出了組數(shù)對(duì)混淆階段的步驟Ⅱ、Ⅲ存在影響而對(duì)步驟Ⅰ影響不明顯的結(jié)論,無(wú)法全面分析影響步驟Ⅰ運(yùn)行時(shí)間的因素,因此在實(shí)驗(yàn)1的基礎(chǔ)上,增加實(shí)驗(yàn)2來輔助分析小組參與者數(shù)量對(duì)步驟Ⅰ運(yùn)行時(shí)間的影響。
實(shí)驗(yàn)2 設(shè)置三個(gè)對(duì)照組,分別為小組參與者數(shù)為3、5和7。通過增加組數(shù)使得參與者總數(shù)不斷增加,并記錄三個(gè)對(duì)照組的運(yùn)行時(shí)間,得到如圖6所示的小組參與者數(shù)量與運(yùn)行時(shí)間關(guān)系圖。
通過分析圖6中三個(gè)對(duì)照組的曲線可知,在參與者總數(shù)相同的情況下,小組參與者數(shù)為3的對(duì)照組運(yùn)行時(shí)間大于小組參與者數(shù)為5、7的對(duì)照組,因此小組參與者的數(shù)量越多,混幣機(jī)制的運(yùn)行時(shí)間就越短。在實(shí)驗(yàn)2中,參與者總數(shù)相同,小組參與者的數(shù)量越多,組數(shù)就越少,根據(jù)實(shí)驗(yàn)1的結(jié)論,混淆階段步驟Ⅰ運(yùn)行時(shí)間與組數(shù)無(wú)明顯相關(guān)性,而步驟Ⅱ、Ⅲ的運(yùn)行時(shí)間會(huì)隨著組數(shù)的增加而增長(zhǎng),因此,當(dāng)參與者總數(shù)不變、每個(gè)小組參與者的數(shù)量增加時(shí),組數(shù)會(huì)隨之減少,從而導(dǎo)致步驟Ⅱ、Ⅲ的運(yùn)行時(shí)間減少;圖6中的對(duì)照組清晰地表明了總的運(yùn)行時(shí)間隨著小組參與者數(shù)量的增加而增加,而步驟Ⅱ、Ⅲ的運(yùn)行時(shí)間減少,故可以得出結(jié)論:步驟Ⅰ的運(yùn)行時(shí)間是隨著小組參與者數(shù)的增加而增長(zhǎng)。
實(shí)驗(yàn)1與2通過設(shè)置不同的參數(shù)來驗(yàn)證組數(shù)、每組參與者數(shù)對(duì)IMShuffle機(jī)制混淆階段的三個(gè)小階段的運(yùn)行時(shí)間存在影響,并將實(shí)驗(yàn)數(shù)據(jù)與方案實(shí)際情況相結(jié)合進(jìn)行了分析,得出了組數(shù)和每組參與者數(shù)與IMShuffle機(jī)制性能的關(guān)系。
實(shí)驗(yàn)3 每組10個(gè)參與者,通過統(tǒng)計(jì)組數(shù)為2、3、4、5、6、7(即參與者總數(shù)分別為20、30、40、50、60、70)時(shí)IMShuffle機(jī)制、CoinShuffle機(jī)制、TTShuffle機(jī)制完成混幣交易所需時(shí)間,通過重復(fù)100次實(shí)驗(yàn)并對(duì)各混幣機(jī)制的運(yùn)行時(shí)間取平均值得到IMShuffle、CoinShuffle、TTShuffle機(jī)制的運(yùn)行時(shí)間,實(shí)驗(yàn)數(shù)據(jù)如圖7所示。
由圖7可知,在參與者總數(shù)相同的情況下,IMShuffle機(jī)制的運(yùn)行時(shí)間整體少于CoinShuffle機(jī)制。CoinShuffle機(jī)制在參與者總數(shù)為70時(shí)整體的運(yùn)行時(shí)間達(dá)到了約107 s,而IMShuffle機(jī)制在總參與者數(shù)為70、組數(shù)為7、每組參與者為10的情況下,運(yùn)行時(shí)間僅11 s,遠(yuǎn)低于CoinShuffle機(jī)制的107 s。在CoinShuffle機(jī)制中輸出地址采用多層加密的方式進(jìn)行傳遞,每一個(gè)參與者都需要等待前一個(gè)參與者向自己傳遞加密數(shù)據(jù),才能完成對(duì)自己輸出地址的多層加密并傳遞給下一個(gè)參與者,直至最后一個(gè)參與者即最后節(jié)點(diǎn)接收到前一個(gè)參與者發(fā)送的加密數(shù)據(jù)后,整個(gè)混幣交易的混淆階段才結(jié)束,因此在參與者不斷增加,導(dǎo)致加密數(shù)據(jù)傳遞鏈增長(zhǎng)時(shí),混幣機(jī)制的運(yùn)行時(shí)間會(huì)隨之大幅增長(zhǎng)。在IMShuffle機(jī)制中,混淆階段步驟Ⅰ小組參與者傳遞加密數(shù)據(jù)給小組中間人的過程是并發(fā)進(jìn)行,不需要考慮其他參與者是否完成了數(shù)據(jù)傳遞,節(jié)省了CoinShuffle機(jī)制中參與者需要等待的時(shí)間;步驟Ⅱ、Ⅲ進(jìn)行多層加密的參與者數(shù)量與分組數(shù)有關(guān),數(shù)據(jù)傳遞鏈較短,混淆階段步驟Ⅱ、Ⅲ運(yùn)行時(shí)間相較于CoinShuffle機(jī)制而言大幅減少。TTshuffle機(jī)制通過分組的方法對(duì)CoinShuffle機(jī)制進(jìn)行改進(jìn),在運(yùn)行效率等方面較CoinShuffle機(jī)制有了很大程度的提升,但是IMShuffle機(jī)制與其相比在計(jì)算開銷上仍有優(yōu)勢(shì)。
實(shí)驗(yàn)4 假設(shè)每個(gè)參與者節(jié)點(diǎn)之間傳遞一個(gè)輸出地址的通信代價(jià)為1,現(xiàn)設(shè)計(jì)每組10個(gè)參與者,組數(shù)為2、3、4、5、6、7、8、9(即參與者總數(shù)分別為20、30、40、50、60、70、80、90)的實(shí)驗(yàn)來統(tǒng)計(jì)IMShuffle機(jī)制以及CoinShuffle機(jī)制在交易過程中所需的通信代價(jià)和交互輪次。
參與者節(jié)點(diǎn)之間相互通信和交互主要集中在混幣機(jī)制的混淆階段。CoinShuffle機(jī)制的混淆階段中,層層加密傳遞鏈中的每個(gè)節(jié)點(diǎn)都需要向后一個(gè)節(jié)點(diǎn)發(fā)送加密數(shù)據(jù),這些加密數(shù)據(jù)包括了自己的輸出地址以及前面所有節(jié)點(diǎn)的輸出地址,因此次序越靠后的節(jié)點(diǎn)需要消耗的通信代價(jià)就越大;而在IMShuffle機(jī)制中,混淆階段步驟Ⅰ、Ⅱ是主要的通信代價(jià)消耗時(shí)期,步驟Ⅰ中每個(gè)節(jié)點(diǎn)傳遞的輸出地址都只有該節(jié)點(diǎn)的輸出地址,步驟Ⅱ中各個(gè)中間人傳遞的輸出地址數(shù)量總和也只是該小組成員的數(shù)量,步驟Ⅲ中最后節(jié)點(diǎn)的數(shù)量?jī)H僅為分組數(shù),層層加密傳遞輸出地址消耗的通信代價(jià)遠(yuǎn)低于CoinShuffle機(jī)制。綜合上述分析,如圖8所示,IMShuffle與CoinShuffle機(jī)制相比大大降低了混幣交易消耗的通信代價(jià)。
如圖9所示,在CoinShuffle機(jī)制中,參與層層加密的節(jié)點(diǎn)會(huì)按照既定的順序依次進(jìn)行交互,每個(gè)節(jié)點(diǎn)之間的交互輪次會(huì)隨著總參與者節(jié)點(diǎn)的增加而增加;IMShuffle機(jī)制引入了中間人的角色,每個(gè)小組成員都需要與中間人進(jìn)行交互,而每個(gè)中間人又會(huì)與小組的最后節(jié)點(diǎn)進(jìn)行交互,因此交互的輪次與小組成員的數(shù)量以及中間人數(shù)量有關(guān),分組的數(shù)量和總參與者的增加導(dǎo)致IMShuffle機(jī)制的交互輪次與CoinShuffle機(jī)制相比有所增加。
綜合上述的分析以及實(shí)驗(yàn)數(shù)據(jù)可以得出以下結(jié)論:IMShuffle機(jī)制與CoinShuffle、TTshuffle機(jī)制相比,整體運(yùn)行時(shí)間隨著參與者的增加而增加,但遞增的幅度遠(yuǎn)小于CoinShuffle和TTShuffle,運(yùn)行時(shí)間保持在0~15 s,較其他幾種混幣機(jī)制在運(yùn)行效率方面有著明顯的優(yōu)勢(shì);雖然在交互輪次方面與CoinShuffle機(jī)制相比有一定的差距,但是從計(jì)算開銷的角度來看,IMShuffle機(jī)制在通信代價(jià)以及運(yùn)行時(shí)間兩方面的改進(jìn)能夠彌補(bǔ)在交互輪次上的不足。
3.3 安全性分析
首先保證了參與者與輸出地址對(duì)應(yīng)關(guān)系以及參與者的個(gè)人信息不被泄露。IMShuffle機(jī)制采用RSA算法對(duì)參與者的輸出地址加密,每個(gè)參與者使用除了自己選取的中間人以外的參與者公鑰對(duì)自己的輸出地址加密,避免了除輸出地址以外的個(gè)人信息泄露,且輸出地址無(wú)法被自己選取的中間人獲?。恍〗M中所有中間人將接收到的加密信息發(fā)送給最后節(jié)點(diǎn)后,最后節(jié)點(diǎn)雖然能夠使用自己的私鑰解密參與者的輸出地址,但是無(wú)法分辨輸出地址對(duì)應(yīng)的參與者身份。因此,IMShuffle機(jī)制采用的加密算法和中間人機(jī)制很好地保證了參與者的隱私以及輸出地址與參與者之間的對(duì)應(yīng)關(guān)系。
其次降低了最后節(jié)點(diǎn)為惡意參與者的概率。CoinShuffle機(jī)制在輸出地址傳遞地過程中,會(huì)將所有參與者的輸出地址發(fā)送給最后節(jié)點(diǎn),這種做法無(wú)法保證最后節(jié)點(diǎn)的身份是誠(chéng)實(shí)的混幣參與者。IMShuffle機(jī)制在協(xié)商階段會(huì)隨機(jī)地對(duì)參與者進(jìn)行分組,最后一組的參與者是被隨機(jī)選擇出來的;在混淆階段的步驟Ⅰ中每個(gè)小組的參與者會(huì)隨機(jī)地選取自己的中間人,步驟Ⅱ會(huì)根據(jù)每個(gè)中間人接收到的輸出地址多少來確定小組的最后節(jié)點(diǎn),而最后一組的最后節(jié)點(diǎn)也是經(jīng)過協(xié)商階段隨機(jī)而來的。因此,IMShuffle機(jī)制的最后節(jié)點(diǎn)經(jīng)過了三輪隨機(jī)選擇,其為惡意節(jié)點(diǎn)的概率較CoinShuffle機(jī)制而言大大降低,保證了混幣機(jī)制的安全性。
最后降低了遭受拒絕服務(wù)攻擊的風(fēng)險(xiǎn)。在混幣交易過程中,當(dāng)交易進(jìn)行到某種程度時(shí),惡意參與者通過拒絕進(jìn)行相關(guān)操作來破壞交易,達(dá)到拒絕服務(wù)攻擊的目的。
如圖10所示,隨機(jī)抽取10%、20%的參與者作為惡意的拒絕服務(wù)攻擊者,通過設(shè)計(jì)混幣交易實(shí)驗(yàn)統(tǒng)計(jì)總參與者數(shù)量為20、30、40、50、60、70、80、90時(shí)中間人為拒絕服務(wù)攻擊者的概率。實(shí)驗(yàn)數(shù)據(jù)表明中間人為拒絕服務(wù)攻擊者的概率在兩種情況下均低于20%,IMShuffle機(jī)制通過分組的做法降低了交易過程中遭遇拒絕服務(wù)攻擊的風(fēng)險(xiǎn),且每個(gè)中間人之間的輸出地址解密互不關(guān)聯(lián),即使某個(gè)中間人是拒絕服務(wù)攻擊者也不會(huì)影響其他中間人的混幣交易流程。在混淆階段的步驟Ⅰ,若某個(gè)小組的參與者作為惡意節(jié)點(diǎn)拒絕進(jìn)行輸出地址的廣播,該小組的最后節(jié)點(diǎn)也只會(huì)解密使用自己公鑰加密的輸出地址,其他無(wú)法解密的輸出地址將會(huì)被拋棄,也不會(huì)檢查輸出地址數(shù)量,因此該小組的惡意節(jié)點(diǎn)的拒絕服務(wù)攻擊并不會(huì)對(duì)其他參與者產(chǎn)生影響,從而降低了其他混幣交易參與者遭受拒絕服務(wù)攻擊的風(fēng)險(xiǎn)。
4 結(jié)束語(yǔ)
本文提出了一種基于中間人的混幣機(jī)制(IMShuffle)。為了完善現(xiàn)有去中心化混幣機(jī)制CoinJoin、CoinShuffle等存在的計(jì)算量大、效率低下、容易遭受拒絕服務(wù)攻擊等問題,通過采用隨機(jī)分組和選取中間人的方式實(shí)現(xiàn)輸出地址的高效傳遞,保障了混幣交易參與者的隱私,縮短了混幣交易運(yùn)行時(shí)間,提升了混幣交易的效率,同時(shí)降低了遭受拒絕服務(wù)攻擊的風(fēng)險(xiǎn)。經(jīng)過實(shí)驗(yàn)分析可知,IMShuffle機(jī)制相較于CoinShuffle機(jī)制來說在效率、安全等方面有著顯著的優(yōu)勢(shì)。雖然該方案提升了混幣交易的效率,保障了混幣交易參與者的隱私安全,但是也存在一些缺點(diǎn)。例如,在混淆階段每個(gè)小組的最后節(jié)點(diǎn)以及需要重新加密傳遞輸出地址的部分參與者承擔(dān)了比其他參與者更繁瑣的任務(wù),可能會(huì)導(dǎo)致這些參與者進(jìn)行混幣交易的積極性降低,在后續(xù)工作中將考慮引入激勵(lì)方案以提高他們的積極性。
參考文獻(xiàn):
[1]Nakamoto S. Bitcoin: a peer-to-peer electronic cash system[EB/OL].(2008-11-01)[2021-08-11].http://bitcoin.org/bitcoin.pdf.
[2]Bartoletti M, Pompianu L. An empirical analysis of smart contracts: platforms, applications, and design patterns[C]//Proc of International Conference on Financial Cryptography and Data Security.Berlin:Springer,2017:494-509.
[3]Androulaki E, Karame G O, Roeschlin M, et al. Evaluating user privacy in Bitcoin[C]//Proc of International Conference on Financial Cryptography and Data Security.Berlin:Springer,2013:34-51.
[4]Rivest R L, Shamir A, Tauman Y. How to leak a secret?[C]//Proc of the 7th International Conference on the Theory and Application of Cryptology and Information Security.Berlin:Springer,2001:552-565.
[5]Gentry C. Fully homomorphic encryption using ideal lattices[C]//Proc of the 41st Annual ACM Symposium on Theory of Computing.New York:ACM Press,2009:169-178.
[6]Khalilov M C K, Levi A. A survey on anonymity and privacy in Bit-coin-like digital cash systems[J].IEEE Communications Surveys amp; Tutorials,2018,20(4):2543-2585.
[7]Philip K, Diana K, Patrick D M. An analysis of anonymity in Bitcoin using P2P network traffic[C]//Proc of International Conference on Financial Cryptography and Data Security-18th International Confe-rence,Berlin:Springer,2014:469-485.
[8]Feng Qi, He Debiao, Zeadally S, et al. A survey on privacy protection in block chain system[J].Journal of Network and Computer Application,2019,126(1):46-58.
[9]Bonneau J, Narayanan A, Miller A, et al. Mixcoin: anonymity for Bitcoin with accountable mixes[C]//Proc of the 18th International Conference on Financial Cryptography and Data Security.Berlin:Springer,2014:486-504.
[10]Valenta L, Rowan B. Blindcoin: blinded, accountable mixes for Bit-coin[C]//Proc of International Conference on Financial Cryptography and Data Security.Berlin:Springer,2015:112-126.
[11]張奧,白曉穎.區(qū)塊鏈隱私保護(hù)研究與實(shí)踐綜述[J].軟件學(xué)報(bào),2020,31(5):1406-1434.(Zhang Ao, Bai Xiaoying. Survey of research and practices on blockchain privacy protection[J].Journal of Software,2020,31(5):1406-1434.)
[12]Maxwell G. CoinJoin: Bitcoin privacy for the real world[EB/OL].(2013)[2021-08-11].https://bitcointalk.org/index.php?topic=279249.0.
[13]Ruffing T, Moreno S P, Kate A. CoinShuffle:practical decentralized coin mixing for Bitcoin[C]//Proc of European Symposium on Research in Computer Security.Berlin:Springer,2014:345-364.
[14]李旭東,牛玉坤,魏凌波,等.比特幣隱私保護(hù)綜述[J].密碼學(xué)報(bào),2019,6(2):133-149.(Li Xudong, Niu Yukun, Wei Lingbo, et al. Overview on privacy protection in Bitcoin[J].Journal of Cryptologic Research,2019,6(2):133-149.)
[15]Maxwell G. CoinSwap: transaction graph disjoint trustless trading[EB/OL].(2013)[2021-08-11].https://bitcointalk.org/index.php?topic=321228.0.
[16]Heilman E, Alshenibr L, Baldimtsi F, et al. TumbleBit: an untrus-ted Bitcoin-compatible anonymous payment hub[C]//Proc of the 24th Annual Network and Distributed System Security Symposium.2017.
[17]Ziegeldorf J H, Grossmann F, Henze M, et al. CoinParty:secure multi-party mixing of Bitcoins[C]//Proc of the 5th ACM Conference on Data and Application Security and Privacy.New York:ACM Press,2015:75-86.
[18]程其玲,金瑜.TTShuffle:一種區(qū)塊鏈中基于兩層洗牌的隱私保護(hù)機(jī)制[J].計(jì)算機(jī)應(yīng)用研究,2021,38(2):363-366,371.(Cheng Qiling, Jin Yu. TTShuffle: privacy protection mechanism based on two-tier shuffling in blockchain[J].Application Research of Computers,2021,38(2):363-366,371.)