祝烈煌 高 峰 沈 蒙 李艷東 鄭寶昆,2 毛洪亮 吳 震
1(北京理工大學計算機學院 北京 100081) 2(中國政法大學 北京 102249) 3(國家計算機網絡應急技術處理協調中心 北京 100029) (liehuangz@bit.edu.cn)
2017-06-11;
2017-08-03
國家重點研發計劃項目(2016YFB0800301);國家自然科學基金項目(61602039);北京市自然科學基金項目(4164098) This work was supported by the National Key Research and Development Program of China (2016YFB0800301), the National Natural Science Foundation of China (61602039), and the Beijing Natural Science Foundation (4164098).
沈蒙(shenmeng@bit.edu.cn)
區塊鏈隱私保護研究綜述
祝烈煌1高 峰1沈 蒙1李艷東1鄭寶昆1,2毛洪亮3吳 震3
1(北京理工大學計算機學院 北京 100081)2(中國政法大學 北京 102249)3(國家計算機網絡應急技術處理協調中心 北京 100029) (liehuangz@bit.edu.cn)
區塊鏈技術的核心特征是“去中心化”和“去信任化”,作為分布式總賬技術、智能合約基礎平臺、分布式新型計算范式,可以有效構建可編程貨幣、可編程金融和可編程社會,勢必將對金融及其他領域帶來深遠影響,并驅動新一輪技術變革和應用變革.但是區塊鏈技術在提高效率、降低成本、提高數據安全性的同時,也面臨嚴重的隱私泄露問題,得到研究者的廣泛關注.將介紹區塊鏈技術架構,定義區塊鏈技術中身份隱私和交易隱私的概念,分析區塊鏈技術在隱私保護方面存在的優勢和不足,并分類描述現有研究中針對區塊鏈隱私的攻擊方法,例如交易溯源技術和賬戶聚類技術;然后詳細介紹針對區塊鏈網絡層、交易層和應用層的隱私保護機制,包括網絡層惡意節點檢測和限制接入技術、區塊鏈交易層的混幣技術、加密技術和限制發布技術,以及針對區塊鏈應用的防御機制;最后,分析了現有區塊鏈隱私保護技術存在的缺陷,展望了未來發展方向.此外,還討論針對惡意使用區塊鏈技術的監管方法.
區塊鏈;隱私保護;對等網絡;聚類分析;比特幣
區塊鏈技術具有“去中心化”和“去信任化”等特點,能夠不依賴第三方可信機構在陌生節點之間建立點對點的可信價值傳遞,有助于降低交易成本,提高交互效率,有非常廣闊的應用前景,被認為是引領信息互聯網向價值互聯網轉變的關鍵技術[1].
在數字貨幣領域,比特幣和類似比特幣的新型數字貨幣發展迅速.ARK投資公司和coinbase公司2017年發布的聯合報告指出:全球比特幣用戶數量超過1 000萬,每天交易金額超過1.5億美元[2].Gartner的預測指出,到了2022年,以區塊鏈為中心的相關交易將高達100億美元[3].此外,各國央行逐漸支持數字貨幣,甚至計劃發行法定數字貨幣.在金融行業,銀行和金融機構希望利用區塊鏈技術改造傳統金融體系,降低數據維護成本.在能源行業,區塊鏈的去中心化、開源共享以及智能管理等特性與未來能源變革有著天然的契合性,能夠在能源互聯網、智能電網、碳交易、電動汽車、智能交通等領域發揮重要作用[4].在文化行業,利用區塊鏈技術數據不可更改、公信力高的特性,可以開展證書存儲、數字產權保護、文物鑒定等眾多業務.
隨著區塊鏈技術不斷發展和廣泛應用,其面臨的隱私泄露問題越來越突出,必須得到充分重視.相對于傳統的中心化架構,區塊鏈機制不依賴特定中心節點處理和存儲數據,因此能夠避免集中式服務器單點崩潰和數據泄露的風險.但是為了在分散的區塊鏈節點中達成共識,區塊鏈中所有的交易記錄必須公開給所有節點,這將顯著增加隱私泄露的風險.例如,在數字貨幣應用中,分析人員通過分析交易記錄可以獲得用戶的交易規律,甚至能夠推測出用戶的身份信息和位置信息[5].在金融應用中,如果分析人員獲得全部的交易記錄,既可以追溯個體賬戶的交易細節,也可以分析宏觀的金融趨勢,這些信息既屬于用戶的隱私信息,也屬于公司的核心數據.在能源行業中,區塊鏈技術通常被用于實現點對點的能源交換[6],這種情況下區塊鏈交易數據有可能泄露能源傳輸等敏感信息,對個人安全和國家安全造成威脅.因此,區塊鏈技術在走向實用之前,必須解決隱私泄露問題.
然而,區塊鏈技術與傳統IT架構存在顯著區別,很多傳統的隱私保護方案在區塊鏈應用中不適用.傳統IT架構中,數據通常存儲在中心化服務器,隱私保護的重點是確保數據不被外泄.因此,管理者可以通過提高中心節點的防御能力來抵抗各種攻擊,例如使用高性能服務器、部署入侵檢測設備、安裝專用的數據防泄密軟件等.區塊鏈技術中,數據存儲在分散的節點,沒有統一的管理者,節點的性能和安全能力參差不齊,攻擊者很容易攻陷其中一些節點.此外,攻擊者甚至可以偽裝成合法節點直接獲得交易數據.因此,區塊鏈中隱私保護的重點是確保交易的匿名性,即攻擊者無法通過分析交易數據獲得用戶的身份信息,這種安全需求需要針對性的隱私保護機制.區塊鏈技術中采用了特殊的信息傳遞機制、共識機制和激勵機制,這也給隱私保護帶來了新的機遇和挑戰.
區塊鏈技術面臨隱私泄露風險,傳統的隱私保護技術又不適用,因此分析區塊鏈隱私泄露缺陷、研究針對性的隱私保護方法具有重要意義.目前已經出現了很多針對區塊鏈隱私的防護方法,它們能夠從網絡層、交易層等不同的角度防范竊取隱私的攻擊行為.針對目前發展現狀,本文對現有典型的攻擊方法和防御機制進行回顧與總結,希望能給當前及未來的相關研究提供一定的參考與幫助.
1.1區塊鏈技術概述
區塊鏈是從比特幣底層技術衍生出來的新型技術體系,最早的定義來自于中本聰在2009年發表的論文[7],之后區塊鏈的內涵和外延發生了很多改變,目前仍然在不斷演變.區塊鏈技術在架構上通常被分為數據層、網絡層、共識層、激勵層、合約層和應用層.但是隨著區塊鏈技術的快速發展,區塊鏈的架構也在不斷變化.很多傳統的模塊被弱化,甚至被取消,例如在聯盟鏈和私有鏈技術中已經不需要激勵層.因此,通過分析區塊鏈技術的本質特征和目前的發展趨勢,我們將區塊鏈技術的架構分為3個層次,如圖1所示:

