• econoalchemist

CoinJoin Day, trying out Whirlpool.

April 5th is CoinJoin Day, a day to encourage Bitcoiners to participate in mixing techniques that help them gain privacy & anonymity.



For CoinJoin Day, I wanted to try it out. Here is a thread on why Whirlpools are important, what to avoid, & my experience with @SamouraiWallet. This wallet installs like most others, you'll need to write down your mnemonic phrase, set up a pin, ect.


The @SamouraiWallet mobile app on Android is full of features, easy to use, & functions well. Overall, I really liked the app which I downloaded specifically for the Whirlpool feature. The only issue was connecting my own node, app kept crashing, but it's early access NBD!



After making your initial deposit into your @SamouraiWallet you can select the Whirlpool icon, Mix UTXOs, & select which UTXOs to mix.







Then you can select the fee rate & liquidity pool. The liquidity pool size is what determines the amount in the UTXOs you'll be getting back. i.e, 0.01 pool give you UTXOs with 0.01 BTC available each. There are three pools to choose from: 0.5, 0.05, & 0.01.

You can mix any amount of BTC you want in any of the pools, regardless of the number of UTXOs you'll be mixing, you only pay the one time mixing fee. Once you start mixing, you can continue mixing for free.


















You'll get a warning about Toxic Change, this is important. Your outputs will all be an even 0.01 BTC. If you Whirlpooled 0.029 BTC you have to choose what to do with the 0.009 in change. Make it un-spendable to protect your privacy or if you make it spendable, it is more likely that you will doxx yourself.

The separation of your doxxic change from your pre-mix UTXOs is called Transaction 0 (Tx0). This is a critical step in a ZeroLink CoinJoin implementation because having the unmixed change as part of the CoinJoin transaction will cause deterministic links to remain in tact. The point of the ZeroLink CoinJoin is to break those deterministic links. Seperating it from the pre-mix UTXOs prior to mixing breaks deterministic links.








Whirlpooling is important because let's say an adversary knew I owned input #1 (0.00140586) Then they know I sent my output to address ending in 22ep. But from there, when we Whirlpool they have 3 options to follow the bitcoin.



Here is what happens when you Whirlpool & make your change un-spendable:

1 & 2) Deposits to address ending in 22ep

3) Fee

4) Toxic Change

5) 0.01 liquidity output #1

6) 0.01 liquidity output #2



It's reasonable for our adversary to follow the highest outputs. i.e., the address ending with vrrx was in a tx with 5 inputs & 5 equal outputs. Some of those outputs were used as inputs to tx's with several 0.01 BTC inputs. In legal terms this is called reasonable doubt.



As for the toxic change, it was 0.00921765 BTC and I marked it un-spendable. I tried sending a little more BTC to the same doxxic change address and even so it still remains un-spendable. That's good because I am ensured that I will not accidentally include these funds in a future spend. If I want to spend the doxxic change later, I can adjust it's spend-ability status in the app.



After the post-mix outputs are ready to spend, you have the option to turn on Cahoots. Then you can select Stonewallx2 or Stowaway. But you either need premium or another Samourai user to utilize these cool features. Spending all of your mixed outputs reduces privacy.



Overall @SamouraiWallet mobile app is an easy way to mix on the go with a user friendly interface. I wish I had read all the instructions first so that I better understood the liquidity pools & toxic change.

To learn more check out this podcast: https://stephanlivera.com/episode/150/


Thanks for reading! I hope this got you thinking about how easy it is to mix and the benefits of doing so. If you thought this was cool, then you would be intrigued about the prospects of running your own Dojo so that you can mix in Whirlpools without sharing your xpub with anyone. Having Samourai Wallet & RoninDojo is a great privacy enhancing stack.


If you enjoyed this content, leave me a tip here: Donate.


This article is available on Twitter as a thread here.


177 views