介紹

比特幣通常被稱爲數字現金,但這是一個值得懷疑的比較。如果愛麗絲付給鮑勃十美元現金,鮑勃不知道錢從哪裏來。如果他後來把它交給卡羅爾,她將無法推斷出愛麗絲曾經擁有過它。

比特幣因其固有的公共性而與衆不同。任何人都可以輕鬆觀察到給定代幣的歷史(更準確地說,未使用的交易輸出或 UTXO)。這有點像每次使用時都將交易金額和參與者姓名寫在賬單上。

儘管如此,公共地址的假名性確保用戶的身份不會輕易泄露。不過,比特幣並非完全私密。區塊鏈分析變得越來越複雜,能夠越來越有效地將地址與身份聯繫起來。除了其他監控技術外,專門的實體還可以使加密貨幣用戶匿名化。爲了解決這個問題,多年來,解除交易關聯的技術已經浮出水面。


什麼是混幣?

從廣義上講,混幣可以指任何涉及通過用其他資金替代資金來混淆資金的活動。然而,在加密貨幣領域,混幣通常表示第三方提供的服務。通常,服務提供商會收取用戶的代幣(以及少量費用),並返回與發送的代幣沒有鏈接的代幣。這些服務也稱爲滾筒或攪拌機。

當然,這種中心化服務的安全性和匿名性是值得懷疑的。用戶無法保證他們的錢會被混合器返還給他們,或者返還的代幣不會受到某種程度的污染。使用混合器時要考慮的另一個方面是 IP 和比特幣地址可能會被第三方記錄。最終,用戶放棄了對其資金的控制,希望能收回未關聯的資金。

CoinJoin 交易的形式可以說是更有趣的方法,它創造了很大程度的合理推諉。也就是說,在CoinJoin之後,沒有任何證據可以確定地將用戶與其之前的交易聯繫起來。許多 CoinJoin 解決方案爲混合器提供了去中心化的替代方案。儘管可能涉及協調員,但用戶不需要犧牲資金的託管權。


什麼是 CoinJoin?

CoinJoin 交易最初由比特幣開發人員 Gregory Maxwell 於 2013 年提出。在他的帖子中,他簡要概述了這些交易的結構以及如何在不更改協議的情況下實現巨大的隱私收益。

本質上,CoinJoin 涉及將多個用戶的輸入組合到單個交易中。在解釋如何(以及爲什麼)之前,讓我們先看一下基本交易的結構。

比特幣交易由輸入和輸出組成。當用戶想要進行交易時,他們將 UTXO 作爲輸入,指定輸出,並對輸入進行簽名。需要注意的是,每個輸入都是獨立簽名的,並且用戶可以設置多個輸出(轉到不同的地址)。


image of an example transaction with four inputs and two outputs


如果我們查看由四個輸入(每個 0.2 BTC)和兩個輸出(0.7 BTC 和 0.09 BTC)組成的給定交易,我們可以做出一些不同的假設。首先,我們正在觀察付款的發生——發送者將其中一個輸出發送給某人,並返回一些零錢給自己。由於他們使用了四個輸入,因此較大的輸出可能是給接收者的。請注意,我們從輸出中缺少 0.01 BTC,這是支付給礦工的費用。

發送者也有可能希望用較小的 UTXO 創建較大的 UTXO,因此他們會合並較小的輸入以獲得所需的 0.7 BTC 結果。

我們可以做出的另一個假設是基於每個輸入都是獨立簽名的事實。此交易最多可能有四個不同的方簽署輸入。這就是使 CoinJoining 有效的原理。


CoinJoin 如何運作?

這個想法是多方協作創建交易,每方提供輸入和期望的輸出。由於所有輸入都組合在一起,因此無法確定哪個輸出屬於哪個用戶。請考慮下圖:


image of an example coinjoin


在這裏,我們有四個參與者希望打破交易之間的鏈接。他們相互協調(或通過專門的協調員)宣佈他們想要包括的輸入和輸出。

協調員將獲取所有信息,將其製作成交易,並讓每個參與者在將其廣播到網絡之前進行簽名。一旦用戶簽名,交易就無法修改,否則交易將失效。因此,不存在協調人捲款跑路的風險。

交易就像一個混合貨幣的黑匣子。請記住,我們實際上是銷燬了 UTXO 來創建新的 UTXO。新舊 UTXO 之間的唯一聯繫就是交易本身,但當然,我們無法區分參與者。我們最多可以說,參與者提供了其中一個輸入,並且可能是結果輸出的新所有者。

但即便如此,也絕不能保證。從上述交易來看,誰能斷言有四個參與者?這個人會將資金髮送到他們自己的四個地址嗎?兩個人分別進行兩次購買,並將 0.2 BTC 分別返回到他們自己的地址?四個人是發送給新參與者,還是發送給他們自己?我們無法確定。


通過否認來保護隱私

CoinJoin 實現存在的事實足以讓人對用於分析交易的方法產生懷疑。你可以推斷出在許多情況下已經發生了 CoinJoin,但你仍然不知道誰擁有輸出。隨着它們越來越受歡迎,輸入都歸同一用戶所有的假設被削弱了——這對更廣泛生態系統中的隱私來說是一個巨大的飛躍。

在前面的示例中,我們說交易的匿名集爲 4 - 輸出的所有者可以是所涉及的四個參與者中的任何一個。匿名集越大,交易與其原始所有者相關聯的可能性就越小。幸運的是,最近的 CoinJoin 實現使用戶可以輕鬆地將他們的輸入與數十個其他輸入合併,從而提供高度的可否認性。近日,一筆100人的交易成功執行。


結束語

對於任何重視隱私的用戶來說,混合硬幣的工具是一個重要的補充。與提議的隱私升級(例如機密交易)不同,它們與當今的協議兼容。

對於那些信任第三方的完整性和方法的人來說,混合服務是一個簡單的解決方案。對於那些喜歡可驗證且非託管替代方案的人來說,CoinJoin 替代方案更爲優越。這些可以由技術熟練的用戶手動完成,也可以使用抽象出更復雜機制的軟件工具來完成。隨着用戶爭取更大的隱私權,其中一些工具已經越來越受歡迎。