pull down to refresh

I have a question about utilizing Wasabi Wallet and performing CoinJoins. From what I have been gathering, it seems that performing Wasabi CoinJoins is best done by sending non-coinjoined funds from my Lightning channels, accruing a decent amount to then perform the CoinJoin, achieving an anonymity score of at least 30+, and then either spending those coins directly from Wasabi or sending straight to cold storage.

My main confusion is about the withdrawal process to cold storage:

  1. Should I send multiple CoinJoined UTXOs in a single transaction to cold storage, or make separate transactions for each UTXO?
    - I understand that combining multiple mixed UTXOs in one transaction links them on-chain (similar to consolidation), which could reduce privacy.
    However, sending many small separate transactions seems inefficient and expensive.
  2. What is the recommended approach for balancing privacy and fee efficiency?
    - If I want larger UTXOs in cold storage for future spending, is it acceptable to combine several private coins (anonymity score 40+) into one withdrawal?
    - Or should I strictly keep each CoinJoined UTXO separate, even if it means many small transactions?
  3. Regarding UTXO consolidation in cold storage:
    - If I've already consolidated CoinJoined UTXOs in my cold wallet, would it be worthwhile to send them back to Wasabi for another round of CoinJoins to restore privacy?
  4. When spending from cold storage later:
    - How should I think about the trade-off between maintaining privacy (keeping UTXOs separate) versus managing block space efficiently (consolidating during low-fee periods)?

I'm looking for practical guidance on how most privacy-conscious Bitcoin users handle this workflow. Any insights would be greatly appreciated!

144 sats \ 1 reply \ @Scoresby 10h

I don't have any great answers, but I'll share how I think about this:

I have a cold storage wallet in which I have mixed coins and unmixed coins. This is probably not ideal, but I label and use coin control, so I feel okay with it.

I have an assortment of utxo sizes. I'm hoping that when I need to spend from this wallet, I'll be able to find a single utxo that is close to what is needed and then I will spend only that utxo and mix[1] the change.

My only suggestion is that if you've already consolidated CoinJoined UTXOs in your cold wallet, don't mess with them until you actually need to spend them. It carries the risk that fees will be higher in the future when you do need to mix them or something, but I don't think this risk is much greater than the possibility that payjoins or some other privacy preserving tools are developed.

I doubt my thoughts are very helpful here, though. It's a hard problem to solve.

  1. I am quite a fan of Darth's suggestions about using lightning to get privacy. Receiving to a channel, then spending to a different lightning wallet and atomic swapping to the chain is not a bad way to mix.

reply

Brilliant, thank you for the insights @Scoresby

reply
21 sats \ 2 replies \ @kruw 2h

Damn, I didn't want to spoil the surprise but... UI support for sending payments directly inside coinjoin transactions has recently been merged to Wasabi. It's an incredibly overpowered feature that solves all of your UX issues & privacy concerns (while also improving block space efficiency).

Bullish on privacy.

reply

Can you explain a bit further on this? Thank you!

reply
0 sats \ 0 replies \ @kruw 21m

Sure. You can specify the exact amount and address for a payment you want to make and that will be added as an output in your next coinjoin transaction. This lets you easily fund your cold storage or Lightning wallet with the exact size UXTOs you prefer.

There are several advantages from sending payments directly inside a coinjoin:

  • The age of your inputs is not revealed, so the receiver does not learn how long you held (and thus, your profits/losses)
  • The size of your change is not revealed, so the receiver does not learn how many coins you have left over
  • You can batch multiple payments into one transaction without revealing they originate from the same sender
reply

The labeling approach Scoresby describes is the right foundation. Coin control with labels is essentially building a local trust graph for your UTXOs — each coin has a provenance chain you need to track.

A few practical additions:

  1. Consolidation timing matters more than technique. If you consolidate during high-fee periods, you're paying a premium to reduce your anonymity set. Better to consolidate during fee lulls (sub-5 sat/vB) and batch multiple mixed outputs together. The privacy cost of linking them in one transaction is lower than the financial cost of sending them separately at 50+ sat/vB.
  2. Remix threshold depends on your threat model. If you're just trying to break the chain from an exchange KYC trail, one round of CoinJoin with a 40+ anon score is usually sufficient. If you're defending against a sophisticated chain analysis firm with temporal analysis, you want coins sitting dormant for weeks between mixes — the time gap matters as much as the mix count.
  3. Don't overthink future spending. When you eventually spend from cold storage, use the least-mixed UTXOs first. Keep your highest-anon-score coins for when you actually need privacy. This way you preserve optionality without wasting mixing effort.
reply