Make ordering of Orchard txid hash fields consistent with field order.

Also fixes a few conflicting/incorrect digest references and
removes some spurious duplication.

Co-authored by: Daira Hopwood <daira@jacaranda.org>
This commit is contained in:
Kris Nuttycombe 2021-03-30 08:28:09 -06:00
parent 4b2af700ef
commit 02fd26fc1f
1 changed files with 21 additions and 24 deletions

View File

@ -286,23 +286,23 @@ to be a BLAKE2b-256 hash of the following values ::
The personalization field of this hash is unmodified from ZIP 244.
2: ``orchard_digest``
"""""""""""""""""""""
T.4: ``orchard_digest``
"""""""""""""""""""""""
A BLAKE2b-256 hash of the following values ::
T.4a: anchorOrchard (32 bytes)
T.4b: flagsOrchard (1 byte)
T.4c: orchard_actions_compact_digest (32-byte hash output)
T.4d: orchard_actions_memos_digest (32-byte hash output)
T.4e: orchard_actions_noncompact_digest (32-byte hash output)
T.4f: valueBalanceOrchard (64-bit signed little-endian)
T.4a: orchard_actions_compact_digest (32-byte hash output)
T.4b: orchard_actions_memos_digest (32-byte hash output)
T.4c: orchard_actions_noncompact_digest (32-byte hash output)
T.4d: flagsOrchard (1 byte)
T.4e: valueBalanceOrchard (64-bit signed little-endian)
T.4f: anchorOrchard (32 bytes)
The personalization field of this hash is set to::
"ZTxIdOrchardHash"
T.4c: orchard_actions_compact_digest
T.4a: orchard_actions_compact_digest
""""""""""""""""""""""""""""""""""""
A BLAKE2b-256 hash of the subset of Orchard Action information intended to be included in
@ -319,7 +319,7 @@ The personalization field of this hash is set to::
"ZTxIdOrcOutCHash"
T.4d: orchard_actions_memos_digest
T.4b: orchard_actions_memos_digest
""""""""""""""""""""""""""""""""""
A BLAKE2b-256 hash of the subset of Orchard shielded memo field data for all Orchard
@ -332,7 +332,7 @@ The personalization field of this hash is set to::
"ZTxIdOrcOutMHash"
T.4e: orchard_actions_noncompact_digest
T.4c: orchard_actions_noncompact_digest
"""""""""""""""""""""""""""""""""""""""
A BLAKE2b-256 hash of the remaining subset of Orchard Action information **not** intended
@ -354,12 +354,12 @@ Signature Digest
The signature digest creation algorithm defined by ZIP 244 [#zip-0244]_ is modified to
include a new branch for Orchard hashes. The ``orchard_digest`` branch is the only new
addition to the tree; ``header_digest``, ``transparent_digest``, and ``sapling_digest``
addition to the tree; ``header_digest``, ``transparent_sig_digest``, and ``sapling_digest``
are as in ZIP 244::
signature_digest
├── header_digest
├── transparent_digest
├── transparent_sig_digest
├── sapling_digest
└── orchard_digest
@ -368,10 +368,10 @@ signature_digest
A BLAKE2b-256 hash of the following values ::
S.1: header_digest (32-byte hash output)
S.2: transparent_digest (32-byte hash output)
S.3: sapling_digest (32-byte hash output)
S.4: orchard_digest (32-byte hash output)
S.1: header_digest (32-byte hash output)
S.2: transparent_sig_digest (32-byte hash output)
S.3: sapling_digest (32-byte hash output)
S.4: orchard_digest (32-byte hash output)
The personalization field of this hash is unmodified from ZIP 244
@ -384,9 +384,9 @@ Authorizing Data Commitment
~~~~~~~~~~~~~~~~~~~~~~~~~~~
The tree of hashes defined by ZIP 244 [#zip-0244]_ for authorizing data commitments is
re-structured to include a new branch for Orchard Actions. The ``orchard_digest`` branch
is the only new addition to the tree; ``transparent_digest``, and ``sapling_digest`` are
as in ZIP 244::
re-structured to include a new branch for Orchard Actions. The ``orchard_auth_digest``
branch is the only new addition to the tree; ``transparent_scripts_digest``, and
``sapling_auth_digest`` are as in ZIP 244::
auth_digest
├── transparent_scripts_digest
@ -396,10 +396,7 @@ as in ZIP 244::
auth_digest
"""""""""""
The tree of hashes defined by ZIP 244 [#zip-0244]_ for authorizing data commitments is
re-structured to include a new branch for Orchard authorizing data. The
``orchard_auth_digest`` branch is the only new addition to the tree;
``transparent_auth_digest``, and ``sapling_auth_digest`` are as in ZIP 244::
A BLAKE2b-256 hash of the following values::
A.1: transparent_scripts_digest (32-byte hash output)
A.2: sapling_auth_digest (32-byte hash output)