Proposal to remove Sprout fields from the V5 transaction format.

This commit is contained in:
Kris Nuttycombe 2021-03-02 17:58:12 -07:00
parent ecec91883b
commit 0fc45a53ca
1 changed files with 20 additions and 0 deletions

View File

@ -438,6 +438,26 @@ The personalization field of this hash is set to::
"ZTxAuthOrchaHash"
Alternatives
============
A possible modification to this proposal is to entirely remove the Sprout-related fields
``nJoinSplit``, ``vJoinSplit``, ``joinSplitPubKey``, and ``joinSplitSig`` from the V5
transaction format. While this would effectively prohibit migration transactions that
directly move funds from the Sprout pool to the Orchard pool, Sprout -> Transparent and
Sprout -> Sapling transactions would still be supported when using the V4 transaction
format. This proposal is appealing from the perspective that it would reduce the
complexity of the NU5 upgrade in the following ways::
* V5 parsing and serialization code would not need to take these fields into account.
* ZIP 244 [#zip_0244]_ transaction identifier, signature hash, and authorizing
data commitment computations could be simplified to exclude consideration of
these fields.
This change would mean that in the future, removing the support for the V4 transaction
format would also effectively end support for Sprout transactions on the zcash network,
though it might be possible to restore limited support for migration via a future ZIP 222
[#zip_0222] extension or by other means not yet determined.
Reference implementation
========================