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

[ZIP 313] Reduce Conventional Transaction Fee to 1000 zatoshis #408

Merged
merged 38 commits into from
Dec 23, 2020

Conversation

nighthawk24
Copy link
Contributor

@nighthawk24 nighthawk24 changed the title Draft ZIP for reducing default tx fee ZIP Draft: Reduce default tx fee Oct 12, 2020
@nathan-at-least
Copy link
Contributor

BTW, here's a nicely rendered version of the submitted draft. This may be nicer for many readers. (This comes with every github pull request, but if you're not used to github it's difficult to find.)

@adityapk00
Copy link

One more thing I'd add to the requirements section is that we need to pick a date/block starting from which this change will activate.

@adityapk00
Copy link

adityapk00 commented Oct 12, 2020

Overall, I think this is a great idea, and Zecwallet will commit to implementing this ZIP across all desktop, mobile and lite wallets once we've agreed on all the parameters.

zip-reduce-shielded_tx_fee.rst Outdated Show resolved Hide resolved
zip-reduce-shielded_tx_fee.rst Outdated Show resolved Hide resolved
zip-reduce-shielded_tx_fee.rst Outdated Show resolved Hide resolved
@nighthawk24
Copy link
Contributor Author

nighthawk24 commented Oct 12, 2020

One more thing I'd add to the requirements section is that we need to pick a date/block starting from which this change will activate.

I don't know about the timeframes for the past ZIPs, but I would propose 2-3 months from now.
What timeframe would you think is viable for the change?

UPDATE: Synced up with Kevin on Keybase and he suggested that we can get this done with Canopy upgrade and providing an additional 4 weeks grace period for rest of the eco-system to follow suite.

@nuttycom
Copy link
Contributor

nuttycom commented Oct 12, 2020

A couple of questions (with no value judgement attached):

If transaction fees are made to be trivial, why continue to require transaction fees at all?

I think it's important to agree upon the role that transaction fees are intended to play in maintaining the security of the network going forward. I am in agreement with the argument that transaction fees should not be an impediment to usage of the currency by disadvantaged communities; if transaction fees are relevant to maintaining the security of the network, what other options exist to serve the goal of accessibility?

Additionally, this conversation seems to me to be inextricable from choices that may need to be made in the future with respect to scaling. Both the current fixed transaction fee and the lower fee suggested here are inelastic with respect to resource utilization. For the purposes of retaining transaction indistinguishability, a fixed fee is the simplest possible solution, but any nondiscretionary fee that is solely a function of public information would work.

@nighthawk24
Copy link
Contributor Author

If transaction fees are made to be trivial, why continue to require transaction fees at all?

I think it's important to agree upon the role that transaction fees are intended to play in maintaining the security of the network going forward. I am in agreement with the argument that transaction fees should not be an impediment to usage of the currency by disadvantaged communities; if transaction fees are relevant to maintaining the security of the network, what other options exist to serve the goal of accessibility?

Yes, we have agreement on the role of transaction fees which is to incentivize miners to keep the Zcash network secure as the block reward keeps halving. And yes, the fees should not be an impediment to usage of the currency which is precisely the point of the ZIP as 10,000 zats is a large amount today when compared to alternatives that are most used as a currency (like BCH with 195 sats fee by paying 1 sat/byte)

Additionally, this conversation seems to me to be inextricable from choices that may need to be made in the future with respect to scaling. Both the current fixed transaction fee and the lower fee suggested here are inelastic with respect to resource utilization. For the purposes of retaining transaction indistinguishability, a fixed fee is the simplest possible solution, but any nondiscretionary fee that is solely a function of public information would work.

Scaling work is ongoing on the front of several PoW chains and it will be pursued on the Zcash front too. The default shielded transaction fee is inelastic indeed and will stay that way till another ZIP is proposed in the future to improvise it. For now, the participants need to agree on a fee that works for all, otherwise we will see variance in transaction fees set by each wallet/app/smart contract that will cause linkability issues within shielded transactions.

@nuttycom
Copy link
Contributor

@nighthawk24 thank you! Has there been any consideration of a similar approach to that which you mention for BCH, simply making the fee a function of transaction size? That's public information and so fine as a basis for fees, right?

@nighthawk24
Copy link
Contributor Author

@nighthawk24 thank you! Has there been any consideration of a similar approach to that which you mention for BCH, simply making the fee a function of transaction size? That's public information and so fine as a basis for fees, right?

@nuttycom you're welcome. Zcash docs recommend using a set fee for shielded transactions to reduce transaction linkability. I have come across transparent transactions on Zcash chain by Ledger(I may be wrong) that have set the fees based on the transaction size. But there is no official recommendation for transparent fees.

