祝烈煌,董慧,沈蒙
北京理工大學計算機學院,北京 100081
區(qū)塊鏈技術是一種分布式的互聯(lián)網(wǎng)數(shù)據(jù)庫技術,它的去中心化、去信任化、公開透明等特點使陌生節(jié)點之間可以在不依賴于第三方可信機構的情況下建立起點對點的可信價值傳遞,主要優(yōu)勢在于能夠顯著降低信任成本、提升交互效率。區(qū)塊鏈網(wǎng)絡中沒有中心服務器,系統(tǒng)中的每個參與節(jié)點都持有完整的數(shù)據(jù)副本,它們共同維護著數(shù)據(jù)的完整性,能夠有效避免集中式服務器單點崩潰和數(shù)據(jù)泄露的風險。
然而,區(qū)塊鏈中記錄交易數(shù)據(jù)的全局賬本在網(wǎng)絡中是公開的,任意攻擊者都能夠獲取所有交易信息,使交易者的隱私有泄露的風險。例如,比特幣系統(tǒng)目前的交易數(shù)據(jù)大約為155 GB,包含從2009年開始運行到當前時刻的所有交易記錄。對賬本中的數(shù)據(jù)進行分析整理,攻擊者可以獲得任意一個賬戶對應的所有交易,還可以分析不同賬戶之間的交易關系圖譜,即使用戶采用不同的賬戶進行交易,攻擊者也可以利用地址聚類技術分析出隸屬于同一個用戶的不同賬戶[1-5]①②https://en.bitcoin.it/wiki/Coinbase。而且由于用戶進行的每一筆比特幣交易都將永久記錄在區(qū)塊鏈中,一旦某一筆歷史交易被實名化(例如比特幣交易所受到黑客攻擊,導致用戶賬戶信息泄露),則相關的所有交易記錄中的交易者身份信息都將泄露。此外,隨著區(qū)塊鏈交易逐漸被應用到日常支付領域,攻擊者可以利用鏈外信息推測區(qū)塊鏈中賬戶的身份。例如,將用戶的購物記錄和比特幣賬戶支付記錄進行對比,分析賬戶的身份信息。
針對基于數(shù)據(jù)分析的隱私竊取方法,目前已出現(xiàn)一些隱私保護機制。主要思想是在不影響區(qū)塊鏈系統(tǒng)正常工作的情況下,對公開數(shù)據(jù)中的部分信息進行隱藏,增加數(shù)據(jù)分析的難度。其中,混幣是一種應用廣泛的隱私保護方法。混幣機制的核心思想是隱藏區(qū)塊鏈交易雙方的交易過程,使攻擊者無法準確分析出不同地址之間的關聯(lián)關系,從而將交易者的交易關系分散在相互無關聯(lián)的地址中,增加分析交易者身份的難度。目前的混幣機制主要分為中心化的混幣機制和去中心化的混幣機制,在執(zhí)行效率、混幣效果、混幣費用等指標上還有提升空間,并存在拒絕服務攻擊、混幣過程泄密等安全問題。
混幣機制能夠模糊區(qū)塊鏈交易中付款人和收款人的關系,增加攻擊者通過公開賬本分析用戶交易規(guī)律的難度,是一種提升區(qū)塊鏈隱私保護能力的有效機制。通過研究混幣機制的原理,分析不同混幣機制存在的優(yōu)勢和缺陷,有利于設計出性能更優(yōu)的混幣機制,同時為不同場景下混幣機制的選擇提供評價依據(jù)。
區(qū)塊鏈是誕生于比特幣的底層技術,最早的定義來自于中本聰在2008年發(fā)表的文章③https://www.bitcoin.org/bitcoin.pdf,近年來在不斷的延伸與擴展中發(fā)生了很多改變,逐漸形成了新型技術體系,且仍然在不斷發(fā)展演變。通常認為區(qū)塊鏈系統(tǒng)的基礎架構可以按照數(shù)據(jù)層、網(wǎng)絡層、共識層、激勵層、合約層和應用層進行劃分,但是隨著區(qū)塊鏈技術的發(fā)展,很多傳統(tǒng)的模塊被弱化,甚至不存在意義,例如在聯(lián)盟鏈和私有鏈技術中已經(jīng)不需要激勵層。通過分析區(qū)塊鏈的核心技術與發(fā)展趨勢,可以將區(qū)塊鏈技術的基礎架構簡化為3個層次,即網(wǎng)絡層、交易層和應用層。網(wǎng)絡層負責區(qū)塊鏈網(wǎng)絡的建立和各個節(jié)點之間的信息轉(zhuǎn)發(fā)。交易層負責交易數(shù)據(jù)的創(chuàng)建、驗證和存儲,應用層負責提供多樣化的應用服務。
其中,區(qū)塊鏈的核心業(yè)務是在交易層中實現(xiàn)的,即兩個“地址”之間以交易的形式進行可靠、具有公信力的數(shù)據(jù)傳遞。交易層的主要內(nèi)容包括地址格式、交易格式、全局賬本和共識機制。
區(qū)塊鏈中的“地址”是用戶為了隱藏真實身份而使用的假名,可以使用公鑰并經(jīng)過加密算法(例如ECC)得到。在加密算法中,公鑰用于生成交易的輸入地址與輸出地址,私鑰信息由用戶自己保存,用于生成支付比特幣時所必需的證明資金所有權的簽名。
區(qū)塊鏈中的“交易”對用戶之間數(shù)據(jù)交互的過程進行記錄,并發(fā)布于區(qū)塊鏈網(wǎng)絡。交易中包含輸入地址、輸出地址和交易內(nèi)容等信息。交易內(nèi)容在數(shù)字貨幣中代表交易的金額,在其他應用中,可能代表一個字符串或者一個證書ID。在區(qū)塊鏈數(shù)字貨幣應用中,為了保證交易的可靠性,支付方必須有足夠的資金進行支付,區(qū)塊鏈交易中將采用特殊設計確保輸入資金大于輸出資金。例如,比特幣中輸入地址不僅包含付款方的賬戶信息,還包含此項輸入資金的來源信息和簽名信息,驗證方可以根據(jù)輸入地址信息找到資金源頭,并利用簽名驗證發(fā)送方是否有指定資金的所有權。
全局賬本是區(qū)塊鏈的數(shù)據(jù)存儲結構,用于存儲所有的交易記錄、合約以及相關的參數(shù)信息。全局賬本通常由“區(qū)塊”構成,交易信息按照一定順序存儲在區(qū)塊中,同時保存這些交易的散列值、時間戳等參數(shù),每個區(qū)塊中可以存儲的交易信息是有限的。區(qū)塊之間按照時間關系通過區(qū)塊散列連接。全局賬本在系統(tǒng)中不是集中存儲的,所有參與節(jié)點都各自維護一個本地的全局賬本,鄰居節(jié)點之間通過定期的信息交換使全局賬本保持同步。
區(qū)塊鏈技術的共識機制可以保證區(qū)塊鏈網(wǎng)絡中事務的順序在所有節(jié)點上保持一致。常見的共識機制包括工作證明(proof of work,POW)機制[6]、股權證明(proof of s t ake,POS)機制④https://bravenewcoin.com/assets/Uploads/TransactionsAs ProofOfStake10.pdf、拜占庭容錯(PBFT)機制[7]等。共識機制的目的是使分布式的節(jié)點能夠按照統(tǒng)一的規(guī)則驗證交易合法性,并選出相同的一組交易作為下一個區(qū)塊的數(shù)據(jù)。例如,POW機制的基本工作原理是眾多競爭節(jié)點通過解決一個數(shù)學難題競爭記賬權,只有被證明付出了最大工作量的節(jié)點才可以當選為記賬節(jié)點,該節(jié)點有權在區(qū)塊鏈上記錄新的交易,生成新的區(qū)塊。其他節(jié)點會以很小的計算代價驗證此區(qū)塊上的所有交易,合法的區(qū)塊將被所有節(jié)點同步。通過這種機制,能夠保證分布式節(jié)點中的全局賬本是相同的,而且全局賬本中的每一筆交易都要經(jīng)過大多數(shù)節(jié)點的認可,具有較高的公信力。
根據(jù)區(qū)塊鏈技術的特點,可以分析出區(qū)塊鏈交易具有以下特征。
● 區(qū)塊鏈交易中包含輸入地址和輸出地址信息,而且每一個輸入地址都指向前一筆交易,即所有輸入資金都能夠追溯到源頭。
● 區(qū)塊鏈交易存儲在公開的全局賬本中,任意參與用戶都可以獲得完整的全局賬本。而且由于在共識過程驗證節(jié)點需要檢索歷史交易,因此所有的交易信息不能直接采用加密等手段保護數(shù)據(jù)。
這些特征導致區(qū)塊鏈交易數(shù)據(jù)面臨隱私泄露威脅。以比特幣為例,比特幣交易中的地址都是由用戶自行創(chuàng)建且與身份信息無關的,任何人無法直接通過觀察交易記錄推測出交易中用戶的身份信息。但是全局賬本公開的交易之間存在關聯(lián)關系,潛在攻擊者有可能通過分析全局賬本中的交易記錄推測出比特幣地址的交易規(guī)律,包括地址的交易頻率、交易特征、地址之間的關聯(lián)關系等?;谶@些規(guī)律,攻擊者有可能將匿名比特幣地址和特定用戶相關聯(lián)。
目前已經(jīng)有許多研究通過分析區(qū)塊鏈交易推測區(qū)塊鏈用戶的隱私信息。根據(jù)分析目的的不同,可以將這些研究分為以下兩類。
第一類研究主要通過分析地址相關的交易記錄,獲得該地址交易的規(guī)律特征,據(jù)此推測對應用戶的身份信息。由于在某一特定類型的區(qū)塊鏈交易中會存在它特有的交易特征,攻擊者可以根據(jù)地址的交易特征,對其交易發(fā)生的真實場景進行還原,從而做出用戶真實身份的推測。Androulaki E等人[8]設計了一個匹配區(qū)塊鏈地址與學生身份的模擬實驗,學生以比特幣作為日常交易的支付手段,并使用比特幣推薦的一次性地址方法加強隱私保護,分析人員通過基于行為的聚類技術,能夠以42%的準確率將學生身份和區(qū)塊鏈地址成功匹配。Monaco J V[9]將比特幣用戶的交易行為進行量化,以交易時間間隔、資金流向等12項參數(shù)為依據(jù)分析用戶的交易規(guī)律,經(jīng)過6個月實驗得到的大量數(shù)據(jù)表明,利用這種分析模型成功識別用戶真實身份的精度高達62%,錯誤率低于10.1%。
第二類研究主要利用區(qū)塊鏈交易設計中存在的一些潛在知識,實現(xiàn)對不同地址的聚類,得到同一個用戶的多個地址。針對地址聚類目前主要有以下3條聚類規(guī)則。
● 對于一個具有多輸入地址的交易,通常認為所有的輸入地址都來自同一個用戶個體或用戶的集合。當用戶發(fā)起一次交易時,資金可能來自于用戶的多個地址,而多輸入交易中用戶需要對每個輸入地址單獨進行簽名,因此大多數(shù)多輸入交易的輸入地址來自同一個用戶。這項規(guī)則已經(jīng)應用于很多研究中[1-3],取得了很好的聚類效果。
● 同一個Coinbase交易中的多個輸出地址屬于同一個用戶集合。隨著“挖礦”難度的增加,個體“礦工”已經(jīng)無法在競爭中獲勝,需要成百上千的“礦工”加入“礦池”共同完成一次“挖礦”,得到的獎勵會分配給參與集體“挖礦”的“礦工”。Coinbase交易表示將獎勵發(fā)送給“礦工”的過程。
● 交易中找零地址和輸入地址隸屬于同一個用戶。在一次交易中,輸入地址中的總金額可能會大于用戶發(fā)出的金額,因此比特幣系統(tǒng)會為發(fā)送方自動產(chǎn)生一個找零地址,用于接收交易中的找零資金。找零地址與其他地址一樣都有可能被系統(tǒng)選擇成為新的交易中的輸入地址,但作為輸出地址的情況一般只會出現(xiàn)一次。由于找零地址在交易發(fā)生時是由系統(tǒng)重新生成的,因此一個地址不可能同時作為一次交易的輸入地址和輸出地址,交易的輸出中也必然存在找零地址以外的輸出地址。利用找零地址的這些特征,可以發(fā)現(xiàn)更多地址之間的關聯(lián)關系。
目前已經(jīng)有很多研究利用上述聚類規(guī)則,發(fā)現(xiàn)了比特幣系統(tǒng)中很多地址之間的關聯(lián)性。Meiklejohn S等人[4]通過使用啟發(fā)式聚類方法實現(xiàn)了對比特幣盜竊案件中相關比特幣地址的識別。Zhao C[5]完成了一個全面的聚類過程,根據(jù)比特幣全局賬本中的全部交易數(shù)據(jù),將35 587 286個比特幣地址劃分為13 062 822個用戶的地址集合。
完全公開的交易存儲機制使區(qū)塊鏈交易存在隱私泄露風險,因此有必要在區(qū)塊鏈系統(tǒng)中采用相應的隱私保護機制,在滿足區(qū)塊鏈共識機制的條件下,盡可能隱藏數(shù)據(jù)信息和數(shù)據(jù)背后的知識。在現(xiàn)有的研究中,一種廣泛應用的方法是在不改變交易結果的前提下改變交易過程,使攻擊者無法直接獲得交易的完整信息,這種方法被稱為“混幣”。Chaum D[10]的文章提出了一種匿名通信技術,在通信過程中隱藏了真實的通信內(nèi)容,基本思想可以通過式(1)表達:
式(1)左側(cè)為發(fā)送方發(fā)給中間人的信息,右側(cè)為中間人將信息處理后發(fā)送給接收方的消息。發(fā)送方想要將消息Z0和m發(fā)送給接收方的地址A,首先使用接收方的密鑰CA對消息進行加密得到CA(Z0,m),然后將中間人的驗證消息Z1、加密后的消息CA(Z0,m)和接收方地址A進行打包,并使用中間人的公鑰CM進行加密,防止信息在發(fā)送過程中被攻擊者截獲或篡改。中間人收到信息后使用自己的私鑰進行解密,得到Z1, CA(Z0,m), A,但無法解密CA(Z0,m)的內(nèi)容。中間人在驗證Z1無誤后,將CA(Z0,m)發(fā)送給地址A。接收方使用自己的私鑰解密消息,完成此次通信。
利用這種方法,消息沒有在發(fā)送者和接收者之間直接傳遞,而是通過中間人間接傳遞,使攻擊者無法觀察到真實發(fā)送者和接收者之間的通信行為,提高了通信的匿名性。若將消息通過多個中間人進行傳遞,攻擊者發(fā)現(xiàn)雙方通信關系的難度將大大增加。
數(shù)字貨幣中的混幣機制借鑒了上述思想,通過中間人對資金進行中轉(zhuǎn),使攻擊者無法直接發(fā)現(xiàn)交易中真實的發(fā)送方和接收方。數(shù)字貨幣的混幣機制原理如圖1所示。假設A和A1是一個用戶的兩個數(shù)字貨幣地址,C是潛在攻擊者,能觀察到發(fā)生的所有交易。用戶希望使用地址A向地址A1轉(zhuǎn)賬,但是不希望潛在攻擊者發(fā)現(xiàn)這次交易。通過采用混幣機制,攻擊者C無法直接觀察到從A到A1的交易過程,從而不會發(fā)現(xiàn)A和A1的關聯(lián)。
混幣過程的執(zhí)行可以由可信的第三方或某種協(xié)議實現(xiàn)。根據(jù)混幣過程中有無第三方節(jié)點參與,將現(xiàn)有的混幣機制分為兩類:基于中心節(jié)點的混幣機制和去中心化的混幣機制。這兩種機制在混幣可靠性、混幣效率和混幣成本等方面各有優(yōu)勢和缺陷,本文將分別介紹兩類混幣機制的原理和特點。
基于中心節(jié)點的混幣機制中,混幣過程由第三方節(jié)點集中執(zhí)行,因此也可以稱為中心化混幣方案。參與混幣的用戶首先將資金發(fā)送給第三方節(jié)點,第三方節(jié)點收到多個混幣用戶發(fā)來的資金后進行一系列資金分配,最終將指定金額的資金分別轉(zhuǎn)移給指定的收款地址。由于資金沒有直接在發(fā)送方和接收方之間傳遞,而是經(jīng)過第三方節(jié)點的處理,對資金流向進行了干擾,因此攻擊者很難發(fā)現(xiàn)參與用戶的資金流向。
基于中心節(jié)點的混幣方法原理如圖2所示。用戶希望使用地址A向地址A1轉(zhuǎn)賬,但為了防止?jié)撛诠粽逤直接發(fā)現(xiàn)A和A1的關系,可以首先使用地址A向第三方地址D轉(zhuǎn)賬,D在一段時間后向用戶指定的地址A1轉(zhuǎn)賬,最終實現(xiàn)資金在A和A1之間的轉(zhuǎn)移。在一定時間內(nèi),第三方節(jié)點可能完成了多個用戶的混幣過程,這在一定程度上隱藏了A和A1的關系,使得攻擊者無法在A1、E1、F1中找到與A具有關聯(lián)關系的地址。但是通過綜合分析A、D、A1三者在一段時間內(nèi)的交易過程,攻擊者有一定概率猜測出A和A1是一次真實交易的發(fā)送方與接收方。例如,在一定時間內(nèi)D有n個輸出,則攻擊者找到正確交易鏈路的概率是1/n。
圖1 混幣機制原理
圖2 基于中心節(jié)點的混幣機制原理
為了防止?jié)撛诠粽咄茰y出混幣過程隱藏的交易關系,第三方節(jié)點在執(zhí)行混幣機制時需要遵循一定的限制條件,具體如下。
● A向D轉(zhuǎn)賬和D向A1轉(zhuǎn)賬這兩筆交易之間需要存在一定時間間隔t。否則,攻擊者可以根據(jù)時間關系推測出真實的交易關系。
● 在時間間隔t以內(nèi),D發(fā)出的交易數(shù)量n越多,混幣的效果越好,因為這將減小推測成功的概率1/n。
● 在一次混幣過程中,各項真實交易的金額不能有明顯區(qū)別。當?shù)谌焦?jié)點發(fā)出的交易中僅有一筆發(fā)送給A1的交易金額與A發(fā)出的金額相近,那么攻擊者可以由此猜測出A-D-A1的交易鏈路。
● 第三方節(jié)點可以使用不同的地址作為轉(zhuǎn)賬的接收方和發(fā)送方,從而提升混幣效果。如圖3所示,第三方的地址D收到來自A的轉(zhuǎn)賬,然后通過地址E將資金轉(zhuǎn)出。這種情況下,攻擊者C在不知道D和D1關系的情況下,很難推測出A和A1的交易關系。
圖3 第三方使用多地址的混幣過程
此類方法簡單易行,不需要額外的技術改進,適用于比特幣等各種數(shù)字貨幣。這種機制中,用戶根據(jù)經(jīng)驗選擇混幣服務提供商,首先向混幣服務商轉(zhuǎn)移資金,并支付一定的服務費用,混幣服務商收到后將資金轉(zhuǎn)移給用戶指定的地址。目前提供這種混幣服務的網(wǎng)站有BitLaundry、Bitcoin Fog⑤http://bitcoinfog.info/、Blockchain.info等。
但是,使用這種方法完成混幣的過程完全依賴于第三方節(jié)點,因此存在以下幾點嚴重的缺陷。
● 額外收費和交易延遲。混幣服務提供商通常會收取一定的混幣費用,并且隨著混幣次數(shù)的增加,費用直線上升,混幣時間也會增加。通?;鞄诺臅r延為48 h,交易費用為1%~3%。
● 第三方可能偷竊資金。若在混幣服務中不設置高效的監(jiān)督機制,第三方節(jié)點有可能在收到用戶資金后不執(zhí)行約定的轉(zhuǎn)賬操作,偷竊用戶資金,而用戶無法追責。
● 第三方可能泄露混幣過程。由于第三方節(jié)點掌握全部的混幣過程,了解真實的交易內(nèi)容,從而無法保證混幣信息不被泄露。
為了保證第三方節(jié)點的可信度,Bonneau J等人[11]提出一種改進的中心化混幣方案——Mixcoin。通過設置審計功能,使用戶有權公布簽名數(shù)據(jù),揭露第三方節(jié)點的違規(guī)行為,混幣服務商將付出失去信譽的代價。但是該方案沒有從根源上解除第三方對信息泄露的威脅。Valenta L等人[12]在Mixcoin的基礎上使用盲簽名技術進一步優(yōu)化,設計了Blindcoin方案,使第三方節(jié)點在正常提供混幣服務的同時,無法得到所有交易中交易雙方的真實信息,從而避免信息泄露的風險。但使用盲簽名技術必然會增加混幣過程中的計算量。ShenTu Q C等人[13]提出一種更加高效的盲簽名混幣方案,使用橢圓曲線加密算法提升計算效率。2015年上線運營的匿名數(shù)字貨幣達世幣(Dash)⑥https://www.dash.org/是一款基于比特幣技術,并以保護用戶隱私為目的的數(shù)字貨幣。達世幣中所有執(zhí)行混幣過程的中心節(jié)點都必須支付高額押金作為擔保,否則無法獲得提供混幣服務的權利。這種方案通過加設第三方節(jié)點違規(guī)操作應付出的代價,保護混幣用戶的隱私及財產(chǎn)安全。
中心化混幣方案的本質(zhì)是單純地將一筆資金在多個地址中進行多次轉(zhuǎn)移,實現(xiàn)簡單,易于操作,混幣過程不需要其他的技術支持,在區(qū)塊鏈技術下的各類數(shù)字貨幣系統(tǒng)中具有極高的適用性。但是,現(xiàn)有的中心化混幣方案普遍存在時延問題。大多數(shù)改進方案通過增加第三方違規(guī)的代價來防止盜竊和信息泄露的發(fā)生,不能從根本上杜絕違規(guī)行為的發(fā)生,采用盲簽名等密碼學技術的混幣方案會增加計算代價,并且由第三方執(zhí)行混幣過程必然會帶來額外的服務開銷。筆者從是否需要混幣費用、是否存在盜竊風險等方面對現(xiàn)有的中心化混幣機制特征作出對比分析,見表1。
去中心化混幣方案的混幣過程通過混幣協(xié)議實現(xiàn),不需要第三方節(jié)點參與。最早的去中心化混幣方案是由 Gregory Maxwell在比特幣論壇上提出的CoinJoin機制。CoinJoin機制核心思想是通過將多個交易合并成一個交易的方法,隱藏交易雙方輸入輸出的對應關系。如圖4所示,當一筆交易中只有一個輸入地址與一個輸出地址時,攻擊者可以直接觀察到交易雙方的關聯(lián)關系,而在CoinJoin機制下,若干筆單輸入—單輸出交易被合并為一筆多輸入—多輸出交易,交易的雙方由兩個單獨的地址變?yōu)閮蓚€地址的集合。對于一個多輸入—多輸出交易,潛在攻擊者無法通過觀察交易信息確認輸入和輸出之間的對應關系。一般情況下,CoinJoin機制需要第三方服務器撮合所有混幣申請方進行簽名。CoinJoin交易中,每個用戶獨立分散地完成簽名,只有提供了所有簽名并進行合并,交易才能被判定合法,并被網(wǎng)絡接收。這種去中心化的混幣機制免除了第三方服務提供者的參與,混幣過程是在所有混幣用戶的共同參與下完成的,從而有效避免了第三方盜竊與泄露混幣信息的風險。CoinJoin是去中心化混幣機制的基礎,其思想被運用在多種匿名比特幣協(xié)議中,例如Dark Wallet⑦https://www.wired.com/2014/04/darkwallet/、CoinShuffle⑧http://insidebitcoins.com/news/coinshuffleaims-to-improve-privacy-inbitcoin/29269和 Join Market。
表1 基于中心節(jié)點混幣機制特征對比
圖4 CoinJoin機制示意
CoinJoin機制對所有用戶交易的匿名性提供了強大的保障。即使只有部分用戶使用這種協(xié)議,攻擊者也會因無法準確識別全局賬本中使用該協(xié)議的交易,而無法使用第2.2節(jié)中介紹的分析方法。這種不依賴第三方節(jié)點的混幣機制能夠從根源解決中心化混幣方案中存在的資金偷竊、混幣費用等問題。但是,由于沒有第三方參與混幣的組織與執(zhí)行,混幣用戶往往需要自行組織協(xié)商,并完成混幣過程,從而暴露出以下問題:
● 依然需要第三方節(jié)點協(xié)助完成尋找混幣用戶的過程,因此仍不可避免中心化混幣中的一些威脅;
● 參與混幣的用戶在協(xié)商的過程中可能暴露自己的混幣信息,無法保證所有混幣參與方守信;
● 在執(zhí)行混幣過程中,如果由于部分節(jié)點違規(guī)操作導致混幣失敗,攻擊者有可能趁機發(fā)起拒絕服務攻擊;
● CoinJoin方案形成的多輸入多輸出交易將記錄在全局賬本中,用戶無法抵賴其曾經(jīng)參與過混幣。
針對CoinJoin機制的缺陷,出現(xiàn)了很多改進方法。Ruffing T等人[14]提出一種完全去中心化的比特幣混幣協(xié)議——CoinShuffle,在CoinJoin的基礎上增加了將輸出地址洗牌的機制,使混幣參與者無法得到自己以外的交易地址關聯(lián)關系。但是該方案在執(zhí)行混幣過程時要求所有參與者同時在線,容易遭受拒絕服務攻擊。Bissias G等人[15]提出一種基于區(qū)塊鏈廣告匿名尋找混幣參與者的去中心化混幣協(xié)議——Xim,隨著混幣參與用戶數(shù)量的增加,攻擊者發(fā)動攻擊的代價也會線性增加,從而有效避免拒絕服務攻擊。CoinParty[16]中由安全多方計算模擬可信第三方,即使在部分混幣參與節(jié)點惡意操作或失效的情況下,混幣過程依然有效。門羅幣(Monero)⑨https://getmonero.org//knowledge-base/about的混幣機制中采用了環(huán)型加密匿名技術,使混幣參與用戶無需與其他參與節(jié)點進行交流,可自行參與混幣,為去中心化混幣機制中常見的拒絕服務攻擊、混幣用戶泄露信息等問題提供了有效的防御措施。
去中心化混幣機制取消了第三方混幣提供者的參與,通過混幣協(xié)議使混幣過程在多個用戶的共同參與下完成。因此混幣過程的安全不依賴于第三方節(jié)點的可信度,用戶也無需為混幣服務花費額外的費用。但是,很多去中心化混幣方案具有很高的遭受攻擊的風險,該問題通常需要以改進算法的方式解決,因此也增加了混幣機制的計算成本,影響混幣服務的效率。針對混幣機制中是否需要混幣費用、是否存在盜竊風險等特征,筆者對現(xiàn)有的幾種典型去中心化混幣機制進行了對比分析,見表2。
表2 去中心化混幣機制特征對比
由于傳統(tǒng)的基于混幣機制的隱私保護方案實現(xiàn)簡單,不會對區(qū)塊鏈原有的共識機制產(chǎn)生影響,在現(xiàn)有的區(qū)塊鏈應用中得到了推廣。但區(qū)塊鏈的混幣機制中依然存在一些缺陷。在區(qū)塊鏈技術持續(xù)發(fā)展的同時,還需要對混幣機制做進一步的研究。
如果不借助其他隱私保護技術,混幣機制的隱私保護效果十分有限,分析人員仍然可以使用特定的分析方法發(fā)現(xiàn)交易中隱藏的信息。因此,有必要通過采用密碼學算法保證混幣的安全性,例如零知識證明機制和同態(tài)加密機制。但引入加密機制需要對底層協(xié)議進行大幅改動,并需要消耗更多的計算資源,影響區(qū)塊鏈應用的效率。雖然已經(jīng)出現(xiàn)一些擴展方法對原本效率不高的安全混幣機制進行了改良,使計算量大大減小,例如Pinocchio Coin[17]和ZeroCash[18]有望顯著降低Zerocoin的證明規(guī)模和計算成本,但這些方案及擴展的改良方案都需要對區(qū)塊鏈系統(tǒng)做出重大修改,從而無法落實到實際應用中。因此希望隱私保護機制在保護系統(tǒng)安全的同時盡量避免對系統(tǒng)做出改動。然而,現(xiàn)有的一些能夠直接部署在區(qū)塊鏈上的機制(如CoinShuffle)往往不具有足夠的安全性,存在著遭受攻擊的風險。
在未來的研究中,需要使用一種更加安全高效的加密方案為混幣機制的執(zhí)行提供保障。密碼學算法保護下的混幣機制需要充分考慮區(qū)塊鏈服務器在計算性能和存儲性能上的缺陷,同時還需要重點考慮如何避免或者減少對區(qū)塊鏈底層協(xié)議的修改,使安全高效的混幣機制更容易得到落實與推廣。
本文介紹了區(qū)塊鏈技術中用于保護交易數(shù)據(jù)隱私的混幣機制。首先,從隱私保護中面臨的威脅出發(fā),說明了混幣機制的核心思想和應用場景;其次,對混幣機制的基本原理進行了詳細的闡述;最后,分別從基于第三方節(jié)點的混幣方法和去中心化的混幣方法的角度,詳細地分析了兩類混幣方法的優(yōu)勢與缺陷,總結了現(xiàn)有混幣方案作出的改進,并展望了混幣機制未來可能的研究方向。
[1] REID F, HARRIGAN M. An analysis of anonymity in the Bitcoin system[C]//The 2011 IEEE Third International Conference on Privacy, Security, Risk and Trust,Oc tober 9-11, 2011, Boston, USA.Piscataway: IEEE Press, 2011: 1318-1326.
[2] LIAO K, ZHAO Z, DOUPE A, et al. Behind closed doors: measurement and analysis of CryptoLocker ransoms in Bitcoin[C] //The Symposium on Electronic Crime Research,June 1-3, 2016, Toronto, Canada.Piscataway: IEEE Press, 2016: 1-13.
[3] RON D, SHAMIR A. Quantitative analysis of the full Bitcoin transaction graph[C]//The 17th International Conference on Financial Cryptography and Data Security, April 1-5, 2013, Okinawa, Japan. Heidelberg:Springer, 2013: 6-24.
[4] MEIKLEJOHN S, POMAROLE M, JORDAN G, et al. A fistful of bitcoins: characterizing payments among men with no names[C]//The 13th ACM Internet Measurement Conference, October 23-25, 2013,Barcelona, Spain. New York: ACM Press,2013: 127-140.
[5] Z H A O C. G r a p h-b a s e d f o r e n s i c investigation of Bitcoin transactions[D].Iowa: Iowa State University, 2014.
[6] D W O R K C, N A O R M. P r i c i n g v i a processing or combatting junk mail[C]//The 12th Annual International Cryptology Conference on Advances in Cryptology,August 16-20, 1992, Santa Barbara, USA.Piscataway: IEEE Press, 1992: 139-147.
[7] CASTRO M, LISKOV B. Practical byzantine fault tolerance and proactive recovery[J].ACM Transactions on Computer Systems,2002, 20(4): 398-461.
[8] A N D R O U L A K I E, K A R A M E G O,ROESCHLIN M, et al. Evaluating user privacy in Bitcoin[C]//The 17th International Conference on Financial Cryptography and Data Security, April 1-5, 2013, Okinawa,Japan. Heidelberg: Springer, 2013: 34-51.
[9] MONACO J V. Identifying Bitcoin users by transaction behavior[C]//The SPIE DSS, April 20-25, 2015, Baltimore, USA.Baltimore: SPIE, 2015.
[10] CHAUM D. Untraceable electronic mail, return addresses and digital pseudonyms[J]. Communications of the ACM, 2003: 211-219.
[11] BONNEAU J, NARAYANAN A, MILLER A, et al. Mixcoin: anonymity for Bitcoin with accountable mixes [C]//The 19th International Conference on Financial Cryptography and Data Security, January 26-30, 2015,San Juan, Argentina. Barbados: Financial Cryptography, 2014: 486-504.
[12] VALENTA L, ROWAN B. Blindcoin:blinded, accountable mixes for Bitcoin[J].Financial Cryptography and Data Security,2015: 112-126
[13] SHENTU Q C, YU J P. A blind-mixing scheme for Bitcoin based on an elliptic curve cryptography blind digital signature algorithm[J]. Computer Science, 2015.
[14] R U F F I N G T, M O R E N O-S A N C H E Z P, K ATE A. CoinShuf f le: prac tical decentralized coin mixing for Bitcoin[M]//Computer Security -ESORICS 2014,Heidelberg: Springer, 2014: 345-364.
[15] BISSIAS G, OZISIK A P, LEVINE B N, et al.Sybil-resistant mixing for Bitcoin[C]//The 2015 ACM Workshop on Privacy in the Electronic Society, November 3, 2014,Scottsdale, USA. New York: ACM Press,2014: 149-158.
[16] ZI EG EL D O R F J H, G R OSSM A N N F,HENZE M, et al. CoinParty: secure multi-party mixing of Bitcoins[C]//The 5th ACM Conference on Data and Application Security and Privacy, March 2-4, 2015,San Antonio, USA. New York: ACM Press,2015: 75-86.
[17] DANEZIS G, FOURNET C, KOHLWEISS M,et al. Pinocchio coin: building zerocoin from a succinct pairing-based proof system[C]//ACM Workshop on Language Support for Privacy-Enhancing Technologies,November 4, 2013, Berlin, Germany. New York: ACM Press, 2013: 27-30.
[18] SASSON E B, CHIESA A, GARMAN C,et al. Zerocash: decentralized anonymous payments from Bitcoin[C]//The 2014 IEEE Symposium on Security and Privacy,M ay 18-21, 2014, B e r ke l ey, USA.Washington: IEEE Computer Society,2014: 459-474.