Let’s talk about Whirlpool “forward-looking anonymity sets” — the crowd in which you are hiding in.
To date you may be familiar with the Whirlpool CoinJoin implementation which is available on the Samourai Wallet[1] mobile app, or Sparrow Wallet[2] desktop app. When you participate in a Whirlpool CoinJoin you gain privacy by collaborating in a multiparty transaction which leaves anyone looking on-chain scratching their head while trying to decipher where your bitcoin has gone.
A Whirlpool CoinJoin is just like any other bitcoin transaction, made up of inputs and outputs. However each input is provided by a different bitcoin wallet, and each output is returned to one of the participating wallets. This transaction is organized by Samourai Wallet’s central Whirlpool coordinator, all the time without the coordinator knowing which input belongs to which output (“blinded”), and without you ever giving up custody of your bitcoin.
Let’s say it’s the end of the month and I’ve just been paid by my employer. Before I spend any of my bitcoin I first wish to use Whirlpool to gain some forward-looking privacy. After all, the bitcoin blockchain is a public ledger and I feel it my right for my employer to not know what I get up to in my private life, including them knowing my spending habits.
I enter Whirlpool, providing one of the inputs and participate in a transaction which looks like this:
- 5 x Input UTXOs.
- 5 x Output UTXOs.
- Each input UTXO belongs to one of the five participating wallets.
- Each output UTXO belongs to one of the five participating wallets.
- All output UTXOs are equal.
Observing on-chain it is impossible to determine which one of the five outputs is mine. The reason why it is “impossible” is because all