介紹
比特幣通常被稱爲數字貨幣,但這是一個粗略的比較。如果愛麗絲付給鮑勃 10 美元現金,鮑勃不知道錢從哪裏來。如果他隨後將其交給卡羅爾,她將無法知道愛麗絲擁有它。
比特幣因其公共性質而有所不同。任何人都可以輕鬆查看特定代幣(更準確地說,未使用的交易輸出或 UTXO)的歷史記錄。這有點像每次使用時在發票上寫下交易金額和參與者姓名。
也就是說,對公共地址進行假名可以確保用戶的身份不易泄露。然而,比特幣並不是完全私有的。區塊鏈分析變得越來越複雜,能夠越來越有效地將地址與身份聯繫起來。除了其他監視技術之外,專用實體還可以對加密貨幣用戶進行去匿名化。爲了解決這個問題,多年來出現了分拆交易的技術。
什麼是房間混合?
一般來說,混幣可以指任何涉及通過替換其他資金來混淆資金的活動。然而,在加密貨幣領域,貨幣混合通常表示由第三方提供的服務。通常,服務提供商會收取用戶的資金(以及少量佣金)並返還與發送的資金無關的資金。這些服務也稱爲滾筒或攪拌機。
這些中心化服務的安全性和匿名性當然值得懷疑。用戶無法保證他們的錢會被混合器返還給他們,或者返還的代幣不會以某種方式被篡改。使用混合器時要考慮的另一個方面是 IP 和比特幣地址可能會被第三方記錄。最終,用戶放棄對其資金的控制,希望獲得不附帶條件的資金作爲回報。
一種可能更有趣的方法是以 CoinJoin 交易的形式存在,它創造了很大程度的可信否認性。這意味着在 CoinJoin 之後,沒有證據可以確定地將用戶與其之前的交易聯繫起來。許多 CoinJoin 解決方案提供了混合器的去中心化替代方案。儘管可能涉及協調員,但用戶不需要犧牲資金的託管。
什麼是CoinJoin?
CoinJoin 交易最初由比特幣開發人員 Gregory Maxwell 於 2013 年提出。在他的帖子中,他簡要概述了這些交易的結構,以及如何在不修改協議的情況下獲得大量隱私收益。
本質上,CoinJoin 涉及將多個用戶的輸入合併到單個交易中。在解釋如何(以及爲什麼)之前,讓我們先看一下基本交易的結構。
比特幣交易由輸入和輸出組成。當用戶想要進行交易時,他將其 UTXO 作爲輸入,指定輸出並對輸入進行簽名。需要注意的是,每個輸入都是獨立簽名的,並且用戶可以定義多個輸出(前往不同的地址)。

如果我們考慮一個給定的交易由四個輸入(每個 0.2 BTC)和兩個輸出(0.7 BTC 和 0.09 BTC)組成,我們可以做出一些不同的假設。首先,我們將看到付款發生:發送者將其中一個輸出發送給某人,並將差額返回給自己。由於他們使用了四個輸入,因此最重要的輸出可能是針對接收者的。請注意,輸出缺少 0.01 BTC,這是給予礦工的費用。
也有可能發送者希望用小 UTXO 創建大 UTXO,併合並小條目以達到 0.7 BTC 的預期結果。
我們可以做出的另一個假設是基於每個條目都是獨立簽名的事實。該交易最多可以有四個不同的參與方簽署條目。這就是 CoinJoins 有效的原理。
CoinJoin 如何運作?
這個想法是,多方將協調創建交易,每一方提供所需的輸入和輸出。由於所有輸入都被組合在一起,因此無法確定用戶屬於哪個結果。檢查下圖:

在這裏,我們有四個參與者想要打破交易之間的鏈接。他們相互協調(或通過專門的協調員)來宣佈他們想要包括的入口和出口。
協調員將獲取所有信息,將其轉化爲交易,並要求每個參與者簽名,然後將其發佈到網絡。一旦用戶簽名,交易就無法更改,否則交易將失效。因此,不存在協調員攜款潛逃的風險。
該交易就像一種混合各個部分的黑匣子。請記住,我們銷燬 UTXO 是爲了創建新的 UTXO。我們擁有的新舊 UTXO 之間的唯一聯繫是交易本身,但我們當然無法區分參與者。充其量,我們可以說參與者提供了其中一項輸入,並且可能是結果輸出的新所有者。
但這絕不能保證。誰能說上面的交易有四個參與者呢?是一個人將資金髮送到自己的四個地址嗎?兩個人分別進行兩次購買,然後每人將 0.2 BTC 發送回自己的地址?四個人向新參與者匯款還是返還給自己?我們不能確定。
通過否認的可能性來保密
CoinJoin 的實現存在這一事實就足以讓人對用於分析交易的方法產生懷疑。您可以推斷在很多情況下都發生了 CoinJoin,但您仍然無法判斷誰擁有輸出。隨着它們的流行,條目全部由同一用戶持有的假設被削弱,這意味着整個生態系統的隱私性大幅增加。
在前面的示例中,我們說交易的匿名集爲 4。輸出的所有者可以是所涉及的四個參與者中的任何一個。匿名設置越大,交易與其原始所有者相關聯的可能性就越小。幸運的是,最近的 CoinJoin 實現允許用戶可靠地將他們的條目與數十個其他條目合併,從而提供高度的匿名性。近日,一筆100人的交易成功執行。
總結一下
硬幣混合工具是任何注重隱私的用戶的重要補充。與提議的隱私增強功能(例如機密交易)不同,這些增強功能與當今存在的協議兼容。
對於那些信任第三方的完整性和方法的人來說,混合服務是一個簡單的解決方案。對於那些更喜歡可驗證、非託管替代方案的人來說,CoinJoin 替代方案更爲優越。對於技術上有能力的用戶來說,這可以手動完成,也可以使用抽象更復雜機制的軟件工具來完成。隨着用戶努力改善隱私,這些工具中已經有一些越來越受歡迎。
