Skip to content

Commit

Permalink
Merge pull request #887 from zcash/zip-2001
Browse files Browse the repository at this point in the history
Assign ZIP 2001 to draft-nuttycom-lockbox-streams
  • Loading branch information
str4d authored Aug 1, 2024
2 parents b00814b + ede4b1c commit 6f1a2ea
Show file tree
Hide file tree
Showing 10 changed files with 138 additions and 131 deletions.
3 changes: 2 additions & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,7 @@ written.
<tr> <td><span class="reserved">402</span></td> <td class="left"><a class="reserved" href="zips/zip-0402.rst">New Wallet Database Format</a></td> <td>Reserved</td>
<tr> <td><span class="reserved">403</span></td> <td class="left"><a class="reserved" href="zips/zip-0403.rst">Verification Behaviour of zcashd</a></td> <td>Reserved</td>
<tr> <td><span class="reserved">416</span></td> <td class="left"><a class="reserved" href="zips/zip-0416.rst">Support for Unified Addresses in zcashd</a></td> <td>Reserved</td>
<tr> <td>2001</td> <td class="left"><a href="zips/zip-2001.rst">Lockbox Funding Streams</a></td> <td>Draft</td>
<tr> <td>guide-markdown</td> <td class="left"><a href="zips/zip-guide-markdown.md">{Something Short and To the Point}</a></td> <td>Draft</td>
<tr> <td>guide</td> <td class="left"><a href="zips/zip-guide.rst">{Something Short and To the Point}</a></td> <td>Draft</td>
</table></embed>
Expand All @@ -168,7 +169,6 @@ be deleted.
<tr> <td class="left"><a href="zips/draft-hopwood-coinbase-balance.rst">Blocks should balance exactly</a></td>
<tr> <td class="left"><a href="zips/draft-noamchom67-manufacturing-consent.rst">Manufacturing Consent; Re-Establishing a Dev Fund for ECC, ZF, ZCG, Qedit, FPF, and ZecHub</a></td>
<tr> <td class="left"><a href="zips/draft-nuttycom-funding-allocation.rst">Block Reward Allocation for Non-Direct Development Funding</a></td>
<tr> <td class="left"><a href="zips/draft-nuttycom-lockbox-streams.rst">Lockbox Funding Streams</a></td>
<tr> <td class="left"><a href="zips/draft-zf-community-dev-fund-2-proposal.rst">Establishing a Hybrid Dev Fund for ZF, ZCG and a Dev Fund Reserve</a></td>
</table></embed>