Fig. 1 The architecture of blockchain technology圖1 區塊鏈技術架構
1) 網絡層.網絡層的核心任務是確保區塊鏈節點之間可以通過P2P網絡進行有效通信.主要內容包括區塊鏈網絡的組網方式和節點之間的通信機制.
區塊鏈網絡采用P2P組網技術,具有去中心、動態變化的特點.網絡中的節點是地理位置分散但是關系平等的服務器,不存在中心節點,任何節點可以自由加入或者退出網絡.目前規模最大的區塊鏈網絡是比特幣網絡.比特幣網絡建立在公共互聯網之上,節點來自全球各地,每天對外提供服務的節點數量平均為5 400個[8],總體節點數量(包括不對外提供服務的節點)估計為10萬個左右.
區塊鏈節點之間的通信類型主要分為2種:
① 為了維持節點與區塊鏈網絡之間的連接而進行的通信,通常包括索取其他節點的地址信息和廣播自己的地址信息(地址信息是指TCP/IP中的IP地址和端口號).節點新加入區塊鏈網絡時,首先讀取硬編碼在客戶端程序中的種子地址并向這些種子節點索取其鄰居節點地址,然后通過這些地址繼續搜索更多的地址信息并建立連接,直到節點的鄰居節點的數量達到穩定值.此后,節點會定期通過ping等方式驗證鄰居節點的可達性,并使用新的節點替代不可達節點.此外,為了保證新節點的信息被更多節點接收,節點將定期向自己的鄰居節點廣播自己的地址信息.
② 為了完成上層業務而進行的通信,通常包括轉發交易信息和同步區塊信息(交易和區塊是區塊鏈中的數據結構,將在交易層介紹).節點轉發交易信息時采用中繼轉發的模式.始發節點首先將交易轉發給鄰居節點,鄰居節點收到交易后再轉發給自己的鄰居節點,以此類推,逐漸傳遍整個網絡.同步區塊信息采用請求響應的模式.節點首先向鄰居節點發送自己的區塊高度(類似于ID),如果小于鄰居節點的高度則索取自己欠缺的區塊,如果大于鄰居節點的高度則鄰居節點將反向索取區塊信息.所有節點都不斷地和鄰居節點交換區塊信息,從而保證整個網絡中所有節點的區塊信息保持同步.
2) 交易層.交易層實現區塊鏈的核心業務,即在2個“地址”之間進行可靠的、具有公信力的數據傳遞.主要內容包括:地址格式、交易格式、智能合約、全局賬本、共識機制和激勵機制.
區塊鏈中的“地址”,類似于銀行卡賬號,是用戶參與區塊鏈業務時使用的假名.通常是在用戶的控制下利用公鑰加密算法(例如ECC)生成.其中生成的公鑰信息將用于交易的輸入地址或者輸出地址,私鑰信息由用戶自己保存,用于對交易簽名.2種常見的區塊鏈地址如下所示:
① 比特幣地址:
“1DAY1DUpbBdGLkkFYj32J5g4h9X2zsxDv5”
② 以太坊地址:
“02B51B20185c04D1CbDA2996dFA02AF2D308EeEa”
區塊鏈中的“交易”記錄了用戶之間數據交互的過程.通常包括輸入地址、輸出地址、交易內容等信息.交易內容在數字貨幣應用中主要包括交易的金額,在其他應用中可能代表一個字符串或者一個證書ID.例如在基于區塊鏈技術的數據存儲應用STORJ[9]中,交易的內容主要包括存儲數據的Hash值.我們以使用最廣泛的區塊鏈應用比特幣為例,介紹交易層的數據格式.
圖2(a)展示一個簡化的比特幣交易格式,圖2(b)展示2個交易例子.從交易格式部分可以看出,每個比特幣交易都有一個交易Hash(txhash).此Hash值是針對整個交易內容計算得到,唯一指向此條交易.因此,在比特幣中交易Hash通常作為交易的ID.交易的正文主要包括2部分:輸入地址信息和輸出地址信息.輸入地址信息記錄此次交易發送方的賬戶信息,值得注意的是輸入地址信息中并不是記錄發送者的賬號,而是記錄輸入資金的來源(pre-txhash),即通過來源交易Hash指定全局賬本中的一條交易,通過索引信息(index)指定交易中對應的輸出地址,并通過簽名信息(sign)證明用戶對這筆資金的所有權.輸出地址信息中記錄此次交易接收方的賬戶信息,包括輸出地址(account)和輸出金額(amount).輸出地址是由用戶自行生成的公鑰信息經過字符變換得到的一串字符串.輸出地址經過反向變換后可以得到公鑰的Hash,用于驗證簽名.交易實例部分介紹了2條交易.其中,編號為“10002”的交易中第“0”個輸入地址中的來源交易Hash是“3306ff5a64d900937ad1429466fd2c8f”,同時索引為“1”.因此,可以確定此輸入地址的真實賬戶是編號“10001”交易中第“1”個輸出地址“1A1RmbbVoL4 pnMZf”.通過這種設計,比特幣中每一個交易的來源都可以驗證真實性和合法性,攻擊者無法偽造交易,也不能冒用其他人的賬號進行交易.此外,交易中的輸入賬戶和輸出地址都是由用戶自行創建,與身份信息無關,因此外部觀察者不能直接根據交易記錄推測交易者的身份信息.

Fig. 2 The format of bitcoin transaction圖2 比特幣交易格式
合約是區塊鏈中一種特殊的數據交換方式,能夠提供比交易更靈活的數據交換.區塊鏈中的合約的概念在不斷變化.在比特幣中,合約是交易中的腳本,用于實現延時交易、條件交易等復雜業務.在以太坊中,合約被擴展為圖靈完備的腳本語言,可以實現更加復雜的功能.在超級賬本(Hyperledger)中,合約直接用于實現區塊鏈業務.同交易類似,合約的內容也將寫入區塊鏈全局賬本.
全局賬本是區塊鏈中的數據存儲結構,用于存儲所有的交易記錄、合約以及相關的參數信息.全局賬本通常由“區塊”構成,每個區塊存儲一定數量的交易信息以及針對這些交易的Hash值、時間戳等參數.區塊之間按照時間關系通過區塊Hash連接.全局賬本實際上從初始區塊到最新區塊的數據鏈條,這也是區塊鏈名字的由來.全局賬本由所有參與節點共同維護,每一個節點各自維護本地的全局賬本,節點通過定期和鄰居節點交換信息使全局賬本保持同步.持有不同全局賬本的節點不能參與后續的交易.
區塊鏈技術采用共識機制保證所有合法節點維持的全局賬本是相同的.常見的共識機制包括POW機制[10]、POS機制[11]、PBFT機制[12]等.POW機制的核心思路是設置一個數學難題,讓參與節點求解難題,在求解過程中付出最大工作量(算力)的節點將被選擇為記賬節點,即由此節點生成新的區塊.其他節點通過接受此區塊更新自己的全局賬本.通過選擇一個特定用戶記賬,解決了多用戶記賬帶來的數據不同步問題.但是此類共識機制將浪費大量的算力,同時導致記賬權逐步被擁有大額算力的用戶(例如礦池)壟斷,帶來很多的安全問題.POS機制通過使用幣天(節點持有的數字貨幣和持有的天數)來選擇記賬節點,不需要消耗大量的計算資源,目前被很多應用作為POW的替代機制.此外,還有許多共識機制從速度、安全性等角度做出了改進,滿足區塊鏈技術在不同業務場景的需要.
為了鼓勵更多用戶參與共識,提高系統的安全性,最初的區塊鏈技術中設置了激勵機制獎勵參與共識的用戶.例如在比特幣中,參與記賬的節點被稱為礦工,成功獲得記賬權的礦工節點將收到比特幣作為獎勵.但是隨著區塊鏈技術的發展,區塊鏈的應用場景從公有鏈衍生到聯盟鏈和私有鏈,在這些場景中節點是可控的,因此不需要設置額外的激勵機制.
3) 應用層.應用層提供針對各種應用場景的程序和接口,用戶通過部署在應用層的各種應用程序進行交互,而不用考慮區塊鏈底層技術細節.目前典型的區塊鏈應用包括數字貨幣應用、數據存證應用、能源應用等.
數字貨幣應用是區塊鏈中最早出現的應用,除了比特幣以外,目前出現了大量的競爭幣,例如以太幣、Zcash、門羅幣等.區塊鏈中的數字貨幣是由被稱為礦工的節點在參與區塊鏈共識機制時創建.普通用戶可以通過交易所或者私下交易的方式購買數字貨幣.用戶持有的數字貨幣可以在數字貨幣系統中進行交易,用于購買商品或者服務.目前已有很多大型的企業和商戶支持數字貨幣交易,例如微軟和亞馬遜.
數據存證應用是區塊鏈技術重要的應用方向.區塊鏈中的全局賬本具有不可篡改、抗攻擊能力強的特點,非常適合存儲重要的數據資料,例如知識產權文件、金融交易記錄等.此類應用一般由區塊鏈公司開發便捷的存證系統,普通用戶通過存證系統上傳文件資料,然后由系統完成后續寫入區塊鏈的流程.存證成功后,用戶使用系統返回的交易Hash值查看存儲記錄.
1.2區塊鏈隱私定義
信息系統中隱私通常是指數據擁者不愿意被披露的敏感數據或者數據所表征的特性[13].
區塊鏈技術為了在分散節點之間維持數據同步并對交易達成共識,必須公開一些信息,例如交易內容.另一方面,為了保護用戶隱私,必須對一些敏感數據進行處理,減少隱私泄露的風險.通過分析區塊鏈技術的特點,本文將區塊鏈中的隱私分為2類.
定義1. 身份隱私.身份隱私是指用戶身份信息和區塊鏈地址之間的關聯關系.
區塊鏈地址是用戶在區塊鏈系統中使用的假名,通常作為交易的輸入賬號或者輸出賬號.地址的格式已在1.1節介紹.區塊鏈系統中地址是由用戶自行生成,與用戶身份信息無關,用戶創建和使用地址不需要第三方參與.因此,相對于傳統的賬號(例如銀行卡號),區塊鏈地址具有較好的匿名性.但是,用戶在使用區塊鏈地址參與區塊鏈業務時,有可能泄露一些敏感信息,例如區塊鏈交易在網絡層的傳播軌跡,這些信息有可能被用于推測區塊鏈地址對應的真實身份.
定義2. 交易隱私.交易隱私是指區塊鏈中存儲的交易記錄和交易記錄背后的知識.
在早期的區塊鏈數字貨幣應用中,交易記錄通常是公開的,不需要額外的保護措施.但是隨著區塊鏈技術被應用到銀行等金融領域,交易記錄屬于重要的敏感數據,需要采取額外措施限制非授權用戶的使用.此外,交易記錄通常能夠反映一些敏感知識,有可能泄露用戶的隱私.例如用戶購物的交易記錄能夠反映用戶的消費水平、生活狀態等.
身份隱私和交易隱私是用戶在使用區塊鏈技術時需要重點保護的內容,這些信息一旦泄露有可能對用戶造成危害.而且由于存儲在區塊鏈全局賬本中的數據無法刪除和篡改,即使用戶發現部分地址或者交易數據已經曝光,也不能采取挽救措施.例如,傳統領域中可以通過刪除已曝光數據來減少隱私傳播范圍,但是在區塊鏈中很難實行類似方案.因此,區塊鏈系統應該更加重視隱私問題,提高隱私防護能力.
2.1區塊鏈隱私保護存在的優勢和缺陷
區塊鏈技術在隱私保護方面具有一些突出優勢,能夠解決一些中心化服務器面臨的隱私泄露問題.因此已經被應用到許多需要保護隱私的場景,例如基于區塊鏈技術的匿名投票.另一方面,區塊鏈技術采用的去中心化架構和數據存儲機制給隱私保護帶來一些不利因素.表1分析了區塊鏈技術在隱私保護方面存在的優缺點.
區塊鏈技術在隱私保護方面的優勢包括:
1) P2P網絡很難實現網絡竊聽.區塊鏈網絡是一種P2P網絡,節點之間采用中繼轉發的模式進行通信,傳統網絡中通過竊聽網絡流量發現用戶之間通信關系的方法不適用.例如區塊鏈網絡中,當節點之間需要進行交易時,發送方首先將交易信息發給自己的鄰居節點,收到信息的鄰居節點再將信息轉發給自己的鄰居節點,以此類推,信息將逐漸廣播到整個網絡.接收方節點最終將從網絡中收到交易信息,而不需要和發送方直接通信.因此,攻擊者很難通過竊聽發現網絡中傳播信息的真實來源和去向.
2) 區塊鏈技術支持匿名交易.區塊鏈交易中使用的地址(類似于銀行卡賬戶)通常由用戶自行創建和保存,不需要第三方參與,地址本身和用戶身份信息無關.此外,區塊鏈地址通常具有非常大的地址空間,出現碰撞的概率非常低,這使得用戶可以為每次交易生成不同的地址,增強交易的匿名性.例如比特幣地址對應的私鑰空間是2256,用十進制表示是1077,而可見宇宙被估計只含有1080個原子[14],因此比特幣系統有充足的地址空間支持一次性地址策略.
3) 去中心化架構能夠有效應對網絡攻擊.采用區塊鏈技術的應用程序通常是去中心化架構,不需要在中心服務器上存儲賬戶、密碼等敏感信息,能夠避免傳統服務器被攻擊而導致的數據泄露風險.
區塊鏈技術在隱私保護方面的不足之處包括:
1) 區塊鏈網絡中的節點容易遭受攻擊.區塊鏈網絡中的節點通常是個人電腦,和傳統網絡架構中的專用服務器相比性能低、抗攻擊能力差.此外,在中心化架構中,管理者只需針對一臺或者少數幾臺服務器進行重點保護.而在區塊鏈網絡中,所有節點地位平等,很難對地理位置分散的眾多節點采用相同的安全措施.攻擊者可以尋找安全薄弱的節點入侵區塊鏈網絡.
2) 區塊鏈交易之間的關聯性可以被用于推測敏感信息.區塊鏈中所有交易都存儲在公開的全局賬本中,攻擊者很容易獲得所有交易信息.通過分析交易中的關聯關系,攻擊者能夠逐步降低區塊鏈地址的匿名性,甚至發現匿名地址對應用戶的真實身份信息.
3) 區塊鏈應用面臨多種安全威脅.區塊鏈技術仍處于發展初期,存在多種安全缺陷,有可能對區塊鏈應用造成安全威脅.例如基于以太坊的眾籌應用DAO因為黑客攻擊,被竊取了300多萬個以太幣[15].

Table 1 The Advantages and Disadvantages in Aspect of the Privacy Protection on Blockchain Technology
2.2網絡層面臨的隱私威脅
根據2.1節對網絡層缺陷的分析可知,網絡層的主要威脅是惡意節點可以輕易接入網絡,監聽網絡層的通信數據.以比特幣為例,能夠獲得信息包括:
1) 節點的IP地址.通過部署探針節點,攻擊者可以搜集比特幣網絡中節點的IP地址.基于IP地址可以分析出網絡規模、節點在不同國家的分布情況、節點的在線規律等,可以為進一步分析提供素材.我們利用開源程序搜集比特幣網絡中節點的IP信息.經過一周的搜集,發現比特幣服務器節點IP 9 713個,客戶端節點IP 36 514個.針對服務器節點,除了IP以外,還能搜到許多額外的身份信息.如圖3所示.

Fig. 3 The server information of bitcoin node圖3 比特幣服務器節點信息
2) 節點之間的拓撲關系.通過采用主動獲取和被動監聽的方式,探針節點可以用于搜集節點之間的拓撲關系.比特幣網絡中節點的拓撲關系主要是指節點的鄰居節點信息.鄰居節點最多包括8個外向節點和117個內向節點[16].基于節點拓撲關系,攻擊者可以分析網絡層信息的傳播路徑,確定信息的始發節點.
3) 網絡傳輸信息.比特幣網絡層傳播的數據沒有加密,攻擊者可以直接讀取網絡中傳播的交易信息的內容,例如發送地址和接收地址等.通過將發送地址和信息的始發節點相關聯,能夠獲得匿名地址背后的真實身份信息.
基于上述信息,攻擊者有可能將網絡層捕獲的交易信息和始發節點的IP地址關聯,從而對用戶身份隱私造成威脅,這種分析方法被稱為交易溯源技術.
區塊鏈網絡中,節點采用中繼轉發的模式傳播信息,此模式已在1.1節介紹.根據轉發交易的時間順序,可以將參與轉發的節點分為始發節點和中繼節點.始發節點是指第1個發出信息的節點,中繼節點是指除始發節點以外的節點.如果能夠找到網絡中傳播的交易信息對應的始發節點,就可以將交易中的輸入地址和具體的IP信息關聯,從而降低地址的匿名性.但是,由于始發節點轉發的交易數據和中繼節點轉發的交易數據在內容上并沒有明顯區別,很難分辨交易數據是否來自于始發節點.因此,在網絡層獲取身份隱私的主要難點在于如何從眾多的信息中找到由始發節點轉發的交易數據.
Koshy等人[17]通過分析比特幣交易傳播規律,發現可以利用特殊交易模式尋找始發節點.比特幣中交易信息采用中繼轉發的模式進行傳播.正常情況下每條交易信息將被多個節點轉播,且每個節點只轉發一次.但是在一些特殊情況下,交易信息可能只被1個節點轉發或者被個別節點多次轉發.這些特殊交易可以用于推測交易的始發節點.例如只被1個節點轉發的交易通常是由于交易格式存在問題,只被始發節點轉發一次,其他節點由于驗證失敗拒絕轉發.利用特殊交易尋找始發節點的方法簡單易行,但是由于特殊交易模式占所有交易的比例較小(論文實驗中特殊交易的比例低于9%),因此效果有局限.
Kaminsky[18]在2011年的黑帽大會上提出:“第一個告訴你交易的節點可能就是交易的始發節點”.攻擊者只需要盡可能多地連接服務器節點,記錄從不同節點轉發的交易信息,然后可以直接判定首先轉發信息到達探針節點的節點就是始發節點.這種方法實現簡單,推測的準確率將隨著探針節點連接數的增加而不斷提高.但是這種方法存在一些缺陷:首先,比特幣中的很多節點并不對外提供服務,例如部署在NAT服務后面的節點無法被探針節點連接.其次,交易數據在網絡中傳播時面臨網絡延遲等干擾,始發節點轉發的交易信息可能因為傳播延遲落后于其他中繼節點轉發的信息.
Biryukov等人[19]在Kaminsky提出的算法上進行優化,核心思路是始發節點轉發交易后,始發節點的鄰居節點會是第2批轉發交易的節點,因此可以利用鄰居節點轉發信息的時間排序來定位始發節點.作者將探針搜集的交易信息按照到達時間分類排序,然后針對每一類交易抽取排名前8的節點和8個鄰居節點進行比對,如果重合率超過閾值,即認為節點是交易的始發節點.這種方法擴展了判斷依據,能夠減少網絡延遲等干擾條件的影響,有效提高推測的準確率.實驗顯示識別準確率為11%,如果采用一些輔助的攻擊,準確率能提高到60%.此外,這種攻擊方法可以發現隱藏在NAT服務后面的客戶端節點.
2.3交易層面臨的隱私威脅
區塊鏈技術中存儲交易信息的全局賬本是公開的,任何加入區塊鏈網絡的節點都可以獲得完整的副本.通過分析全局賬本中的交易記錄,潛在攻擊者有可能對用戶的交易隱私和身份隱私帶來威脅.
1) 交易隱私威脅.攻擊者可以通過分析交易記錄獲得有價值的信息.例如特定賬戶的資金余額和交易詳情、特定資金的流向等.
2) 身份隱私威脅.攻擊者在分析交易數據的基礎上,可以通過結合一些背景知識獲得交易者的身份信息.
我們以比特幣為例,介紹交易層存在的隱私威脅.
2.3.1 交易隱私威脅
在比特幣中,每一筆交易都是可追溯的.交易的輸入地址來源于之前一筆交易的輸出,交易的輸出地址又會在其他交易中作為輸入.根據交易之間的鏈式關系,分析人員可以獲得2種信息:
1) 任何一筆資金的使用情況.比特幣中的資金來源于“挖礦”過程產生的比特幣,比特幣被挖出后首先記錄在礦工的挖礦地址上,然后通過交易的形式轉移給其他地址.由于挖礦信息和交易信息都將記錄在全局賬本中.因此,通過分析這些公開數據,攻擊者可以獲得任何一筆比特幣的所有交易過程.
2) 任何一個比特幣地址的相關交易.每一筆交易中詳細記錄所有的輸入地址和輸出地址的信息.因此,分析人員可以在全局賬本中通過檢索特定地址發現全部相關交易.
基于上述信息,分析人員通過對具有關聯性的區塊鏈地址進行聚類分析,能夠得到許多有價值的信息:
1) 發現不同地址之間的資金關系.賬戶之間的資金交易能夠反映出很多有價值的信息,尤其對一些特殊賬戶,這點更為明顯.Reid和Harrigan[20]針對維基解密公布的賬戶進行數據分析,能夠統計出維基解密網站公布的比特幣地址的資金余額、資金來源和資金流向.論文還針對比特幣中公開的一個盜竊地址進行分析,發現與盜竊地址交易最密切的5個地址,揭示攻擊者盜竊前的行為和盜竊后的資金流向.
2) 跟蹤特殊交易.針對大額或者涉嫌盜竊等惡意行為的特殊交易,可以通過持續觀察,監控特殊交易后續的交易信息,追蹤資金流向.Liao等人[21]通過分析比特幣交易數據,對勒索軟件CryptoLocker的攻擊行為進行了分析.CryptoLocker是一類勒索軟件的統稱,通過加密受害者的文件并以比特幣的形式索取贖金.作者以勒索軟件公開的比特幣地址為起點,研究關聯交易,最終找到了968個屬于該組織的地址,鑒定出價值1 128.40 BTC的贖金交易.這些信息有助于發現犯罪分子的真實身份,遏制此類勒索事件.
3) 發現交易規律.研究數字貨幣的交易規律有助于提高系統的安全性.Ron和Shamir[22]關注比特幣交易的統計數據.作者發現了364個單筆交易大于50 000 BTC的特殊交易,并針對其中一筆90 000 BTC的交易研究交易規律.作者發現這種大額交易會采用多種方式將資金分散到不同的賬戶,包括長鏈交易模式、分叉合并模式、循環模式、存儲賬戶模式和二叉樹模式.
2.3.2 身份隱私威脅
區塊鏈交易中存在很多潛在的知識,利用這些潛在知識有可能推測出交易數據背后的身份隱私.
第1種潛在知識來源于比特幣本身的設計:
1) 同一個交易中的所有輸入地址都隸屬于同一個用戶集合(同一個人或者一個機構).由于多輸入交易中的每個輸入都需要單獨簽名,因此大多數多輸入交易都是由同一個用戶發起.這項推測條件被很多研究作為啟發式推測條件使用[20-22],取得較好的效果.
2) 在同一個coinbase交易[23]中的多個輸出地址屬于同一個用戶集合,例如礦池.這項推測條件的背景是很多礦工為了增加收入而加入礦池進行集體挖礦,挖礦完成后所有參與挖礦的礦工地址都會記錄在coinbase交易的輸出地址區域.
3) 找零地址和輸入地址隸屬于同一個用戶.找零地址用于接收交易中的找零資金,并在以后的交易中由比特幣程序自動選擇作為輸入地址.因此,如果能夠識別出找零地址,就能夠發現兩個交易中輸入地址之間的關聯關系[24].找零地址的特征包括:作為輸出地址的情況通常只會出現一次;找零地址不會同時出現在輸入地址和輸出地址;輸出地址中不能只有找零地址.
此類的潛在知識是由于比特幣本身的設計造成的,分析人員利用這些潛在知識,可以發現不同地址之間的關聯性,降低區塊鏈地址的匿名性.Meiklejohn等人[25]使用啟發式的聚類分析技術分析區塊鏈中的交易數據,能夠識別出屬于同一個用戶的不同地址.作者針對絲綢之路網站的公開地址和一些盜竊案件相關的地址進行分析,發現了很多有關聯的地址.Zhao[26]提出一種針對比特幣交易數據的聚類過程,針對比特幣全局賬本中35 587 286個地址進行分析,得到13 062 822個不同的用戶集合.
第2種潛在知識來源于用戶使用區塊鏈時產生的一些規律信息.例如:
1) 交易特征.區塊鏈全局賬本中交易的特征通常和實際發生的交易過程相匹配.在日常生活中很多交易行為都有各自的特點,例如早餐店的交易經常發生在早晨,交易金額集中在1~20元左右;加油站交易時間比較平均,但是交易金額集中在幾個特殊值100元、200元或者是加滿的價格(隨著油價的變化而變化,具有普遍的規律性).當用戶使用區塊鏈數字貨幣完成這些交易時,這種交易特征會反映在區塊鏈交易中.因此,攻擊者可以通過分析區塊鏈交易數據背后的交易特征,給匿名賬戶進行身份畫像,從而將匿名的區塊鏈地址和用戶真實身份匹配.Androulaki等人[27]在學校中設計模擬實驗,學生使用比特幣作為日常交易貨幣,分析人員采用基于行為的聚類技術對比特幣交易數據進行分析.作者發現即使用戶采用比特幣推薦的隱私保護方法(一次性地址策略),也能夠將40%的學生身份和區塊鏈地址匹配.
2) 交易規律.不同用戶在使用區塊鏈服務時有不同的行為規律.這些規律包括交易時間間隔(RTI)、資金流向(coinflow)、連通性(交易中輸入地址和輸出地址的數目)等.Monaco[28]對用戶的交易規律進行抽象,提出12種參數(時間間隔RTI、資金流向CF、輸入輸出數量差IOB等),然后提出一種基于參數的身份識別方法.通過對6個月的比特幣數據進行實驗,作者發現最佳的參數組能夠有效識別匿名區塊鏈地址對應的真實用戶身份,識別精度達到62%,同時錯誤率低于10.1%.
2.4應用層面臨的隱私威脅
應用層的主要角色包括使用區塊鏈技術的用戶和提供區塊鏈服務的服務商.這兩者在處理區塊鏈業務時都有可能帶來隱私泄露威脅.
1) 用戶行為導致的隱私泄露威脅.區塊鏈是一種新興技術,用戶可能因為不了解區塊鏈安全機制進行了一些可能泄露隱私信息的行為.例如,很多用戶將自己的比特幣地址發布在論壇或者其他社交網站上,攻擊者可以通過社會工程學等方法將這些比特幣地址和用戶的真實身份關聯.Meiklejohn等人[25]搜集了比特幣論壇上公開的比特幣地址,然后利用污點分析和聚類方法發現了很多比特幣地址的身份信息.
2) 區塊鏈服務商導致的隱私泄露威脅.區塊鏈技術本身提供了多種保護隱私的方法,但是很多提供區塊鏈服務的網站存在顯著的隱私泄露隱患.2014年,全球最大的比特幣交易平臺Mt.Gox遭遇大規模比特幣盜竊案件,網站存儲的涉及比特幣的身份信息被泄露到黑客手中.2015年,比特幣論壇BitcoinTalk遭受網絡攻擊,攻擊者竊取了49.9萬用戶數據,包括用戶名、電子郵箱、密碼、生日、保密問題.
攻擊者獲得這些敏感信息后,能夠將區塊鏈全局賬本中的匿名地址和真實用戶相關聯,掌握用戶全部的交易信息,侵害用戶的隱私.
3.1區塊鏈隱私保護的特點
區塊鏈技術采用一系列密碼學算法在非信任節點之間建立信任關系,而不是依賴中心機構的信用背書,這種特殊的安全模型使得區塊鏈下的隱私保護不同于傳統的隱私保護,存在的差異主要分為2類:
1) 隱私保護的側重點不同.在傳統隱私保護方案中,所有的隱私數據都被保存在可信節點的中心服務器內部,側重點在于保護數據在存儲階段和傳輸階段不被外泄.而在區塊鏈技術中,為了維護分布式賬本的一致性,保證交易的公信力,區塊鏈中的所有交易數據必須公開給全網所有參與節點(注:部分區塊鏈技術支持輕節點,不用存儲全部數據,而是在需要時向其他全節點索要數據).因此,區塊鏈技術無法采用中心存儲的方式保護隱私,而是將側重點落在保護交易的匿名性,即雖然所有的交易細節都是可見的,但是攻擊者無法根據交易數據找到交易雙方真實的身份信息,從而無法對用戶造成損害.
2) 隱私保護面臨很多限制條件.區塊鏈技術中運行區塊鏈程序的節點通常是家用主機,而非傳統服務器,很多復雜的隱私保護算法在區塊鏈中是不實用的.此外,設計隱私保護算法時必須避免破壞區塊鏈的共識機制.例如,對數據加密是保護隱私的常見方法,而在區塊鏈中直接對交易信息加密,會使得其他節點無法驗證交易的正確性,導致交易作廢.
根據區塊鏈技術的特點,我們將區塊鏈中的隱私保護機制分為3類:
1) 網絡層的隱私保護.網絡層包含底層通信的整個過程,包括區塊鏈節點設置模式、節點通信機制、數據傳輸機制等.在區塊鏈最早的應用比特幣系統中,節點不需要審批,任何用戶都可以通過運行比特幣程序成為區塊鏈的節點.節點之間利用P2P協議進行相互通信和數據傳輸.這種機制導致攻擊者不僅可以監聽整個網絡的通信信息,還可以主動和其他節點通信獲取隱私數據.因此,網絡層隱私保護的側重點是限制節點的權利,對抗被動監聽和主動攻擊.
2) 交易層的隱私保護.交易層包含區塊鏈中數據產生、驗證、存儲和使用的整個過程.區塊鏈技術為了保證交易的可靠性、不可篡改性和分布式一致性,設計了特殊的數據結構和共識機制.這些機制保證了在分布式不可信的網絡節點間維護統一的高公信力的賬本.但是,這些機制也導致了隱私泄露風險.完整的、公開的交易賬本不僅會泄露交易數據,還會泄露數據背后的交易者之間的關系,甚至泄露身份隱私.因此,交易層隱私保護的側重點是滿足區塊鏈基本共識機制的條件下,盡可能隱藏數據信息和數據背后的知識.
3) 應用層的隱私保護.應用層包含區塊鏈技術被外部使用的過程.外部使用即包括普通用戶使用區塊鏈程序,也包括其他應用程序調用區塊鏈的接口.區塊鏈被外部使用的過程存在泄露交易隱私和身份隱私的威脅.例如,用戶在論壇等社交網站公布自己的比特幣地址.因此,應用層隱私保護的側重點包括提升用戶的安全意識、提高區塊鏈服務商的安全防護水平.
3.2網絡層的隱私保護機制
通過分析網絡層的攻擊方法,可以看出攻擊者主要是通過監聽網絡層信息來搜集交易隱私和身份隱私.因此,網絡層防御機制的重點是增加攻擊者搜集網絡層數據的難度.
現有的防御機制可以分為3類:
1) 限制接入.對區塊鏈中的節點進行授權控制,沒有得到授權的節點無法接入網絡,不能獲得交易信息和區塊信息,這將從根本上增加網絡層攻擊的難度.但是,這種方法需要修改區塊鏈的運行機制,目前主要運用在私有鏈或者聯盟鏈的架構中.例如,在超級賬本(hyperledger)[29]中,所有節點必須經過CA節點的認證才能接入網絡.
2) 惡意節點檢測和屏蔽.在公有鏈架構中,不能直接限制節點接入網絡,但是可以采取檢測機制,發現惡意節點并加入黑名單,阻止惡意節點繼續搜集敏感信息.Huang等人[30]提出一種基于行為模式聚類的惡意節點檢測方法,能夠快速定位惡意節點,消除惡意節點帶來的隱私泄露隱患.
3) 網絡層數據混淆.為了阻止攻擊者通過發現網絡拓撲獲得身份隱私信息,一些研究人員提出可以將區塊鏈運行在具有隱私保護特性的網絡上,例如洋蔥網絡(Tor)[31].洋蔥網絡是一種應用層的匿名通信技術,通信數據首先被多層加密然后再由若干個被稱為洋蔥路由器組成的通信線路上傳送,攻擊者很難發現發送者的真實IP.目前洋蔥網絡是比特幣官方推薦的保護隱私的方法.另外一種以隱私保護著稱的數字貨幣門羅幣采用一種替代Tor的匿名通信協議I2P[32].相對于Tor協議使用同一條網絡鏈路實現數據的發送和接收,I2P使用多條鏈路發送數據和接受數據,能夠更好地隱藏IP,防止通過網絡層信息實現交易溯源[33].
3.3交易層的隱私保護機制
通過分析交易層的攻擊方法,可以看出攻擊者主要是通過分析公開的區塊鏈交易數據獲得隱私信息.因此,交易層保護機制的側重點是在滿足區塊鏈正常運行的基礎上,防止惡意節點獲得準確的交易數據.目前,研究人員已經提出多種交易層的隱私保護方案,這些方案在技術架構、實現方法、實現策略上各不相同,能夠滿足不同的隱私保護需求.區塊鏈技術從數據存儲的角度可以看做是一種分布式數據庫,因此我們將不同的保護機制按照數據庫隱私保護的分類方法進行3種分類:
1) 基于數據失真的技術.通過將交易內容的部分數據進行混淆,使攻擊者無法獲得準確的數據,增加分析難度.這種方案的難點在于不破壞交易結果的條件下,防止攻擊者發現不同地址之間的交易關系.
2) 基于數據加密的技術.通過將交易信息加密,使攻擊者無法獲得具體的交易信息,從而無法開展分析.這種方案的難點在于實現加密的同時,必須保證原有的驗證機制不受影響.
3) 基于限制發布的技術.通過發布少量或者不發布交易數據,減少攻擊者能夠獲得的交易數據,增加分析難度.
3.3.1 基于數據失真的保護方案
由于區塊鏈交易會詳細記錄在全局賬本中,攻擊者可以通過分析交易內容發現輸入地址和輸出地址之間的關系,進而推測出交易隱私和身份隱私.為了對抗這種攻擊,一種直觀的方法是在不改變交易結果的前提下對交易內容進行混淆,增加攻擊者的分析難度.這種防御方法在數字貨幣領域應用廣泛,被稱為“混幣”機制.混幣機制最早來源于Chaum 1981年發表的文章[34],最早是用于實現雙方之間的匿名通信.基本思想可表達為
CM(Z1,CA(Z0,m),A)→CA(Z0,m),A,
(1)
式(1)左側為發送方發給中間人的信息,式(1)右側為接收者從中間人獲取的信息.發送方使用中間人的公鑰CM對內容加密,然后發送給中間人.在發送過程中,即使信息被攻擊者截獲,也不能解密.中間人收到信息后使用自己的私鑰對內容解密,能夠得到“Z1,CA(Z0,m),A”.其中,“Z1”用于確保傳送信息的準確性,中間人驗證合法后將丟棄此參數.“CA(Z0,m),A”是用接收者的秘鑰“CA”進行加密的內容,中間人無法解密,A是通信目的地址.中間人將把密文“CA(Z0,m)”發送給地址A.接收方使用自己的秘鑰解密“CA(Z0,m)”,就可得到傳送的密文內容“Z0”和“m”.
通過采用中間人中轉信息,攻擊者無法準確判定發送者和接收者是否進行通信.此方法還可以通過采用多個中間人中轉的方式提升攻擊者的分析難度.
數字貨幣中的混幣機制借鑒了上述思想,即采取機制隱藏交易中輸入地址和輸出地址之間的關系.由于這種機制中交易數據沒有減少,只是對交易來源和交易去向進行模糊,因此可以歸類于數據失真的隱私保護技術.
在數字貨幣領域,混幣技術主要可以分為基于中心節點的混幣方法和去中心化的混幣方法.
1) 基于中心節點的混幣方法.此類方案的核心特點是混幣過程由第三方節點執行.參與混幣的用戶首先將資金發送給第三方節點,然后第三方節點對資金進行多次交易,最終將資金轉移給參與用戶指定的地址.由于資金經過第三方節點的處理,攻擊者很難發現參與混幣用戶的資金流向.
此類方法簡單易行,不需要額外的技術改進,適用于比特幣以及其他數字貨幣.目前有很多網站提供這種混幣服務.例如Bitlaunder[35],Bitcoin Fog[36],Blockchain.info[37].用戶通過支付混幣費用,就可以使用網站提供的混幣服務.
但是,這種方法由于需要第三方節點提供混幣服務,存在很多天然的缺陷,包括:
① 額外的收費和較慢的混幣速度.提供混幣服務的節點通常會收取混幣費用,而且隨著混幣次數的增加,費用會直線上升.此外,混幣的時間也會隨之增加.通常的延遲時間為48 h,交易費用為1%~3%.
② 存在盜竊資金的風險.此方案中,第三方節點收到用戶的資金后有可能不履行協議,盜竊用戶的資金.用戶沒有有效的反制措施.
③ 中間節點可能泄露混幣過程.此方案中第三方節點了解全部的混幣過程,用戶無法保證第三方節點不會泄露混幣過程信息.
針對這些缺陷,出現了很多改進的方法.Bonneau等人[38]提出一種改進的中心化混幣方案mixcoin.這種方案增加了審計功能,一旦第三方節點違規操作,用戶可以公布簽名數據,使違規的中間人迅速丟掉聲譽,不能繼續提供混幣服務.Valenta和Rowan在mixcoin的基礎上,采用盲簽名技術對中心化混幣方案進行進一步優化,他們設計的Blindcoin方案[39]能夠保證第三方節點正常提供混幣服務的同時,不能建立起輸入地址和輸出地址的映射關系,因此能夠防止第三方泄露混幣過程信息.ShenTu和Yu[40]提出一種基于橢圓曲線的盲簽名混幣方案,能夠在保證匿名性的基礎上提升計算效率.2015年上線運營的匿名數字貨幣達世幣(DASH)[41],從經濟學的角度解決中心化混幣方案面臨的威脅.達世幣中執行混幣過程的中心節點被稱為主節點,所有主節點必須向系統支付1 000達世幣(達世幣中的數字貨幣)的押金才能獲得執行混幣操作的權利.通過設置押金,增加了主節點違規操作的代價.
2) 去中心化的混幣方法.此類方案的核心特點是混幣過程不需要第三方節點執行.最早的方案是由Gregory Maxwell在比特幣論壇上提出的CoinJoin機制[42],核心思想是通過將多個交易合并成1個交易,隱藏交易輸入方和輸出方的對應關系.對于一個多輸入-多輸出交易,潛在攻擊者無法通過閱讀交易信息有效區分輸入和輸出之間的關系.CoinJoin思想被運用在多種匿名比特幣交易中,例如Dark Wallet[43],CoinShuffle[44]和JoinMarket[45].
CoinJoin機制能夠增強所有用戶的隱私保護能力.一旦數字貨幣系統中部分節點采用CoinJoin協議,即使其余用戶沒有使用這種協議,也不能采用原有的推測方法,認為一個交易中的多個輸入地址隸屬于同一個用戶.CoinJoin方案不依賴第三方節點,能夠有效避免中心化混幣方案存在的資金偷竊、混幣費用等問題.但是由于沒有中心節點,CoinJoin方案中參與混幣的用戶必須自行協商和執行混幣過程,這存在許多缺陷:
① 在尋找參與混幣用戶的過程中,可能需要中心節點,面臨中心化混幣同樣的威脅.
② 在節點協商的過程中,參與混幣的節點可能會發現其他節點的混幣信息.
③ 在執行混幣過程中,如果部分節點違規操作,可能導致混幣過程失敗.攻擊者可以利用這點以低成本實現拒絕服務攻擊.
④ CoinJoin方案形成的多輸入多輸出交易將記錄在全局賬本中,用戶無法抵賴他們曾經參與過混幣.
針對這些缺陷,出現了很多改進的方法.Ruffing等人提出一種完全去中心化的比特幣混幣協議CoinShuffle[46].CoinShuffle方案在CoinJoin的基礎上設計一種輸出地址洗牌機制,能夠在不需要第三方的條件下完成混幣過程,還能保證混幣參與方不知道其他交易方的對應關系.但是CoinShuffle方案在混幣過程中要求參與者同時在線,容易遭受拒絕服務攻擊.Bissias等人設計一種能夠利用區塊鏈中的廣告信息匿名發現混幣參與方的去中心化混幣協議Xim[47].Xim采用一種多輪兩方混幣協議,具有可調控的成功率.與CoinJoin機制相比,Xim方案中惡意節點發動攻擊的代價將隨著參與混幣用戶的數量線性增加,能夠有效對抗女巫攻擊和其他拒絕服務攻擊.CoinParty[48]方案采用安全多方計算協議實現了一種改進方案,能夠在部分混合節點惡意操作或者失效的情況下,保證混幣過程的有效性.門羅幣(Monero)[49]是一種以隱私保護為主要特征的新型數字貨幣,采用環簽名機制實現混幣過程.相對于其他方案,門羅幣中用戶實施混幣過程時不需要和其他用戶交流.任何一個用戶可以自行實現混幣,能夠有效杜絕去中心化混幣方案面臨的拒絕服務攻擊、混幣參與用戶泄露混幣過程等問題.
混幣方案操作簡單、適用性廣,在區塊鏈數字貨幣中應用廣泛,有很多改進方案.我們從是否依賴第三方、是否存在盜竊風險、是否需要混幣費用等多個方面進行對比分析.如表2所示:

Table 2 Comparison of Mix Mechanism in Blockchain
3.3.2 基于加密機制的保護方案
加密機制是隱私保護領域的常用方案.通過對敏感數據加密,確保只有持有秘鑰的用戶能夠閱讀數據,其他人即使獲得密文也無法解密,從而避免數據泄露.傳統區塊鏈應用中數據是明文存儲的,任何節點都可以維護數據副本,驗證新產生的交易和區塊,這是區塊鏈交易公信力和可靠性的基礎.因此,在區塊鏈中采用加密技術保護隱私必須保證節點可以在加密數據上完成交易驗證任務.此外,由于區塊鏈交易需要由所有節點共同驗證,因此必須減少加密機制對驗證效率的影響.
區塊鏈中需要加密的對象主要是具體的交易信息,包括交易的來源、去向和交易的內容.在數字貨幣應用中,已經出現一些基于加密的保護方案:
1) 門羅幣的加密方案.門羅幣是一種專注于隱私保護的數字貨幣,采用多種隱私保護機制[50].其中,為了防止外部人員從賬本中發現一筆資金的真實去向,門羅幣對交易輸出地址進行加密.傳統的數字貨幣中,交易輸出地址的內容是接收方的公鑰信息和地址信息,觀察者可以直接發現資金的去向.在門羅幣中,輸出地址是由接收方的公鑰和發送方產生的隨機參數加密后得到的新地址信息,由于隨機參數只有發送方掌握,因此觀察者無法發現新地址信息和接收方之間的關系.通過產生不同的隨機參數,可以保證每一次交易的輸出地址都不同,而且相互之間沒有關聯關系.
2) Zcash的加密方案.Zcash是一種新型的數字貨幣[51],前身為Zerocoin[52]項目.Zcash使用承諾函數將每一筆交易的來源、去向和金額封裝到若干參數中,同時使用零知識證明技術zk-SNARKs[53]來證明交易.證明過程不需透露相關信息,因而可以隱藏區塊鏈交易的發送方、收款方乃至交易的價值.花費Zcash需要的若干參數由交易的發起方使用非對稱加密技術進行加密,只有掌握正確查看密鑰的用戶才可訪問這些內容.Zcash是目前隱私保護最好的數字貨幣,但其采用zk-SNARKs算法生成證明的過程非常緩慢,通常需要1 min才能生成新的證明,在效率上存在瓶頸.
3.3.3 基于限制發布的保護方案
限制發布方案是指直接將涉及隱私的數據從公開數據庫中移除.相比混幣機制和加密機制,這種思路直接徹底,能夠從根本上保證隱私數據的安全.但是,這種方法對業務場景的限制較多,需要對協議底層進行較多修改.常見方案包括2種:
1) 閃電網絡.閃電網絡是比特幣中的一種微支付技術[54],用于提供可靠的鏈外交易(交易細節不需要記錄在區塊鏈上),從而提升區塊鏈數字貨幣的交易規模,滿足微支付需求.閃電網絡技術實施后,用戶之間的大部分交易細節在線下執行,只有第一次交易和最后一次交易需要記錄在區塊鏈賬本上,因此能夠有效保護交易隱私.
2) 聯盟鏈和私有鏈.傳統的區塊鏈應用大多數是基于公有鏈的,例如比特幣、以太幣.在公有鏈應用中,任何人都可以自由加入區塊鏈網絡,維護全部的交易數據,這使得公有鏈應用具有很高的公信力,但是這也帶來了身份隱私和數據隱私的威脅.為了更好地保護隱私,區塊鏈技術產生了聯盟鏈和私有鏈的分支.聯盟鏈中,多個行業單位構成聯盟,只有聯盟內的成員能夠維護區塊鏈數據,其他非授權節點不能接觸區塊鏈數據;私有鏈中,只有內部用戶才能維護區塊鏈數據.這2種新的架構從根本上關閉了非授權節點接觸數據的渠道,顯著降低隱私泄露的風險.
3.4應用層的隱私保護機制
通過分析應用層的攻擊方法,可知看出攻擊者主要是利用用戶不規范的操作和區塊鏈服務商的漏洞搜集交易隱私和身份隱私.因此應用層防御機制的重點是從用戶的角度提升保護能力.
用戶可以采用的防御方法通常有2種:
1) 使用具有隱私保護機制的區塊鏈應用.比特幣是區塊鏈技術在數字貨幣領域的第1個應用,在隱私保護方面存在明顯缺陷.攻擊者可以通過多種方法獲得身份隱私和數據隱私.在這種背景下,出現了許多隱私保護效果更好的替代貨幣,例如達世幣、門羅幣、零幣(Zcash).
達世幣在比特幣的基礎上增加了基于主節點的混幣策略,能夠隱藏資金流向.由于主節點需要支付大量押金,同時用戶可以配置使用多個主節點進行混幣操作,達世幣的混幣過程能夠有效減少同類混幣服務面臨的盜竊資金、泄露混幣過程等問題.
門羅幣采用環簽名技術模糊交易的輸入地址,增加攻擊者分析資金來源的難度.由于環簽名過程不需要其他節點的參與,避免了同類混幣服務面臨的拒絕服務攻擊和中間節點泄露混幣過程等威脅.
Zcash是目前隱私保護效果最好的數字貨幣.通過采用zk-SNARKs(簡潔的非互動性零知識證明)技術,能夠在滿足驗證和共識機制的條件下隱藏區塊鏈交易的發送方、收款方乃至交易的金額.
這些新型的數字貨幣采用密碼學技術保護交易數據,相對比特幣能夠更好地保護用戶的身份隱私和交易隱私.
2) 使用具有隱私保護機制的區塊鏈程序.不同的區塊鏈程序在隱私保護方面具有不同的特點,需要采用針對性的保護方法.以比特幣為例,冷錢包通過將秘鑰離線保存,能夠有效防止黑客攻擊,但是有可能出現存儲介質丟失和被盜帶來的安全風險,隱私保護的關鍵是保護存儲介質的安全性,可以采用多重備份、加密存儲等機制保護存儲介質的安全.本地錢包面臨黑客竊取錢包文件的風險,可以采用錢包加密、修改默認存儲位置、變換文件名等方式保護錢包文件.在線錢包的安全威脅主要是錢包服務器被黑客攻擊,在比特幣歷史上已經出現了多起嚴重的數據泄露事件.目前在線錢包網站主要采用冷錢包[55]和多重簽名技術保護賬戶隱私.表3介紹各種錢包程序的特點.

