比特币的混币交易


混币交易(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笔交易的支出。