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:
- `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 212: Allow Recipient to Derive Ephemeral Secret from Note Plaintext <zip-0212.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
``nLockTime``, both ``nLockTime`` and ``nExpiryHeight`` must be block heights.
``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
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
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
----------------------
@ -126,3 +143,6 @@ References
==========
.. [#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>`_