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

Avoid Overmixing In Edge cases #10462

Closed
nopara73 opened this issue Apr 8, 2023 · 14 comments
Closed

Avoid Overmixing In Edge cases #10462

nopara73 opened this issue Apr 8, 2023 · 14 comments
Assignees

Comments

@nopara73
Copy link
Contributor

nopara73 commented Apr 8, 2023

Multiple users reported similar concerning issues:

So my coinjoin was going as usual, but in the end instead of usual 0.0002 - 0.0003 btc for 100% privacy progress, had to pay ridiculous 0.0022 and my progress remained where it was at 1%. It run nonstop from march 29 to april 1st. Is it something to be expected from time to time or is it not normal? - source

Hi, there seems to be an issue with my wallet. V 2.0.3.0
Over the last few days it did a ton of coinjoins. However, the outputs are all very tiny UTXOs with an anonymity score of 1 (and all linked to the original transaction as the label still shows up)
Is there a way to stop this from happening? It’s just burning transaction and CJ fees for no benefit

@nopara73
Copy link
Contributor Author

nopara73 commented Apr 8, 2023

So the issue here is: privacy is not gained despite coinjoining and these users are non-whales.

@Kruwed
Copy link
Collaborator

Kruwed commented Apr 8, 2023

Related: #10274

@nostitos
Copy link

nostitos commented Apr 8, 2023

I see two issues here, The most concerning being the high fee,
That should be easy to diagnose by looking at the premix. Most likely some small denomination got generated to an address that was not properly tracked by the wallet.

Privacy getting lost seems like it could be a temporary inclusion of new coins with denomination mismatch. It need fixing but shoudln't a few more remixes eventually increase privacy score?

@nostitos
Copy link

nostitos commented Apr 8, 2023

If only the transaction details had the decency of showing what we paid for between network fees vs coordinator fees maybe we'd have an easier way of finding the problem.

@molnard
Copy link
Collaborator

molnard commented Apr 8, 2023

Without digging into it, the network fees have to be taken into account as well.

https://mempool.space/graphs/mining/block-fee-rates#3m

block-fee-rates-3m-1680959551

@nopara73
Copy link
Contributor Author

nopara73 commented Apr 9, 2023

Little progress report:

The high fee unfortunately is "normal" here and that's something we're constantly improving and there's a lot of room for improvement there.

Privacy getting lost is what does not seem normal, but a bug. It'd be only normal if the users would be the largest participants in the rounds, but that's not the case.

I took a look at the only modification we've done for the release: #10100 and it does not seem to be the culprit, because it barely affects anything and I tested against some wallets.

@nopara73
Copy link
Contributor Author

nopara73 commented Apr 9, 2023

Also leaving here @turbolay's ideas on improvements:

  • Reduce the impact of randomness on the decomposition/coin selection
  • Reduce the biggest non standard output much more than currently
  • Take into account combinations in the computation of the AS especially for small outputs
  • Reduce the penalty when an user has several outputs of the same denomination

Some related improvements:

  • Coin selection improvement #10096
  • don't coinjoin unless privacy percent <= 80%
  • lower the privacy scores of Maximize Privacy profile, it's a terrible overkill
  • introduce back whale round concept: gaining significant efficiency with that

All this being said, the core of our algorithm: weighted average should be relaxed somehow based on the following insight:

There's a notion we have not incorporated: the smaller your UTXO is on the output side compared to other outputs, the more privacy you gain not only in the coinjoin, but also in the remixe wise.

@nopara73 nopara73 changed the title Something's Wrong With The Coinjoins Avoid Overmixing In Edge cases Apr 13, 2023
@nopara73
Copy link
Contributor Author

Upon further investigation and testing there does not seem to be a bug here, rather these are random variations. Regardless I keep the issue open until a decent amount of already planned improvements as described in the previous message are done.

@strnly
Copy link

strnly commented Apr 14, 2023

Bummer... I don't find it acceptable to leave 8% of my stack on the table in fees for using the pleb mode of coinjoin pluggin
in BTCPay... smh

@nopara73
Copy link
Contributor Author

@Kukks where should @strnly open an issue regarding BTCPay stuff?

@Kukks
Copy link
Contributor

Kukks commented Apr 15, 2023 via email

@adamPetho
Copy link
Collaborator

@Pule08 What is the action item here?

#10462 (comment) these ideas need to be implemented?

@nopara73
Copy link
Contributor Author

Not implemented. They are very diverse things. One has already been implemented and merged, the other is waiting for review, another one requires surgical precision in backend coinjoin development, another one needs UX design first, so... it's complicated :)

Maybe the best would be to create a different issue for every idea and close this one.

@nopara73
Copy link
Contributor Author

nopara73 commented Jun 7, 2023

This has been solved by the parts implemented here: #10708 (comment)
In fact it happened with the help of one the original users here.

@nopara73 nopara73 closed this as completed Jun 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

No branches or pull requests

7 participants