Wasabi Wallet published an article on what it costs to anonymize your bitcoins using Wabisabi, Whirlpool and JoinMarket.
What is a Bitcoin coinjoin?
This is a collegial transaction allowing people to blur their lines by blending in with the crowd. After such a transaction, it is no longer possible to know which bitcoins belong to whom.
To understand how it works, we need to talk about utxo. Imagine that you have received two transactions on your wallet. Let’s put 0.5 bitcoin and 1 bitcoin. Your wallet will show a balance of 1.5 BTC, but under the hood, you have two separate utxos of 0.5 and 1 bitcoins.
A utxo is a small piece of code that mathematically links a public key (an address) to an amount of bitcoins.
By the way, the wallet does not actually “contain” 1.5 BTC. It simply hosts the private keys controlling these two utxos, the custody of which is ensured by the network nodes.
Only the person who has the private key corresponding to the public key of a utxo can spend the bitcoins linked to it. “Spending” bitcoins technically means linking them to another public key by creating a new utxo.
And the fact is that it is possible to bring as many utxos as you want to complete a transaction. In our example, you will need to use both utxos for any transaction of more than 1 bitcoin.
In the case of a transaction of 0.7 bitcoin, you will have to spend both utxos. The difference of 0.8 BTC (1.5 – 0.7 = 0.8) will be returned via the creation of a second utxo.
A typical transaction additionally creates a third utxo corresponding to transaction fees for miners.
All this to say that it is possible to provide a multitude of utxos as input to a transaction and to create a multitude of utxos as output.
This makes it possible to construct coinjoin transactions by providing input from several different people. The trick is to create utxos of the same output amount:
What do the different Coinjoin protocols cost?
Coinjoins cost money. You obviously have to pay transaction fees (to miners), but also fees collected by the coordinator who orchestrates the coinjoin.
“Bitcoiners may find different protocols beneficial depending on the amounts they want to anonymize or how long they are willing to wait before spending those BTC. For example, if the amount you want to anonymize is less than or equal to ten million sats ($4,250), wallets using the WabiSabi coinjoin protocol are ideal. If you can wait days or weeks, Whirlpool would be better due to their free remix policy”says Gustavo J. Flores on the blog from Wasabi.
-Fresh with Wabisabi
The wallets offering the Coinjoin WabiSabi option are Wasabi, BTCPayServer and Trezor. The fees collected by the zkSNACKs coordinator are a flat rate of 0.3%.
Coordination fees are only charged during the first transaction. Participating immediately in a new coinjoin is free of coordinator fees. However, you must pay transaction fees.
Additionally, utxos below 1,000,000 satoshis ($425) do not pay coordination fees.
-Fees with Whirlpool
The wallets offering the Whirlpool coinjoin option are Samurai, Sparrow And Bitcoin Keeper. The coordination fee is a fixed amount of 5% which depends on the liquidity pool you participate in.
Here are the fees per pool:
-0.001 BTC Pool: 0.00005 BTC coordination fee
-0.01 BTC Pool: 0.0005 BTC coordination fee
-0.05 BTC Pool: 0.00175 BTC coordination fee
-0.5 BTC Pool: 0.0175 BTC coordination fee
Participating in the pool of 0.001 BTC means that the utxos coming out of coinjoin will all be 100,000 sats.
5% seems much more important than 0.3% at first glance, but not necessarily. For example, if you enter the pool at 0.01 BTC, you will effectively pay 5% if you want to anonymize only 0.01 BTC. However, if you contribute 0.5 BTC, you will only pay 0.1% fees in total.
“To be exact, you can anonymize an amount representing up to 70 times the amount of the pool you have chosen, spread over 70 utxos (for the pool of 100,000 sats, it is only 25 times)”we can read on the blog.
With Whirlpool, participating in several coinjoins in a row is completely free. It is in fact the new entrants who pay the transaction fees of those who are already in the pool and who wish to chain the coinjoins.
Now here are some examples made by Gustavo J. Flores to determine which coinjoin is the cheapest depending on the amount of bitcoins you want to anonymize.
How much, concretely?
I have a UTXO of 0.0099 BTC (~$425)
-Free coordination fees with WabiSabi (you still have to pay transaction fees)
-With Whirlpool you can only participate in the pool of 0.001 BTC, so 0.00005 BTC coordinator fees in addition to transaction fees.
In other words, it will cost you (assuming 50 sats/vbyte for transaction fees):
-WabiSabi
Assuming you have 1 utxo in and 7 utxo out (extremely high estimate), you will pay 17,925 sats for the first coinjoin transaction and 35,175 sats for subsequent transactions.
-Whirlpool
Assuming you have 1 utxo in and 8 utxo out, you will pay a total of 120,650 sats
WabiSabi is cheaper if you do 4 or fewer coinjoins in a row. Whirlpool becomes more economical above four coinjoins.
The question being: how many coinjoins do you need to make to anonymize your bitcoins? Only one is enough in practice, especially via wabisabi which has many more participants than with Whirlpool.
I have a utxo of 1 BTC (~$43,000)
-WabiSabi
300,000 sats (coordination fee) + 17,925 sats (transaction fee) = 317,925 sats for the first transaction + 35,175 sats for subsequent transactions.
-Whirlpool
Pool of 5 million Samourai sats: 175,000 sats (coordination fees) + 276,850 sats
(transaction fee) = 451,850 sats
WabiSabi is more economical than Whirlpool for 3 transactions or less.
Here is a very interesting Twitter space created by Gustavo J. Flores following the publication of his paper:
Let’s finish by emphasizing that the JoinMarket protocol is the cheapest option in all cases when you are a “maker”.
JoinMarket differs from other protocols in that there is no centralized coordinator. Rather, there are two roles with makers (who provide liquidity for a fee) and takers (who pay a fee for liquidity and coordinate the transaction). Anyone can be a maker or a taker.
In short, instead of paying coordination fees, the JoinMarket protocol charges liquidity fees. here is the order book with all the offers from the makers.
Here is our previous article on coinjoins: Bitcoin Coinjoin – How does it work?
Maximize your Tremplin.io experience with our ‘Read to Earn’ program! For every article you read, earn points and access exclusive rewards. Sign up now and start earning benefits.