Table 3 Comparison of Blockchain Wallet
區塊鏈技術發展日新月異,隱私保護的重要性持續提升.但是,目前的隱私保護方案都存在一些缺陷,需要繼續進行研究.
在網絡層,雖然現有的交易溯源技術準確率低,還不具備大規模實施的條件,但是網絡層的安全威脅在區塊鏈技術體系中具有通用性,凡是采用P2P協議作為底層通訊協議的區塊鏈應用都存在這個隱患.現有的保護方案中,限制接入的方案只適用于聯盟鏈和私有鏈,在公有鏈中很難實施;惡意節點檢測和屏蔽機制是事后的補救措施,而且必須配合限制接入機制才能起到較好的防御效果.否則,攻擊者可以隨時通過更換IP等方式重新部署惡意節點;采用匿名通信協議能夠增加攻擊者監聽網絡層信息的難度.但是現有的匿名通信協議在效率、性能、易用性上還存在缺陷.例如比特幣官方推薦采用洋蔥網絡(Tor)保護隱私,但是這種方案已經被發現存在漏洞,攻擊者可以利用DOS攻擊強迫節點退出正常的Tor節點,然后再進行攻擊[56].此外,匿名通信協議通常伴隨著過于繁瑣的使用方法,這甚至會使部分用戶更容易遭受惡意軟件的威脅.
在交易層,基于數據失真的隱私保護方案實現簡單,適用于比特幣等現有的區塊鏈應用.但是此類方法的保護效果有限,分析人員仍有可能通過分析交易之間的關聯性發現隱藏的信息;基于加密機制的保護方案能夠有效應對基于數據分析的攻擊,但是此類方法必須對底層協議進行大幅改動,不適用于比特幣等現有的區塊鏈應用.此外,此類方案通常需要耗費更多的計算資源,在效率上存在瓶頸;基于限制發布的技術能夠有效降低敏感數據的數量,從源頭上降低隱私泄露的可能性.但是此類技術通常需要修改底層協議,實施難度較大.此外,這種技術由于改變了傳統區塊鏈技術中所有交易數據公開的特點,需要解決交易可靠性和共識機制面臨的問題.
在應用層,現有的方案主要是通過提高用戶安全意識和能力來減少隱私泄露的風險.然而,當用戶數量增加時,很難保證所有用戶具有相同的安全意識和防護能力.
基于上述問題,我們提出3項未來的研究方向:
1) 按需配置的網絡層安全防護機制.針對聯盟鏈和私有鏈,采用合適的訪問控制策略防止惡意節點接入和監聽網絡,從根本上增強網絡層的保護能力.此外,聯盟鏈或者私有鏈與傳統中心化架構有很多相似之處,可以采用傳統中心化架構中成熟的安全措施.針對公有鏈網絡,重點研究異常節點檢測的方法,及早發現和屏蔽惡意節點.此外,需要研究在效率、性能、易用性方面更好的匿名通信機制,替代現有的Tor等匿名通信方案.
2) 基于密碼學算法的交易層隱私保護機制.隨著數據分析技術的發展,傳統的混幣機制保護隱私的效果將逐漸降低.有必要研究采用密碼學算法保證混幣的安全性,例如零知識證明機制和同態加密機制.基于加密的保護方案應該充分考慮區塊鏈服務器在計算性能和存儲性能上的缺陷,設計通用性更高的加密方法.
3) 安全秘鑰技術.在應用層,除了提升用戶安全意識、增強區塊鏈服務商安全能力以外,重點是要研究錢包的密鑰保護技術,開發使用方便、安全可靠的錢包程序.錢包秘鑰直接關系到賬戶安全,可以研究基于口令、硬件以及生物特征等多因素認證機制,增強私鑰的安全性.
此外,在研究區塊鏈隱私保護技術的同時,也應該關注如何對濫用區塊鏈技術的非法行為進行監管.目前使用區塊鏈技術進行洗錢、勒索以及其他犯罪活動的事件層出不窮,例如影響全球30萬名用戶的勒索病毒wannacry就是使用比特幣勒索贖金.由于比特幣去中心化、匿名化等特征,很難阻止勒索行為,追蹤勒索者的身份信息.
針對這種監管需求,主要有2類解決方案:
1) 加強行政監管.鎖定區塊鏈技術與現實社會的集合點,例如交易所等區塊鏈服務商.目前大部分國家都出臺規定,要求數字貨幣交易所等區塊鏈服務機構實施KYC政策(即充分了解你的客戶).通過登記用戶身份以及檢查大額數字貨幣交易,能夠有效控制利用區塊鏈技術實施非法活動的規模.
2) 加快監管技術研究.區塊鏈技術的去中心化架構使得很難從根本上禁止區塊鏈應用,很多區塊鏈應用可以不依賴于外部服務商獨立運行.例如,比特幣系統中的用戶可以不依賴于交易所直接進行數字貨幣交易,或者在境外交易所交易.此外,各種混幣技術增加了區塊鏈交易的監管難度.因此,除了行政手段外,有必要研究針對性的監管技術,檢查和遏制利用區塊鏈技術進行的非法活動.目前已經出現了很多專門從事區塊鏈監管科技的公司和研究機構.美國紐約的公司Chainalysis開發了用于打擊網絡犯罪活動的工具,已經檢查了價值150億美金的比特幣交易[57].美國桑迪亞國家實驗室受美國政府支持開發分析工具,這種工具將幫助執法部門將比特幣交易去匿名化[58].英國倫敦的區塊鏈情報公司Elliptic為全球企業和執法機關提供數字貨幣監控支持,公司在2016年3月份收到500萬美元有政府背景的投資[59].加拿大公司Blockchain Intelligence Group(BIG)開發了QLUE來幫助世界各地的執法機構通過識別和追蹤比特幣來打擊涉及比特幣的金融犯罪交易[60].
本文介紹了區塊鏈技術中隱私保護遇到的問題和挑戰.首先從身份隱私和交易隱私的角度定義了區塊鏈中隱私的概念;其次分別從網絡層、交易層和應用層詳細闡述了區塊鏈隱私保護面臨的威脅及其防護對策;最后針對區塊鏈隱私保護的威脅和研究現狀,展望了未來可能的研究方向.
[1] Yuan Yong, Wang Feiyue. Blockchain: The state of the art and future trends[J]. Acta Automatica Sinica, 2016, 42(4): 481-494 (in Chinese)
(袁勇, 王飛躍. 區塊鏈技術發展現狀與展望[J]. 自動化學報, 2016, 42(4): 481-494)
[2] Chris B, Adam W. Bitcoin ringing the bell for a new asset class[EB/OL]. [2017-06-10]. http://research.ark-invest.com/bitcoin-asset-class
[3] Gartner. Top 10 strategic technology trends for 2017[EB/OL]. [2017-06-10]. http://www.gartner.com/technology/topics/trends.jsp
[4] Wang Jiye, Gao Lingchao, Dong Aiqiang, et al. Block chain based data security sharing network architecture research[J]. Journal of Computer Research and Development, 2017, 54(4): 742-749 (in Chinese)
(王繼業, 高靈超, 董愛強, 等. 基于區塊鏈的數據安全共享網絡體系研究[J]. 計算機研究與發展, 2017, 54(4): 742-749)
[5] Au M H, Liu J K, Fang Junbin, et al. A new payment system for enhancing location privacy of electric vehicles[J]. IEEE Trans on Vehicular Technology, 2014, 63(1): 3-18
[6] Mihaylov M, Jurado S, Avellana N, et al. NRGcoin: Virtual currency for trading of renewable energy in smart grids[C] //Proc of the 11th Int Conf on the European Energy Market. Piscataway, NJ: IEEE, 2014: 1-6
[7] Nakamoto S. Bitcoin: A peer-to-peer electronic cash system[EB/OL]. [2017-08-01]. http://www.bitcoin.org/bitcoin.pdf
[8] Bitnodes. Global bitcoin nodes distribution[EB/OL]. [2017-06-10]. https://bitnodes.21.co/
[9] Shawn W, Tome B, Josh B, et al. Storj: A peer-to-peer cloud storage network [EB/OL]. [2017-06-10]. https://storj.io/storj.pdf
[10] Dwork C, Naor M. Pricing via processing or combatting Junk Mail[C] // Proc of the 12th Annual Int Cryptology Conf Proceedings. Piscataway, NJ: IEEE, 1992: 139-147
[11] Larimer D. Transactions as proof-of-stake[EB/OL]. [2017-06-10]. https://bravenewcoin.com/assets/Uploads/Transactions AsProofOfStake10.pdf
[12] Castro M, Liskov B. Practical byzantine fault tolerance and proactive recovery[J]. ACM Trans on Computer Systems, 2002, 20(4): 398-461
[13] Zhou Shuigeng, Li Feng, Tao Yufei, et al. Privacy preservation in database applications: A Survey[J]. Chinese Journal of Computers, 2009, 32(5): 847-861 (in Chinese)
(周水庚, 李豐, 陶宇飛, 等. 面向數據庫應用的隱私保護研究綜述[J]. 計算機學報, 2009, 32(5): 847-861)
[14] Antonopoulos A M. Mastering Bitcoin[EB/OL]. [2017-06-10]. https://www. bitcoinbook.info/
[15] Andy D. THE DAO[EB/OL]. [2017-06-10]. http://ethfans.org/posts/127
[16] Bonneau J, Miller A, Clark J, et al. SoK: Research perspectives and challenges for Bitcoin and cryptocurrencies[C] //Proc of the 2015 IEEE Symp on Security and Privacy (SP). Piscataway, NJ: IEEE, 2015: 104-121
[17] Koshy P, Koshy D, Mcdaniel P. An analysis of anonymity in bitcoin using P2P network traffic [G] //Financial Cryptography and Data Security. Berlin: Springer, 2014: 469-485
[18] Kaminsky D. Black Ops of TCP/IP 2011[EB/OL]. [2017-08-01]. https://dankaminsky.com/2011/08/05/bo2k11/
[19] Biryukov A, Khovratovich D, Pustogarov I. Deanonymisa-tion of clients in Bitcoin P2P network[C] //Proc of the 21st ACM Conf on Computer and Communications Security. New York: ACM, 2014: 15-29
[20] Reid F, Harrigan M. An analysis of anonymity in the bitcoin system[C] //Proc of the 3rd IEEE Int Conf on Privacy, Security, Risk and Trust. Piscataway, NJ: IEEE, 2011: 1318-1326
[21] Liao K, Zhao Ziming, Doupe A, et al. Behind closed doors: Measurement and analysis of cryptoLocker ransoms in bitcoin[C] //Proc of the 2016 APWG Symp on Electronic Crime Research (eCrime). Piscataway, NJ: IEEE, 2016: 1-13
[22] Ron D, Shamir A. Quantitative analysis of the full bitcoin transaction graph[G] //Financial Cryptography and Data Security. Berlin: Springer, 2013: 6-24
[23] Bitcoinwiki. Coinbase[EB/OL]. [2017-06-10]. https://en.bitcoin.it/wiki/Coinbase
[24] Bitcoinwiki. Change[EB/OL]. [2017-06-10]. https://en.bitcoin.it/wiki/Change
[25] Meiklejohn S, Pomarole M, Jordan G, et al. A fistful of bitcoins: Characterizing payments among men with no names[C] //Proc of the 13th ACM Internet Measurement Conf. New York: ACM, 2013: 127-140
[26] Zhao Chen. Graph-based forensic investigation of bitcoin transactions[D]. Ames, Iowa: Iowa State University, 2014
[27] Androulaki E, Karame G O, Roeschlin M, et al. Evaluating user privacy in bitcoin[C] //Proc of the 17th Int Conf on Financial Cryptography and Data Security. Okinawa, Japan: Financial Cryptography, 2013: 34-51
[28] Monaco J V. Identifying bitcoin users by transaction behavior[C] //Proc of 2015 SPIE DSS. Baltimore, Maryland: SPIE, 2015
[29] Hyperledger. Hyperledger architecture working group paper[EB/OL]. [2017-06-10]. https://www.hyperledger.org/
[30] Huang Butian, Liu Zhenguang, Chen Jianhai, et al. Behavior pattern clustering in blockchain networks[J]. Multimedia Tools & Applications, 2017, 76(19): 20099-20110
[31] Tor. Getting up to speed on Tor’s past, present, and future Tor[EB/OL]. [2017-06-10]. http://www.theonionrouter.com/docs/documentation.html.en
[32] I2P. What does I2P do for you?[EB/OL]. [2017-06-10]. https://geti2p.net/en/
[33] Monero. What is Monero?[EB/OL]. [2017-06-10]. https://getmonero.org/get-started/what-is-monero/
[34] Chaum D. Untraceable electronic mail, return addresses and digital pseudonyms[J]. Communications of the ACM, 1981, 24(2): 84-90
[35] BitLaunder. BitLaunder's mixer vs “major exchanges” mixer[EB/OL]. [2017-06-10]. https://bitcoin.stackexchange.com/questions/25722/bitlaunders-mixer-vs-major-exchanges-mixer/25753
[36] Bitcoin Fog. Accessing bitcoin fog[EB/OL]. [2017-06-10]. http://bitcoinfog.info/
[37] Blockchain. Wallet[EB/OL]. [2017-06-10]. https://Blockchain.info/wallet/
[38] Bonneau J, Narayanan A, Miller A, et al. Mixcoin: Anonymity for bitcoin with accountable mixes[C] //Proc of the 18th Int Conf on Financial Cryptography and Data Security Financial. Barbados: Financial Cryptography, 2014: 486-504
[39] Valenta L, Rowan B. Blindcoin: Blinded, Accountable Mixes for Bitcoin[G] //Financial Cryptography and Data Security. Berlin: Springer, 2015: 112-126
[40] Shentu Qingchun, Yu Jianping. A blind-mixing scheme for bitcoin based on an elliptic curve cryptography blind digital signature algorithm[EB/OL]. [2017-06-10]. https://arxiv.org/ftp/arxiv/papers/1510/1510.05833.pdf
[41] Dash. Dash is digital cash[EB/OL]. [2017-06-10]. https://www.dash.org/
[42] Gregory M. CoinJoin: Bitcoin privacy for the real world[EB/OL]. [2017-06-10]. http://bitcointalk.org/index.php?topic=279249.0
[43] Andy G. Dark wallet’ is about to make bitcoin money laundering easier than ever[EB/OL]. [2017-06-10]. https://www.wired.com/2014/04/dark-wallet/
[44] Kyle T. CoinShuffle aims to improve privacy in bitcoin[EB/OL]. [2017-06-10]. http://insidebitcoins.com/news/coinshuffle-aims-to-improve-privacy-in-bitcoin/29269
[45] Belcher. Joinmarket-Coinjoin that people will actually use [EB/OL]. [2017-06-10]. http://bitcointalk.org/index.php?topic=919116.0
[46] Ruffing T, Moreno-Sanchez P, Kate A. CoinShuffle: Practical decentralized coin mixing for bitcoin[G] //Computer Security (ESORICS 2014). Berlin: Springer, 2014: 345-364
[47] Bissias G, Ozisik A P, Levine B N, et al. Sybil-resistant mixing for bitcoin[C] //Proc of the 2015 ACM Workshop on Privacy in the Electronic Society. New York: ACM, 2014: 149-158
[48] Ziegeldorf J H, Grossmann F, Henze M, et al. CoinParty: Secure multi-party mixing of bitcoins[C] //Proc of the 5th ACM Conf on Data and Application Security and Privacy. New York: ACM, 2015: 75-86
[49] Monero. About monero[EB/OL]. [2017-06-10]. https://getmonero.org/knowledge-base/about
[50] Monero. A note on chain reactions in traceability in cryptoNote 2.0[EB/OL]. [2017-06-10]. https://lab.getmonero.org/pubs/MRL-0001.pdf
[51] Sasson E B, Chiesa A, Garman C, et al. Zerocash: Decentralized anonymous payments from bitcoin[C] //Proc of the 2014 IEEE Symp on Security and Privacy. Piscataway, NJ: IEEE, 2014: 459-474
[52] Miers I, Garman C, Green M, et al. Zerocoin: Anonymous distributed E-Cash from bitcoin[C] //Proc of the 2013 IEEE Symp on Security and Privacy (SP) Conf. Piscataway, NJ: IEEE, 2013: 397-411
[53] Ben-Sasson E, Chiesa A, Genkin D, et al. SNARKs for C: Verifying program executions succinctly and in zero knowledge[G] / /Advances in Cryptology (CRYPTO 2013). Berlin: Springer, 2013: 90-108
[54] Joseph P, Thaddeus D. The bitcoin lightning network: Scalable Off-Chain instant payments[EB/OL]. [2017-06-10]. http://lightning.network/lightning-network-paper.pdf
[55] Okcoin. OKCoin cold wallet security design and protocol[EB/OL]. [2017-06-10]. https://www.okcoin.com/security.html
[56] Biryukov A, Pustogarov I. Bitcoin over Tor isn’t a Good Idea[C] //Proc of the 2015 IEEE Symp on Security and Privacy. Piscataway, NJ: IEEE, 2014: 122-134
[57] Chainalysis. Protecting the integrity of digital assets[EB/OL]. [2017-06-10]. https://www.chainalysis.com/
[58] Sandia. Beating bitcoin bad guys[EB/OL]. [2017-06-10]. http://www.sandia.gov/news/publications/labnews/articles/2016/19-08/bitcoin.html
[59] Elliptic. The global standard for blockchain intelligence[EB/OL]. [2017-06-10]. https://www.elliptic.co/
[60] Blockchaingroup. Blockchain intelligence group[EB/OL]. [2017-06-10]. https://Blockchaingroup.io/
SurveyonPrivacyPreservingTechniquesforBlockchainTechnology
Zhu Liehuang1, Gao Feng1, Shen Meng1, Li Yandong1, Zheng Baokun1,2, Mao Hongliang3, and Wu Zhen3
1(SchoolofComputerScience,BeijingInstituteofTechnology,Beijing100081)2(ChinaUniversityofPoliticalScienceandLaw,Beijing102249)3(NationalComputerNetworkEmergencyResponseTechnicalTeamCoordinationCenterofChina(CNCERTCC),Beijing100029)
Core features of the blockchain technology are “de-centralization” and “de-trusting”. As a distributed ledger technology, smart contract infrastructure platform and novel distributed computing paradigm, it can effectively build programmable currency, programmable finance and programmable society, which will have a far-reaching impact on the financial and other fields, and drive a new round of technological change and application change. While blockchain technology can improve efficiency, reduce costs and enhance data security, it is still in the face of serious privacy issues which have been widely concerned by researchers. The survey first analyzes the technical characteristics of the blockchain, defines the concept of identity privacy and transaction privacy, points out the advantages and disadvantages of blockchain technology in privacy protection and introduces the attack methods in existing researches, such as transaction tracing technology and account clustering technology. And then we introduce a variety of privacy mechanisms, including malicious nodes detection and restricting access technology for the network layer, transaction mixing technology, encryption technology and limited release technology for the transaction layer, and some defense mechanisms for blockchain applications layer. In the end, we discuss the limitations of the existing technologies and envision future directions on this topic. In addition, the regulatory approach to malicious use of blockchain technology is discussed.
blockchain; privacy-preserving; peer-to-peer networking; clustering analysis; Bitcoin
TP391

ZhuLiehuang, born in 1976. PhD, professor. His main research interests include cryptography, network and infor-mation security.

GaoFeng, born in 1987. PhD candidate. His main research interests include blockchain, cloud computing security and data privacy.

ShenMeng, born in 1988. PhD, assistant professor. His main research interests include network security and privacy-preserving algorithms in cloud computing.

LiYandong, born in 1991. MS candidate. His main research interests include blockchain,cloud computing security and data privacy.

ZhengBaokun, born in 1978. PhD candidate. His main research interests include blockchain, network and information security.

MaoHongliang, born in 1990. PhD. Engineer of National Computer Network Emergency Response Technical TeamCoordination Center of China. His main research interest is blockchain application.

WuZhen, born in 1976. PhD. Senior engineer of National Computer Network Emergency Response Technical TeamCoordination Center of China. His main research interests include cyber security and blockchain application.