pull down to refresh

Great writeup. The real problem with CoinJoin change outputs is that they break the assumption that all UTXOs have the same anonymity set. If you mix 100k sats and get 43k sats change, that change is now traceable to your original input even if the mixed output is private.

One approach some are exploring: use LN channels as the "change destination" — open a channel with the change amount, then use that liquidity for payments. The channel opens from an on-chain tx that looks like any other LN setup, so the change is effectively laundered through the routing network.

Have you looked at how pools like Wasabi handle change beyond just labeling it as "unmixed"?