zips/rendered/zip-0235.html

236 lines
15 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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 &lt;jason@shieldedlabs.net&gt;
Zooko Wilcox &lt;zooko@shieldedlabs.net&gt;
Mark Henderson &lt;mark@shieldedlabs.net&gt;
Tomek Piotrowski &lt;tomek@eiger.co&gt;
Mariusz Pilarek &lt;mariusz@eiger.co&gt;
Paul Dann &lt;paul@eiger.co&gt;
Original-Authors: Nathan Wilcox
Credits:
Status: Draft
Category: Ecosystem
Created: 2023-09-21
License: BSD-2-Clause
Discussions-To: &lt;<a href="https://github.com/zcash/zips/issues/924">https://github.com/zcash/zips/issues/924</a>&gt;
</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 &#8220;MUST&#8221; 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 &#8220;network upgrade&#8221; 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 &#8220;Mainnet&#8221; and &#8220;Testnet&#8221; 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 &#8220;<span class="math">\(\,\cdot\,\)</span>&#8221; 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>&#8220;ZEC/TAZ&#8221; refers to the native currency of Zcash on a given network, i.e.
ZEC on Mainnet and TAZ on Testnet.</p>
<p>The terms &#8220;Block Subsidy&#8221; and &#8220;Issuance&#8221; 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 (&#8220;Network Sustainability Mechanism: Removing Funds From Circulation&#8221;
<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 Ethereums 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&#8217;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 &#8216;sandblasting&#8217; 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&#8211;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 (&#8220;NSM: Removing Funds From Circulation&#8221; <a href="#fn:6" title="see footnote" class="footnote"><sup>6</sup></a>), and ZIP 234 (&#8220;NSM:
Issuance Smoothing&#8221; <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 — &#8220;RFC 2119: Key words for use in RFCs to Indicate Requirement Levels&#8221; and &#8220;RFC 8174: Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words&#8221;</a> <a href="#fnref:1" title="return to body" class="reversefootnote">&#160;&#8617;&#xfe0e;</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">&#160;&#8617;&#xfe0e;</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">&#160;&#8617;&#xfe0e;</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">&#160;&#8617;&#xfe0e;</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">&#160;&#8617;&#xfe0e;</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">&#160;&#8617;&#xfe0e;</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">&#160;&#8617;&#xfe0e;</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">&#160;&#8617;&#xfe0e;</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">&#160;&#8617;&#xfe0e;</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">&#160;&#8617;&#xfe0e;</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">&#160;&#8617;&#xfe0e;</a></p>
</li>
</ol>
</div>
</body>
</html>