-
Notifications
You must be signed in to change notification settings - Fork 492
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
[FireProofing] Dynamic minimum output limit #10675
Comments
Just adding the small output to mining fee seems not great, we want to save the users money, not spend more of it. Instead, the decomposer should find a solution that creates no small outputs. |
Yes, that's what I meant by "Remove uneconomical standard denominations from the possible ones". |
Seem safe to manually get rid of 5000s |
IMO @turbolay has a serious concern about this, which shouldn't be overlooked:
Something to consider. We might gonna need the backend side fix, too. |
Considered but as discussed with @turbolay, there's nothing we can do for old clients, other than to get them to update. Making all clients waste money just to provide privacy for the small outputs makes no sense.
Yes, at least we have to consider the coordinators minimum output amount and how it effects the coordinator fees. |
I don't see what's hard with the coordinator just not generating more of them and only merging them up. |
That's what it already does.
No, that's for server side stuff.
For itself, yes. I was talking about how coordinator cant charge coordinator fees if they are in total less than the minimum denomination. |
Just to put it out there, it doesn't really matter what we use as a basis or what is the percentage. The higher the minimum output denomination, the less small UTXOs users get.
The example calculations I've made in OP points that users would be willing to lose the same |
As discussed previously, #10842 to some degree, but previous pull requests resolved this. |
Description
Add an automatically adjusting sanity check to the client, about what outputs are economically reasonable to create in coinjoin.
Remove uneconomical standard denominations from the possible ones, when transaction fee of creating that output denomination exceeds 30% of a Segwit v0 input cost, with the same fee rate.
In other words, the minimum output value must be at least 3.33 times the cost in fees required to create a single Segwit v0 input.
Put the leftovers to mining fees, because they are presumably small enough amounts compared to the total transaction fee.
Increase the current 10 000 sanity check limit to 49 999 sat or more, to prevent round disruptions.
Bold = debatable
Reasoning
Speed up transactions and make output selection stricter to not burn sats in vain.
The reasoning behind choosing Segwit v0 input as the basis, is that its the costliest, so its the best option if we want to avoid weird edge cases of cheaper base assumptions, and because we want to use this coin to pay people in the future, or to be otherwise useful.
Designs
Calculations
Taproot in sats:
Segwit v0 in sats:
30% of 5000 sats is 1500 sats, and it costs 1500 sats to create a Taproot output at 34.88 sats/vbyte.
If we assume the 30% magic number applies to inputs as well, it costs 69 vbytes for a segwitv0 input, so we could not register those 5000 sat amounts as inputs at a fee rate higher than 21.74 sat/vbyte.
Worst case Segwit v0 input and Taproot output:
5000 sats in % with worst case of Segwit v0 input and Taproot output:
The text was updated successfully, but these errors were encountered: