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

Ecosystem-wide standard transaction fee #2942

Closed
zookozcash opened this issue Feb 12, 2018 · 4 comments
Closed

Ecosystem-wide standard transaction fee #2942

zookozcash opened this issue Feb 12, 2018 · 4 comments
Labels
A-documentation Area: Documentation A-networking Area: Networking code A-pow Area: Proof-of-Work and mining A-wallet Area: Wallet C-future-proofing Category: Changes that minimise the effects of shocks and stresses of future events. D-bitcoin-divergence Design issue: Divergence from Bitcoin (upstream code and/or architecture). D-economics Design issue: Economics E-good-first-issue Effort: Suitable for someone new to the codebase. F-tx-fees Feature: Transaction fees I-dos Problems and improvements with respect to Denial-of-Service. I-privacy Problems and improvements related to privacy. not in NU0 side channels special to Zooko usability user interface Zcash codebase ZIP idea

Comments

@zookozcash
Copy link

zookozcash commented Feb 12, 2018

Establish an ecosystem-wide convention that all transaction fees are the same (currently 0.0001 ⓩ — 100 microZECs), whether for transparent or shielded transactions, and regardless of any other considerations. (This is for normal transactions, initiated by an end-user through a normal wallet or service. It does not have to apply to transactions that are being generated by some special-purpose code for some special-purpose application, by an expert.) But for all normal users, they should get used to the fact that regardless of which Zcash wallet, product, or service they use, that they always pay exactly 0.0001 ⓩ per transaction that they initiate.

The reasons for this are:

  1. Privacy. If your software chooses a non-standard fee, this leaks information about you.

  2. User experience. If users can expect a simple, fixed, predictable, low fee then this increases Zcash's usability for them.

Steps to accomplish this:

  1. Publish documentation recommending this to third parties who make Zcash products and services. In particularly, recommend to them that the Zcash transaction fee should not be configurable by the end user.

  2. Either remove estimatefee or fix it to return 0.0001. Fix or remove estimate fee #2552

  3. Fix sendmany and sendtoaddress to return 0.0001. (Was Use default fee for sendmany & sendtoaddress #2551 — closed as duplicate of this ticket.)

Notes:

  • If someone launches DoS attack that attempts to leverage this fixed-fee feature, then the miners will doubtless apply patches to discriminate against the DoS transactions, and we can of course help them understand how to do that if necessary. But we don't need to spend energy and complicate the protocol currently in order to prepare for that eventuality.

  • In the future, we want to reduce the ecosystem-wide default fee from 0.0001 ⓩ (100 microZECs, which is about $0.045 at today's exchange rates) to 0.00001 ⓩ (10 microZECs, which is about $0.004 at today's exchange rates). In order to prepare for that, it might make sense to go ahead right now and recommend that third parties call estimatefee and use its return value as the fee (Fix or remove estimate fee #2552). That way if we in a subsequent upgrade change it from returning 0.0001 to returning 0.00001 then all compliant products/services will do the right thing immediately.

@zookozcash zookozcash added Zcash codebase A-documentation Area: Documentation A-wallet Area: Wallet I-privacy Problems and improvements related to privacy. D-economics Design issue: Economics C-future-proofing Category: Changes that minimise the effects of shocks and stresses of future events. A-pow Area: Proof-of-Work and mining special to Zooko usability side channels A-networking Area: Networking code I-dos Problems and improvements with respect to Denial-of-Service. D-bitcoin-divergence Design issue: Divergence from Bitcoin (upstream code and/or architecture). ZIP idea E-good-first-issue Effort: Suitable for someone new to the codebase. not in NU0 user interface labels Feb 12, 2018
@daira
Copy link
Contributor

daira commented Mar 20, 2018

Another advantage not mentioned above: if the fee is fixed then miners have no reason to discriminate between transactions based on fee, which would otherwise cause upward price pressure on fees. (It's like a buyers' cartel.)

@mms710
Copy link

mms710 commented May 8, 2019

This should probably have a ZIP before we move forward.

@Mitchellpkt
Copy link

Interesting proposal, the "every transaction will cost X" property is a nice touch and would be a good selling point for Zcash. :- )

Removing the on-chain fee market will lead to off-chain user<-->miner interactions; is this considered a good thing, or bad thing? At this time I don't have a strong opinion either way.

(pondering:) Miners will be strongly incentivized to switch to pools that are accepting priority payments off-chain, since their profit margins and payouts will be greater than pools without the second income stream. The tricky part is that users who need to send Zcash during times with high transaction volume might find it challenging to obtain a spot on the chain unless they make a deal with some third-party block producer (which creates OpSec risks, KYC pressure, etc).

Regardless, I'm definitely in favor of preventing software fingerprinting due to unusual fees. Specifying and enforcing a few ecosystem-wide standard fee levels seems like a good move.

@daira daira changed the title ecosystem-wide standard transaction fee Ecosystem-wide standard transaction fee Nov 17, 2020
daira added a commit to daira/zcash that referenced this issue Dec 18, 2020
…and do not rate-limit them.

In other words, make sure that the "minimum relay fee" is no greater than DEFAULT_FEE.

The intention is that this will allow setting the fee to DEFAULT_FEE for *all* transactions
(including transparent ones) in a future release, and be more compatible with other wallets
that already do so, per ZIP 313. refs zcash#2942

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
@daira
Copy link
Contributor

daira commented Apr 21, 2023

Fixed by ZIP 317, implemented in zcashd by #6345, #6555, #6568, #6569, #6403.

@daira daira closed this as completed Apr 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-documentation Area: Documentation A-networking Area: Networking code A-pow Area: Proof-of-Work and mining A-wallet Area: Wallet C-future-proofing Category: Changes that minimise the effects of shocks and stresses of future events. D-bitcoin-divergence Design issue: Divergence from Bitcoin (upstream code and/or architecture). D-economics Design issue: Economics E-good-first-issue Effort: Suitable for someone new to the codebase. F-tx-fees Feature: Transaction fees I-dos Problems and improvements with respect to Denial-of-Service. I-privacy Problems and improvements related to privacy. not in NU0 side channels special to Zooko usability user interface Zcash codebase ZIP idea
Projects
None yet
Development

No branches or pull requests

4 participants