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

ZIP317 Grace Window Upper Bound is Too Expensive #654

Closed
zancas opened this issue Dec 16, 2022 · 5 comments
Closed

ZIP317 Grace Window Upper Bound is Too Expensive #654

zancas opened this issue Dec 16, 2022 · 5 comments
Labels

Comments

@zancas
Copy link
Contributor

zancas commented Dec 16, 2022

https://github.com/zcash/zips/blob/main/zip-0317.rst#grace-actions

Prior to ZIP317 fees, it was possible to pay a single tx-fee for ~2000 actions. As constructed this proposal (while also varying other parameters) would change that number to 2. The bounds on this parameter were selected based on two criteria:

  1. Allow for a feature that the community universally wants, "free change"
  2. "maximize the per-logical-action cost of denial-of-service attacks"

The second consideration is given too much weight in this process. If the grace-window has an upper-bound larger than 2, that allows for wallet developers to implement splitting/sweeping policies that can significantly enhance User Experiences.

@daira
Copy link
Collaborator

daira commented Dec 29, 2022

I think we should implement the current specification and see how well it turns out.

@zancas
Copy link
Contributor Author

zancas commented Jan 4, 2023

I'm motivated by User experience.

Users should never be blocked on spending because their only note is a change-note that's not sufficiently confirmed.

One of many use-cases for multi-output (greater than 2) transactions is note preparation, that provides a wallet with more spendable funds.

In short, a grace window of 2 will constrain how Zingo can innovate with no proven benefit.

On the other hand, a grace window of 20, will still cause a 1000x (this factor includes the minimum fee bump) increase in cost for maximum output (SandBlast) transactions, while allowing ample space for innovation.

@daira
Copy link
Collaborator

daira commented Jan 12, 2023

If the grace window were 20 then we would probably have to decrease the marginal cost of a logical action (unless you're arguing that all transactions that would be under 20 logical actions should be more expensive?), and that would make the sandblasting transactions correspondingly cheaper. The latter may already not be expensive enough under the current ZIP 317 proposal to discourage the DoS; we don't know yet, and won't until we implement it.

@zancas
Copy link
Contributor Author

zancas commented Jan 23, 2023

I agree that how much this mechanism will dissuade SandBlasting is unknown.

It's also unknown how much it will cost other activities. Since we're operating without much data maybe the best approach is to make tuning this parameter as easy as possible?

The SandBlasting is not the only variable. That seems clear to me.

@daira
Copy link
Collaborator

daira commented May 25, 2023

ZIP 317 has been deployed without this change, which will not be implemented (with the rationale I gave above). The deployed algorithm appears to be having some success at limiting the sandblasting.

@daira daira closed this as completed May 25, 2023
@daira daira added the wontfix label May 25, 2023
@str4d str4d closed this as not planned Won't fix, can't repro, duplicate, stale Feb 3, 2024
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

3 participants