Single round coinjoin proposal #14476
Replies: 2 comments
-
|
This discussion raises many valid points, most of which stem from the vision behind Wasabi 2.0's design. The idea of having a wallet that provides privacy by default—effortless and completely transparent for users—required taking control away from them and making all processes and decisions automatic. Decisions that users could make themselves in Wasabi v1.x, such as which coins to participate with, when to do it, and what anonset to achieve for those coins, as well as all detailed information about the progress of the process, were hidden to make the user experience simpler. We paid a huge cost to achieve that, mainly in complexity. CoinJoining with Wasabi v2.x is now easier than ever. All tutorials, posts on X, podcasters, and most of the feedback received point in that direction. However, power users have needs that Wasabi cannot fulfill with the current design. These needs vary among users:
These are all real feedback items received since v2, and I am absolutely sure there are many more. Whenever new feedback is received, developers have rushed to implement some hack to fulfill the needs of the individual who requested the feature.
What to do then? We can develop an expert mode for coinjoin that allow power users to select the coins, the anonymity set desired and other conditions ala Wasabi v1.x. We can extend the capabilities of the internal API and make it available as scripting or we can do nothing. |
Beta Was this translation helpful? Give feedback.
-
|
I just want to say that I consider all v2 features mentioned (excluded coins, fee rate setting, pause/restart coinjoin) important. I do not think these are "good to have". These are all must-to-have. But, even with these "extra" features, Wasabi still respects the principle of having privacy by default. Anyone who downloads Wasabi and receives bitcoin can have them private in a fairly simple, UI-friendly and straightforward fashion. (Perhaps there is some complexity without having a default coordinator, but still fairly simple, once you paste the coordinator URI.) This is why I initially implemented the proposed change as a settings toggle. Someone who just wants their coins private will not turn it on, and I think the same applies for other settings, such as the anon score target, or non-private coin isolation. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
The problem with "coinjoin until anonymity score"
The current model asks users to set an anonymity score target, then coinjoins repeatedly until all coins reach it. This has several issues:
Users don't understand anonymity scores. Asking someone to pick a number between 2 and 300 is meaningless to most users. What does an anon score of 5 vs 50 actually mean for their privacy? The answer depends on their threat model, which most users can't articulate.
It creates a false sense of completion. "All your funds are private!" at 100% suggests the job is done, but privacy is not a binary state. A user who coinjoined once is better off than one who didn't, and a user who coinjoined 10 times is better off than one who coinjoined once. The current UI hides the coinjoin controls at 100%, discouraging further mixing.
It removes user control over timing. Users cannot choose when to coinjoin. They either turn it on (and it runs indefinitely) or turn it off. There is no way to say "coinjoin once right now, and I'll decide later when to do it again." This matters because timing patterns can be informative -- a user may want to space out their coinjoins manually across days or weeks.
It leads to unnecessary fees. Users who just want basic privacy end up paying for many rounds they didn't need, because they had to pick an arbitrary target number. The "Reduce Costs" profile helps, but it's still tied to the anon score model.
What single-round coinjoin offers
A single-round option lets the user say: "mix my coins once, then stop." This is useful because:
This was originally proposed in #8588.
Open question: UI placement
Where should this option live? Two approaches have been discussed in #14467:
Music box buttons -- two start options in the coinjoin status bar: one for single-round, one for repeat. This keeps the action where the user already interacts with coinjoin controls:
Settings toggle -- a toggle in Wallet Settings > Coinjoin. Simpler to implement but less discoverable.
Beta Was this translation helpful? Give feedback.
All reactions