前言
什麼是代幣混合?
當然,這種集中式服務的安全性和匿名性值得懷疑。用戶不能保證其資金會透過混合器退回給他們,或者退回的代幣不會以某種方式受到污染。使用混合器時,需要考慮的另一個方面是第三方可能會記錄 IP 和比特幣地址。最終,用戶放棄對其資金的控制權,希望能收回未連結的資金。
CoinJoin 交易的形式可以說是一種更有趣的方法,其創造了很大程度上似乎合理的可否認性。也就是說,在 CoinJoin 之後,沒有跡象表明可以肯定地將用戶與其之前的交易連結起來。許多 CoinJoin 解決方案提供一種去中心化的混合器替代方案。雖然可能會涉及協調者,但用戶不需要犧牲對其資金的保管。
什麼是 CoinJoin?
比特幣交易由輸入和輸出組成。當用戶想要進行交易時,他們將其 UTXO 作為輸入,指定輸出,然後對輸入進行簽名。需要注意的是,每個輸入都獨立簽名,並且用戶可以設定多個輸出(前往不同的地址)。
如果探究由四個輸入(每個 0.2 BTC)和兩個輸出(0.7 BTC 和 0.09 BTC)組成的給定交易,我們可以做出一些不同的假設。首先,我們正在觀察付款的發生 – 傳送者將其中一個輸出傳送給某人,並將一些找零退回給自己。由於他們使用了四個輸入,因此,較大的輸出可能針對接收者。請注意,我們在輸出中缺少 0.01 BTC,這是支付給礦工的費用。
傳送者也有可能希望從較小的 UTXO 中建立較大的 UTXO,因此,他們會合併較小的輸入以獲得所需的 0.7 BTC 結果。
我們可以做出的另一個假設是,基於每個輸入都獨立簽名這一事實。該交易最多可以有不同的四方來簽署輸入。這正是讓 CoinJoin 有效運作的原理。
CoinJoin 如何運作?
該想法是,多方將進行協調以建立交易,每項交易提供輸入和所需的輸出。由於所有輸入組合在一起,因此,無法確定哪個輸出屬於哪個用戶。思考下圖︰
這裡有四個參與者希望打破交易之間的連結。他們相互協調(或透過專門的協調者),宣佈其希望包含的輸入和輸出。
協調者將獲取所有資訊,將其製作成交易,然後在將其推播至網路之前讓每個參與者簽名。用戶簽名後,交易在沒有變得失效的情況下無法被修改。因此,不存在協調者資金流失的風險。
但即使這樣也不能做出保證。誰敢說,在探究上述交易時,會有四個參與者?這是一個人將其資金傳送至自己的四個地址嗎?還是兩個人分別進行兩次買入,並將 0.2 BTC 分別退回到其自己的地址?或者是四個人傳送給新參與者,或退回給自己?我們不確定。
透過否認來保護隱私權
CoinJoin 實作存在的這一事實,足以讓人們對用於分析交易的方法產生懷疑。您可以推斷在許多情況下都發生了 CoinJoin,但您仍然不知道誰擁有輸出。隨著它們越來越受歡迎,輸入歸同一用戶所有的假設被削弱 – 隱私權在更廣泛的生態系統中實現巨大飛躍。
總結
對於那些信任第三方完整性和方法的人來說,混合服務是簡單的解決方案。對於那些喜歡可驗證且非託管替代方案的人來說,CoinJoin 替代方案則更勝一籌。這些可以由技術熟練的用戶手動完成,或者使用可抽象出更複雜機制的軟體工具來完成。隨著用戶爭取更大的隱私權,這些工具中只有少數會繼續流行。