混幣交易(coinjoin),說白了就是幾個互不相干的人,把互不相干的交易放到一個交易中,那麼在外人看來,就不知道到底哪一個input對應了哪一個output,從而無法準確知道誰花錢幹了什麼。 混幣交易的目的:
通過查詢區塊鏈,你的交易對手(之前付過錢給你)掌握了你的比特幣地址,可以看到你把這些錢花在什麼地方,花了多少,還剩多少,甚至可以分析出你其他的比特幣地址。
所以, 你每次都換地址,也只能增加對方分析的複雜度。
所以,如果A想要保護自己的隱私,讓絕大多數人看不出A把錢花在哪兒了,花了多少,還剩多少,就可以利用混幣交易。
混幣交易的過程:
1. A通過Tor等匿名服務,在IRC聊天室中認識了B,C等人,他們也有類似的隱私權的需求。
2. ABC每人從錢包中找出包含同等金額比特幣(比如100mBTC)的UTXO,並製造一個自己的新的公開金鑰。
3. BC把UTXO資訊和公開金鑰散列給A(本例中A是召集人,並且是匿名的)。
4. A構造一個交易,把所有UTXO作為輸入(共300mBTC),然後把輸出平均分給ABC的公開金鑰散列。
5. A用SIGHASH_ALL模式來簽名A提供的UTXO,然後給B;B同樣簽名,然後給C; C同樣簽名,然後就發行就緒到公開的網路中讓所有人看到。
這樣,除了ABC之外,沒人能分辨到底哪個輸出是誰的,也就無法跟蹤之後的消費。如果大量進行混幣交易,會極大的提高追蹤難度。
注意: 如果追蹤者願意花時間來一個一個排查,還是可以找出A的消費內容,所以只是相對的隱私性 。
另外,還有一種替代方法,就是A待在聊天室,等待有另外購買需求的B(花錢目的,金額,對手都可以不同)出現,然後構造一個混和交易,也可以讓第三者無法分辨誰付錢到哪兒。這樣可以省下混幣交易的費用,甚至因為合并交易節省了位元組數可以縮小本來就需要的交易費。
在實際的應用中, 真正想混幣的,主要是一些非法交易的使用者, 他們多數會利用所謂的暗網混幣器。
這種混幣器不但把數量極多的各種合法非法交易混在一起,而且會採用延遲交易的辦法,比如對第N筆交易,把其輸入用於支付第N-1筆交易,而把第N+1筆交易的輸入用來支付第N筆交易的支出。