Add draft-judah-nsm-halving-preserving-issuance: Halving-preserving variant of ZIP 234 - #1354
Add draft-judah-nsm-halving-preserving-issuance: Halving-preserving variant of ZIP 234#1354judah-caruso wants to merge 2 commits into
Conversation
… to NSM simulator fork
|
|
||
| ## Parameters | ||
|
|
||
| $\mathsf{BLOCK\_SUBSIDY\_FRACTION} = 4126 / 10\_000\_000\_000 = 0.0000004126$ |
There was a problem hiding this comment.
Whats happening here?
There was a problem hiding this comment.
Can you explain what you mean, please? I'm not sure I understand
| "Expected Issued Supply" - The Issued Supply that the current rules would have | ||
| produced had every block subsidy been claimed in full and no ZEC/TAZ been | ||
| removed from circulation: | ||
| $\mathsf{ExpectedIssuedSupply}(\mathsf{height}) = \sum_{i=0}^{\mathsf{height}} \mathsf{LegacyBlockSubsidy}(i)$. |
There was a problem hiding this comment.
This is specification, so it shouldn't be in the definitions section. The term can be defined here, but should reference where this ends up defined in the specification.
| "Deficit" - The part of the Money Reserve that the current rules would already | ||
| have issued: |
There was a problem hiding this comment.
This is unclear, along a couple of axes: it's unclear what "the current rules" refer to, and it's also unclear to me why it's simply called "Deficit" - it needs a more descriptive name.
Also, the equation below should be part of the specification, not the definition.
| 6. We want the new issuance to activate at a block with as minimal a delta from | ||
| the current issuance as possible. |
There was a problem hiding this comment.
This looks like it's left over from smoothing and could be removed.
| $\mathsf{DeficitAfter}(\mathsf{height}) =$ The value of the Deficit after the | ||
| specified block height. |
There was a problem hiding this comment.
The Terminology specification of this should be moved here.
After that, this definition makes sense:
ExpectedIssuedSupplyis the mathematical existing curve (sum over all permitted block subsidies).IssuedSupply(defined in the protocol spec) is the sum of funds that are actually issued (by way of being present in some chain value pool).DeficitAfter(h) = ExpectedIssuedSupply(h) - IssuedSupply(h)therefore calculates the unissued supply from any source (NSM removing from circulation, miners not claiming the full block subsidy pre-NU6, miners not claiming all tx fees).
Separately, the current specification of DeficitAfter(h) has a max(0, _) wrapper. AFAICT ExpectedIssuedSupply(h) - IssuedSupply(h) can never go negative if there is not a bug in the full node consensus rules (ZKP validity is irrelevant here, this is turnstile math). So instead of having a max(0, _) wrapper, this should be a consensus failure causing block rejection.
| At the $\mathsf{DEPLOYMENT\_BLOCK\_HEIGHT}$, nodes MUST switch from the current issuance | ||
| calculation, to the following: | ||
|
|
||
| $\mathsf{BlockSubsidy}(\mathsf{height}) = \mathsf{LegacyBlockSubsidy}(\mathsf{height}) + \mathsf{ceiling}(\mathsf{BLOCK\_SUBSIDY\_FRACTION} \cdot \mathsf{DeficitAfter}(\mathsf{height} - 1))$ |
There was a problem hiding this comment.
Rather than specifying a new equation, this should be specified as a modification to the protocol spec that alters the current BlockSubsidy equation (or renames it and adds this next to it if that ends up being simpler to write in the spec).
This PR adds an alternative to ZIP 234 that keeps the halving schedule unchanged. The text was adapted from ZIP 234 with only the required changes made.
Discussions-To: #1353