ZIP 203: changes for Blossom and NU5.

Signed-off-by: Daira Hopwood <daira@jacaranda.org>
This commit is contained in:
Daira Hopwood 2021-06-26 17:20:16 +01:00
parent ab2ec000c2
commit 4e138b244e
2 changed files with 22 additions and 1 deletions

View File

@ -46,6 +46,7 @@ This is the list of ZIPs relevant to the proposed NU5 Upgrade, which
is planned to activate on Mainnet at the beginning of October 2021: is planned to activate on Mainnet at the beginning of October 2021:
- `ZIP 32: Shielded Hierarchical Deterministic Wallets <zip-0032.rst>`__ (updated) - `ZIP 32: Shielded Hierarchical Deterministic Wallets <zip-0032.rst>`__ (updated)
- `ZIP 203: Transaction Expiry <zip-0203.rst>`__ (updated)
- `ZIP 209: Prohibit Negative Shielded Chain Value Pool Balances <zip-0209.rst>`__ (updated) - `ZIP 209: Prohibit Negative Shielded Chain Value Pool Balances <zip-0209.rst>`__ (updated)
- `ZIP 212: Allow Recipient to Derive Ephemeral Secret from Note Plaintext <zip-0212.rst>`__ (updated) - `ZIP 212: Allow Recipient to Derive Ephemeral Secret from Note Plaintext <zip-0212.rst>`__ (updated)
- `ZIP 213: Shielded Coinbase <zip-0213.rst>`__ (updated) - `ZIP 213: Shielded Coinbase <zip-0213.rst>`__ (updated)

View File

@ -49,7 +49,8 @@ after which transactions will be removed from the mempool if they have not been
The data type for ``nExpiryHeight`` will be ``uint32_t``. If used in combination with The data type for ``nExpiryHeight`` will be ``uint32_t``. If used in combination with
``nLockTime``, both ``nLockTime`` and ``nExpiryHeight`` must be block heights. ``nLockTime``, both ``nLockTime`` and ``nExpiryHeight`` must be block heights.
``nExpiryHeight`` will never be a UNIX timestamp, unlike ``nLockTime`` values, and thus ``nExpiryHeight`` will never be a UNIX timestamp, unlike ``nLockTime`` values, and thus
the maximum expiry height will be 499999999. the maximum expiry height will be 499999999 (but see the exception for coinbase
transactions described in `Changes for NU5`_).
For the example below, the last block that the transaction below could possibly be For the example below, the last block that the transaction below could possibly be
included in is 3539. After that, it will be removed from the mempool. included in is 3539. After that, it will be removed from the mempool.
@ -77,6 +78,22 @@ convention.
Every time a transaction expires and should be removed from the mempool, so should all Every time a transaction expires and should be removed from the mempool, so should all
of its dependent transactions. of its dependent transactions.
Changes for Blossom
-------------------
On Blossom activation [#zip-0206]_, the default changes to 40 blocks from the current
height, which still represents about 50 minutes at the revised 75-second target block
spacing.
Changes for NU5
---------------
As mentioned above, ``nExpiryHeight`` is ignored for coinbase transactions. However, from
NU5 activation [#zip-0252]_, the ``nExpiryHeight`` field of a coinbase transaction MUST
be set equal to the block height. Also, for coinbase transactions only, the bound of
499999999 on ``nExpiryHeight`` is removed. The motivation is to ensure that transaction
IDs remain unique, as explained in more detail in a note in Section 7.1 of the protocol
specification [#protocol-txnencodingandconsensus]_.
Wallet behavior and UI Wallet behavior and UI
---------------------- ----------------------
@ -126,3 +143,6 @@ References
========== ==========
.. [#zip-0201] `ZIP 201: Network Peer Management for Overwinter <zip-0201.rst>`_ .. [#zip-0201] `ZIP 201: Network Peer Management for Overwinter <zip-0201.rst>`_
.. [#zip-0206] `ZIP 206: Deployment of the Blossom Network Upgrade <zip-0206.rst>`_
.. [#zip-0252] `ZIP 252: Deployment of the NU5 Network Upgrade <zip-0252.rst>`_
.. [#protocol-txnencodingandconsensus] `Zcash Protocol Specification, Version 2020.2.6. Section 7.1: Transaction Encoding and Consensus <protocol/protocol.pdf#txnencodingandconsensus>`_