Author

Topic: A Comparison of Coinjoin Protocols and Clients [Open Source] (Read 122 times)

member
Activity: 378
Merit: 93
Enable v2transport=1 and mempoolfullrbf=1
Coinjoins.org has just been updated to include reviews for Trezor, BTCPay Server, and Jam!
member
Activity: 378
Merit: 93
Enable v2transport=1 and mempoolfullrbf=1
CAUTION: Another user has created a self moderated topic about privacy services - remember to never trust "mixing sites" with your coins!

https://www.coinjoins.org/ is a new open source educational project for promoting the use of privacy preserving transactions on Bitcoin, called Coinjoins (a term coined by gmaxwell and Peter Todd). The origins of privacy on Bitcoin go all the way back to... well, Bitcointalk!  The concept arose in 2011 and was a highly demanded and anticipated way for users to separate the history of their funds from the future of their funds in a noncustodial way. There was even a huge bounty awarded to the Wasabi and Joinmarket teams for their development success.

Coinjoin supporting wallets are now fairly commonplace, but it's hard to figure out which one is the best tool for you without a good way to compare them against each other.  Trying to parse the documentation of every project is difficult, especially when teams such as Samourai engage in repeated dishonesty, which is why this community accessible guide was created.

There are three coinjoin protocols popular today:

-JoinMarket - https://mempool.space/tx/c270b84767431eae0aabcd4f99f93f1d299518aebb7529650dbbf41815561d03
-WabiSabi - https://mempool.space/tx/d465033214fd2309dcce5a90c45fcaa788aa4394ee36debe07aad8d8a37907d2
-ZeroLink - https://mempool.space/tx/3cef999a3c006be772f7f63fc87b718cd01146ab593644e0eeb3d61e753f02b8

They are implemented in many different clients:

-JoinMarket CLI/GUI (JoinMarket)
-Jam (JoinMarket)
-Wasabi 2.0 (WabiSabi)
-BTCPay Server (WabiSabi)
-Trezor (WabiSabi)
-Wasabi 1.0 (ZeroLink)
-Samourai (ZeroLink)
-Sparrow (ZeroLink)

Even if the implementation of the coinjoin protocol is correct, there is still a need for the client to protect its privacy against the coinjoin coordinator so that absolutely no one knows which outputs of a coinjoin transaction belong to which inputs.  This requires protecting registering your input and output using separate Tor identities, and protecting your xpub address from being leaked when querying your wallet balance.

In addition to the mining fees paid for coinjoin transactions, there are fees charged by coordinators in WabiSabi and ZeroLink and fees charged by makers in JoinMarket.  This is another aspect to consider when choosing providers within these protocols themselves.

Coinjoins.org is a work in progress, but it's an ambitious project:  It is hard to keep track of documentation and development, so if you see something that needs updating, feel free to create an issue or pull request - https://github.com/CoinjoinsOrg/coinjoins
Jump to: