Search on TFTC
Issue #745: A CoinSwap implementation is on the way

Issue #745: A CoinSwap implementation is on the way

May 26, 2020
Marty's Ƀent

Issue #745: A CoinSwap implementation is on the way

Yesterday morning, Chris Belcher took to the bitcoin-dev mailing list to share a design for a CoinSwap implementation he has been working on. This is extremely encouraging to see as a successful CoinSwap implementation would be massive for Bitcoin privacy and fungibility moving forward.

via Chris Belcher's GitHub

The idea of a CoinSwap was first proposed by Greg Maxwell in late 2013, but - to the best of my knowledge - no one has put forward a workable implementation design until yesterday when Chris made his announcement.

CoinSwaps are similar to CoinJoins in the sense that they are both specially formed transactions that aim to provide bitcoiners with better privacy by throwing a wrench in the heuristics used by chain surveillance companies to follow users throughout the blockchain as they transact. However the way a CoinSwap achieves this is different than the way a coinjoin achieves this and comes with certain advantages when comparing the two.

Instead of creating and coordinating a transaction with equal outputs from multiple users in an effort to make it so no one can be sure who holds what UTXO when the transaction is confirmed on the blockchain, a CoinSwap creates a 2-of-2 or 2-of-3 multisigs to enable a quasi atomic swap on-chain. In short, the two parties engaged in a CoinSwap would send coins to an address controlled by the other. Breaking the connection their UTXO has with future transactions they engage in.

To get a better sense of how this works out on a technical level, I would go read Chris' gist. From what I can tell, a CoinSwap is superior to a coinjoin because you can construct them without equal outputs, which destroys a key heuristic used to identify CoinJoins. On top of this, it is cheaper because you attain vastly superior privacy with one transaction instead of having to run your UTXOs through multiple coinjoin rounds. On top of this, a CoinSwap would make it so normal transactions are afforded better privacy because it will be impossible to tell whether or not they are CoinSwaps once an implementation is launched. A HUGE step in the right direction.

Shoutout to Chris for putting the team on his back and moving the ball forward on getting an implementation designed and (hopefully) launched. He will be writing the code for this implementation and is accepting donations if you want to contribute to his work. A worthy cause to donate to if you ask me.

Final thought...

I look good with a mustache.


Current Block Height

Current Mempool Size

Current Difficulty