Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[UX/UI redesign] Coinjoin Strategy - add default, reorg and redesign #10505

Open
editwentyone opened this issue Apr 15, 2023 · 20 comments
Open
Labels

Comments

@editwentyone
Copy link

editwentyone commented Apr 15, 2023

i'm working right now on redesigning the flow "coinjoin strategies" and tackling the following issues with this: #8880, #10404, #9432, #9813

🎨 Figma Prototype

Explanation Video

coinjoin_strategy_default_selection.webm
  • at first the selection is removed from the wallet creation flow, a new "default" strategy is applied to every wallet in the background, the user does not need to choose or understand different strategies while creating the first wallet
  • by visiting the "coinjoin strategy" view from settings, the user can learn, compare and select from different strategies
  • also the user can revert back to the default strategy if needed
  • the user learns, that changing the strategies does have consequences on the privacy progress percentage

please give feedback what you think, based on that i'm proceeding to create low to high fidelity designs.

@editwentyone editwentyone changed the title Coinjoin Strategy - add default, reorg and redesign [UX] Coinjoin Strategy - add default, reorg and redesign Apr 15, 2023
@MaxHillebrand
Copy link
Contributor

Love it!
Awesome work, thanks Edi!

@Kruwed
Copy link
Contributor

Kruwed commented Apr 15, 2023

This is an excellent way to display the tradeoffs of each setting, it easily conceptualizes the affects of each change you can make!

The only problem with the exact model in the video is that the default profile blue dot should appear on the bottom edge of the triangle since has the same anon score target (5) as the cost and speed profiles. If the default profile anon score target were higher, (such as 10), then it would match the existing triangle diagram in the video since moving downwards to specialize in privacy or cost matches the corresponding privacy preference tradeoff of reducing the anon score target to 5.

@MaxHillebrand
Copy link
Contributor

The only problem with the exact model in the video is that the default profile blue dot should appear on the bottom edge of the triangle since has the same anon score target (5) as the cost and speed profiles. If the default profile anon score target were higher, (such as 10), then it would match the existing triangle diagram in the video since moving downwards to specialize in privacy or cost matches the corresponding privacy preference tradeoff of reducing the anon score target to 5.

Yes, though I would argue to slightly increase anonscore by default, so that any user change leads to a different value. Otherwise the user deviates from default, but the behavior does not change at all.

@Kruwed
Copy link
Contributor

Kruwed commented Apr 15, 2023

A higher default anonscore target also allows the "dot" in the middle of the two corners to be selected as compromises between the other extreme preferences:

10505

Red/Blue/Yellow primary colors can "glow" when a user selects a setting in the corners and Orange/Green/Purple secondary colors can "glow" when a user selects a setting on the edges.

@turbolay
Copy link
Collaborator

turbolay commented Apr 15, 2023

If the default profile anon score target were higher, (such as 10)

Yes, though I would argue to slightly increase anonscore by default

Setting a different AnonScoreTarget by default because "it looks better on the triangle" is a total nonsense. If there is a technical reason to target 10 AS by default instead of 5, why not but arguments will need to be stronger than that.

I think the idea is good, but there are several things that I dislike, so I'm just sharing my opinion as we are invited to do:

  1. The way the triangle is displayed gives the feeling that the Cost and Speed profiles do not bring good privacy, which is incorrect (privacy with 5 AnonScore should be enough for most users). With this graphic, users will be tempted to select the Privacy profile, which is something we want to avoid except if users have a good reason to do so. Remember that selecting the Privacy profile means a much much higher cost (especially for whales), an order of magnitude higher than selecting the Speed profile e.g., Same goes for speed.
  2. Users are always faced with AnonScore, a number they can't understand. It's a technical number without meaning to them; I highly recommend abstracting it. See Don't show AnonScore to the user #10319. If the number is displayed, it should be clear that above 50 (even lower... we don't know ourselves), it's an overkill and a waste of money. I can see you added a , but the explanation of the number by itself is too complex. A bit the same goes for red coins isolation, at a lesser extent. One way to address this issue would be to only display the triangle unless we're in the Custom profile.
  3. Why introduce a 5th profile Default? Currently Speed profile is the default; I don't think we should change that. At least the values of the Speed profile makes sense as a default IMO.