Expand Down Expand Up @@ -301,6 +301,7 @@ Index of ZIPs
<tr> <td><strike>1012</strike></td> <td class="left"><strike><a href="zips/zip-1012.rst">Dev Fund to ECC + ZF + Major Grants</a></strike></td> <td>Obsolete</td>
<tr> <td><strike>1013</strike></td> <td class="left"><strike><a href="zips/zip-1013.rst">Keep It Simple, Zcashers: 10% to ECC, 10% to ZF</a></strike></td> <td>Obsolete</td>
<tr> <td>1014</td> <td class="left"><a href="zips/zip-1014.rst">Establishing a Dev Fund for ECC, ZF, and Major Grants</a></td> <td>Active</td>
<tr> <td>2001</td> <td class="left"><a href="zips/zip-2001.rst">Lockbox Funding Streams</a></td> <td>Draft</td>
<tr> <td>guide-markdown</td> <td class="left"><a href="zips/zip-guide-markdown.md">{Something Short and To the Point}</a></td> <td>Draft</td>
<tr> <td>guide</td> <td class="left"><a href="zips/zip-guide.rst">{Something Short and To the Point}</a></td> <td>Draft</td>
</table></embed>
2 changes: 2 additions & 0 deletions _config.yml → rendered/_config.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
theme: jekyll-theme-tactile
url: "https://zips.z.cash"
markdown: GFM
gems:
- jekyll-redirect-from
10 changes: 5 additions & 5 deletions rendered/draft-nuttycom-funding-allocation.html
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
<p>The key words "MUST", "REQUIRED", "MUST NOT", "SHOULD", and "MAY" in this document are to be interpreted as described in BCP 14 <a id="footnote-reference-1" class="footnote_reference" href="#bcp14">1</a> when, and only when, they appear in all capitals.</p>
</section>
<section id="abstract"><h2><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></h2>
<p>This ZIP proposes several options for the allocation of a percentage of the Zcash block subsidy, post-November 2024 halving, to an in-protocol "lockbox." The "lockbox" will be a separate pool of issued funds tracked by the protocol, as described in ZIP &lt;TBD&gt;: Lockbox Funding Streams <a id="footnote-reference-2" class="footnote_reference" href="#draft-nuttycom-lockbox-streams">4</a>. No disbursement mechanism is currently defined for this "lockbox"; the Zcash community will need to decide upon and specify a suitable decentralized mechanism for permitting withdrawals from this lockbox in a future ZIP in order to make these funds available for funding grants to ecosystem participants.</p>
<p>This ZIP proposes several options for the allocation of a percentage of the Zcash block subsidy, post-November 2024 halving, to an in-protocol "lockbox." The "lockbox" will be a separate pool of issued funds tracked by the protocol, as described in ZIP 2001: Lockbox Funding Streams <a id="footnote-reference-2" class="footnote_reference" href="#zip-2001">4</a>. No disbursement mechanism is currently defined for this "lockbox"; the Zcash community will need to decide upon and specify a suitable decentralized mechanism for permitting withdrawals from this lockbox in a future ZIP in order to make these funds available for funding grants to ecosystem participants.</p>
<p>The proposed lockbox addresses significant issues observed with ZIP 1014 <a id="footnote-reference-3" class="footnote_reference" href="#zip-1014">3</a>, such as regulatory risks, inefficiencies due to funding of organizations instead of projects, and centralization. While the exact disbursement mechanism for the lockbox funds is yet to be determined and will be addressed in a future ZIP, the goal is to employ a decentralized mechanism that ensures community involvement and efficient, project-specific funding. This approach is intended to potentially improve regulatory compliance, reduce inefficiencies, and enhance the decentralization of Zcash's funding structure.</p>
</section>
<section id="motivation"><h2><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></h2>
Expand All @@ -41,7 +41,7 @@
</section>
<section id="requirements"><h2><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></h2>
<ol type="1">
<li><strong>In-Protocol Lockbox</strong>: The alternatives presented in this ZIP depend upon the Lockbox Funding Streams proposal <a id="footnote-reference-4" class="footnote_reference" href="#draft-nuttycom-lockbox-streams">4</a>.</li>
<li><strong>In-Protocol Lockbox</strong>: The alternatives presented in this ZIP depend upon the Lockbox Funding Streams proposal <a id="footnote-reference-4" class="footnote_reference" href="#zip-2001">4</a>.</li>
<li><strong>Regulatory Considerations</strong>: The allocation of funds should minimize regulatory risks by avoiding direct funding of specific organizations. The design should enable and encourage compliance with applicable laws and regulations to support the long-term sustainability of the funding model.</li>
</ol>
</section>
Expand All @@ -54,7 +54,7 @@
</ol>
</section>
<section id="specification"><h2><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></h2>
<p>The following alternatives all depend upon the Lockbox Funding Streams proposal <a id="footnote-reference-5" class="footnote_reference" href="#draft-nuttycom-lockbox-streams">4</a> for storage of funds into a deferred value pool.</p>
<p>The following alternatives all depend upon the Lockbox Funding Streams proposal <a id="footnote-reference-5" class="footnote_reference" href="#zip-2001">4</a> for storage of funds into a deferred value pool.</p>
<p>Some of the alternatives described below do not specify a termination height for the funding streams they propose. In these cases, the termination height is set to <cite>u32::MAX_VALUE</cite>. A future network upgrade that alters the maximum possible block height MUST also alter these termination heights.</p>
</section>
<section id="alternatives"><h2><span class="section-heading">Alternatives</span><span class="section-anchor"> <a rel="bookmark" href="#alternatives"><img width="24" height="24" class="section-anchor" src="assets/images/section-anchor.png" alt=""></a></span></h2>
Expand Down Expand Up @@ -314,11 +314,11 @@
</tr>
</tbody>
</table>
<table id="draft-nuttycom-lockbox-streams" class="footnote">
<table id="zip-2001" class="footnote">
<tbody>
<tr>
<th>4</th>
<td><a href="draft-nuttycom-lockbox-streams">Draft ZIP: Lockbox Funding Streams</a></td>
<td><a href="zip-2001">ZIP 2001: Lockbox Funding Streams</a></td>
</tr>
</tbody>
</table>
Expand Down
116 changes: 3 additions & 113 deletions rendered/draft-nuttycom-lockbox-streams.html
Original file line number Diff line number Diff line change
@@ -1,113 +1,3 @@
<!DOCTYPE html>
<html>
<head>
<title>Draft nuttycom-lockbox-streams: Lockbox Funding Streams</title>
<meta charset="utf-8" />
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js?config=TeX-AMS-MML_HTMLorMML"></script>
<meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="css/style.css"></head>
<body>
<section>
<pre>ZIP: Unassigned
Title: Lockbox Funding Streams
Owners: Kris Nuttycombe &lt;[email protected]&gt;
Credits: Daira-Emma Hopwood &lt;[email protected]&gt;
Jack Grigg &lt;[email protected]&gt;
Status: Draft
Category: Consensus
Created: 2024-07-02
License: MIT
Pull-Request: &lt;<a href="https://github.com/zcash/zips/pull/">https://github.com/zcash/zips/pull/</a>&gt;</pre>
<section id="terminology"><h2><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></h2>
<p>The key words "MUST", "REQUIRED", "MUST NOT", "SHOULD", and "MAY" in this document are to be interpreted as described in BCP 14 <a id="footnote-reference-1" class="footnote_reference" href="#bcp14">1</a> when, and only when, they appear in all capitals.</p>
</section>
<section id="abstract"><h2><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></h2>
<p>This ZIP specifies a change to the Zcash consensus protocol to define a pool of issued Zcash value to be used to fund future development efforts within the Zcash ecosystem.</p>
<p>This ZIP builds upon the funding stream mechanism defined in ZIP 207 <a id="footnote-reference-2" class="footnote_reference" href="#zip-0207">3</a>. It defines a new "DEFERRED_POOL" funding stream type such that portions of the block reward sent to a stream of this type are deposited directly into the deferred funding pool instead of being sent to a recipient address. Other ways of adding to the pool, such as allowing for direct deposits or fee value currently allocated to miners may be defined in the future.</p>
</section>
<section id="motivation"><h2><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></h2>
<p>In accordance with ZIP 1014, <a id="footnote-reference-3" class="footnote_reference" href="#zip-1014">2</a> the Zcash block reward is allocated with 80% going to miners, and the remaining 20% distributed among the Major Grants Fund (8%), Electric Coin Company (ECC) (7%), and the Zcash Foundation (ZF) (5%). This funding structure supports various essential activities such as protocol development, security, marketing, and legal expenses. However, this model will expire in November 2024, leading to the entire block reward being allocated to miners if no changes are made.</p>
<p>Several draft ZIPs under consideration for replacing the existing direct allocation of block rewards suggest that part of the block reward be directed to a reserve, the distribution of which is to be determined via a future ZIP. This ZIP is intended to provide a common mechanism that can be used to implement these various proposals.</p>
</section>
<section id="requirements"><h2><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></h2>
<p>The Zcash protocol will maintain a new Deferred chain pool value balance
<span class="math">\(\mathsf{PoolValue}_{Deferred}\)</span>
for the deferred funding pool, in much the same fashion as it maintains chain pool value balances for the transparent, Sprout, Sapling, and Orchard pools.</p>
<p>The funding stream mechanism defined in ZIP 207 <a id="footnote-reference-4" class="footnote_reference" href="#zip-0207">3</a> is modified such that a funding stream may deposit funds into the deferred pool.</p>
</section>
<section id="specification"><h2><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></h2>
<section id="deferred-development-fund-chain-value-pool-balance"><h3><span class="section-heading">Deferred Development Fund Chain Value Pool Balance</span><span class="section-anchor"> <a rel="bookmark" href="#deferred-development-fund-chain-value-pool-balance"><img width="24" height="24" class="section-anchor" src="assets/images/section-anchor.png" alt=""></a></span></h3>
<p>Full node implementations MUST track an additional
<span class="math">\(\mathsf{PoolValue}_{Deferred}\)</span>
chain value pool balance, in addition to the Sprout, Sapling, and Orchard chain value pool balances. This balance is set to zero prior to the activation of Network Upgrade 6.</p>
<p>ZIP 207 <a id="footnote-reference-5" class="footnote_reference" href="#zip-0207">3</a> is modified as follows:</p>
<p>In the section <strong>Funding streams</strong> <a id="footnote-reference-6" class="footnote_reference" href="#zip-0207-funding-streams">4</a>, instead of:</p>
<blockquote>
<p>Each funding stream has an associated sequence of recipient addresses, each of which MUST be either a transparent P2SH address or a Sapling address.</p>
</blockquote>
<p>it will be modified to read:</p>
<blockquote>
<p>Each funding stream has an associated sequence of recipients, each of which MUST be either a transparent P2SH address, a Sapling address, or the identifier <cite>DEFERRED_POOL</cite>.</p>
</blockquote>
<p>In the section <strong>Consensus rules</strong> <a id="footnote-reference-7" class="footnote_reference" href="#zip-0207-consensus-rules">5</a>, the following will be added:</p>
<blockquote>
<p>The "prescribed way" to pay to the <cite>DEFERRED_POOL</cite> is to add
<span class="math">\(\mathsf{FundingStream[FUND].Value}(\mathsf{height})\)</span>
to
<span class="math">\(\mathsf{PoolValue}_{Deferred}\)</span>
.</p>
</blockquote>
<p>The protocol specification is modified to define the "total issued supply" such that the total issued supply as of a given height is given by the function:</p>
<div class="math">\(\begin{array}{ll}
\mathsf{IssuedSupply}(\mathsf{height}) := &amp;\!\!\!\!\mathsf{PoolValue}_{Transparent}(\mathsf{height}) \\
&amp;+\;\; \mathsf{PoolValue}_{Sprout}(\mathsf{height}) \\
&amp;+\,\; \mathsf{PoolValue}_{Sapling}(\mathsf{height}) \\
&amp;+\,\; \mathsf{PoolValue}_{Orchard}(\mathsf{height}) \\
&amp;+\,\; \mathsf{PoolValue}_{Deferred}(\mathsf{height})
\end{array}\)</div>
</section>
</section>
<section id="references"><h2><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></h2>
<table id="bcp14" class="footnote">
<tbody>
<tr>
<th>1</th>
<td><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></td>
</tr>
</tbody>
</table>
<table id="zip-1014" class="footnote">
<tbody>
<tr>
<th>2</th>
<td><a href="zip-1014">ZIP 1014: Establishing a Dev Fund for ECC, ZF, and Major Grants</a></td>
</tr>
</tbody>
</table>
<table id="zip-0207" class="footnote">
<tbody>
<tr>
<th>3</th>
<td><a href="zip-0207">ZIP 207: Funding Streams</a></td>
</tr>
</tbody>
</table>
<table id="zip-0207-funding-streams" class="footnote">
<tbody>
<tr>
<th>4</th>
<td><a href="zip-0207#funding-streams">ZIP 207: Funding Streams. Section: Funding streams</a></td>
</tr>
</tbody>
</table>
<table id="zip-0207-consensus-rules" class="footnote">
<tbody>
<tr>
<th>5</th>
<td><a href="zip-0207#consensus-rules">ZIP 207: Funding Streams. Section: Consensus rules</a></td>
</tr>
</tbody>
</table>
</section>
</section>
</body>
</html>
---
redirect_to: "https://zips.z.cash/zip-2001"
---
Loading

0 comments on commit 6f1a2ea

Please sign in to comment.