@daira daira changed the title ZIP Draft: Reduce default tx fee [ZIP 314] Reduce Default Transaction Fee Oct 20, 2020
@daira daira changed the title [ZIP 314] Reduce Default Transaction Fee [ZIP 313] Reduce Default Transaction Fee Oct 20, 2020
@nathan-at-least
Copy link
Contributor

It sounds like Zecwallet, Nighthawk, and Zbay devs like this ZIP based on my reading of the associate forum discussion. Also note that I said I support the idea on that thread, although I'd definitely defer to the actual ECC product engineering teams assessment of the ZIP.

If they're all committed to it, let's make ECC teams for zcashd and our Shielded Wallet SDK / prototype app review the ZIP and either implement the changes or request changes.

  • zcashd updates its own default fee for shielded transactions. (ping @steven-ecc)
  • the ECC Shielded Wallet SDK and prototype app update their fee handling to follow the ZIP. (ping @braddmiller, @gmale)

@gmale
Copy link
Contributor

gmale commented Oct 30, 2020

the ECC Shielded Wallet SDK and prototype app update their fee handling to follow the ZIP

In the SDKs, we allow librustzcash to set the fee value based on the default in zcash_primitives. I propose that we continue that approach and, thereby, reduce the friction of future changes by having the fee set in one place in the layer where most domain logic lives. That's essentially how it works today.

@adityapk00
Copy link

Is this ZIP (near) final? I'd love to release the desktop and mobile Zecwallet apps with this change, so that they are available to users in time for the canopy upgrade.

@nighthawk24
Copy link
Contributor Author

Is this ZIP (near) final? I'd love to release the desktop and mobile Zecwallet apps with this change, so that they are available to users in time for the canopy upgrade.

Yes, the feedback for the ZIP has been added and the Activation plan is as:

  • The recommended fee of 0.00001 ot 1000 zats must be activated at block 1046400 to coincide with the Canopy upgrade. <https://z.cash/upgrade/canopy/>
  • With a grace period of ~4 weeks (block 1080000) to upgrade to the reduced default transaction fee for zcashd and core clients used by exchanges & service providers.

I will try to get follow up from someone from Zcash team to confirm. @gmale @daira

@adityapk00
Copy link

Fantastic. I'll release new Zecwallet desktop and mobile apps with the updated fees this week.

@adityapk00
Copy link

Just to close this conversation: New Zecwallet release is out (v1.3.3 lite client and v0.9.20 full node) that incorporates this ZIP. Default fees will switch over to 1000 zats after canopy + grace period (Block 1_080_000).

Thanks @nighthawk24 for the ZIP and finally getting this done :)

@nighthawk24
Copy link
Contributor Author

nighthawk24 commented Nov 5, 2020

Copy link
Contributor

@nathan-at-least nathan-at-least left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a large suggested new section about Denial of Service, because I believe this needs to be addressed in a future ZIP.

I have one big question that needs to be addressed before I could support this ZIP: What about transactions with transparent components? I will follow up on this issue on the forum.

The other suggested changes or questions are relatively minor.

zip-reduce-shielded_tx_fee.rst Outdated Show resolved Hide resolved
zip-reduce-shielded_tx_fee.rst Outdated Show resolved Hide resolved
zip-reduce-shielded_tx_fee.rst Outdated Show resolved Hide resolved
zip-reduce-shielded_tx_fee.rst Outdated Show resolved Hide resolved
zip-reduce-shielded_tx_fee.rst Outdated Show resolved Hide resolved
zip-reduce-shielded_tx_fee.rst Outdated Show resolved Hide resolved
zip-reduce-shielded_tx_fee.rst Outdated Show resolved Hide resolved
zip-reduce-shielded_tx_fee.rst Outdated Show resolved Hide resolved
zip-reduce-shielded_tx_fee.rst Outdated Show resolved Hide resolved
zip-reduce-shielded_tx_fee.rst Outdated Show resolved Hide resolved
nighthawk24 and others added 23 commits December 23, 2020 02:28
Co-authored-by: Nathan Wilcox <nathan-at-least@users.noreply.github.com>
Co-authored-by: Nathan Wilcox <nathan-at-least@users.noreply.github.com>
Update naming from zats to zatoshis

Co-authored-by: Daira Hopwood <daira@jacaranda.org>
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
Co-authored-by: Deirdre Connolly <deirdre@zfnd.org>
Signed-off-by: Daira Hopwood <daira@jacaranda.org>
@daira daira changed the title [ZIP 313] Reduce Default Transaction Fee [ZIP 313] Reduce Conventional Transaction Fee to 1000 zatoshis Dec 23, 2020
Copy link
Collaborator

@daira daira left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK

@daira daira merged commit d62bf40 into zcash:master Dec 23, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-committed Status: Planned work in a sprint ZIP number assigned
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

9 participants