mirror of https://github.com/zcash/zips.git
236 lines
15 KiB
HTML
236 lines
15 KiB
HTML
<!DOCTYPE html>
|
||
<html>
|
||
<head>
|
||
<title>ZIP 235: Remove 60% of Transaction Fees From Circulation</title>
|
||
<meta charset="utf-8" />
|
||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css" integrity="sha384-nB0miv6/jRmo5UMMR1wu3Gz6NLsoTkbqJghGIsx//Rlm+ZU03BU6SQNC66uf4l5+" crossorigin="anonymous">
|
||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.js" integrity="sha384-7zkQWkzuo3B5mTepMUcHkMB5jZaolc2xDwL6VFqjFALcbeS9Ggm/Yr2r3Dy4lfFg" crossorigin="anonymous"></script>
|
||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/contrib/auto-render.min.js" integrity="sha384-43gviWU0YVjaDtb/GhzOouOXtZMP/7XUzwPTstBeZFe/+rCMvRwr4yROQP43s0Xk" crossorigin="anonymous" onload="renderMathInElement(document.body);"></script>
|
||
<meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="css/style.css">
|
||
</head>
|
||
<body>
|
||
<pre><code>ZIP: 235
|
||
Title: Remove 60% of Transaction Fees From Circulation
|
||
Owners: Jason McGee <jason@shieldedlabs.net>
|
||
Zooko Wilcox <zooko@shieldedlabs.net>
|
||
Mark Henderson <mark@shieldedlabs.net>
|
||
Tomek Piotrowski <tomek@eiger.co>
|
||
Mariusz Pilarek <mariusz@eiger.co>
|
||
Paul Dann <paul@eiger.co>
|
||
Original-Authors: Nathan Wilcox
|
||
Credits:
|
||
Status: Draft
|
||
Category: Ecosystem
|
||
Created: 2023-09-21
|
||
License: BSD-2-Clause
|
||
Discussions-To: <<a href="https://github.com/zcash/zips/issues/924">https://github.com/zcash/zips/issues/924</a>>
|
||
</code></pre>
|
||
|
||
<h1 id="terminology"><span class="section-heading">Terminology</span><span class="section-anchor"> <a rel="bookmark" href="#terminology"><img width="24" height="24" class="section-anchor" src="assets/images/section-anchor.png" alt=""></a></span></h1>
|
||
|
||
<p>The key word “MUST” in this document is to be interpreted as described in
|
||
BCP 14 <a href="#fn:1" id="fnref:1" title="see footnote" class="footnote"><sup>1</sup></a> when, and only when, it appears in all capitals.</p>
|
||
|
||
<p>The term “network upgrade” in this document is to be interpreted as described
|
||
in ZIP 200. <a href="#fn:2" id="fnref:2" title="see footnote" class="footnote"><sup>2</sup></a></p>
|
||
|
||
<p>The character § is used when referring to sections of the Zcash Protocol
|
||
Specification. <a href="#fn:3" id="fnref:3" title="see footnote" class="footnote"><sup>3</sup></a></p>
|
||
|
||
<p>The terms “Mainnet” and “Testnet” are to be interpreted as described in
|
||
§ 3.12 ‘Mainnet and Testnet’. <a href="#fn:4" id="fnref:4" title="see footnote" class="footnote"><sup>4</sup></a></p>
|
||
|
||
<p>The symbol “<span class="math">\(\,\cdot\,\)</span>” means multiplication, as described in § 2 ‘Notation’.
|
||
<a href="#fn:5" id="fnref:5" title="see footnote" class="footnote"><sup>5</sup></a></p>
|
||
|
||
<p>“ZEC/TAZ” refers to the native currency of Zcash on a given network, i.e.
|
||
ZEC on Mainnet and TAZ on Testnet.</p>
|
||
|
||
<p>The terms “Block Subsidy” and “Issuance” are to be interpreted as described in
|
||
ZIP 233. <a href="#fn:6" id="fnref:6" title="see footnote" class="footnote"><sup>6</sup></a></p>
|
||
|
||
<h1 id="abstract"><span class="section-heading">Abstract</span><span class="section-anchor"> <a rel="bookmark" href="#abstract"><img width="24" height="24" class="section-anchor" src="assets/images/section-anchor.png" alt=""></a></span></h1>
|
||
|
||
<p>This ZIP proposes to remove 60% of transaction fees from circulation, while
|
||
the remaining 40% is directed as before, providing a deflationary effect, and
|
||
building the groundwork for long-term support of the Zcash network via the new
|
||
block subsidy rules proposed by ZIP 234 <a href="#fn:7" id="fnref:7" title="see footnote" class="footnote"><sup>7</sup></a>.</p>
|
||
|
||
<h1 id="motivation"><span class="section-heading">Motivation</span><span class="section-anchor"> <a rel="bookmark" href="#motivation"><img width="24" height="24" class="section-anchor" src="assets/images/section-anchor.png" alt=""></a></span></h1>
|
||
|
||
<p>ZIP 233 (“Network Sustainability Mechanism: Removing Funds From Circulation”
|
||
<a href="#fn:6" title="see footnote" class="footnote"><sup>6</sup></a>) describes a method by which ZEC can be removed from circulation to
|
||
support network sustainability.</p>
|
||
|
||
<p>By introducing a requirement that a certain proportion of transaction fees be
|
||
removed from circulation, we aim to contribute to the long-term sustainability
|
||
of the network as described below:</p>
|
||
|
||
<h2 id="benefitstothenetwork"><span class="section-heading">Benefits to the Network</span><span class="section-anchor"> <a rel="bookmark" href="#benefitstothenetwork"><img width="24" height="24" class="section-anchor" src="assets/images/section-anchor.png" alt=""></a></span></h2>
|
||
|
||
<ol>
|
||
<li><strong>Network Sustainability</strong>: This mechanism involves temporarily reducing the
|
||
supply of ZEC, similar to asset burning in Ethereum’s EIP-1559 <a href="#fn:8" id="fnref:8" title="see footnote" class="footnote"><sup>8</sup></a>,
|
||
but with long-term sustainability benefits, as the funds removed from
|
||
circulation effectively boost future mining rewards, making it an attractive
|
||
option for current and future Zcash users.</li>
|
||
<li><strong>Incentivizing Transaction Inclusion</strong>: By maintaining a 40% share of
|
||
transaction fees for miners, we continue incentivizing miners to prioritize
|
||
including transactions in their blocks. This helps ensure the continued
|
||
efficient processing of transactions and supports a robust and responsive
|
||
network.</li>
|
||
<li><strong>Aligning Interests:</strong> Removing transaction fees from circulation aligns the
|
||
interests of miners with the long-term health of the network, incentivizing
|
||
them to prioritize security and efficiency. As miners focus on maintaining a
|
||
robust network, overall adoption and usage can increase, leading to higher
|
||
transaction volumes in the long run. This structure discourages short-term
|
||
profit-seeking behaviors, as miners benefit more from a stable and thriving
|
||
ecosystem than from engaging in malicious activities that could undermine the
|
||
network’s reputation and security.</li>
|
||
<li><strong>Future-Proofing the Network</strong>: Removing a portion of transaction fees from
|
||
circulation is a forward-looking approach that prepares the Zcash network for
|
||
future challenges and opportunities. It establishes a financial buffer that
|
||
can be instrumental in addressing unforeseen issues and seizing strategic
|
||
advantages as the Zcash ecosystem evolves.</li>
|
||
</ol>
|
||
|
||
<h1 id="requirements"><span class="section-heading">Requirements</span><span class="section-anchor"> <a rel="bookmark" href="#requirements"><img width="24" height="24" class="section-anchor" src="assets/images/section-anchor.png" alt=""></a></span></h1>
|
||
|
||
<ul>
|
||
<li>For each block, at least 60% (rounded down) of the total fees are to be
|
||
removed from circulation.</li>
|
||
<li>No restrictions are placed on the destination of the remaining proportion of
|
||
fees.</li>
|
||
<li>Any fractions are rounded in favor of the miner.</li>
|
||
</ul>
|
||
|
||
<h1 id="specification"><span class="section-heading">Specification</span><span class="section-anchor"> <a rel="bookmark" href="#specification"><img width="24" height="24" class="section-anchor" src="assets/images/section-anchor.png" alt=""></a></span></h1>
|
||
|
||
<h2 id="consensusrulechanges"><span class="section-heading">Consensus Rule Changes</span><span class="section-anchor"> <a rel="bookmark" href="#consensusrulechanges"><img width="24" height="24" class="section-anchor" src="assets/images/section-anchor.png" alt=""></a></span></h2>
|
||
|
||
<p>For a given block, the coinbase transaction MUST have a <span class="math">\(\mathsf{zip233\_amount}\)</span>,
|
||
as defined in <a href="#fn:6" title="see footnote" class="footnote"><sup>6</sup></a>, that is greater than or equal to
|
||
<span class="math">\(\mathsf{floor}(\mathsf{transactionFees} \cdot 6 / 10)\)</span>.</p>
|
||
|
||
<p>The version of a coinbase transaction MUST be v6 or later <a href="#fn:9" id="fnref:9" title="see footnote" class="footnote"><sup>9</sup></a>.</p>
|
||
|
||
<h2 id="applicability"><span class="section-heading">Applicability</span><span class="section-anchor"> <a rel="bookmark" href="#applicability"><img width="24" height="24" class="section-anchor" src="assets/images/section-anchor.png" alt=""></a></span></h2>
|
||
|
||
<p>All of these changes apply identically to Mainnet and Testnet.</p>
|
||
|
||
<h1 id="rationale"><span class="section-heading">Rationale</span><span class="section-anchor"> <a rel="bookmark" href="#rationale"><img width="24" height="24" class="section-anchor" src="assets/images/section-anchor.png" alt=""></a></span></h1>
|
||
|
||
<p>We believe the proposed changes to be relatively low-impact in terms of
|
||
implementation and protocol changes. Additionally, transaction fees are
|
||
currently small enough that the reduction in miner fees is unlikely to be a
|
||
concern.</p>
|
||
|
||
<h2 id="rationaleforrequiringthecoinbasetransactiontobev6orlater"><span class="section-heading">Rationale for requiring the coinbase transaction to be v6 or later</span><span class="section-anchor"> <a rel="bookmark" href="#rationaleforrequiringthecoinbasetransactiontobev6orlater"><img width="24" height="24" class="section-anchor" src="assets/images/section-anchor.png" alt=""></a></span></h2>
|
||
|
||
<p>There is no explicit mechanism in prior transaction versions to remove
|
||
the required funds from circulation. Since <span class="math">\(\mathsf{zip233\_amount} = 0\)</span>
|
||
for transaction versions prior to v6, absent the rule about the coinbase
|
||
transaction version it would be technically possible to satisfy the constraint
|
||
on <span class="math">\(\mathsf{zip233\_amount}\)</span> with earlier versions than v6, but only when
|
||
<span class="math">\(\mathsf{transactionFees} = 0\)</span>. That would introduce a corner case in the
|
||
transaction consensus rules that is not useful, since it is expected that the
|
||
<span class="math">\(\mathsf{transactionFees}\)</span> will normally be non-zero.</p>
|
||
|
||
<h2 id="estimatedimpactonminers"><span class="section-heading">Estimated impact on miners</span><span class="section-anchor"> <a rel="bookmark" href="#estimatedimpactonminers"><img width="24" height="24" class="section-anchor" src="assets/images/section-anchor.png" alt=""></a></span></h2>
|
||
|
||
<p>Over 100,000 blocks starting at block 2235515, there were 316130 transactions.
|
||
60608 of them are categorized as ‘sandblasting’ transactions. The remaining
|
||
transactions have an average of 5.46 logical actions (see ZIP 317 <a href="#fn:10" id="fnref:10" title="see footnote" class="footnote"><sup>10</sup></a>).</p>
|
||
|
||
<p>The total fees paid to miners from those transactions, assuming the ZIP 317
|
||
regime, would be 87.86 ZEC. 100,000 blocks is approximately 3 months of blocks.
|
||
Extrapolating to a year, we would expect 351.44 ZEC in fees paid to miners over
|
||
a year.</p>
|
||
|
||
<p>If 60% of these fees are removed from circulation, that would be 210.864 ZEC per
|
||
year. <a href="#fn:11" id="fnref:11" title="see footnote" class="footnote"><sup>11</sup></a></p>
|
||
|
||
<h2 id="considerationsforthefuture"><span class="section-heading">Considerations for the Future</span><span class="section-anchor"> <a rel="bookmark" href="#considerationsforthefuture"><img width="24" height="24" class="section-anchor" src="assets/images/section-anchor.png" alt=""></a></span></h2>
|
||
|
||
<p>If transaction fees were to increase, further modifications can easily be
|
||
proposed to alter the 60%/40% split. Finding the optimal fee split may require
|
||
an iterative approach involving adjustments based on real-world data and network
|
||
dynamics.</p>
|
||
|
||
<p>Looking further into the future, there may come a time when the transaction fees
|
||
become greater than the block subsidy issuance. At that time we may need to
|
||
reconsider the 60/40 split. However, this will likely not be the case for the
|
||
next 8–10 years due to forecasts based on issuance models and network traffic.</p>
|
||
|
||
<p>Further ZIPs may be proposed to remove ZEC from circulation in various ways to
|
||
support network sustainability, including but not limited to:</p>
|
||
|
||
<ul>
|
||
<li>ZSA fees</li>
|
||
<li>Fees and donations specific to decentralized applications</li>
|
||
<li>“Storage fees” for any future data availability</li>
|
||
<li>Cross-chain bridge usage / Cross-chain messaging</li>
|
||
<li>Note sorting micro-transactional fees</li>
|
||
</ul>
|
||
|
||
<h1 id="deployment"><span class="section-heading">Deployment</span><span class="section-anchor"> <a rel="bookmark" href="#deployment"><img width="24" height="24" class="section-anchor" src="assets/images/section-anchor.png" alt=""></a></span></h1>
|
||
|
||
<p>The implementation of this ZIP MUST be deployed at the same time or after
|
||
ZIP 233 (“NSM: Removing Funds From Circulation” <a href="#fn:6" title="see footnote" class="footnote"><sup>6</sup></a>), and ZIP 234 (“NSM:
|
||
Issuance Smoothing” <a href="#fn:7" title="see footnote" class="footnote"><sup>7</sup></a>).</p>
|
||
|
||
<h1 id="references"><span class="section-heading">References</span><span class="section-anchor"> <a rel="bookmark" href="#references"><img width="24" height="24" class="section-anchor" src="assets/images/section-anchor.png" alt=""></a></span></h1>
|
||
|
||
<div class="footnotes">
|
||
<hr />
|
||
<ol>
|
||
|
||
<li id="fn:1">
|
||
<p><a href="https://www.rfc-editor.org/info/bcp14">Information on BCP 14 — “RFC 2119: Key words for use in RFCs to Indicate Requirement Levels” and “RFC 8174: Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words”</a> <a href="#fnref:1" title="return to body" class="reversefootnote"> ↩︎</a></p>
|
||
</li>
|
||
|
||
<li id="fn:2">
|
||
<p><a href="zip-0200">ZIP 200: Network Upgrade Mechanism</a> <a href="#fnref:2" title="return to body" class="reversefootnote"> ↩︎</a></p>
|
||
</li>
|
||
|
||
<li id="fn:3">
|
||
<p><a href="protocol/protocol.pdf">Zcash Protocol Specification, Version 2024.5.1 [NU6] or later</a> <a href="#fnref:3" title="return to body" class="reversefootnote"> ↩︎</a></p>
|
||
</li>
|
||
|
||
<li id="fn:4">
|
||
<p><a href="protocol/protocol.pdf#networks">Zcash Protocol Specification, Version 2024.5.1 [NU6]. Section 3.12: Mainnet and Testnet</a> <a href="#fnref:4" title="return to body" class="reversefootnote"> ↩︎</a></p>
|
||
</li>
|
||
|
||
<li id="fn:5">
|
||
<p><a href="protocol/protocol.pdf#notation">Zcash Protocol Specification, Version 2024.5.1 [NU6]. Section 2: Notation</a> <a href="#fnref:5" title="return to body" class="reversefootnote"> ↩︎</a></p>
|
||
</li>
|
||
|
||
<li id="fn:6">
|
||
<p><a href="zip-0233">ZIP 233: Network Sustainability Mechanism: Removing Funds From Circulation</a> <a href="#fnref:6" title="return to body" class="reversefootnote"> ↩︎</a></p>
|
||
</li>
|
||
|
||
<li id="fn:7">
|
||
<p><a href="zip-0234">ZIP 234: Network Sustainability Mechanism: Issuance Smoothing</a> <a href="#fnref:7" title="return to body" class="reversefootnote"> ↩︎</a></p>
|
||
</li>
|
||
|
||
<li id="fn:8">
|
||
<p><a href="https://eips.ethereum.org/EIPS/eip-1559">EIP-1559: Fee market change for ETH 1.0 chain</a> <a href="#fnref:8" title="return to body" class="reversefootnote"> ↩︎</a></p>
|
||
</li>
|
||
|
||
<li id="fn:9">
|
||
<p><a href="zip-0230">ZIP 230: Version 6 Transaction Format</a> <a href="#fnref:9" title="return to body" class="reversefootnote"> ↩︎</a></p>
|
||
</li>
|
||
|
||
<li id="fn:10">
|
||
<p><a href="zip-0317">ZIP 317: Proportional Transfer Fee Mechanism</a> <a href="#fnref:10" title="return to body" class="reversefootnote"> ↩︎</a></p>
|
||
</li>
|
||
|
||
<li id="fn:11">
|
||
<p><a href="https://github.com/eigerco/zsf-fee-estimator">GitHub repository eigerco/zsf-fee-estimator</a> <a href="#fnref:11" title="return to body" class="reversefootnote"> ↩︎</a></p>
|
||
</li>
|
||
|
||
</ol>
|
||
</div>
|
||
</body>
|
||
</html>
|