[ZIP 248]: Define a forward-compatible, extensible transaction format.#1156
[ZIP 248]: Define a forward-compatible, extensible transaction format.#1156
Conversation
04ea4cc to
3f5566b
Compare
nuttycom
left a comment
There was a problem hiding this comment.
Flushing comments from ZIP editing.
b26bc92 to
c7a649b
Compare
2d2dffa to
29eb5b5
Compare
…ment. Specifies the V6 transaction digest algorithms: - TxId digest with separate value_pool_deltas_digest and dynamic effects_bundles_digest - Signature digest for transparent input signing with hash_type support - Authorizing data commitment for witness data Key design decisions: - Value balances committed via top-level value_pool_deltas_digest (not per-bundle) - effects_bundles_digest uses tagged concatenation (bundle_type_id || root_hash) - Unknown bundle types supported by accepting their root hash externally Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…tion process. Restructure the specification to begin with a comprehensive introduction to protocol bundles, explaining effecting data, authorizing data, and the transparent transaction value pool concepts. Define the bundle type registration process that ZIPs must follow when introducing new bundle types. Move the bundle type registry to appear before the transaction format specification for better readability. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update PR URL to 1156 and fix email addresses - Use conformance language (MAY/MUST NOT) for registry column descriptions - Add constraint that map keys must be in increasing order - Change "ordered by" to "in increasing order of" throughout - Fix "transparent transaction value pool" terminology - Change AssetUuid subscript notation to function notation - Add registry update mechanism language - Add "Defining ZIP" column to bundle type registry table - Rephrase consensus rules section to clarify modifications to protocol spec - Add clarifying text for fee bundle semantics (coinbase collects, others pay) - Add mutual exclusion consensus rule for Sapling/Orchard bundle variants Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
a0020fe to
986b087
Compare
| with corresponding changes to the note decryption algorithms for incoming and | ||
| outgoing viewing keys [#zip-2005]_. | ||
|
|
||
| Implications for Wallets |
There was a problem hiding this comment.
This should no longer refer to ZIP 230, and this section of ZIP 226 possibly should just be deleted altogether if the assumption is that ZSAs will activate in a later upgrade than the 0x03 note plaintext format change (and quantum recoverability).
There was a problem hiding this comment.
ZIP 248 needs to include an equivalent to the section in ZIP 230 that describes implications for wallets.
| The transaction format for v6 transactions is described in ZIP 230 [#zip-0230]_. | ||
| The ZSA-related changes in v6 include: |
There was a problem hiding this comment.
| The ZSA-related changes in v6 include: | |
| The transaction format for v6 transactions is described in ZIP 248 [#zip-0248]_. | |
| The changes in v6 that will interact with ZSAs once the latter feature activates, | |
| include: |
| sighash digest computation [#zip-0248]_; | ||
| * new note plaintext formats for both Sapling and Orchard outputs [#zip-0230-note-plaintexts]_, | ||
| with corresponding changes to the note decryption algorithms for incoming and | ||
| outgoing viewing keys [#zip-2005]_. |
There was a problem hiding this comment.
| outgoing viewing keys [#zip-2005]_. | |
| outgoing viewing keys [#zip-2005]_. The new format for Orchard outputs reserves a | |
| field for $\mathsf{AssetBase}$, which will be fixed to $\mathcal{V}^{\mathsf{Orchard}}$ | |
| prior to ZSA activation. |
If this PR does not include the change to the Orchard 0x03 note plaintext format to include
| .. [#zip-0230-note-plaintexts] `ZIP 230: Version 6 Transaction Format — Note Plaintexts <zip-0230.rst#note-plaintexts>`_ | ||
| .. [#zip-0230-orchard-note-plaintext] `ZIP 230: Version 6 Transaction Format — Orchard Note Plaintext <zip-0230.rst#orchard-note-plaintext>`_ | ||
| .. [#zip-0230-implications-for-wallets] `ZIP 230: Version 6 Transaction Format — Implications for Wallets <zip-0230.rst#implications-for-wallets>`_ |
There was a problem hiding this comment.
| .. [#zip-0230-note-plaintexts] `ZIP 230: Version 6 Transaction Format — Note Plaintexts <zip-0230.rst#note-plaintexts>`_ | |
| .. [#zip-0230-orchard-note-plaintext] `ZIP 230: Version 6 Transaction Format — Orchard Note Plaintext <zip-0230.rst#orchard-note-plaintext>`_ | |
| .. [#zip-0230-implications-for-wallets] `ZIP 230: Version 6 Transaction Format — Implications for Wallets <zip-0230.rst#implications-for-wallets>`_ |
There will probably need to be references for the corresponding sections of ZIP 248.
| ZIP 248 [^zip-0248]. As with Sapling, the only change is that the note | ||
| plaintext in each Orchard action is shortened: the 512-byte memo field is | ||
| replaced by a 32-byte $\mathsf{K^{memo}}$, reducing `encCiphertext` from | ||
| 580 bytes to 100 bytes. |
There was a problem hiding this comment.
This will change in order to include
zips/zip-0231.md
Outdated
| $\mathtt{nActionsOrchard} > 0$. | ||
| * For coinbase transactions, the `enableSpendsOrchard` bit MUST be set to $0$. | ||
|
|
||
| #### OrcharActionEffecting |
There was a problem hiding this comment.
| #### OrcharActionEffecting | |
| #### OrchardActionEffecting |
zips/zip-0226.rst
Outdated
| Bundle Type Registration | ||
| ======================== | ||
|
|
||
| This ZIP registers the OrchardZSA bundle type in the V6 transaction bundle | ||
| type registry defined in ZIP 248 [#zip-0248]_: | ||
|
|
||
| +------------+----------------------+--------------------+------------------+-------------+ | ||
| | BundleType | ``mValuePoolDeltas`` | ``mEffectBundles`` | ``mAuthBundles`` | Bundle kind | | ||
| +============+======================+====================+==================+=============+ | ||
| | TBD |✅ |✅ |✅ | OrchardZSA | | ||
| +------------+----------------------+--------------------+------------------+-------------+ | ||
|
|
||
| The OrchardZSA bundle has value pool deltas (transfers move value in and out of | ||
| the transparent transaction value pool), effecting data (the OrchardZSA actions | ||
| and burn information), and authorizing data (the proofs and binding signature). | ||
|
|
||
| A transaction MUST NOT contain both an Orchard bundle (type 3) and an OrchardZSA | ||
| bundle. The OrchardZSA bundle replaces the Orchard bundle for transactions that | ||
| transfer Custom Assets. |
There was a problem hiding this comment.
This should be a proposed update to ZIP 248, in the Specification section.
- Register bundle type 4 (Transaction fee) in the V6 bundle registry - Update consensus rules to use mValuePoolDeltas terminology - Replace header_digest modification with value_pool_deltas_digest reference - Add reference to extensible transaction format ZIP Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Register bundle type 5 (NSM field) in the V6 bundle registry - Update consensus rules to use mValuePoolDeltas terminology - Replace header_digest modification with value_pool_deltas_digest reference - Add reference to extensible transaction format ZIP Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Register Memos, Sapling-post-ZIP 231, and Orchard-post-ZIP 231 bundle types - Update encoding section to clarify it describes effecting data - Replace Transaction sighash section with Transaction Digest referencing ZIP XXX - Specify BLAKE2b-256 personalization strings for memo digest computation - Add reference to extensible transaction format ZIP - Fix zip-0230-note-plaintexts reference Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Register ZSA Issuance bundle type in the V6 bundle registry - Update digest section to reference effects_bundles_digest and auth_bundles_digest - Add reference to extensible transaction format ZIP - Remove unused ZIP 244 and ZIP 246 references Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Register OrchardZSA bundle type in the V6 bundle registry - Update digest section to reference effects_bundles_digest and auth_bundles_digest - Add reference to extensible transaction format ZIP - Remove unused ZIP 244 and ZIP 246 references Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
986b087 to
346b40d
Compare
Fixes #1163