I'm playing devil's advocate, but I think that both your idea and your way of presenting and explaining it are really good.

@Transisto
Copy link

@turbolay
Are the cost that different? Networks fees are still minimal vs the 0.3%

@editwentyone
Copy link
Author

editwentyone commented Apr 18, 2023

thank you all for you input, as stated, every feedback is valuable.

we don't want to introduce a new preset/ strategy just it looks better. what we try to achieve is a sort of education.
we also are not using the triangle only by AS values. its a mix of all values that can be changed that places presets on the triangle. its only a visual representation.

giving the user a "default" profile/ preset/ strategy is something the uneducated user can understand by itself. its a default, its a mix/ balance between privacy, speed and costs. (of course we can take the actual speed strategy values and use it for default, or set default to "Days")

the user understands, there is something already to get back to, to a default where, even without understanding, the user trusts us, the team, that the values are in his interests and the best of all worlds.

from there the user can go for more privacy, speed or cost presets. but at that point the user needs to understand what will be changed and how this will affect also his previous privacy progress (up, unchanged, down).

and for the super advanced user we still offer "custom", where everything is unlocked to do whatever they like.

maybe that could be a tradeoff, and that number of presets is enough, I don't think we need more confusion with more presets in-between (the dots on the triangle ;)

new Default
Red: off
AS: 5 (random 6-9?)
Time: Daily (« too slow?)

Speed
off
5
Hour

Cost
off
5
Weeks

