比特幣隱私保護(hù)的工作原理介紹
比特幣既非完全匿名,也非完全透明。比特幣隱私難題在于一個(gè)灰色地帶:用戶金融活動(dòng)的暴露,最終取決于調(diào)查人員的能力與用戶所選工具的復(fù)雜性。對于互聯(lián)網(wǎng)上的任何活動(dòng)來說,沒有完美的隱私解決方案;并且在很多情況下,沒有一招通吃的解決方案,這意味著注重隱私的選擇往往伴隨著成本與易用性的平衡。此外,隱私從來都不是靜態(tài)的,而是不斷發(fā)展的,以呼應(yīng)那些搭建保護(hù)隱私與破壞隱私工具的群體間的斗爭。
1. 前言
正如我們在加密消息、虛擬私密網(wǎng)絡(luò)與自由知識計(jì)劃如Tor項(xiàng)目、維基百科、Signal的演化中所見到的,如果正確的價(jià)值被建構(gòu)其中,技術(shù)可以成為一項(xiàng)實(shí)現(xiàn)自由的工具。但正如我們從Facebook等中心化平臺身上所見到的,技術(shù)也會(huì)成為一項(xiàng)監(jiān)控工具甚至社會(huì)機(jī)器。
除非我們現(xiàn)在鮮明表態(tài) ,幫助平臺與協(xié)議將用戶隱私與去中心化的理念植入腦中,否則大規(guī)模的監(jiān)控與社會(huì)信用體系將是我們不可避免的未來。
2. 要點(diǎn)
· 比特幣僅僅是半匿名的;該協(xié)議并不知曉你的真實(shí)姓名,但通過種種方法,仍可通過交易信息關(guān)聯(lián)到你本人。
· 區(qū)塊鏈分析公司致力于將比特幣活動(dòng)去匿名化并將相關(guān)數(shù)據(jù)出售給企業(yè)與執(zhí)法機(jī)構(gòu)。
· 洞悉比特幣這套系統(tǒng)如何運(yùn)作,掌握Tor、代幣控制器(coin control)、合幣器等工具的使用,并避免地址的重復(fù)使用,對于保護(hù)你的身份信息與交易信息免于暴露至關(guān)重要。
3. 為什么要關(guān)注加密貨幣?
從協(xié)議層面觀察加密貨幣時(shí),顯而易見的是,它比傳統(tǒng)的數(shù)字支付方式更為隱私導(dǎo)向。在這些協(xié)議的基本層面,盡管用戶的密鑰與真實(shí)世界之間通常沒有映射,但它使我們以前所未有的程度的自由來在全球范圍內(nèi)存儲(chǔ)與轉(zhuǎn)移財(cái)富。
加密貨幣促成隱私的程度絕非微小或二元的——根據(jù)用戶對核心與輔助技術(shù)、使用模式以及攻擊者能力與復(fù)雜度的個(gè)別選擇的不同,它會(huì)有很大的變化。
我們可以觀察到,加密貨幣(尤其是比特幣)的接受率,在那些居民經(jīng)濟(jì)自由受限的國家中正在增長,例如委內(nèi)瑞拉。盡管加密貨幣在構(gòu)建抗審查交易網(wǎng)絡(luò),與不受各種形式政府破壞的貨幣政策方面優(yōu)勢顯著,但只要威權(quán)政體可以去匿名化用戶信息并隨意起訴相關(guān)用戶,這些優(yōu)勢的效用就不大。這個(gè)問題需要引起我們的重視。
4. 比特幣隱私引介
比特幣既非完全匿名,也非完全透明。比特幣隱私難題在于一個(gè)灰色地帶:用戶金融活動(dòng)的暴露,最終取決于調(diào)查人員的能力與用戶所選工具的復(fù)雜性。對于互聯(lián)網(wǎng)上的任何活動(dòng)來說,沒有完美的隱私解決方案;并且在很多情況下,沒有一招通吃的解決方案,這意味著注重隱私的選擇往往伴隨著成本與易用性的平衡。此外,隱私從來都不是靜態(tài)的,而是不斷發(fā)展的,以呼應(yīng)那些搭建保護(hù)隱私與破壞隱私工具的群體間的斗爭。
比特幣協(xié)議隨時(shí)間進(jìn)化,這會(huì)引致其在隱私特性方面戲劇性的變化。核心協(xié)議的變化不局限于隱私與透明性間的簡單選擇,通常還伴隨著安全性、可擴(kuò)展性與透明性以及軟件的向后兼容性方面的變化。從歷史上來看,相較透明性,比特幣社區(qū)更傾向于選擇隱私這一特性,但同主打隱私功能的加密貨幣相比,前者又更為保守。
因此,考慮利用比特幣逃脫威權(quán)政府或企業(yè)的監(jiān)控的人們需要理解,當(dāng)他們在使用比特幣時(shí)會(huì)在其上留下什么類型的痕跡,以及比特幣的隱私屬性是否足夠滿足其他們的需求。然而,實(shí)現(xiàn)這種程度的理解需要一些努力。
5. 追蹤交易
當(dāng)你在比特幣網(wǎng)絡(luò)上交易時(shí),你會(huì)留下兩種痕跡。它們可被分類為“鏈上信息”與“鏈下信息”。鏈上信息并不直接將你的身份信息與交易信息關(guān)聯(lián),但其揭示了可以將你的交易信息與他人相關(guān)聯(lián)的信息。將你的身份信息信息與交易信息關(guān)聯(lián)的則是第二類即鏈下信息。
6. 鏈下信息
當(dāng)你在比特幣網(wǎng)絡(luò)上交易時(shí),你有時(shí)會(huì)向/從認(rèn)識你的人處發(fā)送/接收比特幣。后者則會(huì)擁有將你的身份信息與交易信息相關(guān)聯(lián)的鏈外信息。
當(dāng)你將上述事實(shí)同你的交易信息可同他人相關(guān)聯(lián)的事實(shí)組合后,結(jié)果便是一些別有動(dòng)機(jī)的實(shí)體有時(shí)可以明晰你如何使用自己的比特幣,你擁有多少比特幣以及你在同誰交易這些信息。
甚至在你不與認(rèn)識你的人交易的情況下,仍然有無數(shù)種方法可將你同一筆交易信息相關(guān)聯(lián),因?yàn)楸忍貛沤灰淄ǔJ且苑羌用艿拇虬问皆诰W(wǎng)絡(luò)上進(jìn)行的,源IP地址可以通過數(shù)種方式被追溯到。通過諸如Bitcoin Core這樣的全節(jié)點(diǎn)交易時(shí),需要一些三角測量(triangulation)或者目標(biāo)流量的測探,以便估測源IP地址,而其他“輕”錢包諸如移動(dòng)錢包(Mycelium、區(qū)塊鏈錢包、Coinbase錢包)通常會(huì)通過公司運(yùn)營、可以直接看到你IP地址及完整交易歷史的服務(wù)器進(jìn)行。
經(jīng)由IP地址,地理位置IP地址數(shù)據(jù)庫通??梢源致怨烙?jì)出你的物理位置。你可以使用這一鏈接(https://www.maxmind.com/en/locate-my-ip-address)自行測試,輸入你在Google地圖等界面中的坐標(biāo)。更重要的是,你的IP地址暴露了你的互聯(lián)網(wǎng)服務(wù)提供商(ISP),后者知曉該IP所有者的真實(shí)世界的身份信息,并且ISP通常有法律義務(wù)將此信息存儲(chǔ)數(shù)個(gè)月。
即使你是使用公共WiFi來進(jìn)行交易,你仍有可能意外地將真實(shí)身份同所訪問網(wǎng)站以及設(shè)備連接的后臺服務(wù)相連。當(dāng)你啟動(dòng)筆記本電腦后,你的Dropbox應(yīng)用樂于將其同公司服務(wù)器相連,這會(huì)使得你的IP地址同Dropbox賬號在該公司的服務(wù)器日志中相關(guān)聯(lián)。即使你不訪問任何個(gè)人網(wǎng)站帳戶,存儲(chǔ)在你筆記本電腦上的Cookie信息可以通過您與之前瀏覽歷史記錄的Cookie信息關(guān)聯(lián),向你瀏覽的網(wǎng)站顯示您的身份。許多網(wǎng)站允許第三方跟蹤這樣的用戶以進(jìn)行分析——僅谷歌估計(jì)會(huì)跟蹤整個(gè)網(wǎng)絡(luò)的80%網(wǎng)站中的用戶。
即使你清除cookie信息,網(wǎng)站運(yùn)營者也可以通過不同網(wǎng)站追蹤你,只要你的瀏覽器印記是獨(dú)特的,就可將你的IP地址同身份信息相關(guān)聯(lián)。即使你沒有運(yùn)行任何服務(wù)且避免一起瀏覽一些內(nèi)容,你的設(shè)備的MAC地址仍會(huì)暴露給網(wǎng)絡(luò)提供商,運(yùn)用多種復(fù)雜的方式,其可能會(huì)同你的真實(shí)身份相關(guān)聯(lián)。所以,即使你的IP地址不會(huì)被通過ISP記錄追溯到你,你仍可能在使用私人設(shè)備時(shí)留下其他痕跡。最糟糕的隱私類別當(dāng)然是使用進(jìn)行KYC的第三方服務(wù)作為你的比特幣錢包,因?yàn)檫@些服務(wù)將記錄你所有的交易信息與真實(shí)世界的身份。
你也可能因使用基于網(wǎng)頁的工具搜索比特幣地址與交易信息而被同后者相關(guān)聯(lián),因?yàn)槌四?,沒人會(huì)無緣無故地在網(wǎng)上搜索相關(guān)信息。
當(dāng)你搜索交易信息或進(jìn)行交易時(shí),目前隱藏你的源設(shè)備與IP地址的最知名方法是借助Tor隱匿服務(wù)。包括Bitcoin Core在內(nèi)的許多錢包將其作為可配選項(xiàng),而有些錢包則將其內(nèi)置化。Tor瀏覽器對于你基于網(wǎng)頁的比特幣相關(guān)活動(dòng)來說近似一個(gè)有用的工具,因?yàn)樗粌H能夠隱藏你的IP地址,在你每次退出時(shí)清楚cookie信息,阻止第三方cookie,不受大多數(shù)瀏覽器指紋識別技術(shù)的影響。
7. 鏈上信息
我們可以使用區(qū)塊瀏覽器,來逐步理解比特幣區(qū)塊鏈所揭示信息類型。為了實(shí)踐一下,我們將使用開源區(qū)塊瀏覽器blockstream.info。
截至寫作本文時(shí)的最新區(qū)塊(2019年3月8日,區(qū)塊編號#563899)包含2122筆交易信息。我們來看看隨意選出的交易信息揭示了什么。
交易信息包括輸入值與輸出值,并由交易ID標(biāo)識(由上圖的頂部可見)。如果你的比特幣錢包發(fā)起了一筆交易,每筆交易都將同一個(gè)類似的標(biāo)識符相關(guān)聯(lián)。
從一個(gè)高維度來看,其所揭示的信息如下:
· 該筆交易被挖掘的大致時(shí)間(從區(qū)塊頭算起)
· 比特幣被發(fā)向的地址以及數(shù)量(例如,“交易輸出值”)
· 交易資金來源(例如,輸入值)
讓我們在此處逐個(gè)看看上述交易的每個(gè)部分(https://blockstream.info/tx/e70c2ed31c05fbf2865a15a696a7ca0cb8f3afef92c34f4e41051dc2356827c8)。
8. 時(shí)間
交易并沒有打上時(shí)間戳,但區(qū)塊有時(shí)間戳。區(qū)塊時(shí)間戳并不必然正確,但是考慮到絕大多數(shù)礦工都如實(shí)報(bào)告時(shí)間,所有區(qū)塊的時(shí)間戳數(shù)個(gè)小時(shí)的范圍內(nèi)應(yīng)該是正確的。對于那些由誠實(shí)礦工挖取的區(qū)塊,它們會(huì)是正確的。這并不意味著塊時(shí)間戳必須精確到事務(wù)廣播時(shí)間的幾個(gè)小時(shí)范圍內(nèi),因?yàn)橛袝r(shí)打包交易進(jìn)區(qū)塊需要更長的時(shí)間。一些區(qū)塊瀏覽器通過顯示其在網(wǎng)絡(luò)上首次看到一筆交易的時(shí)間,以更準(zhǔn)確地查看交易的廣播時(shí)間。
上述交易打包進(jìn)區(qū)塊的時(shí)間可以通過查看區(qū)塊頭獲?。ㄔ谖覀兊陌咐齾^(qū)塊#563899中,其時(shí)間戳為2019-02-20 14:45 UTC)
9. 比特幣被轉(zhuǎn)向的地址以及數(shù)額
這筆交易中接收地址為:
1: 32Z63LVtUERdEEwz275JHt3o4cewPfE8YC 0.26119849 BTC
2: 31w3iWUN5EMJMW2YRCc5m4RFqm3zN61xK2 0.2214705 BTC
一個(gè)地址不僅僅是表面上看起來那么簡單,它并不總僅僅是某個(gè)用戶的密鑰的指示器。地址事實(shí)上是某人下次想要轉(zhuǎn)移比特幣的花費(fèi)規(guī)則(spending rules)的描述符號。
例如, 如果你向地址37k7toV1Nv4DfmQbmZ8KuZDQCYK9x5KpzP發(fā)送一筆比特幣,改地址的配置是這樣的:你并非將比特幣花費(fèi)給特定私鑰的所有者,而是將代幣釋放給任何擁有相同SHA-1哈希并能夠提供兩組不同字符串的人的花費(fèi)規(guī)則(這意味SHA-1函數(shù)失效了,這發(fā)生于2017年——因此不要向那個(gè)地址發(fā)送任何比特幣)。值得注意的是,由于當(dāng)我們向其發(fā)送比特幣時(shí),如今許多被使用的地址格式被哈?;耍覀兺ǔV钡侥橙藦脑摰刂忿D(zhuǎn)出比特幣后,我們才知道花費(fèi)規(guī)則是怎樣的,因?yàn)樗麄優(yōu)榱诉_(dá)成目的,需要披露被哈?;膬?nèi)容。
在我們交易例子中,區(qū)塊鏈顯示比特幣已經(jīng)被從兩個(gè)地址中花費(fèi)了,故這些地址的花費(fèi)規(guī)則是已知的了。在交易f491dfe9867c36e85950116a90a6128060d6070866ad0f(https://blockstream.info/tx/f491dfe9867c36e85950116a90a6128060d6070866ad0f3598d70d146750162f)中,3598d70d146750162f32Z63LVtUERdEEwz275JHt3o4cewPfE8YC(https://blockstream.info/address/32Z63LVtUERdEEwz275JHt3o4cewPfE8YC)顯示為一個(gè)2/2多簽名地址。我們將在下個(gè)部分查看信息到底是怎樣揭示上述內(nèi)容的。
類似地, 31w3iWUN5EMJMW2YRCc5m4RFqm3zN61xK2(https://blockstream.info/address/31w3iWUN5EMJMW2YRCc5m4RFqm3zN61xK2)是一個(gè)經(jīng)常被使用的2/3多簽名地址,寫作本文時(shí),該地址存有約2700枚比特幣(價(jià)值1060萬美元)。 更高級的區(qū)塊鏈工具(如oxt.me)甚至可以隨著時(shí)間的推移繪制錢包余額,并以近似的準(zhǔn)確度顯示它看到的活動(dòng)最多的時(shí)段。
18:00-22:00UTC是該地址活動(dòng)最少的時(shí)間段,一個(gè)合理的假設(shè)是這段對應(yīng)控制該地址的人的當(dāng)?shù)貢r(shí)間的01:00-05:00或者02:00-06:00??紤]到改地址的活躍時(shí)間段、交易量以及多簽/名設(shè)置情況,可以猜出該地址屬于位于GMT+7/8的時(shí)區(qū)。
如果你有一個(gè)很好的隱私衛(wèi)生習(xí)慣,請永遠(yuǎn)不要重復(fù)使用比特幣地址,這樣以來便可幫助你切斷交易關(guān)聯(lián)。這對于所有P2SH地址(所有以”3“開頭以及以”bc“開頭的62個(gè)字符的地址)的用戶來說也是個(gè)好辦法,因?yàn)楫?dāng)你披露該地址的花費(fèi)規(guī)則時(shí),你已經(jīng)向一個(gè)新的、哈?;?、花費(fèi)規(guī)則未知的地址發(fā)送了比特幣。
HD錢包可以產(chǎn)生多個(gè)地址但只需要一個(gè)備份種子以觸達(dá)資金。這些錢包在你每次接收一筆新的轉(zhuǎn)賬時(shí),會(huì)自動(dòng)產(chǎn)生一個(gè)新的地址。
現(xiàn)在讓我們再看看交易情況,以檢視我們還可從已發(fā)送的代幣中解讀出什么。
比特幣交易結(jié)果通常被導(dǎo)向兩個(gè)地址,其中一個(gè)是真正的支付情況而另一個(gè)被稱為”變化輸出值“(”change output“)則返回發(fā)送方。這類似于你為一個(gè)3美元的物品支付了5美元,這創(chuàng)建了兩筆支付:其中一筆是流向商品的3美元,而另一筆2美元的零錢則流回支付方。
識別變化輸出值需要采用試探法??梢杂脕韽钠渌Ц吨斜鎰e變化輸出值的試探法例子是:round number的使用(交易時(shí)以特幣數(shù)量或者法幣價(jià)值的數(shù)量),交易中輸出值的順序等等。在我們選定的交易中,很容易發(fā)現(xiàn)變化輸出值,是因?yàn)槠浞祷赝ㄙM(fèi)比特幣相同的地址,正如我們將在下午中看到的。
大體而言,不同比特幣錢包的表現(xiàn)各不相同,并在區(qū)塊鏈上留下了不同的痕跡——類似于在瀏覽網(wǎng)頁時(shí),瀏覽器如何顯示自己的信息。因此,有時(shí)可能可以識別某些交易,因?yàn)槠鋪碜蕴囟ǖ谋忍貛佩X包應(yīng)用。
如果你的調(diào)查者知道你在使用哪個(gè)錢包應(yīng)用,這將幫助其將你的身份同交易信息相關(guān)聯(lián),削弱你的隱私。每一條信息都能幫助他了解你是誰,你在做什么。
10. 交易資金來源
在比特幣的交易中,“資金來源”永遠(yuǎn)來自其他未花費(fèi)的交易,更精確的說,就是未花費(fèi)的交易輸出(UTXO)。在區(qū)塊瀏覽器中,你看到的是解碼的生區(qū)塊鏈數(shù)據(jù)和派生數(shù)據(jù)的組合。一個(gè)區(qū)塊瀏覽器可能會(huì)這樣顯示交易:
這里的資金來源顯示為一個(gè)地址。然而Blockstream瀏覽器的“資金來源”可以顯示為交易。
之所以Blockstream不將交易資金來源顯示為地址,是因?yàn)榈刂穱?yán)格意義上并不是交易輸入的一部分,并且它并不總能推斷出交易的起始地址。此外,因?yàn)椴还膭?lì)地址重建,它能打破大眾在傳統(tǒng)支付系統(tǒng)中的心理,并不再通過顯示這筆交易發(fā)送者的地址,讓用戶錯(cuò)以為資金能夠退回給接收者。
首先,先從技術(shù)上進(jìn)行分析,如果你運(yùn)行一個(gè)全節(jié)點(diǎn)(或者使用一個(gè)授信的互聯(lián)網(wǎng)),你就可以去比特幣區(qū)塊鏈本地副本中查看交易解碼的原始數(shù)據(jù)。如下圖:
這種資金來源被描述為Vin-陣列。他沒有提到特別提到一個(gè)地址,但是它會(huì)指向前一個(gè)交易的輸出。
593e2d5c65b3505d897a13033741037d6c59e683b3345314a58253a8f1572758是vout: 0,也就是交易的第一次輸出(vout: 1意味這個(gè)交易的第二次輸出,以此類推)。這個(gè)未花費(fèi)的交易輸出(UTXO)就是資金來源。
到此可以澄清,“資金來源”既不是地址也不是一個(gè)交易,而是此前特定交易的特定支出。如果清晰地了解這一點(diǎn),將會(huì)幫助你在使用比特幣時(shí)保護(hù)你的隱私,我們會(huì)在之后的章節(jié)一一說明。
我們可以從解碼的原始數(shù)據(jù)進(jìn)一步解碼交易的內(nèi)容,例如從txinwitness中了解更多有關(guān)資金來源的信息。Txinwitness中的最后一行16進(jìn)制的字串符顯示了2-of-3的多重字符腳本,這是我們可以推斷出這可能使用一個(gè)交易所的錢包。
.txinwitness中的其他兩個(gè)16進(jìn)制的字符串,只是滿足2-of-3多重條件的簽名。
現(xiàn)在我們對于資金來源進(jìn)行了定義,我們可以看到在在這個(gè)例子中,有0.48298999BTC的輸出,即使已付款的金額只有1000美元的一部分。這有一個(gè)不良的后果:想象一個(gè)場景,一個(gè)朋友給你支付了10美元,但是交易會(huì)顯示出他擁有一百萬美元并具有立即發(fā)送全額的權(quán)限,這對于隱私保護(hù)來講并不是特別好的。如果你擔(dān)憂發(fā)送比特幣交易時(shí)會(huì)透露你的財(cái)富,你應(yīng)該關(guān)注一下在你的交易中哪些輸入被使用。
11. 拼接信息
由于交易總是需要提供資金來源,交易都被聯(lián)系在一起,產(chǎn)生所謂的交易圖。如果你向你的朋友發(fā)送比特幣,你的朋友會(huì)看到你在交易中的資金輸入,但同時(shí)你也可以看到你的朋友何時(shí)發(fā)送這些代幣以及這些代幣會(huì)被發(fā)到那些地址。
一些比特幣地址是眾所周知的,比如Bitfinex的冷錢包或者查獲的絲綢之路的代幣。一個(gè)地址會(huì)因?yàn)檫@是一個(gè)實(shí)體而被人們熟知,比如:一個(gè)公司或者一個(gè)慈善組織,因?yàn)樗鼈儠?huì)在宣傳網(wǎng)站上公開收款或者捐贈(zèng)地址或者無意中通過論壇帖子和執(zhí)法記錄透露了地址。區(qū)塊鏈分析公司將會(huì)定期搜索網(wǎng)絡(luò)以收集此類信息。
其他地址也會(huì)通過群集分析這項(xiàng)技術(shù)通過關(guān)聯(lián)顯現(xiàn)出來。
12. 群集分析
讓我們回到之前列舉的那筆交易 e70c2ed31c05fbf2865a15a696a7ca0cb8f3afef92c34f4e41051dc2356827c8?,F(xiàn)在我們可以立即看到這筆交易的資金來源,我們的交易(紅點(diǎn))都已被用于資助第三筆交易(藍(lán)點(diǎn))。
尤其是,第二筆交易的轉(zhuǎn)出和第一筆我們交易的轉(zhuǎn)出都包括在了這筆交易的融資中,它們之前分別被發(fā)送到了以下兩個(gè)地址中:3Qt1YaJwQwtHMb4mjJ41DZVawWXih9LGMq
32Z63LVtUERdEEwz275JHt3o4cewPfE8YC
在界面,這似乎是兩個(gè)單獨(dú)的地址,每個(gè)地址只有一個(gè)看似無關(guān)的轉(zhuǎn)入和轉(zhuǎn)出交易。但是因?yàn)樗麄兊乃借€都可以在藍(lán)點(diǎn)交易上簽名,這些地址現(xiàn)在都屬于小的集群(包括交易轉(zhuǎn)入的其他407個(gè)地址),我們可以假設(shè)他們屬于同一個(gè)用戶。這種啟發(fā)法在過去擁有了許多不同的叫法,最新的名為共同輸入所有權(quán)啟發(fā)式(common-input-ownership-heurisTIc.)。
區(qū)塊鏈分析公司將會(huì)使用這種啟發(fā)法去創(chuàng)造巨大的群集。區(qū)塊鏈瀏覽器WalletExplorer已經(jīng)將這兩個(gè)地址固定在162787個(gè)地址的群集中。分析公司會(huì)將集群按照標(biāo)簽分類(IP地址、用戶賬戶、組織以及真實(shí)姓名)它們能夠使各個(gè)地址固定在一個(gè)集群內(nèi),由此繪制出比特幣交易的生態(tài)。接下來,他們就會(huì)將這些數(shù)據(jù)集的訪問權(quán)出售給執(zhí)法機(jī)構(gòu)以及其他公司。
許多區(qū)塊鏈分析公司都會(huì)直接通過他們用戶得到交易的相關(guān)信息,比如加密貨幣交易所。但是兩個(gè)頭部分析公司Chainalysis和EllipTIc,已經(jīng)聲明他們不會(huì)追溯它們獲取的任何個(gè)體的交易信息,但僅限于交易所或其他商業(yè)實(shí)體。
它只需要對集群中的一個(gè)地址進(jìn)行去匿名化,就可以對整個(gè)集群進(jìn)行去匿名化。
13. 反群集分析
目前我們可以看到,用戶身份可以由多種方式與比特幣的地址和交易進(jìn)行關(guān)聯(lián),比特幣的交易也可以通過多種方式相互聯(lián)系。如果將這些泄漏的信息組合到一起,將會(huì)揭示我們所有的財(cái)務(wù)隱私。
有些比特幣用戶有意地嘗試破解這些分析公司使用的方法,他們使用工具和技術(shù)來使分析變得更加困難。一些技術(shù)可以通過扭曲行為降低分析的有效性,而其他技術(shù)則嘗試避免被分析。比特幣錢包可以通過將這些技術(shù)自動(dòng)化或者在用戶頁面上提供這些技術(shù)來幫助用戶。
以下是其中的一些舉措:
· 創(chuàng)建交易時(shí),把轉(zhuǎn)出的順序隨機(jī)化,以降低更改轉(zhuǎn)出檢測的精準(zhǔn)度。
· 避免HD的錢包地址重復(fù)使用。
· PayNym是一個(gè)公開可共享的ID,它可以允許你在不同的無關(guān)聯(lián)的地址中接收付款,并且這筆付款這有發(fā)起者和你自己知道。PayNym允許每一筆交易都派生一個(gè)新的地址,而不需要每次真正地去建立一個(gè)新的地址,如果你想要上線接收比特幣的捐款,這是非常有幫助的。
· 代幣選擇/代幣控制。錢包可以設(shè)計(jì)為在可能的情況下通過更加仔細(xì)地挑選交易中的收入來優(yōu)先選擇群集分析較少的地址,或者允許用戶手動(dòng)選擇交易轉(zhuǎn)入,以避免泄漏某些代幣的所有權(quán)。
提高隱私保護(hù)的更加前衛(wèi)的技術(shù)是CoinJoin。CoinJoin是一種在廣播交易之前將不同用戶的一些資金輸入都添加到聯(lián)合交易的方案。
在我們的例子中,我們可以看到交易資金轉(zhuǎn)入如何參照之前交易的特定轉(zhuǎn)出,而不是整個(gè)交易:
但是每筆交易的資金輸入和輸出不會(huì)以任何方式相互影響;只要輸入的比特幣數(shù)量足以支付輸出的數(shù)量,交易就是有效的。
這里的資金轉(zhuǎn)出被切分為了許多等額的小塊,所以無法確定任何投入的資金和支付的費(fèi)用,其結(jié)果就是在一次支付中會(huì)有很多的資金來源地和發(fā)送地,使人難以辨別。技術(shù)上并不需要隱藏交易的資金來源和目的地,但是因?yàn)橐呀?jīng)被混合打亂,因此很難去證明哪個(gè)地址發(fā)起了交易,哪個(gè)用戶的比特幣又流向了哪一個(gè)地址。
這一類交易的另一個(gè)有趣之處是他們可以使啟發(fā)式共同輸入所有權(quán)的概念更加復(fù)雜。這些資金轉(zhuǎn)入都被標(biāo)記為屬于同一擁有者,但是在這個(gè)交易中并不會(huì)這樣。這些圖片顯示了使用混幣技術(shù)產(chǎn)生的獨(dú)立支付的錯(cuò)誤集群。
因?yàn)檫@些交易都有看起來很奇怪的等量的資金輸出,這些交易就更容易被分辨,并且可以更輕易地從群集分析工具中刪除。當(dāng)用戶希望向外界混淆支付的資金來源和支付發(fā)送的目的地時(shí),等額的混幣交易就可以理解為混淆器。
最近的一項(xiàng)名為PayJoin或Pay-to-EndPoint(P2EP)的項(xiàng)目也使用了相同的原理來創(chuàng)建與平常交易無法區(qū)分的交易。這種新興的交易類型混合了來自付款人和收款人的資金輸入,并且在實(shí)際支付某些東西時(shí),將支付金額從發(fā)送者的輸出資金直接轉(zhuǎn)移到接收者的輸出中,由此來支付接收者相應(yīng)的金額。
一個(gè)混和交易的模板:發(fā)送者給接收者支付0.5BTC,并在過程中將資金輸入打亂
這個(gè)交易并沒有過多的混淆,但是它會(huì)錯(cuò)誤地觸發(fā)常見輸入所有權(quán)啟發(fā)式。更重要的是,它在觸發(fā)的時(shí)候,不會(huì)給分析公司留下這個(gè)資金輸入不適合聚集的線索(分析公司需要這個(gè)線索來避免誤報(bào))。如果混合交易被普遍應(yīng)用,那么虛假的共同輸入所有權(quán)將會(huì)十分巨大,以致于啟發(fā)式本身也不可靠,這對于區(qū)塊鏈分析公司將是巨大的打擊。
14. 閃電網(wǎng)絡(luò)
閃電網(wǎng)絡(luò)是在比特幣協(xié)議之上開發(fā)的beta技術(shù),以促進(jìn)低成本的即時(shí)支付。目前閃電網(wǎng)絡(luò)錢包用戶可以使用閃電網(wǎng)絡(luò)。閃電交易在很多方面都與基礎(chǔ)層交易不同,從保護(hù)隱私的角度,它們是更加有利的。
閃電交易并不是存儲(chǔ)在一個(gè)公共的賬單上:
· 閃電網(wǎng)絡(luò)交易使用洋蔥路由,但是不會(huì)向網(wǎng)絡(luò)的其他部分播報(bào)最終的收款人。
· 閃電網(wǎng)絡(luò)交易并不會(huì)將資金輸出打亂并且不會(huì)聚集在一起。
閃電網(wǎng)絡(luò)是一個(gè)需要流動(dòng)性的通道系統(tǒng);目前接受閃電網(wǎng)絡(luò)支付的商家和用戶是比特幣用戶的一小部分,并非所有支付(特別是巨額支付)都可以通過閃電網(wǎng)絡(luò)進(jìn)行傳播,過一段時(shí)間后應(yīng)該會(huì)有所改善。這也意味著雖然閃電網(wǎng)絡(luò)可以為其通道中的交易提供更好的隱私保護(hù),但這些通道仍然需要由定期比特幣交易提供資金,而這些交易又會(huì)遭受到本文中所述隱私問題的影響。
另一個(gè)問題是與基層比特幣支付不同的是,閃電網(wǎng)絡(luò)支付的收款人需要運(yùn)行閃電網(wǎng)絡(luò)節(jié)點(diǎn)。你的節(jié)點(diǎn)會(huì)使用TCP / IP與其他節(jié)點(diǎn)通信。每當(dāng)你的節(jié)點(diǎn)在網(wǎng)絡(luò)上與他人互動(dòng)時(shí)(發(fā)送,接收或路由其他付款)時(shí),某人將知道你的節(jié)點(diǎn)以及公鑰和IP地址的存在。從公鑰中,很容易找出你和其他節(jié)點(diǎn)之間打開的通道以及在打開每個(gè)通道時(shí)提交了多少比特幣。對于私人通道,IP地址僅向你開放的通道顯示,但對于公共通道,它會(huì)向整個(gè)網(wǎng)絡(luò)顯示,甚至可能有人探測通道的當(dāng)前余額來判斷你是否會(huì)是下一個(gè)攻擊目標(biāo)。
當(dāng)你運(yùn)營一個(gè)閃電網(wǎng)絡(luò)節(jié)點(diǎn)時(shí),你應(yīng)該假設(shè)你的通道余額已經(jīng)已知并且會(huì)它們會(huì)連接到你的IP地址。因此在Tor上運(yùn)營閃電網(wǎng)絡(luò)節(jié)點(diǎn)是保護(hù)隱私的一個(gè)很好的選擇。
閃電網(wǎng)絡(luò)目前正處于快速發(fā)展階段,許多財(cái)產(chǎn)將在不遠(yuǎn)的未來發(fā)生巨變。
15. 協(xié)議的創(chuàng)新
這里有一些提高隱私保護(hù)的技術(shù),它們是由底層比特幣協(xié)議發(fā)展而成的:
Schnorr簽名:
一種簽名方案,除其它的改進(jìn)外,還會(huì)使多重簽名地址和單一簽名地址無法區(qū)分。
Scriptless腳本:
一種在不披露實(shí)際支付規(guī)則情況下使用腳本的方法。
Taproot:
一種無法區(qū)分各類支出規(guī)則的交易的技術(shù)。
16. 總結(jié)
這篇文章旨在介紹比特幣隱私保護(hù)的工作原理。由于具有匿名以及透明的特性,比特幣區(qū)塊鏈?zhǔn)闺[私權(quán)最終取決于用戶以及監(jiān)視的公司使用的工具。如果那些進(jìn)行監(jiān)視的公司對區(qū)塊鏈進(jìn)行分析,沒有進(jìn)行隱私保護(hù)的用戶便很有可能泄露一些財(cái)務(wù)信息,這是十分危險(xiǎn)的。