Privacy
on
random 27-76 (#10468)
Hours

@MaxHillebrand
Copy link
Contributor

ACK this:

new Default
Red: off
AS: random 6-9
Time: Daily

Speed
off
5
Hour

Cost
off
5
Weeks

Privacy
on
random 27-76 
Hours

@soosr
Copy link
Contributor

soosr commented Apr 25, 2023

I think the only problem is the strategies themself.

I have a very basic rule... whenever we need to introduce something in order to explain something else is a sign that there is a problem and we should rather take a step back instead of going forward.

In this case, by taking a step back I mean removing the concept of strategies.

the selection is removed from the wallet creation flow, a new "default" strategy is applied to every wallet in the background

I 100% agree with this. And this is the actual key move...

CJ strategies (copied from #10505 (comment)):

new Default
Red: off
AS: 5 (random 6-9?)
Time: Daily (« too slow?)

Speed
off
5
Hour

Cost
off
5
Weeks

Privacy
on
random 27-76 (https://github.com/zkSNACKs/WalletWasabi/pull/10468)
Hours

If you take a look at this table and compare different profiles: Default vs Speed vs Cost the only setting that changes is the Time, at this point we should really ask ourselves why we need different configurations only for changes 1 setting... It just doesn't make sense, and causes more confusion because usually, a configuration intends to change many things.

Privacy profile is the exception as it differs drastically from the others. It is still okay not having a separate configuration for it as people who care about privacy don't trust, they verify. They want 100% know what that configuration changes.

So I said having a default configuration is a key move, because 95% of the people stick to the default option. Most users will never ever change any setting...
And this is absolutely fine because that is why 2.0 aims to do things automatically because we know better what is good for the users.

My proposal

  • Have a default configuration so users don't have to configure anything.
  • Remove the concept of coinjoin strategy completely
  • Add an explanation in the Coinjoin Settings about the mysterious options with (i)
  • Whenever someone needs to adjust the configuration they can do it manually
    • Those people would be the privacy maniacs who like to verify rather than trust. They can decide what they need.
    • And also those people who want to change only 1 thing (like anon score target, or time preference) which doesn't require a strategy that seemingly changes many settings.

I didn't get into details in every aspect if needed we can discuss things more deeply.

@MaxHillebrand
Copy link
Contributor

There might be more additional settings added in the future which might justify the profile abstraction.

But I agree that currently the number of settings is low, and it might be well explained with less abstractions.

Decluttering is often the right move.

@yahiheb yahiheb added the UX label Apr 29, 2023
@editwentyone
Copy link
Author

i have something to play with, just find your way to "coinjoin settings" » "strategy selection"

https://www.figma.com/proto/wCZTJxHrGOl4GwIitHgFTN/Wasabi-Onboarding?page-id=161%3A1343&type=design&node-id=172-8347&viewport=-161%2C-31%2C0.32&scaling=min-zoom&starting-point-node-id=172%3A8347

appreciating feedback as usual :)

@editwentyone
Copy link
Author

same energy
Bildschirmfoto 2023-05-01 um 07 54 36Flux-Schematic-934294811

@editwentyone editwentyone changed the title [UX] Coinjoin Strategy - add default, reorg and redesign [UX/UI redesign] Coinjoin Strategy - add default, reorg and redesign May 10, 2023
@editwentyone
Copy link
Author

editwentyone commented May 10, 2023

🎨 Figma Flow to play around and leave comments on the canvas (you need a free figma account)

Explanation Video

wallet_settings_strategy.mov

@MaxHillebrand
Copy link
Contributor

This is excellent.

@Kruwed
Copy link
Contributor

Kruwed commented May 12, 2023

I like it. One beneficial side effect of changing the default profile to coinjoin in "days" instead of "hours" means that the coordinator can choose more aggressive mining fees during the most expensive part of the day in order to satisfy the needs of speedy users without requiring those high fees from default users.

The "Verify words" functionality is in a strange place, but it was already in a strange place before with its own dedicated menu item, so I guess it's better for it to be merged into the configuration menu item.

The only adjustments I would make is to the text to make it less scary. Phrases like "your previous privacy progress can be impacted" may lead the user to believe a loss in privacy progress % was caused by a user mistake rather than an adjusted setting. Here are my replacement suggestions for the texts:

-Top menu description: "The 'Balance' preset is applied by default. Your existing privacy progress is updated after changing your anonymity score target"
-Speed/Cost bottom description: "Requires fewer coinjoins, your privacy progress will adjust from 37% to 42%"
-Privacy bottom description: "Requires more coinjoins, your privacy progress will adjust from 37% to 7%
-While the anon score target is unchanged, I would not include any text saying the privacy progress is "untouched"

@editwentyone
Copy link
Author

The "Verify words" functionality is in a strange place, but it was already in a strange place before with its own dedicated menu item, so I guess it's better for it to be merged into the configuration menu item.

imo it just needed to be dropped, please see #10539 (comment)

The only adjustments I would make is to the text to make it less scary. Phrases like "your previous privacy progress can be impacted" may lead the user to believe a loss in privacy progress % was caused by a user mistake rather than an adjusted setting. Here are my replacement suggestions for the texts:

-Top menu description: "The 'Balance' preset is applied by default. Your existing privacy progress is updated after changing your anonymity score target" -Speed/Cost bottom description: "Requires fewer coinjoins, your privacy progress will adjust from 37% to 42%" -Privacy bottom description: "Requires more coinjoins, your privacy progress will adjust from 37% to 7% -While the anon score target is unchanged, I would not include any text saying the privacy progress is "untouched"

thank you, i like the improvements, and i'm always open to text suggestions :) will incorporate them into my screens.
also its a good idea only to show this info text when there is actual change happening

@TChukwuleta
Copy link
Contributor

Hey guys.

I don't know if this issue is still open, but I want to try my hands on this. Even though its been worked on, I am very open to collaborating.

@turbolay
Copy link
Collaborator

turbolay commented Jun 24, 2023

Hey guys.

I don't know if this issue is still open, but I want to try my hands on this. Even though its been worked on, I am very open to collaborating.

Hey! This issue is still open, every contribution is very much appreciated. We can't promise that your ideas will be implemented, but we can promise they'll be considered.

@TChukwuleta
Copy link
Contributor

Thanks @turbolay

Currently looking through it. Would try my hands on it

@TChukwuleta
Copy link
Contributor

Hello team, so I have a question regarding this Verify recovery words page:

image

image

If a user makes a mistake while inputting his mnemonic or a user decides to go back a step, how would that work? cos it is really not clear.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

8 participants