From 4209dc3470a15713ee398f881421003c70db8c27 Mon Sep 17 00:00:00 2001 From: Daira-Emma Hopwood Date: Tue, 16 Jun 2026 21:44:37 +0100 Subject: [PATCH 01/14] Add draft ZIP: Ironwood Transaction Format MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A draft (modelled on ZIP 225) specifying version 6 of the transaction format for NU6.3: version 5 plus an appended Ironwood bundle, an Orchard-protocol shielded bundle committing to the Ironwood pool. Covers the v6 field layout (Ironwood bundle = Orchard bundle shape; no ZIP 233 amount and no per-input sighash info); the consensus rules (lead byte, field presence, the flag bits including enableCrossAddressOrchard at bit 2, and the no-new-value-into-Orchard turnstile rule); changes to ZIP 209 and § 4.17 for the Ironwood chain value pool balance; and the transaction-hashing changes — the Ironwood txid and auth bundle digests with their 16-byte personalizations, and the version 6 move of the Orchard and Ironwood anchors from effecting data to authorizing data. Open issues remain (the explicit fee field, the enableCrossAddress flag name, placement of the turnstile rules, and confirmation of the personalization strings). Co-Authored-By: Claude Opus 4.8 (1M context) Signed-off-by: Daira-Emma Hopwood --- README.rst | 1 + ...draft-zodl-valargroup-ironwood-txformat.md | 373 ++++++++++++++++++ 2 files changed, 374 insertions(+) create mode 100644 zips/draft-zodl-valargroup-ironwood-txformat.md diff --git a/README.rst b/README.rst index 929608d08..3f41417d0 100644 --- a/README.rst +++ b/README.rst @@ -234,6 +234,7 @@ be deleted. draft-ecc-authenticated-reply-addrs Authenticated Reply Addresses zips#1230 draft-ecc-onchain-accountable-voting On-chain Accountable Voting draft-str4d-orchard-balance-proof Air drops, Proof-of-Balance, and Stake-weighted Polling zips#1229 + draft-zodl-valargroup-ironwood-txformat Ironwood Transaction Format Withdrawn, Rejected, or Obsolete ZIPs diff --git a/zips/draft-zodl-valargroup-ironwood-txformat.md b/zips/draft-zodl-valargroup-ironwood-txformat.md new file mode 100644 index 000000000..506d78e14 --- /dev/null +++ b/zips/draft-zodl-valargroup-ironwood-txformat.md @@ -0,0 +1,373 @@ + ZIP: XXX + Title: Ironwood Transaction Format + Owners: Daira-Emma Hopwood + ‹other ZODL / Valar Group authors› + Status: Draft + Category: Consensus + Created: 2026-06-13 + License: MIT + Discussions-To: ‹https://github.com/zcash/zips/issues/XXXX› + + +# Terminology + +The key words "MUST", "MUST NOT", "SHOULD", and "MAY" in this document are to be +interpreted as described in BCP 14 [^BCP14] when, and only when, they appear in all +capitals. + +The term "network upgrade" in this document is to be interpreted as described in +ZIP 200. [^zip-0200] + +The terms "Mainnet" and "Testnet" are to be interpreted as described in § 3.12 +‘Mainnet and Testnet’. [^protocol-networks] + +The character § is used when referring to sections of the Zcash Protocol +Specification. [^protocol] + +The terms below are to be interpreted as follows: + +Orchard protocol +: The shared cryptographic design used by both the Orchard pool and the Ironwood + pool: the Pallas/Vesta curves, the Sinsemilla hash, the Action circuit and its + verifying key, and the note, commitment, nullifier, and key constructions and note + encryption defined for Orchard. There is a single Orchard protocol. + +Orchard pool +: The value pool, with its own note commitment tree, anchor, and chain value pool + balance, that was introduced by ZIP 224 [^zip-0224]. Also called the *legacy* or + *original* Orchard pool where disambiguation is needed. + +Ironwood pool +: A new value pool of the Orchard protocol, introduced by this ZIP, with its own note + commitment tree, anchor, and chain value pool balance, distinct from the Orchard + pool. + + +# Abstract + +This ZIP defines version 6 of the Zcash transaction format, activated at NU6.3. A +version 6 transaction is a version 5 transaction extended with an **Ironwood bundle**: +a second Orchard-protocol shielded bundle that commits to, and spends from, the +Ironwood pool rather than the Orchard pool. + +The Ironwood bundle reuses the Orchard Action encoding, authorization structure, and +proof system unchanged; it differs from the Orchard bundle only in that its actions are +committed to the Ironwood note commitment tree and spent against the Ironwood nullifier +set, and in the transaction-hashing personalizations used for it. + + +# Motivation + +NU6.3 introduces the Ironwood pool as an Orchard-protocol successor to the legacy +Orchard pool, in order to bound the circulating supply of ZEC transacting through the +shielded protocol while allowing existing Orchard funds to be migrated across the +turnstile. Carrying the Ironwood pool requires a new transaction version that can hold +an Ironwood bundle alongside the existing transparent, Sapling, and Orchard components, +together with the corresponding transaction-identifier, signature-hash, and block-commitment +changes. + +This ZIP specifies only the transaction format and its associated hashing. The circuit +change that the Ironwood pool relies on (the `enableCrossAddress` flag) is specified in +the Ironwood circuit ZIP [^ironwood-circuit]; activation parameters are specified in the +Ironwood deployment ZIP [^ironwood-deploy]. + + +# Requirements + +The version 6 transaction format MUST be able to carry an Ironwood bundle in addition +to the transparent, Sapling, and Orchard components of a version 5 transaction. + +The Ironwood bundle MUST reuse the Orchard Action and bundle encoding, so that the +Orchard proving system, authorization, and note encryption apply unchanged. + +The transaction identifier, signature hash, and authorizing-data commitment MUST commit +to the Ironwood bundle when it is present, using personalizations distinct from those +used for the Orchard bundle. + + +# Non-requirements + +This ZIP does not define the Ironwood circuit or the `enableCrossAddress` constraint +(see [^ironwood-circuit]), the activation height or consensus branch ID (see +[^ironwood-deploy]), or wallet behaviour for migrating funds across the turnstile. + +This ZIP does not reintroduce the OrchardZSA, issuance, or asset-burn fields, the +`zip233Amount` field, or per-transparent-input sighash information that appeared in the +withdrawn ZIP 230. [^zip-0230] + + +# Specification + +## Transaction Format + +A version 6 transaction is encoded as follows. Fields up to and including the Orchard +bundle are as in the version 5 format [^zip-0225], except as noted; the Ironwood bundle +is new. + +Bytes | Name | Data Type | Description +------------------------ | ------------------------ | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +**Common Transaction Fields** |||| +`4` | `header` | `uint32` | Contains the `fOverwintered` flag (bit 31, always set) and `version` (bits 30 .. 0), which MUST be `6`. +`4` | `nVersionGroupId` | `uint32` | Version group ID (nonzero); the version 6 value fixed in [^ironwood-deploy]. +`4` | `nConsensusBranchId` | `uint32` | Consensus branch ID; MUST be the NU6.3 branch ID [^ironwood-deploy]. +`4` | `lock_time` | `uint32` | Unix-epoch UTC time or block height, encoded as in Bitcoin. +`4` | `nExpiryHeight` | `uint32` | A block height in {1 .. 499999999} after which the transaction will expire, or 0 to disable expiry. [^zip-0203] +`8` | `fee` | `uint64` | The fee to be paid by this transaction, in zatoshis. **(Under discussion — see [Open Issues](#open-issues).)** +**Transparent Transaction Fields** |||| +`varies` | `tx_in_count` | `compactSize` | Number of transparent inputs in `tx_in`. +`varies` | `tx_in` | `tx_in` | Transparent inputs, encoded as in Bitcoin. +`varies` | `tx_out_count` | `compactSize` | Number of transparent outputs in `tx_out`. +`varies` | `tx_out` | `tx_out` | Transparent outputs, encoded as in Bitcoin. +**Sapling Transaction Fields (unchanged from v5)** |||| +`varies` | `nSpendsSapling` | `compactSize` | Number of Sapling Spend descriptions in `vSpendsSapling`. +`96 * nSpendsSapling` | `vSpendsSapling` | `SpendDescriptionV5[nSpendsSapling]` | Sapling Spend descriptions, encoded per § 7.3 ‘Spend Description Encoding and Consensus’. +`varies` | `nOutputsSapling` | `compactSize` | Number of Sapling Output descriptions in `vOutputsSapling`. +`756 * nOutputsSapling` | `vOutputsSapling` | `OutputDescriptionV5[nOutputsSapling]` | Sapling Output descriptions, encoded per § 7.4 ‘Output Description Encoding and Consensus’. +`8` | `valueBalanceSapling` | `int64` | The net value of Sapling Spends minus Outputs. +`32` | `anchorSapling` | `byte[32]` | A root of the Sapling note commitment tree at some block height in the past. +`192 * nSpendsSapling` | `vSpendProofsSapling` | `byte[192 * nSpendsSapling]` | Encodings of the zk-SNARK proofs for each Sapling Spend. +`64 * nSpendsSapling` | `vSpendAuthSigsSapling` | `byte[64 * nSpendsSapling]` | Authorizing signatures for each Sapling Spend. +`192 * nOutputsSapling` | `vOutputProofsSapling` | `byte[192 * nOutputsSapling]` | Encodings of the zk-SNARK proofs for each Sapling Output. +`64` | `bindingSigSapling` | `byte[64]` | A Sapling binding signature on the SIGHASH transaction hash. +**Orchard Transaction Fields** |||| +`varies` | `nActionsOrchard` | `compactSize` | The number of Orchard Action descriptions in `vActionsOrchard`. +`820 * nActionsOrchard` | `vActionsOrchard` | `OrchardAction[nActionsOrchard]` | A sequence of Orchard Action descriptions, encoded per § 7.5 ‘Action Description Encoding and Consensus’. +`1` | `flagsOrchard` | `byte` | An 8-bit value representing a set of flags. From LSB to MSB: `enableSpendsOrchard`, `enableOutputsOrchard`, `enableCrossAddressOrchard` (new at NU6.3); the remaining bits MUST be `0`. +`8` | `valueBalanceOrchard` | `int64` | The net value of Orchard spends minus outputs. +`32` | `anchorOrchard` | `byte[32]` | A root of the Orchard note commitment tree at some block height in the past. +`varies` | `sizeProofsOrchard` | `compactSize` | Length in bytes of `proofsOrchard`. Value is `2720 + 2272 * nActionsOrchard`. +`sizeProofsOrchard` | `proofsOrchard` | `byte[sizeProofsOrchard]` | Encoding of aggregated zk-SNARK proofs for Orchard Actions. +`64 * nActionsOrchard` | `vSpendAuthSigsOrchard` | `byte[64 * nActionsOrchard]` | Authorizing signatures for each Orchard Action. +`64` | `bindingSigOrchard` | `byte[64]` | An Orchard binding signature on the SIGHASH transaction hash. +**Ironwood Transaction Fields (new)** |||| +`varies` | `nActionsIronwood` | `compactSize` | The number of Ironwood Action descriptions in `vActionsIronwood`. +`820 * nActionsIronwood` | `vActionsIronwood` | `OrchardAction[nActionsIronwood]` | A sequence of Ironwood Action descriptions, using the same encoding as Orchard Actions (§ 7.5). +`1` | `flagsIronwood` | `byte` | The same layout as `flagsOrchard`, including `enableCrossAddressOrchard` at bit 2; the remaining bits MUST be `0`. +`8` | `valueBalanceIronwood` | `int64` | The net value of Ironwood spends minus outputs. +`32` | `anchorIronwood` | `byte[32]` | A root of the **Ironwood** note commitment tree at some block height in the past. +`varies` | `sizeProofsIronwood` | `compactSize` | Length in bytes of `proofsIronwood`. Value is `2720 + 2272 * nActionsIronwood`. +`sizeProofsIronwood` | `proofsIronwood` | `byte[sizeProofsIronwood]` | Encoding of aggregated zk-SNARK proofs for Ironwood Actions. +`64 * nActionsIronwood` | `vSpendAuthSigsIronwood` | `byte[64 * nActionsIronwood]` | Authorizing signatures for each Ironwood Action. +`64` | `bindingSigIronwood` | `byte[64]` | An Ironwood binding signature on the SIGHASH transaction hash. + +The encoding of the transparent and Sapling fields is unchanged from version 5 +[^zip-0225]. Ironwood Action descriptions use the same `OrchardAction` encoding as +Orchard Action descriptions. Every Ironwood output note uses the quantum-recoverable +note plaintext format (lead byte `0x03`) defined in ZIP 2005 [^zip-2005]; no Orchard +output note uses that format. This is the note-level distinction between the two pools. + +## Consensus Rules + +* `nVersionGroupId` MUST equal the version 6 version group ID, and `nConsensusBranchId` + MUST equal the NU6.3 consensus branch ID, both defined in [^ironwood-deploy]. + +* As in version 5 [^zip-0225]: + * The Orchard fields `flagsOrchard`, `valueBalanceOrchard`, `anchorOrchard`, + `sizeProofsOrchard`, `proofsOrchard`, and `bindingSigOrchard` are present if and + only if `nActionsOrchard > 0`. If `valueBalanceOrchard` is not present, it is taken + to be `0`. + * The proofs in `proofsOrchard` and the signatures in `vSpendAuthSigsOrchard` each + correspond 1:1 to the elements of `vActionsOrchard`, in the same order. + +* The same rules apply to the Ironwood bundle: + * The Ironwood fields `flagsIronwood`, `valueBalanceIronwood`, `anchorIronwood`, + `sizeProofsIronwood`, `proofsIronwood`, and `bindingSigIronwood` are present if and + only if `nActionsIronwood > 0`. If `valueBalanceIronwood` is not present, it is + taken to be `0`. + * The proofs in `proofsIronwood` and the signatures in `vSpendAuthSigsIronwood` each + correspond 1:1 to the elements of `vActionsIronwood`, in the same order. + +* In `flagsOrchard` and `flagsIronwood`, bits 3 .. 7 MUST be `0`. The semantics of + `enableSpendsOrchard` and `enableOutputsOrchard` are as in ZIP 224 [^zip-0224]. The + `enableCrossAddressOrchard` flag is specified in [^ironwood-circuit]; before NU6.3 this + bit was reserved as `0`. + +* For coinbase transactions, `enableSpendsOrchard` MUST be `0` in both `flagsOrchard` and + `flagsIronwood`. + +* The `anchorOrchard` field refers to the Orchard note commitment tree; the + `anchorIronwood` field refers to the Ironwood note commitment tree. The two trees, and + their nullifier sets, are disjoint. + +* The following rules apply from NU6.3 activation. *(Their placement — this ZIP or the + deployment ZIP — is under discussion; see [Open Issues](#open-issues).)* + * A version 6 transaction MUST have `enableCrossAddressOrchard = 0` in `flagsOrchard`, + restricting the legacy Orchard pool to same-receiver actions (see [^ironwood-circuit]). + * No new value may enter the Orchard pool: `valueBalanceOrchard` MUST be greater than + or equal to `0`. + +## Transaction Identifiers, Signature Hashing, and Block Commitments + +Version 6 transaction identifiers (txids), authorizing-data commitments ("auth digests"), and +signature hashes are computed as in ZIP 244 [^zip-0244], with two changes: an **Ironwood bundle +digest** is added, and for version 6 the Orchard and Ironwood **anchors move from effecting data to +authorizing data**. The version 5 algorithm is unchanged. + +### Ironwood bundle digest + +The version 6 txid digest adds an Ironwood bundle digest as the last child, after the Orchard +bundle digest: + + txid = BLAKE2b-256("ZcashTxHash_" || consensusBranchId, + header_digest || transparent_digest || sapling_digest || + orchard_digest || ironwood_digest) + +and the auth digest adds an Ironwood auth digest as the last child, after the Orchard one: + + auth_digest = BLAKE2b-256("ZTxAuthHash_" || consensusBranchId, + transparent_auth_digest || sapling_auth_digest || + orchard_auth_digest || ironwood_auth_digest) + +`ironwood_digest` and `ironwood_auth_digest` are computed with **the same structure as the Orchard +`orchard_digest` and `orchard_auth_digest`** (ZIP 244), but with Ironwood-specific 16-byte BLAKE2b +personalizations at each node: + +node | Orchard (ZIP 244) | Ironwood +--------------------- | ------------------ | ------------------ +bundle (txid) | `ZTxIdOrchardHash` | `ZTxIdIronwd_Hash` +actions — compact | `ZTxIdOrcActCHash` | `ZTxIdIrnActCHash` +actions — memos | `ZTxIdOrcActMHash` | `ZTxIdIrnActMHash` +actions — non-compact | `ZTxIdOrcActNHash` | `ZTxIdIrnActNHash` +auth | `ZTxAuthOrchaHash` | `ZTxAuthIrnwdHash` + +When a version 6 transaction has no Ironwood actions, `ironwood_digest` and `ironwood_auth_digest` +are the hashes of empty input under the bundle and auth personalizations respectively — +`BLAKE2b-256("ZTxIdIronwd_Hash", [])` and `BLAKE2b-256("ZTxAuthIrnwdHash", [])` — distinct from the +Orchard empty-bundle digests. + +### Anchor commitment (version 6) + +In version 5, the Orchard anchor `anchorOrchard` is part of the **effecting data**: it is committed +in `orchard_digest` (and hence the txid), while the Orchard auth digest commits only to proofs and +signatures [^zip-0244]. + +In **version 6**, for **both** the Orchard and Ironwood bundles, the anchor is instead part of the +**authorizing data**. Relative to ZIP 244, for version 6 transactions: + +- `orchard_digest` / `ironwood_digest` omit `anchorOrchard` / `anchorIronwood`; +- `orchard_auth_digest` / `ironwood_auth_digest` additionally commit to `anchorOrchard` / + `anchorIronwood`. + +This lets the anchor be updated (re-anchored to a more recent note commitment tree root) without +changing the transaction ID, while signatures still bind to the specific anchor used. + +### Block commitments + +The `hashBlockCommitments` authorizing-data commitment [^zip-0244] incorporates the version 6 auth +digest — which now includes the Ironwood auth digest, and (per the change above) the anchors — with +no further structural change. + + +## Changes to the Protocol Specification + +Corresponding changes are required in § 4.17 ‘Chain Value Pool Balances’ +[^protocol-chainvalue] to define an Ironwood chain value pool balance alongside the existing +Sprout, Sapling, and Orchard pools. These mirror the changes to ZIP 209 below and are not +spelled out here. + +## Changes to ZIP 209 + +In the Terminology section, after the paragraph + +> The "Orchard chain value pool balance" for a given block chain is the negation of the sum +> of all `valueBalanceOrchard` fields for transactions in the block chain. (Before NU5 has +> activated, the Orchard chain value pool balance is zero.) + +add + +> The "Ironwood chain value pool balance" for a given block chain is the negation of the sum +> of all `valueBalanceIronwood` fields for transactions in the block chain. (Before NU6.3 +> has activated, the Ironwood chain value pool balance is zero.) + +In the Specification section, replace + +> If any of the "Sprout chain value pool balance", "Sapling chain value pool balance", or +> "Orchard chain value pool balance" would become negative in the block chain created as a +> result of accepting a block, then all nodes MUST reject the block as invalid. + +with + +> If any of the "Sprout chain value pool balance", "Sapling chain value pool balance", +> "Orchard chain value pool balance", or "Ironwood chain value pool balance" would become +> negative in the block chain created as a result of accepting a block, then all nodes MUST +> reject the block as invalid. + + +# Rationale + +**Reuse of the Orchard protocol.** Carrying the Ironwood pool as a second +Orchard-protocol bundle, rather than defining a new shielded protocol, keeps the +transaction-format and implementation surface small: the Action encoding, proving system, +authorization, and note encryption are inherited unchanged. The pools are distinguished +by their note commitment trees, nullifier sets, value pool balances, and bundle position, +not by separate circuits. + +**Separate state.** Giving the Ironwood pool its own note commitment tree, anchor, and +nullifier set creates a clean state boundary from the legacy Orchard pool, so the two +pools do not share anonymity-set state and the turnstile can be accounted for +independently. + +**`enableCrossAddressOrchard` polarity.** The flag is encoded in the enabled sense +(`1` = cross-address transfers enabled, the normal case; `0` = restricted to the spend +address), with bit 2 reserved as `0` before NU6.3. This is reverse compatible: a legacy +Orchard-pool spend after NU6.3 requires the restricted state, which is bit 2 = `0` — +exactly the value that signers treating bit 2 as a reserved-zero bit already produce. The +in-circuit constraint and the equivalent internal `disableCrossAddress` instance value are +discussed in [^ironwood-circuit]. + + +# Open Issues + +* **Explicit `fee` field.** Whether to include an explicit `fee` field (as shown above) is + under discussion: it is desired by some authors but has received pushback. It is retained + in this draft pending that discussion, and may be removed (reverting to an implicit fee, + as in version 5) if the pushback is sustained. + +* **Ironwood transaction-hashing personalizations.** The personalization strings specified above + match the current implementation (librustzcash); the choices (including the `Irn` / `Ironwd` + abbreviations) are pending confirmation. + +* **Placement of the turnstile / value-pool rules.** The "no new value into Orchard" rule + and the ZIP 209 chain value pool balance accounting could instead live in + [^ironwood-deploy]; the placement is to be decided. + +* **Flag naming.** Whether the new flag is named `enableCrossAddressOrchard` (matching the + `…Orchard` suffix of the existing flag bits, since it is an Orchard-protocol flag) or + simply `enableCrossAddress`. + + +# Deployment + +This transaction format is deployed at NU6.3. Activation heights, the version 6 version +group ID, and the NU6.3 consensus branch ID are specified in [^ironwood-deploy]. + + +# References + +[^BCP14]: [Information on BCP 14 — "RFC 2119: Key words for use in RFCs to Indicate Requirement Levels" and "RFC 8174: Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words"](https://www.rfc-editor.org/info/bcp14) + +[^protocol]: [Zcash Protocol Specification, Version 2025.6.3 [NU6.1] or later](protocol/protocol.pdf) + +[^protocol-networks]: [Zcash Protocol Specification, Version 2025.6.3 [NU6.1]. Section 3.12: Mainnet and Testnet](protocol/protocol.pdf#networks) + +[^protocol-chainvalue]: [Zcash Protocol Specification, Version 2025.6.3 [NU6.1] or later. Section 4.17: Chain Value Pool Balances](protocol/protocol.pdf#chainvaluepoolbalances) + +[^zip-0200]: [ZIP 200: Network Upgrade Mechanism](zip-0200.rst) + +[^zip-0203]: [ZIP 203: Transaction Expiry](zip-0203.rst) + +[^zip-0209]: [ZIP 209: Prohibit Negative Shielded Chain Value Pool Balances](zip-0209.rst) + +[^zip-0224]: [ZIP 224: Orchard Shielded Protocol](zip-0224.rst) + +[^zip-0225]: [ZIP 225: Version 5 Transaction Format](zip-0225.rst) + +[^zip-0230]: [ZIP 230: Withdrawn Version 6 Transaction Format](zip-0230.rst) + +[^zip-0244]: [ZIP 244: Transaction Identifier Non-Malleability](zip-0244.rst) + +[^zip-2005]: [ZIP 2005: Orchard Quantum Recoverability](zip-2005.md) + +[^ironwood-circuit]: [Ironwood Circuit (draft)](draft-zodl-valargroup-ironwood-circuit.md) + +[^ironwood-deploy]: [Deployment of the Ironwood Network Upgrade (draft)](draft-zodl-valargroup-deploy-ironwood.md) From 4331ec58d2be78949bfa7a51e565de21c35fa41f Mon Sep 17 00:00:00 2001 From: Daira-Emma Hopwood Date: Thu, 18 Jun 2026 00:53:23 +0100 Subject: [PATCH 02/14] Address #1301 review: sighash, ZIP 221, and reference fixes - Title -> "Version 6 Transaction Format"; drop the fee field; coinbase empty-Orchard-bundle note; reword the Orchard/Ironwood tree/nullifier-set separation. - Sighash: extend the v6 anchor move (effecting -> auth data) to Sapling as well as Orchard and Ironwood; full txid/auth digest trees and the per-node personalization table (with _v6 personalizations where the encoding changed). - Add a "Changes to ZIP 221" section: the Ironwood chain-history MMR node fields (hashEarliest/LatestIronwoodRoot, nIronwoodTxCount) [NU6.3 onward], mirroring the NU5 Orchard fields. - Add a ZIP 209 intro citing [^zip-0209]; add the [^zip-0221], [^zip-0252], [^zip-0244-txiddigest], and [^zip-0244-authorizingdatacommitment] references. - Fix the #openissues internal anchor (MMD strips hyphens). The [0, MAX_MONEY] ZIP 209 change is left as a TODO pending the ZIP 256 update in zcash/zips#1295. Co-Authored-By: Claude Opus 4.8 (1M context) Signed-off-by: Daira-Emma Hopwood --- README.rst | 2 +- ...draft-zodl-valargroup-ironwood-txformat.md | 271 +++++++++++++----- 2 files changed, 207 insertions(+), 66 deletions(-) diff --git a/README.rst b/README.rst index 3f41417d0..327a22679 100644 --- a/README.rst +++ b/README.rst @@ -234,7 +234,7 @@ be deleted. draft-ecc-authenticated-reply-addrs Authenticated Reply Addresses zips#1230 draft-ecc-onchain-accountable-voting On-chain Accountable Voting draft-str4d-orchard-balance-proof Air drops, Proof-of-Balance, and Stake-weighted Polling zips#1229 - draft-zodl-valargroup-ironwood-txformat Ironwood Transaction Format + draft-zodl-valargroup-ironwood-txformat Version 6 Transaction Format Withdrawn, Rejected, or Obsolete ZIPs diff --git a/zips/draft-zodl-valargroup-ironwood-txformat.md b/zips/draft-zodl-valargroup-ironwood-txformat.md index 506d78e14..82e104cd4 100644 --- a/zips/draft-zodl-valargroup-ironwood-txformat.md +++ b/zips/draft-zodl-valargroup-ironwood-txformat.md @@ -1,5 +1,5 @@ ZIP: XXX - Title: Ironwood Transaction Format + Title: Version 6 Transaction Format Owners: Daira-Emma Hopwood ‹other ZODL / Valar Group authors› Status: Draft @@ -87,9 +87,9 @@ used for the Orchard bundle. # Non-requirements -This ZIP does not define the Ironwood circuit or the `enableCrossAddress` constraint -(see [^ironwood-circuit]), the activation height or consensus branch ID (see -[^ironwood-deploy]), or wallet behaviour for migrating funds across the turnstile. +This ZIP does not define the Ironwood circuit or the `enableCrossAddressOrchard` +constraint (see [^ironwood-circuit]), the activation height or consensus branch ID +(see [^ironwood-deploy]), or wallet behaviour for migrating funds across the turnstile. This ZIP does not reintroduce the OrchardZSA, issuance, or asset-burn fields, the `zip233Amount` field, or per-transparent-input sighash information that appeared in the @@ -112,7 +112,6 @@ Bytes | Name | Data Type `4` | `nConsensusBranchId` | `uint32` | Consensus branch ID; MUST be the NU6.3 branch ID [^ironwood-deploy]. `4` | `lock_time` | `uint32` | Unix-epoch UTC time or block height, encoded as in Bitcoin. `4` | `nExpiryHeight` | `uint32` | A block height in {1 .. 499999999} after which the transaction will expire, or 0 to disable expiry. [^zip-0203] -`8` | `fee` | `uint64` | The fee to be paid by this transaction, in zatoshis. **(Under discussion — see [Open Issues](#open-issues).)** **Transparent Transaction Fields** |||| `varies` | `tx_in_count` | `compactSize` | Number of transparent inputs in `tx_in`. `varies` | `tx_in` | `tx_in` | Transparent inputs, encoded as in Bitcoin. @@ -183,14 +182,16 @@ output note uses that format. This is the note-level distinction between the two bit was reserved as `0`. * For coinbase transactions, `enableSpendsOrchard` MUST be `0` in both `flagsOrchard` and - `flagsIronwood`. + `flagsIronwood`. (From NU6.3, coinbase transactions are additionally constrained to have an + empty Orchard bundle — forcing newly created shielded value into Ironwood — specified + separately.) -* The `anchorOrchard` field refers to the Orchard note commitment tree; the - `anchorIronwood` field refers to the Ironwood note commitment tree. The two trees, and - their nullifier sets, are disjoint. +* The `anchorOrchard` field refers to the Orchard note commitment tree, and the + `anchorIronwood` field to the Ironwood note commitment tree. The Orchard and Ironwood pools + have separate, independent note commitment trees and nullifier sets. * The following rules apply from NU6.3 activation. *(Their placement — this ZIP or the - deployment ZIP — is under discussion; see [Open Issues](#open-issues).)* + deployment ZIP — is under discussion; see [Open Issues](#openissues).)* * A version 6 transaction MUST have `enableCrossAddressOrchard = 0` in `flagsOrchard`, restricting the legacy Orchard pool to same-receiver actions (see [^ironwood-circuit]). * No new value may enter the Orchard pool: `valueBalanceOrchard` MUST be greater than @@ -205,67 +206,141 @@ authorizing data**. The version 5 algorithm is unchanged. ### Ironwood bundle digest -The version 6 txid digest adds an Ironwood bundle digest as the last child, after the Orchard -bundle digest: +Relative to the txid digest for v5 transactions [^zip-0244-txiddigest], the version 6 txid digest +adds an Ironwood bundle digest as the last child, after the Orchard bundle digest: - txid = BLAKE2b-256("ZcashTxHash_" || consensusBranchId, - header_digest || transparent_digest || sapling_digest || - orchard_digest || ironwood_digest) + txid_digest_v6 = BLAKE2b-256("ZcashTxHash_" || consensusBranchId, + header_digest || transparent_digest || sapling_digest || + orchard_digest_v6 || ironwood_digest_v6) -and the auth digest adds an Ironwood auth digest as the last child, after the Orchard one: +Relative to the auth digest for v5 transactions [^zip-0244-authorizingdatacommitment], the +version 6 auth digest adds an Ironwood auth digest as the last child, after the Orchard one: - auth_digest = BLAKE2b-256("ZTxAuthHash_" || consensusBranchId, - transparent_auth_digest || sapling_auth_digest || - orchard_auth_digest || ironwood_auth_digest) - -`ironwood_digest` and `ironwood_auth_digest` are computed with **the same structure as the Orchard -`orchard_digest` and `orchard_auth_digest`** (ZIP 244), but with Ironwood-specific 16-byte BLAKE2b -personalizations at each node: - -node | Orchard (ZIP 244) | Ironwood ---------------------- | ------------------ | ------------------ -bundle (txid) | `ZTxIdOrchardHash` | `ZTxIdIronwd_Hash` -actions — compact | `ZTxIdOrcActCHash` | `ZTxIdIrnActCHash` -actions — memos | `ZTxIdOrcActMHash` | `ZTxIdIrnActMHash` -actions — non-compact | `ZTxIdOrcActNHash` | `ZTxIdIrnActNHash` -auth | `ZTxAuthOrchaHash` | `ZTxAuthIrnwdHash` - -When a version 6 transaction has no Ironwood actions, `ironwood_digest` and `ironwood_auth_digest` -are the hashes of empty input under the bundle and auth personalizations respectively — -`BLAKE2b-256("ZTxIdIronwd_Hash", [])` and `BLAKE2b-256("ZTxAuthIrnwdHash", [])` — distinct from the -Orchard empty-bundle digests. + auth_digest_v6 = BLAKE2b-256("ZTxAuthHash_" || consensusBranchId, + transparent_auth_digest || sapling_auth_digest || + orchard_auth_digest_v6 || ironwood_auth_digest_v6) ### Anchor commitment (version 6) -In version 5, the Orchard anchor `anchorOrchard` is part of the **effecting data**: it is committed -in `orchard_digest` (and hence the txid), while the Orchard auth digest commits only to proofs and -signatures [^zip-0244]. +In version 5, the Sapling anchor (encoded redundantly as `anchor` in each +`sapling_spends_noncompact_digest`) and the Orchard anchor (`anchorOrchard` in `orchard_digest`) +are part of the **effecting data**: they are committed to in `txid_digest`, while the Sapling and +Orchard auth digests commit only to proofs and signatures [^zip-0244-authorizingdatacommitment]. -In **version 6**, for **both** the Orchard and Ironwood bundles, the anchor is instead part of the +In version 6, for Sapling, Orchard, and Ironwood bundles, the anchor is instead part of the **authorizing data**. Relative to ZIP 244, for version 6 transactions: -- `orchard_digest` / `ironwood_digest` omit `anchorOrchard` / `anchorIronwood`; -- `orchard_auth_digest` / `ironwood_auth_digest` additionally commit to `anchorOrchard` / - `anchorIronwood`. +- `sapling_spends_noncompact_digest`, `orchard_digest`, and `ironwood_digest` omit the anchor. +- `sapling_auth_digest`, `orchard_auth_digest`, and `ironwood_auth_digest` additionally commit + to `anchorSapling`, `anchorOrchard`, or `anchorIronwood` respectively, after the existing fields. This lets the anchor be updated (re-anchored to a more recent note commitment tree root) without changing the transaction ID, while signatures still bind to the specific anchor used. +`ironwood_digest` and `ironwood_auth_digest` are computed with *the same structure* as the Orchard +`orchard_digest` and `orchard_auth_digest` (ZIP 244), but with Ironwood-specific 16-byte BLAKE2b +personalizations at each node. Also, distinct personalizations are used for Sapling and Orchard nodes +where the encoding has changed as a result of moving the anchor commitments to auth data, as follows: + +node | v5 personalization | v6 personalization | Comment for v6 +------------------------------------- | ------------------ | ------------------ | ------------------------- +sapling_digest[_v6] | `ZTxIdSaplingHash` | `ZTxIdSaplingHash` | not changed directly +sapling_spends_digest | `ZTxIdSSpendsHash` | `ZTxIdSSpendsHash` | unchanged +sapling_spends_compact_digest | `ZTxIdSSpendCHash` | `ZTxIdSSpendCHash` | unchanged +sapling_spends_noncompact_digest[_v6] | `ZTxIdSSpendNHash` | `ZTxIdSSpendNH_v6` | omits `anchor` +sapling_auth_digest[_v6] | `ZTxAuthSapliHash` | `ZTxAuthSapliH_v6` | includes `anchorSapling` +------------------------------------- | ------------------ | ------------------ | ------------------------- +orchard_digest[_v6] | `ZTxIdOrchardHash` | `ZTxIdOrchardH_v6` | omits `anchorOrchard` +orchard_actions_compact_digest | `ZTxIdOrcActCHash` | `ZTxIdOrcActCHash` | unchanged +orchard_actions_memos_digest | `ZTxIdOrcActMHash` | `ZTxIdOrcActMHash` | unchanged +orchard_actions_noncompact_digest | `ZTxIdOrcActNHash` | `ZTxIdOrcActNHash` | unchanged +orchard_auth_digest_v6 | `ZTxAuthOrchaHash` | `ZTxAuthOrchaH_v6` | includes `anchorOrchard` +------------------------------------- | ------------------ | ------------------ | ------------------------- +ironwood_digest | n/a | `ZTxIdIronwd_H_v6` | omits `anchorIronwood` +ironwood_actions_compact_digest | n/a | `ZTxIdIrnActCH_v6` | +ironwood_actions_memos_digest | n/a | `ZTxIdIrnActMH_v6` | +ironwood_actions_noncompact_digest | n/a | `ZTxIdIrnActNH_v6` | +ironwood_auth_digest | n/a | `ZTxAuthIrnwdH_v6` | includes `anchorIronwood` + +As in the case of Sapling and Orchard, when a version 6 transaction has no Ironwood actions, +`ironwood_digest` and `ironwood_auth_digest` are the hashes of empty input under the bundle and +auth personalizations respectively, i.e. `BLAKE2b-256("ZTxIdIronwd_H_v6", [])` and +`BLAKE2b-256("ZTxAuthIrnwdH_v6", [])`, which are distinct from the Orchard empty-bundle digests. + +### Summary of the resulting digest structure and personalizations + +Below, `(*)` indicates a node that is directly changed relative to v5, and `(+)` indicates a node +that is added relative to v5. + +The txid digest structure becomes: + + txid_digest_v6 + ├── header_digest + ├── transparent_digest + │   ├── prevouts_digest + │   ├── sequence_digest + │   └── outputs_digest + ├── sapling_digest_v6 + │   ├── sapling_spends_digest_v6 + │   │   ├── sapling_spends_compact_digest + │   │   └── sapling_spends_noncompact_digest_v6 (*) + │   │ ├── cv + │   │ └── rk + │   ├── sapling_outputs_digest + │   │   ├── sapling_outputs_compact_digest + │   │   ├── sapling_outputs_memos_digest + │   │   └── sapling_outputs_noncompact_digest + │   └── valueBalance + ├── orchard_digest_v6 (*) + │   ├── orchard_actions_compact_digest + │   ├── orchard_actions_memos_digest + │   ├── orchard_actions_noncompact_digest + │   ├── flagsOrchard + │   └── valueBalanceOrchard + └── ironwood_digest_v6 (+) +    ├── ironwood_actions_compact_digest +    ├── ironwood_actions_memos_digest +    ├── ironwood_actions_noncompact_digest +    ├── flagsIronwood +    └── valueBalanceIronwood + +The auth digest structure becomes: + + auth_digest_v6 + ├── transparent_scripts_digest + ├── sapling_auth_digest_v6 (*) + │   ├── vSpendProofsSapling + │ ├── vSpendAuthSigsSapling + │ ├── vOutputProofsSapling + │ ├── bindingSigSapling + │ └── anchorSapling (+) + ├── orchard_auth_digest_v6 (*) + │ ├── proofsOrchard + │ ├── vSpendAuthSigsOrchard + │ ├── bindingSigOrchard + │ └── anchorOrchard (+) + └── ironwood_auth_digest_v6 (+) + ├── proofsIronwood + ├── vSpendAuthSigsIronwood + ├── bindingSigIronwood + └── anchorIronwood + +Note that the nodes under each of `sapling_digest_v6`, `orchard_digest_v6`, `ironwood_digest_v6`, +and their `auth_digest`s are present only if the corresponding bundle is non-empty. + ### Block commitments The `hashBlockCommitments` authorizing-data commitment [^zip-0244] incorporates the version 6 auth digest — which now includes the Ironwood auth digest, and (per the change above) the anchors — with no further structural change. +## Changes to ZIP 209 -## Changes to the Protocol Specification - -Corresponding changes are required in § 4.17 ‘Chain Value Pool Balances’ -[^protocol-chainvalue] to define an Ironwood chain value pool balance alongside the existing -Sprout, Sapling, and Orchard pools. These mirror the changes to ZIP 209 below and are not -spelled out here. +ZIP 209 [^zip-0209] is extended to track an Ironwood chain value pool balance and to require +it, like the other shielded pool balances, not to become negative. -## Changes to ZIP 209 +[TODO take account of changes that should be (but are not currently) made in ZIP 256. +The check for each pool is now that the chain value pool balance stays within [0, MAX_MONEY].] In the Terminology section, after the paragraph @@ -292,6 +367,77 @@ with > negative in the block chain created as a result of accepting a block, then all nodes MUST > reject the block as invalid. +## Changes to the Protocol Specification + +Changes corresponding to the [ZIP 209 changes above](#changestozip209) are required in +§ 4.17 ‘Chain Value Pool Balances’ [^protocol-chainvalue] to define an Ironwood chain value +pool balance alongside those for the existing Sprout, Sapling, and Orchard pools. These +mirror the changes above and are not spelled out here. + +## Changes to ZIP 221 + +The history tree that commits to chain history [^zip-0221] gains Ironwood metadata, exactly +as it gained Orchard metadata at NU5. The new fields are computed and aggregated identically +to the corresponding `...Orchard...` fields. + +In the "Tree Node specification" section, after field 14 `nOrchardTxCount`, add: + +> 15. [NU6.3 onward] `hashEarliestIronwoodRoot` +> +> Leaf node +> Calculated as the note commitment root of the final Ironwood treestate +> (similar to `hashEarliestOrchardRoot`). +> +> Internal or root node +> Inherited from the left child. +> +> Serialized as `char[32]`. +> +> 16. [NU6.3 onward] `hashLatestIronwoodRoot` +> +> Leaf node +> Calculated as the note commitment root of the final Ironwood treestate +> (similar to `hashLatestOrchardRoot`). +> +> Internal or root node +> Inherited from the right child. +> +> Serialized as `char[32]`. +> +> 17. [NU6.3 onward] `nIronwoodTxCount` +> +> Leaf node +> The number of transactions in the leaf block where `vActionsIronwood` +> is non-empty. +> +> Internal or root node +> The sum of the `nIronwoodTxCount` field of both children. +> +> Serialized as `CompactSize uint`. + +Replace + +> The fields marked "[NU5 onward]" are omitted before NU5 activation [^zip-0252]. +> +> Each node, when serialized, is between 147 and 171 bytes long (between 212 and 244 bytes +> after NU5 activation). [...] + +with + +> The fields marked "[NU5 onward]" are omitted before NU5 activation [^zip-0252]. The fields +> marked "[NU6.3 onward]" are omitted before NU6.3 activation. +> +> Each node, when serialized, is between 147 and 171 bytes long (between 212 and 244 bytes +> after NU5 activation, and between 277 and 317 bytes after NU6.3 activation). [...] + +The pseudocode node structure and `serialize` / `make_leaf` / `make_parent` functions are +extended with `hashEarliestIronwoodRoot`, `hashLatestIronwoodRoot`, and `nIronwoodTxCount` +in the same way the "# NU5 only" Orchard fields were added (present iff NU6.3 has activated; +the roots inherited from the left/right child and the count summed, in internal nodes). + +`hashChainHistoryRoot` continues to be the BLAKE2b-256 digest of the serialized root node; +its value changes at NU6.3 only through the added node fields. The `hashBlockCommitments` +header field [^zip-0244] is unaffected beyond this. # Rationale @@ -312,29 +458,16 @@ independently. address), with bit 2 reserved as `0` before NU6.3. This is reverse compatible: a legacy Orchard-pool spend after NU6.3 requires the restricted state, which is bit 2 = `0` — exactly the value that signers treating bit 2 as a reserved-zero bit already produce. The -in-circuit constraint and the equivalent internal `disableCrossAddress` instance value are -discussed in [^ironwood-circuit]. +in-circuit constraint and the equivalent internal `disableCrossAddressOrchard` instance +value are discussed in [^ironwood-circuit]. # Open Issues -* **Explicit `fee` field.** Whether to include an explicit `fee` field (as shown above) is - under discussion: it is desired by some authors but has received pushback. It is retained - in this draft pending that discussion, and may be removed (reverting to an implicit fee, - as in version 5) if the pushback is sustained. - -* **Ironwood transaction-hashing personalizations.** The personalization strings specified above - match the current implementation (librustzcash); the choices (including the `Irn` / `Ironwd` - abbreviations) are pending confirmation. - * **Placement of the turnstile / value-pool rules.** The "no new value into Orchard" rule and the ZIP 209 chain value pool balance accounting could instead live in [^ironwood-deploy]; the placement is to be decided. -* **Flag naming.** Whether the new flag is named `enableCrossAddressOrchard` (matching the - `…Orchard` suffix of the existing flag bits, since it is an Orchard-protocol flag) or - simply `enableCrossAddress`. - # Deployment @@ -358,6 +491,8 @@ group ID, and the NU6.3 consensus branch ID are specified in [^ironwood-deploy]. [^zip-0209]: [ZIP 209: Prohibit Negative Shielded Chain Value Pool Balances](zip-0209.rst) +[^zip-0221]: [ZIP 221: FlyClient - Consensus-Layer Changes](zip-0221.rst) + [^zip-0224]: [ZIP 224: Orchard Shielded Protocol](zip-0224.rst) [^zip-0225]: [ZIP 225: Version 5 Transaction Format](zip-0225.rst) @@ -366,6 +501,12 @@ group ID, and the NU6.3 consensus branch ID are specified in [^ironwood-deploy]. [^zip-0244]: [ZIP 244: Transaction Identifier Non-Malleability](zip-0244.rst) +[^zip-0244-txiddigest]: [ZIP 244: Transaction Identifier Non-Malleability. Section: TxId Digest](zip-0244.rst#txid-digest) + +[^zip-0244-authorizingdatacommitment]: [ZIP 244: Transaction Identifier Non-Malleability. Section: Authorizing Data Commitment](zip-0244.rst#authorizing-data-commitment) + +[^zip-0252]: [ZIP 252: Deployment of the NU5 Network Upgrade](zip-0252.rst) + [^zip-2005]: [ZIP 2005: Orchard Quantum Recoverability](zip-2005.md) [^ironwood-circuit]: [Ironwood Circuit (draft)](draft-zodl-valargroup-ironwood-circuit.md) From d96c3352a88cc9176bc5860c361a1be2c7d60718 Mon Sep 17 00:00:00 2001 From: Daira-Emma Hopwood Date: Thu, 18 Jun 2026 13:59:38 +0100 Subject: [PATCH 03/14] ZIP 2005: retitle to "Ironwood Quantum Recoverability" and align terminology Recoverable notes are now created in the Ironwood pool (introduced by the version 6 transaction format), not directly in the Orchard pool. Retitle accordingly, distinguish "Orchard[ZSA] protocol" from the pools, and define the Ironwood/Orchard pool terms by reference to the v6 transaction format draft. Co-Authored-By: Claude Opus 4.8 (1M context) Signed-off-by: Daira-Emma Hopwood --- README.rst | 4 ++-- zips/zip-2005.md | 16 +++++++++++----- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/README.rst b/README.rst index 327a22679..0dc627a3f 100644 --- a/README.rst +++ b/README.rst @@ -144,7 +144,7 @@ Released ZIPs 1015 Block Subsidy Allocation for Non-Direct Development Funding Final 1016 Community and Coinholder Funding Model Proposed 2001 Lockbox Funding Streams Final - 2005 Orchard Quantum Recoverability Proposed + 2005 Ironwood Quantum Recoverability Proposed Draft ZIPs @@ -390,7 +390,7 @@ Index of ZIPs 2002 Explicit Fees Draft 2003 Disallow version 4 transactions Draft 2004 Remove the dependency of consensus on note encryption Draft - 2005 Orchard Quantum Recoverability Proposed + 2005 Ironwood Quantum Recoverability Proposed guide-markdown {Something Short and To the Point} Draft guide {Something Short and To the Point} Draft template {Template for new ZIPs} Draft diff --git a/zips/zip-2005.md b/zips/zip-2005.md index ce0250e76..bc5e1cb39 100644 --- a/zips/zip-2005.md +++ b/zips/zip-2005.md @@ -1,6 +1,6 @@ ZIP: 2005 - Title: Orchard Quantum Recoverability + Title: Ironwood Quantum Recoverability Owners: Daira-Emma Hopwood Jack Grigg Credits: Sean Bowe @@ -50,13 +50,17 @@ to the protocol specification and to other ZIPs use the full forms. The term "Zcash Shielded Assets" or "ZSAs" refers to the extension to the Orchard shielded protocol described in ZIPs 226 and 227 [^zip-0226] [^zip-0227]. -The term "Orchard[ZSA]" in this document refers to the Orchard shielded -protocol before the deployment of ZSAs, and to the OrchardZSA shielded -protocol after the deployment of ZSAs. +The term "Orchard[ZSA] protocol" in this document refers to the Orchard +shielded protocol before the deployment of ZSAs, and to the OrchardZSA +shielded protocol after the deployment of ZSAs. + +The terms "Ironwood pool" and "Orchard pool" are to be interpreted as +described in [^draft-zodl-valargroup-ironwood-txformat]. The terms "recoverable note" and "recoverable note plaintext" refer to a note or note plaintext that was created according to this proposal. As -initially deployed, these are necessarily Orchard notes or note plaintexts. +initially deployed, these are necessarily Ironwood-pool notes or note +plaintexts. The term "Recovery Protocol" refers to a potential new shielded protocol that would allow recovery of funds held in recoverable Orchard[ZSA] notes. @@ -2142,3 +2146,5 @@ manipulate the note selection algorithm to some extent. [^ACMT2025]: [The Sponge is Quantum Indifferentiable. Gorjan Alagic, Joseph Carolan, Christian Majenz, and Saliha Tokat.](https://eprint.iacr.org/2025/731) [^Google2025]: [Securing Elliptic Curve Cryptocurrencies against Quantum Vulnerabilities: Resource Estimates and Mitigations. Ryan Babbush, Adam Zalcman, Craig Gidney, Michael Broughton, Tanuj Khattar, Hartmut Neven, Thiago Bergamaschi, Justin Drake, and Dan Boneh](https://quantumai.google/static/site-assets/downloads/cryptocurrency-whitepaper.pdf) + +[^draft-zodl-valargroup-ironwood-txformat]: [Version 6 Transaction Format (draft)](draft-zodl-valargroup-ironwood-txformat.md) From c23dd981442764d8d3dc0645ea3ef8e0b61e36f6 Mon Sep 17 00:00:00 2001 From: Daira-Emma Hopwood Date: Thu, 18 Jun 2026 13:59:38 +0100 Subject: [PATCH 04/14] Version 6 Transaction Format draft: expand framing and fix references Substantial revision of the v6 transaction format draft: - Reframe around the Ironwood pool: Abstract/Motivation/Privacy Implications covering quantum recoverability, the supply-integrity motivation, the Orchard-address restriction, and the v5-vs-v6 anchor (effecting -> authorizing data) rationale; Requirements and Non-requirements reworked. - Terminology: Orchard protocol vs Orchard pool vs Ironwood pool. - Consensus rules split out; full txid/auth digest trees and the per-node personalization table. - Resolve all references: split the deployment citations into ZIP 257 (the NU6.2 deployment / vulnerability) and the NU6.3 deployment draft; add the ZIP 248, ZIP 2002, action-circuit-update, deploy-nu6.3, and ironwood-migration references; fix the action-circuit-update URL. Co-Authored-By: Claude Opus 4.8 (1M context) Signed-off-by: Daira-Emma Hopwood --- ...draft-zodl-valargroup-ironwood-txformat.md | 331 +++++++++++------- 1 file changed, 207 insertions(+), 124 deletions(-) diff --git a/zips/draft-zodl-valargroup-ironwood-txformat.md b/zips/draft-zodl-valargroup-ironwood-txformat.md index 82e104cd4..73f8d3f20 100644 --- a/zips/draft-zodl-valargroup-ironwood-txformat.md +++ b/zips/draft-zodl-valargroup-ironwood-txformat.md @@ -18,26 +18,28 @@ capitals. The term "network upgrade" in this document is to be interpreted as described in ZIP 200. [^zip-0200] +The character § is used when referring to sections of the Zcash Protocol +Specification. [^protocol] + The terms "Mainnet" and "Testnet" are to be interpreted as described in § 3.12 ‘Mainnet and Testnet’. [^protocol-networks] -The character § is used when referring to sections of the Zcash Protocol -Specification. [^protocol] +The term "Recovery Protocol" is to be interpreted as described in [^zip-2005]. The terms below are to be interpreted as follows: -Orchard protocol -: The shared cryptographic design used by both the Orchard pool and the Ironwood - pool: the Pallas/Vesta curves, the Sinsemilla hash, the Action circuit and its - verifying key, and the note, commitment, nullifier, and key constructions and note - encryption defined for Orchard. There is a single Orchard protocol. +Orchard protocol (or Orchard shielded protocol) +: The shared cryptographic design that supports the Orchard pool and the Ironwood + pool, including the Pallas and Vesta curves, the Sinsemilla hash, the Action + circuit (as modified by [^draft-zodl-valargroup-action-circuit-update]), the + note, note commitment, nullifier, and key constructions, and the note encryption + (as modified by [^zip-2005]) used for these two pools. -Orchard pool +Orchard pool (or Orchard shielded pool) : The value pool, with its own note commitment tree, anchor, and chain value pool - balance, that was introduced by ZIP 224 [^zip-0224]. Also called the *legacy* or - *original* Orchard pool where disambiguation is needed. + balance, that was introduced by ZIP 224 [^zip-0224]. -Ironwood pool +Ironwood pool (or Ironwood shielded pool) : A new value pool of the Orchard protocol, introduced by this ZIP, with its own note commitment tree, anchor, and chain value pool balance, distinct from the Orchard pool. @@ -45,55 +47,117 @@ Ironwood pool # Abstract -This ZIP defines version 6 of the Zcash transaction format, activated at NU6.3. A -version 6 transaction is a version 5 transaction extended with an **Ironwood bundle**: -a second Orchard-protocol shielded bundle that commits to, and spends from, the -Ironwood pool rather than the Orchard pool. +This ZIP defines version 6 of the Zcash transaction format, to be activated at NU6.3 +[^zip-0257]. + +NU6.3 [^draft-zodl-valargroup-deploy-nu6.3] introduces the Ironwood shielded pool, an +Orchard-protocol successor to the Orchard pool, that ensures quantum recoverability +[^zip-2005] and has supply integrity supported from the start by formal verification +efforts [^zcash-ironwood]. + +This requires a new transaction version that can hold an **Ironwood component**: +a second Orchard-protocol shielded component that commits to, and spends from, the +Ironwood shielded pool, rather than the Orchard pool. The Ironwood component reuses +the Orchard Action encoding and proof system unchanged. This ZIP defines the +corresponding txid, signature-hash, and block-commitment changes. -The Ironwood bundle reuses the Orchard Action encoding, authorization structure, and -proof system unchanged; it differs from the Orchard bundle only in that its actions are -committed to the Ironwood note commitment tree and spent against the Ironwood nullifier -set, and in the transaction-hashing personalizations used for it. +The addition of the Ironwood pool does not change address structures or encodings. +At the protocol level, Orchard spending-key and viewing-key material grants authority +to spend or view notes in both the Orchard and Ironwood pools. However, NU6.3 enforces +that outputs to the Orchard pool are sent to an Orchard-protocol-level address for +which the transaction creator can authorize spends. The intent is that transfers +between users will automatically create notes in the Ironwood pool. The address +restriction discourages economic activity between users within the Orchard pool, and +encourages faster migration to the Ironwood pool. + +This ZIP specifies only the transaction format and its associated hashing. The Action +circuit changes needed to restrict address usage within the Orchard pool are specified +in [^draft-zodl-valargroup-action-circuit-update], and implications for wallets are +discussed in [^draft-zodl-valargroup-ironwood-migration]. Activation parameters are +specified in the NU6.3 deployment ZIP [^draft-zodl-valargroup-deploy-nu6.3]. # Motivation -NU6.3 introduces the Ironwood pool as an Orchard-protocol successor to the legacy -Orchard pool, in order to bound the circulating supply of ZEC transacting through the -shielded protocol while allowing existing Orchard funds to be migrated across the -turnstile. Carrying the Ironwood pool requires a new transaction version that can hold -an Ironwood bundle alongside the existing transparent, Sapling, and Orchard components, -together with the corresponding transaction-identifier, signature-hash, and block-commitment -changes. +The main purpose of the NU6.3 network upgrade is to bolster confidence in Zcash's supply +integrity, after the discovery and remediation of the Orchard soundness vulnerability +described in [^zip-0257]. The turnstile mechanism [^zip-0209] ensures that the overall +ZEC supply is bounded. However, since a substantial portion of ZEC was in the Orchard +pool at the time this vulnerability was remediated, it is necessary to take further steps +to ensure confidence in the supply by migrating funds to a new pool. + +All funds in the Ironwood pool will be **quantum-recoverable** [^zip-2005]. The existing +Zcash shielded protocols are dependent on the hardness of finding discrete logarithms; +an adversary who can do so (via quantum computers or otherwise) would be able to steal +or forge funds. In the event of needing to disable the Orchard protocol in order to +prevent these attacks, it will be possible to use a Recovery Protocol to recover funds +from the Ironwood pool. This Recovery Protocol is expected to remain secure against +discrete-log-breaking and quantum adversaries. Recovery would not be possible for +funds still in the Sprout, Sapling, or Orchard pools at that point. This change does +not by itself make Zcash secure against attacks using quantum computers, but is a +necessary and substantial step toward that goal. + +The version 6 transaction format also changes the authorization structure for all +supported shielded pools (Sapling, Orchard, and Ironwood) so that anchors are +considered to be authorizing data rather than effecting data. This allows a transaction +to be pre-authorized and its proofs computed independently after choosing an anchor, +and also improves opportunities for parallelism in transaction creation. + + +# Privacy Implications + +The turnstile mechanism reveals the amounts in each transaction that cross between pools, +including the amounts migrated into the Ironwood pool. This is considered in full detail +in [^draft-zodl-valargroup-ironwood-migration]. -This ZIP specifies only the transaction format and its associated hashing. The circuit -change that the Ironwood pool relies on (the `enableCrossAddress` flag) is specified in -the Ironwood circuit ZIP [^ironwood-circuit]; activation parameters are specified in the -Ironwood deployment ZIP [^ironwood-deploy]. +There is no reason to believe that the soundness vulnerability described in [^zip-0257] +could have led to any compromise of key material associated with existing addresses. +However, we encourage users to rotate addresses regularly in any case, and wallet +developers to support that practice. Further implications of address usage policy for +privacy against quantum adversaries are discussed in [^zip-2005]. # Requirements -The version 6 transaction format MUST be able to carry an Ironwood bundle in addition -to the transparent, Sapling, and Orchard components of a version 5 transaction. +Changes relative to v5 transactions should be minimized. -The Ironwood bundle MUST reuse the Orchard Action and bundle encoding, so that the -Orchard proving system, authorization, and note encryption apply unchanged. +The version 6 transaction format must be able to carry an Ironwood-pool component in +addition to transparent-pool, Sapling-pool, and Orchard-pool components similar to +those in a version 5 transaction. -The transaction identifier, signature hash, and authorizing-data commitment MUST commit -to the Ironwood bundle when it is present, using personalizations distinct from those -used for the Orchard bundle. +The Ironwood component must reuse the Orchard Action design and component encoding, so +that implementation is shared between them to the maximum extent possible. + +The transaction identifier, signature hash, and authorizing-data commitment must +commit to the Ironwood-pool component when it is present, using personalizations +distinct from those used for the Orchard-pool component. + +The changes to the authorization structure must support pre-authorizing transactions +using spending key material, and later updating the anchor and proofs (for all +supported shielded pools). + +Personalizations for nodes in the digest tree must be changed when what is hashed at +that node changes. + +The `flags` fields in the Orchard-pool and Ironwood-pool components must support +encoding an indication of whether outputs to the Orchard pool are required to use +a protocol-level address for which the transaction creator can authorize spends. # Non-requirements -This ZIP does not define the Ironwood circuit or the `enableCrossAddressOrchard` -constraint (see [^ironwood-circuit]), the activation height or consensus branch ID -(see [^ironwood-deploy]), or wallet behaviour for migrating funds across the turnstile. +This ZIP does not define the Action circuit update for NU6.3 or its `disableCrossAddress` +constraint (see [^draft-zodl-valargroup-action-circuit-update]), the activation height +or consensus branch ID (see [^draft-zodl-valargroup-deploy-nu6.3]), or wallet behaviour associated with migration +to Ironwood (see [^draft-zodl-valargroup-ironwood-migration]). + +The v6 transaction format need not support ZSAs, the `zip233Amount` field, the explicit +`fee` field, or per-transparent-input sighash information that appeared in the withdrawn +ZIP 230 [^zip-0230], or those features and other extensibility affordances planned for +ZIP 248 [^zip-0248]. -This ZIP does not reintroduce the OrchardZSA, issuance, or asset-burn fields, the -`zip233Amount` field, or per-transparent-input sighash information that appeared in the -withdrawn ZIP 230. [^zip-0230] +The value 6 for the transaction version number need not avoid collisions with the +withdrawn ZIP 230 or with the current draft of ZIP 248. # Specification @@ -101,15 +165,15 @@ withdrawn ZIP 230. [^zip-0230] ## Transaction Format A version 6 transaction is encoded as follows. Fields up to and including the Orchard -bundle are as in the version 5 format [^zip-0225], except as noted; the Ironwood bundle +component are as in the version 5 format [^zip-0225], except as noted; the Ironwood component is new. Bytes | Name | Data Type | Description ------------------------ | ------------------------ | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- **Common Transaction Fields** |||| `4` | `header` | `uint32` | Contains the `fOverwintered` flag (bit 31, always set) and `version` (bits 30 .. 0), which MUST be `6`. -`4` | `nVersionGroupId` | `uint32` | Version group ID (nonzero); the version 6 value fixed in [^ironwood-deploy]. -`4` | `nConsensusBranchId` | `uint32` | Consensus branch ID; MUST be the NU6.3 branch ID [^ironwood-deploy]. +`4` | `nVersionGroupId` | `uint32` | Version group ID (nonzero); the version 6 value fixed in [^draft-zodl-valargroup-deploy-nu6.3]. +`4` | `nConsensusBranchId` | `uint32` | Consensus branch ID; MUST be the NU6.3 branch ID [^draft-zodl-valargroup-deploy-nu6.3]. `4` | `lock_time` | `uint32` | Unix-epoch UTC time or block height, encoded as in Bitcoin. `4` | `nExpiryHeight` | `uint32` | A block height in {1 .. 499999999} after which the transaction will expire, or 0 to disable expiry. [^zip-0203] **Transparent Transaction Fields** |||| @@ -151,14 +215,14 @@ Bytes | Name | Data Type The encoding of the transparent and Sapling fields is unchanged from version 5 [^zip-0225]. Ironwood Action descriptions use the same `OrchardAction` encoding as -Orchard Action descriptions. Every Ironwood output note uses the quantum-recoverable -note plaintext format (lead byte `0x03`) defined in ZIP 2005 [^zip-2005]; no Orchard -output note uses that format. This is the note-level distinction between the two pools. +Orchard Action descriptions. Every Ironwood-pool output note uses the quantum-recoverable +note plaintext format (lead byte `0x03`) defined in ZIP 2005 [^zip-2005]; no Orchard-pool +output note uses that format. This is the only note-level distinction between the two pools. ## Consensus Rules * `nVersionGroupId` MUST equal the version 6 version group ID, and `nConsensusBranchId` - MUST equal the NU6.3 consensus branch ID, both defined in [^ironwood-deploy]. + MUST equal the NU6.3 consensus branch ID, both defined in [^draft-zodl-valargroup-deploy-nu6.3]. * As in version 5 [^zip-0225]: * The Orchard fields `flagsOrchard`, `valueBalanceOrchard`, `anchorOrchard`, @@ -168,7 +232,7 @@ output note uses that format. This is the note-level distinction between the two * The proofs in `proofsOrchard` and the signatures in `vSpendAuthSigsOrchard` each correspond 1:1 to the elements of `vActionsOrchard`, in the same order. -* The same rules apply to the Ironwood bundle: +* The same rules apply to the Ironwood component: * The Ironwood fields `flagsIronwood`, `valueBalanceIronwood`, `anchorIronwood`, `sizeProofsIronwood`, `proofsIronwood`, and `bindingSigIronwood` are present if and only if `nActionsIronwood > 0`. If `valueBalanceIronwood` is not present, it is @@ -176,48 +240,48 @@ output note uses that format. This is the note-level distinction between the two * The proofs in `proofsIronwood` and the signatures in `vSpendAuthSigsIronwood` each correspond 1:1 to the elements of `vActionsIronwood`, in the same order. -* In `flagsOrchard` and `flagsIronwood`, bits 3 .. 7 MUST be `0`. The semantics of - `enableSpendsOrchard` and `enableOutputsOrchard` are as in ZIP 224 [^zip-0224]. The - `enableCrossAddressOrchard` flag is specified in [^ironwood-circuit]; before NU6.3 this - bit was reserved as `0`. +* In each of `flagsOrchard` and `flagsIronwood`: + * Bits 3..7 inclusive MUST be `0`. + * The semantics of the `enableSpends` and `enableOutputs` bits are as in ZIP 224. + * The `enableCrossAddress` bit is specified in [^draft-zodl-valargroup-action-circuit-update]. + Before NU6.3 this bit of `flagsOrchard` was reserved as `0` in v5 transactions. -* For coinbase transactions, `enableSpendsOrchard` MUST be `0` in both `flagsOrchard` and - `flagsIronwood`. (From NU6.3, coinbase transactions are additionally constrained to have an - empty Orchard bundle — forcing newly created shielded value into Ironwood — specified - separately.) +* For coinbase transactions, + * `flagsOrchard` MUST be `0`. + * The `enableSpends` bit of `flagsIronwood` MUST be `0`. * The `anchorOrchard` field refers to the Orchard note commitment tree, and the - `anchorIronwood` field to the Ironwood note commitment tree. The Orchard and Ironwood pools - have separate, independent note commitment trees and nullifier sets. + `anchorIronwood` field to the Ironwood note commitment tree. The Orchard and Ironwood + pools have separate, independent note commitment trees and nullifier sets. -* The following rules apply from NU6.3 activation. *(Their placement — this ZIP or the - deployment ZIP — is under discussion; see [Open Issues](#openissues).)* - * A version 6 transaction MUST have `enableCrossAddressOrchard = 0` in `flagsOrchard`, - restricting the legacy Orchard pool to same-receiver actions (see [^ironwood-circuit]). - * No new value may enter the Orchard pool: `valueBalanceOrchard` MUST be greater than - or equal to `0`. +See [^draft-zodl-valargroup-deploy-nu6.3] for additional consensus requirements that apply +to **all** transactions from NU6.3 onward, regardless of transaction version. (Briefly and +non-normatively, these are that coinbase transactions must have an empty Orchard component; +that the `enableCrossAddressOrchard` bit of `flagsOrchard` must be `0`; and that +$\mathsf{v}^{\textsl{balanceOrchardPool}}$ must be nonnegative.) ## Transaction Identifiers, Signature Hashing, and Block Commitments -Version 6 transaction identifiers (txids), authorizing-data commitments ("auth digests"), and -signature hashes are computed as in ZIP 244 [^zip-0244], with two changes: an **Ironwood bundle -digest** is added, and for version 6 the Orchard and Ironwood **anchors move from effecting data to -authorizing data**. The version 5 algorithm is unchanged. +Version 6 transaction identifiers (txids), authorizing-data commitments ("auth digests"), +and signature hashes are computed as in ZIP 244 [^zip-0244], with two changes: an +**Ironwood component digest** is added, and for version 6 the Orchard and Ironwood anchors +move from effecting data to authorizing data. The version 5 algorithm is unchanged. -### Ironwood bundle digest +### Ironwood component digest -Relative to the txid digest for v5 transactions [^zip-0244-txiddigest], the version 6 txid digest -adds an Ironwood bundle digest as the last child, after the Orchard bundle digest: +Relative to the txid digest for v5 transactions [^zip-0244-txiddigest], the version 6 +txid digest adds an Ironwood component digest as the last child, after the Orchard component +digest: txid_digest_v6 = BLAKE2b-256("ZcashTxHash_" || consensusBranchId, - header_digest || transparent_digest || sapling_digest || + header_digest || transparent_digest || sapling_digest_v6 || orchard_digest_v6 || ironwood_digest_v6) Relative to the auth digest for v5 transactions [^zip-0244-authorizingdatacommitment], the version 6 auth digest adds an Ironwood auth digest as the last child, after the Orchard one: auth_digest_v6 = BLAKE2b-256("ZTxAuthHash_" || consensusBranchId, - transparent_auth_digest || sapling_auth_digest || + transparent_auth_digest || sapling_auth_digest_v6 || orchard_auth_digest_v6 || ironwood_auth_digest_v6) ### Anchor commitment (version 6) @@ -227,20 +291,21 @@ In version 5, the Sapling anchor (encoded redundantly as `anchor` in each are part of the **effecting data**: they are committed to in `txid_digest`, while the Sapling and Orchard auth digests commit only to proofs and signatures [^zip-0244-authorizingdatacommitment]. -In version 6, for Sapling, Orchard, and Ironwood bundles, the anchor is instead part of the +In version 6, for Sapling, Orchard, and Ironwood components, the anchor is instead part of the **authorizing data**. Relative to ZIP 244, for version 6 transactions: -- `sapling_spends_noncompact_digest`, `orchard_digest`, and `ironwood_digest` omit the anchor. -- `sapling_auth_digest`, `orchard_auth_digest`, and `ironwood_auth_digest` additionally commit +- `sapling_spends_noncompact_digest_v6`, `orchard_digest_v6`, and `ironwood_digest_v6` omit the anchor. +- `sapling_auth_digest_v6`, `orchard_auth_digest_v6`, and `ironwood_auth_digest_v6` additionally commit to `anchorSapling`, `anchorOrchard`, or `anchorIronwood` respectively, after the existing fields. This lets the anchor be updated (re-anchored to a more recent note commitment tree root) without -changing the transaction ID, while signatures still bind to the specific anchor used. +changing the transaction ID, while the proofs still bind to the specific anchor used. -`ironwood_digest` and `ironwood_auth_digest` are computed with *the same structure* as the Orchard -`orchard_digest` and `orchard_auth_digest` (ZIP 244), but with Ironwood-specific 16-byte BLAKE2b +`ironwood_digest_v6` and `ironwood_auth_digest_v6` are computed with *the same structure* as +`orchard_digest_v6` and `orchard_auth_digest_v6`, but with Ironwood-specific 16-byte BLAKE2b-256 personalizations at each node. Also, distinct personalizations are used for Sapling and Orchard nodes -where the encoding has changed as a result of moving the anchor commitments to auth data, as follows: +where what is directly hashed has been affected as a result of moving the anchor commitments to auth +data, as follows: node | v5 personalization | v6 personalization | Comment for v6 ------------------------------------- | ------------------ | ------------------ | ------------------------- @@ -254,20 +319,20 @@ orchard_digest[_v6] | `ZTxIdOrchardHash` | `ZTxIdOrchardH_v6` orchard_actions_compact_digest | `ZTxIdOrcActCHash` | `ZTxIdOrcActCHash` | unchanged orchard_actions_memos_digest | `ZTxIdOrcActMHash` | `ZTxIdOrcActMHash` | unchanged orchard_actions_noncompact_digest | `ZTxIdOrcActNHash` | `ZTxIdOrcActNHash` | unchanged -orchard_auth_digest_v6 | `ZTxAuthOrchaHash` | `ZTxAuthOrchaH_v6` | includes `anchorOrchard` +orchard_auth_digest[_v6] | `ZTxAuthOrchaHash` | `ZTxAuthOrchaH_v6` | includes `anchorOrchard` ------------------------------------- | ------------------ | ------------------ | ------------------------- -ironwood_digest | n/a | `ZTxIdIronwd_H_v6` | omits `anchorIronwood` -ironwood_actions_compact_digest | n/a | `ZTxIdIrnActCH_v6` | -ironwood_actions_memos_digest | n/a | `ZTxIdIrnActMH_v6` | -ironwood_actions_noncompact_digest | n/a | `ZTxIdIrnActNH_v6` | -ironwood_auth_digest | n/a | `ZTxAuthIrnwdH_v6` | includes `anchorIronwood` +ironwood_digest_v6 | n/a | `ZTxIdIronwd_H_v6` | omits `anchorIronwood` +ironwood_actions_compact_digest_v6 | n/a | `ZTxIdIrnActCH_v6` | +ironwood_actions_memos_digest_v6 | n/a | `ZTxIdIrnActMH_v6` | +ironwood_actions_noncompact_digest_v6 | n/a | `ZTxIdIrnActNH_v6` | +ironwood_auth_digest_v6 | n/a | `ZTxAuthIrnwdH_v6` | includes `anchorIronwood` As in the case of Sapling and Orchard, when a version 6 transaction has no Ironwood actions, -`ironwood_digest` and `ironwood_auth_digest` are the hashes of empty input under the bundle and -auth personalizations respectively, i.e. `BLAKE2b-256("ZTxIdIronwd_H_v6", [])` and -`BLAKE2b-256("ZTxAuthIrnwdH_v6", [])`, which are distinct from the Orchard empty-bundle digests. +`ironwood_digest_v6` and `ironwood_auth_digest_v6` are the hashes of empty input under the component +and auth personalizations respectively, i.e. `BLAKE2b-256("ZTxIdIronwd_H_v6", [])` and +`BLAKE2b-256("ZTxAuthIrnwdH_v6", [])`, which are distinct from the Orchard empty-component digests. -### Summary of the resulting digest structure and personalizations +### Summary of the resulting digest structure Below, `(*)` indicates a node that is directly changed relative to v5, and `(+)` indicates a node that is added relative to v5. @@ -298,9 +363,9 @@ The txid digest structure becomes: │   ├── flagsOrchard │   └── valueBalanceOrchard └── ironwood_digest_v6 (+) -    ├── ironwood_actions_compact_digest -    ├── ironwood_actions_memos_digest -    ├── ironwood_actions_noncompact_digest +    ├── ironwood_actions_compact_digest_v6 +    ├── ironwood_actions_memos_digest_v6 +    ├── ironwood_actions_noncompact_digest_v6    ├── flagsIronwood    └── valueBalanceIronwood @@ -326,7 +391,7 @@ The auth digest structure becomes: └── anchorIronwood Note that the nodes under each of `sapling_digest_v6`, `orchard_digest_v6`, `ironwood_digest_v6`, -and their `auth_digest`s are present only if the corresponding bundle is non-empty. +and their `auth_digest`s are present only if the corresponding component is non-empty. ### Block commitments @@ -441,38 +506,46 @@ header field [^zip-0244] is unaffected beyond this. # Rationale -**Reuse of the Orchard protocol.** Carrying the Ironwood pool as a second -Orchard-protocol bundle, rather than defining a new shielded protocol, keeps the -transaction-format and implementation surface small: the Action encoding, proving system, -authorization, and note encryption are inherited unchanged. The pools are distinguished -by their note commitment trees, nullifier sets, value pool balances, and bundle position, -not by separate circuits. +The main purpose of the NU6.3 network upgrade is to bolster confidence in Zcash's supply +integrity, after the discovery and remediation of the Orchard soundness vulnerability +described in [^zip-0257]. + +The urgency of this motivation called for an accelerated timeline, which necessitated +a high bar for feature inclusion. Therefore, even fairly straightforward improvements +(such as [^zip-2002], which had been "queued" for inclusion in the next transaction format +update), were omitted from this upgrade. -**Separate state.** Giving the Ironwood pool its own note commitment tree, anchor, and -nullifier set creates a clean state boundary from the legacy Orchard pool, so the two -pools do not share anonymity-set state and the turnstile can be accounted for -independently. +## Reuse of the Orchard protocol with minimal changes -**`enableCrossAddressOrchard` polarity.** The flag is encoded in the enabled sense -(`1` = cross-address transfers enabled, the normal case; `0` = restricted to the spend -address), with bit 2 reserved as `0` before NU6.3. This is reverse compatible: a legacy -Orchard-pool spend after NU6.3 requires the restricted state, which is bit 2 = `0` — -exactly the value that signers treating bit 2 as a reserved-zero bit already produce. The -in-circuit constraint and the equivalent internal `disableCrossAddressOrchard` instance -value are discussed in [^ironwood-circuit]. +Carrying the Ironwood pool as a second Orchard-protocol component, rather than defining a +new shielded protocol, keeps the transaction-format and implementation surface small: +the Action encoding, proving system, authorization, and note encryption (modulo the new +note plaintext format defined by [^zip-2005]) are inherited unchanged. The pools are +distinguished by their note commitment trees, nullifier sets, value pool +balances, and component position, not by separate circuits. +## Separate state -# Open Issues +Giving the Ironwood pool its own note commitment tree, anchor, and nullifier set creates +a state boundary from the Orchard pool, so that their chain value pool balance can be +accounted for independently. -* **Placement of the turnstile / value-pool rules.** The "no new value into Orchard" rule - and the ZIP 209 chain value pool balance accounting could instead live in - [^ironwood-deploy]; the placement is to be decided. +## `enableCrossAddress` polarity + +This flag is encoded in the enabled sense (`1` = cross-address transfers enabled, the +normal case for Ironwood-pool actions; `0` = action outputs restricted to use the same +protocol-level address as the action's spend), with bit 2 reserved as `0` before NU6.3. +This is backward-compatible: an Orchard-pool spend after NU6.3 requires the restricted +state, which is bit 2 = `0` — exactly the value that signers treating bit 2 as a +reserved-zero bit already produce. The in-circuit constraint and the equivalent +internal `disableCrossAddress` instance value are discussed in +[^draft-zodl-valargroup-action-circuit-update]. # Deployment This transaction format is deployed at NU6.3. Activation heights, the version 6 version -group ID, and the NU6.3 consensus branch ID are specified in [^ironwood-deploy]. +group ID, and the NU6.3 consensus branch ID are specified in [^draft-zodl-valargroup-deploy-nu6.3]. # References @@ -501,14 +574,24 @@ group ID, and the NU6.3 consensus branch ID are specified in [^ironwood-deploy]. [^zip-0244]: [ZIP 244: Transaction Identifier Non-Malleability](zip-0244.rst) -[^zip-0244-txiddigest]: [ZIP 244: Transaction Identifier Non-Malleability. Section: TxId Digest](zip-0244.rst#txid-digest) +[^zip-0244-txiddigest]: [ZIP 244: Transaction Identifier Non-Malleability — TxId Digest](zip-0244.rst#txid-digest) -[^zip-0244-authorizingdatacommitment]: [ZIP 244: Transaction Identifier Non-Malleability. Section: Authorizing Data Commitment](zip-0244.rst#authorizing-data-commitment) +[^zip-0244-authorizingdatacommitment]: [ZIP 244: Transaction Identifier Non-Malleability — Authorizing Data Commitment](zip-0244.rst#authorizing-data-commitment) [^zip-0252]: [ZIP 252: Deployment of the NU5 Network Upgrade](zip-0252.rst) -[^zip-2005]: [ZIP 2005: Orchard Quantum Recoverability](zip-2005.md) +[^zip-2005]: [ZIP 2005: Ironwood Quantum Recoverability](zip-2005.md) + +[^draft-zodl-valargroup-action-circuit-update]: [NU6.3 Updates to the Orchard-protocol Action Circuit (draft)](draft-zodl-valargroup-action-circuit-update.md) + +[^zip-0248]: ZIP 248: Extensible Transaction Format (unmerged; PR at ) + +[^zip-0257]: [ZIP 257: Deployment of the Orchard Temporary Vulnerability Mitigation and NU6.2 Network Upgrade](zip-0257.md) + +[^zip-2002]: [ZIP 2002: Explicit Fees](zip-2002.rst) + +[^draft-zodl-valargroup-deploy-nu6.3]: [Deployment of the NU6.3 Network Upgrade (draft)](draft-zodl-valargroup-deploy-nu6.3.md) -[^ironwood-circuit]: [Ironwood Circuit (draft)](draft-zodl-valargroup-ironwood-circuit.md) +[^draft-zodl-valargroup-ironwood-migration]: [Wallet Considerations for NU6.3 and Migration to the Ironwood Pool (draft)](draft-zodl-valargroup-ironwood-migration.md) -[^ironwood-deploy]: [Deployment of the Ironwood Network Upgrade (draft)](draft-zodl-valargroup-deploy-ironwood.md) +[^zcash-ironwood]: [GitHub repository zcash/ironwood: Formal Verification of the Zcash Protocol and Documentation for the Ironwood Pool](https://github.com/zcash/ironwood) From b5fae07b0b2caf605a5e991b058943e712c3678a Mon Sep 17 00:00:00 2001 From: Daira-Emma Hopwood Date: Thu, 18 Jun 2026 23:50:58 +0100 Subject: [PATCH 05/14] Version 6 Transaction Format: flag-bit renames and version-validity note MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Drop the "...Orchard" suffix from the flag bit names: enableSpendsOrchard → enableSpends, enableOutputsOrchard → enableOutputs, enableCrossAddressOrchard → enableCrossAddress. These bits have the same meaning in both flagsOrchard and flagsIronwood, so the suffix was misleading; add a note for the rename relative to v5. - State explicitly that version 4, version 5, and version 6 transactions are all valid from NU6.3 onward, and that the Orchard-protocol cross-address restriction is enforced for every Orchard-pool Action regardless of transaction version, so version 5 cannot be used to bypass it. Co-Authored-By: Claude Opus 4.8 (1M context) Signed-off-by: Daira-Emma Hopwood --- .../draft-zodl-valargroup-ironwood-txformat.md | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/zips/draft-zodl-valargroup-ironwood-txformat.md b/zips/draft-zodl-valargroup-ironwood-txformat.md index 73f8d3f20..37b49676d 100644 --- a/zips/draft-zodl-valargroup-ironwood-txformat.md +++ b/zips/draft-zodl-valargroup-ironwood-txformat.md @@ -195,7 +195,7 @@ Bytes | Name | Data Type **Orchard Transaction Fields** |||| `varies` | `nActionsOrchard` | `compactSize` | The number of Orchard Action descriptions in `vActionsOrchard`. `820 * nActionsOrchard` | `vActionsOrchard` | `OrchardAction[nActionsOrchard]` | A sequence of Orchard Action descriptions, encoded per § 7.5 ‘Action Description Encoding and Consensus’. -`1` | `flagsOrchard` | `byte` | An 8-bit value representing a set of flags. From LSB to MSB: `enableSpendsOrchard`, `enableOutputsOrchard`, `enableCrossAddressOrchard` (new at NU6.3); the remaining bits MUST be `0`. +`1` | `flagsOrchard` | `byte` | An 8-bit value representing a set of flags. From LSB to MSB: `enableSpends`, `enableOutputs`, `enableCrossAddress` (new at NU6.3); the remaining bits MUST be `0`. `8` | `valueBalanceOrchard` | `int64` | The net value of Orchard spends minus outputs. `32` | `anchorOrchard` | `byte[32]` | A root of the Orchard note commitment tree at some block height in the past. `varies` | `sizeProofsOrchard` | `compactSize` | Length in bytes of `proofsOrchard`. Value is `2720 + 2272 * nActionsOrchard`. @@ -205,7 +205,7 @@ Bytes | Name | Data Type **Ironwood Transaction Fields (new)** |||| `varies` | `nActionsIronwood` | `compactSize` | The number of Ironwood Action descriptions in `vActionsIronwood`. `820 * nActionsIronwood` | `vActionsIronwood` | `OrchardAction[nActionsIronwood]` | A sequence of Ironwood Action descriptions, using the same encoding as Orchard Actions (§ 7.5). -`1` | `flagsIronwood` | `byte` | The same layout as `flagsOrchard`, including `enableCrossAddressOrchard` at bit 2; the remaining bits MUST be `0`. +`1` | `flagsIronwood` | `byte` | The same layout as `flagsOrchard`, including `enableCrossAddress` at bit 2; the remaining bits MUST be `0`. `8` | `valueBalanceIronwood` | `int64` | The net value of Ironwood spends minus outputs. `32` | `anchorIronwood` | `byte[32]` | A root of the **Ironwood** note commitment tree at some block height in the past. `varies` | `sizeProofsIronwood` | `compactSize` | Length in bytes of `proofsIronwood`. Value is `2720 + 2272 * nActionsIronwood`. @@ -219,6 +219,11 @@ Orchard Action descriptions. Every Ironwood-pool output note uses the quantum-re note plaintext format (lead byte `0x03`) defined in ZIP 2005 [^zip-2005]; no Orchard-pool output note uses that format. This is the only note-level distinction between the two pools. +Two `flagsOrchard` bits have been renamed relative to version 5: `enableSpendsOrchard` → +`enableSpends` and `enableOutputsOrchard` → `enableOutputs`. In version 6 these bits +—together with `enableCrossAddress`— are defined with the same meaning in both `flagsOrchard` +and `flagsIronwood`, so the previous `...Orchard` suffix would be misleading. + ## Consensus Rules * `nVersionGroupId` MUST equal the version 6 version group ID, and `nConsensusBranchId` @@ -254,10 +259,17 @@ output note uses that format. This is the only note-level distinction between th `anchorIronwood` field to the Ironwood note commitment tree. The Orchard and Ironwood pools have separate, independent note commitment trees and nullifier sets. +Version 4, version 5, and version 6 transactions are all valid from NU6.3 activation onward; +this ZIP defines only the version 6 format (the version 4 and version 5 formats are +unchanged). The NU6.3 consensus rules on Orchard actions apply regardless of transaction +version. In particular, the Orchard-protocol cross-address restriction is enforced for every +Orchard-pool Action mined from NU6.3 onward [^draft-zodl-valargroup-action-circuit-update], +so that it cannot be bypassed by using a version 5 transaction. + See [^draft-zodl-valargroup-deploy-nu6.3] for additional consensus requirements that apply to **all** transactions from NU6.3 onward, regardless of transaction version. (Briefly and non-normatively, these are that coinbase transactions must have an empty Orchard component; -that the `enableCrossAddressOrchard` bit of `flagsOrchard` must be `0`; and that +that the `enableCrossAddress` bit of `flagsOrchard` must be `0`; and that $\mathsf{v}^{\textsl{balanceOrchardPool}}$ must be nonnegative.) ## Transaction Identifiers, Signature Hashing, and Block Commitments From 7eb2012a2adc0fe5ce07000c7027a8f6ac89cf00 Mon Sep 17 00:00:00 2001 From: Daira-Emma Hopwood Date: Fri, 19 Jun 2026 02:50:02 +0100 Subject: [PATCH 06/14] Version 6 Transaction Format: field-presence markers + Penumbra acknowledgement MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add a "Note" column to the transaction-format table with †/‡/§/◊ markers for conditionally-present fields, and a legend giving each presence condition (matching the protocol spec § 7.1 convention). Move the presence conditions out of the Consensus Rules into that legend, leaving the 1:1 proofs/signatures correspondence rule. - Cosmetic improvements to the table presentations. - Acknowledge the developers of Penumbra for demonstrating the advantages of treating the note commitment tree anchor as authorizing rather than effecting data. Co-Authored-By: Claude Opus 4.8 (1M context) Signed-off-by: Daira-Emma Hopwood --- ...draft-zodl-valargroup-ironwood-txformat.md | 184 +++++++++--------- 1 file changed, 96 insertions(+), 88 deletions(-) diff --git a/zips/draft-zodl-valargroup-ironwood-txformat.md b/zips/draft-zodl-valargroup-ironwood-txformat.md index 37b49676d..938e4d39d 100644 --- a/zips/draft-zodl-valargroup-ironwood-txformat.md +++ b/zips/draft-zodl-valargroup-ironwood-txformat.md @@ -168,50 +168,59 @@ A version 6 transaction is encoded as follows. Fields up to and including the Or component are as in the version 5 format [^zip-0225], except as noted; the Ironwood component is new. -Bytes | Name | Data Type | Description ------------------------- | ------------------------ | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -**Common Transaction Fields** |||| -`4` | `header` | `uint32` | Contains the `fOverwintered` flag (bit 31, always set) and `version` (bits 30 .. 0), which MUST be `6`. -`4` | `nVersionGroupId` | `uint32` | Version group ID (nonzero); the version 6 value fixed in [^draft-zodl-valargroup-deploy-nu6.3]. -`4` | `nConsensusBranchId` | `uint32` | Consensus branch ID; MUST be the NU6.3 branch ID [^draft-zodl-valargroup-deploy-nu6.3]. -`4` | `lock_time` | `uint32` | Unix-epoch UTC time or block height, encoded as in Bitcoin. -`4` | `nExpiryHeight` | `uint32` | A block height in {1 .. 499999999} after which the transaction will expire, or 0 to disable expiry. [^zip-0203] -**Transparent Transaction Fields** |||| -`varies` | `tx_in_count` | `compactSize` | Number of transparent inputs in `tx_in`. -`varies` | `tx_in` | `tx_in` | Transparent inputs, encoded as in Bitcoin. -`varies` | `tx_out_count` | `compactSize` | Number of transparent outputs in `tx_out`. -`varies` | `tx_out` | `tx_out` | Transparent outputs, encoded as in Bitcoin. -**Sapling Transaction Fields (unchanged from v5)** |||| -`varies` | `nSpendsSapling` | `compactSize` | Number of Sapling Spend descriptions in `vSpendsSapling`. -`96 * nSpendsSapling` | `vSpendsSapling` | `SpendDescriptionV5[nSpendsSapling]` | Sapling Spend descriptions, encoded per § 7.3 ‘Spend Description Encoding and Consensus’. -`varies` | `nOutputsSapling` | `compactSize` | Number of Sapling Output descriptions in `vOutputsSapling`. -`756 * nOutputsSapling` | `vOutputsSapling` | `OutputDescriptionV5[nOutputsSapling]` | Sapling Output descriptions, encoded per § 7.4 ‘Output Description Encoding and Consensus’. -`8` | `valueBalanceSapling` | `int64` | The net value of Sapling Spends minus Outputs. -`32` | `anchorSapling` | `byte[32]` | A root of the Sapling note commitment tree at some block height in the past. -`192 * nSpendsSapling` | `vSpendProofsSapling` | `byte[192 * nSpendsSapling]` | Encodings of the zk-SNARK proofs for each Sapling Spend. -`64 * nSpendsSapling` | `vSpendAuthSigsSapling` | `byte[64 * nSpendsSapling]` | Authorizing signatures for each Sapling Spend. -`192 * nOutputsSapling` | `vOutputProofsSapling` | `byte[192 * nOutputsSapling]` | Encodings of the zk-SNARK proofs for each Sapling Output. -`64` | `bindingSigSapling` | `byte[64]` | A Sapling binding signature on the SIGHASH transaction hash. -**Orchard Transaction Fields** |||| -`varies` | `nActionsOrchard` | `compactSize` | The number of Orchard Action descriptions in `vActionsOrchard`. -`820 * nActionsOrchard` | `vActionsOrchard` | `OrchardAction[nActionsOrchard]` | A sequence of Orchard Action descriptions, encoded per § 7.5 ‘Action Description Encoding and Consensus’. -`1` | `flagsOrchard` | `byte` | An 8-bit value representing a set of flags. From LSB to MSB: `enableSpends`, `enableOutputs`, `enableCrossAddress` (new at NU6.3); the remaining bits MUST be `0`. -`8` | `valueBalanceOrchard` | `int64` | The net value of Orchard spends minus outputs. -`32` | `anchorOrchard` | `byte[32]` | A root of the Orchard note commitment tree at some block height in the past. -`varies` | `sizeProofsOrchard` | `compactSize` | Length in bytes of `proofsOrchard`. Value is `2720 + 2272 * nActionsOrchard`. -`sizeProofsOrchard` | `proofsOrchard` | `byte[sizeProofsOrchard]` | Encoding of aggregated zk-SNARK proofs for Orchard Actions. -`64 * nActionsOrchard` | `vSpendAuthSigsOrchard` | `byte[64 * nActionsOrchard]` | Authorizing signatures for each Orchard Action. -`64` | `bindingSigOrchard` | `byte[64]` | An Orchard binding signature on the SIGHASH transaction hash. -**Ironwood Transaction Fields (new)** |||| -`varies` | `nActionsIronwood` | `compactSize` | The number of Ironwood Action descriptions in `vActionsIronwood`. -`820 * nActionsIronwood` | `vActionsIronwood` | `OrchardAction[nActionsIronwood]` | A sequence of Ironwood Action descriptions, using the same encoding as Orchard Actions (§ 7.5). -`1` | `flagsIronwood` | `byte` | The same layout as `flagsOrchard`, including `enableCrossAddress` at bit 2; the remaining bits MUST be `0`. -`8` | `valueBalanceIronwood` | `int64` | The net value of Ironwood spends minus outputs. -`32` | `anchorIronwood` | `byte[32]` | A root of the **Ironwood** note commitment tree at some block height in the past. -`varies` | `sizeProofsIronwood` | `compactSize` | Length in bytes of `proofsIronwood`. Value is `2720 + 2272 * nActionsIronwood`. -`sizeProofsIronwood` | `proofsIronwood` | `byte[sizeProofsIronwood]` | Encoding of aggregated zk-SNARK proofs for Ironwood Actions. -`64 * nActionsIronwood` | `vSpendAuthSigsIronwood` | `byte[64 * nActionsIronwood]` | Authorizing signatures for each Ironwood Action. -`64` | `bindingSigIronwood` | `byte[64]` | An Ironwood binding signature on the SIGHASH transaction hash. +| Note | Bytes | Name | Data Type | Description +| ---- | ------------------------------- | ------------------------ | -------------------------------------- | ----------- +| **Common Transaction Fields** ||||| +| | $4$ | `header` | `uint32` | Contains the `fOverwintered` flag (bit 31, always set) and `version` (bits 30 .. 0), which MUST be `6`. +| | $4$ | `nVersionGroupId` | `uint32` | Version group ID (nonzero); the version 6 value fixed in [^draft-zodl-valargroup-deploy-nu6.3]. +| | $4$ | `nConsensusBranchId` | `uint32` | Consensus branch ID; MUST be the NU6.3 branch ID [^draft-zodl-valargroup-deploy-nu6.3]. +| | $4$ | `lock_time` | `uint32` | Unix-epoch UTC time or block height, encoded as in Bitcoin. +| | $4$ | `nExpiryHeight` | `uint32` | A block height in {1 .. 499999999} after which the transaction will expire, or 0 to disable expiry. [^zip-0203] +| **Transparent Transaction Fields** ||||| +| | `varies` | `tx_in_count` | `compactSize` | Number of transparent inputs in `tx_in`. +| | `varies` | `tx_in` | `tx_in` | Transparent inputs, encoded as in Bitcoin. +| | `varies` | `tx_out_count` | `compactSize` | Number of transparent outputs in `tx_out`. +| | `varies` | `tx_out` | `tx_out` | Transparent outputs, encoded as in Bitcoin. +| **Sapling Transaction Fields (unchanged from v5)** ||||| +| | `varies` | `nSpendsSapling` | `compactSize` | Number of Sapling Spend descriptions in `vSpendsSapling`. +| | $96\,\cdot$ `nSpendsSapling` | `vSpendsSapling` | `SpendDescriptionV5[nSpendsSapling]` | Sapling Spend descriptions, encoded per § 7.3 ‘Spend Description Encoding and Consensus’. +| | `varies` | `nOutputsSapling` | `compactSize` | Number of Sapling Output descriptions in `vOutputsSapling`. +| | $756\,\cdot$ `nOutputsSapling` | `vOutputsSapling` | `OutputDescriptionV5[nOutputsSapling]` | Sapling Output descriptions, encoded per § 7.4 ‘Output Description Encoding and Consensus’. +| † | $8$ | `valueBalanceSapling` | `int64` | The net value of Sapling Spends minus Outputs. +| ‡ | $32$ | `anchorSapling` | `byte[32]` | A root of the Sapling note commitment tree at some block height in the past. +| | $192\,\cdot$ `nSpendsSapling` | `vSpendProofsSapling` | `byte[192 * nSpendsSapling]` | Encodings of the zk-SNARK proofs for each Sapling Spend. +| | $64\,\cdot$ `nSpendsSapling` | `vSpendAuthSigsSapling` | `byte[64 * nSpendsSapling]` | Authorizing signatures for each Sapling Spend. +| | $192\,\cdot$ `nOutputsSapling` | `vOutputProofsSapling` | `byte[192 * nOutputsSapling]` | Encodings of the zk-SNARK proofs for each Sapling Output. +| † | $64$ | `bindingSigSapling` | `byte[64]` | A Sapling binding signature on the SIGHASH transaction hash. +| **Orchard Transaction Fields** ||||| +| | `varies` | `nActionsOrchard` | `compactSize` | The number of Orchard Action descriptions in `vActionsOrchard`. +| | $820\,\cdot$ `nActionsOrchard` | `vActionsOrchard` | `OrchardAction[nActionsOrchard]` | A sequence of Orchard Action descriptions, encoded per § 7.5 ‘Action Description Encoding and Consensus’. +| § | $1$ | `flagsOrchard` | `byte` | An 8-bit value representing a set of flags. From LSB to MSB: `enableSpends`, `enableOutputs`, `enableCrossAddress` (new at NU6.3); the remaining bits MUST be 0. +| § | $8$ | `valueBalanceOrchard` | `int64` | The net value of Orchard spends minus outputs. +| § | $32$ | `anchorOrchard` | `byte[32]` | A root of the Orchard note commitment tree at some block height in the past. +| § | `varies` | `sizeProofsOrchard` | `compactSize` | Length in bytes of `proofsOrchard`. Value is `2720 + 2272 * nActionsOrchard`. +| § | `sizeProofsOrchard` | `proofsOrchard` | `byte[sizeProofsOrchard]` | Encoding of aggregated zk-SNARK proofs for Orchard Actions. +| | $64\,\cdot$ `nActionsOrchard` | `vSpendAuthSigsOrchard` | `byte[64 * nActionsOrchard]` | Authorizing signatures for each Orchard Action. +| § | $64$ | `bindingSigOrchard` | `byte[64]` | An Orchard binding signature on the SIGHASH transaction hash. +| **Ironwood Transaction Fields (new)** ||||| +| | `varies` | `nActionsIronwood` | `compactSize` | The number of Ironwood Action descriptions in `vActionsIronwood`. +| | $820\,\cdot$ `nActionsIronwood` | `vActionsIronwood` | `OrchardAction[nActionsIronwood]` | A sequence of Ironwood Action descriptions, using the same encoding as Orchard Actions (§ 7.5). +| ◊ | $1$ | `flagsIronwood` | `byte` | The same layout as `flagsOrchard`, including `enableCrossAddress` at bit 2; the remaining bits MUST be 0. +| ◊ | $8$ | `valueBalanceIronwood` | `int64` | The net value of Ironwood spends minus outputs. +| ◊ | $32$ | `anchorIronwood` | `byte[32]` | A root of the **Ironwood** note commitment tree at some block height in the past. +| ◊ | `varies` | `sizeProofsIronwood` | `compactSize` | Length in bytes of `proofsIronwood`. Value is `2720 + 2272 * nActionsIronwood`. +| ◊ | `sizeProofsIronwood` | `proofsIronwood` | `byte[sizeProofsIronwood]` | Encoding of aggregated zk-SNARK proofs for Ironwood Actions. +| | $64\,\cdot$ `nActionsIronwood` | `vSpendAuthSigsIronwood` | `byte[64 * nActionsIronwood]` | Authorizing signatures for each Ironwood Action. +| ◊ | $64$ | `bindingSigIronwood` | `byte[64]` | An Ironwood binding signature on the SIGHASH transaction hash. + +Fields marked in the Note column are conditionally present: + +| Note | Description +| ---- | ----------- +| † | `valueBalanceSapling` and `bindingSigSapling` are present if and only if `nSpendsSapling + nOutputsSapling > 0`. If `valueBalanceSapling` is not present, it is taken to be 0. +| ‡ | `anchorSapling` is present if and only if `nSpendsSapling > 0`. +| § | `flagsOrchard`, `valueBalanceOrchard`, `anchorOrchard`, `sizeProofsOrchard`, `proofsOrchard`, and `bindingSigOrchard` are present if and only if `nActionsOrchard > 0`. If `valueBalanceOrchard` is not present, it is taken to be 0. +| ◊ | `flagsIronwood`, `valueBalanceIronwood`, `anchorIronwood`, `sizeProofsIronwood`, `proofsIronwood`, and `bindingSigIronwood` are present if and only if `nActionsIronwood > 0`. If `valueBalanceIronwood` is not present, it is taken to be 0. The encoding of the transparent and Sapling fields is unchanged from version 5 [^zip-0225]. Ironwood Action descriptions use the same `OrchardAction` encoding as @@ -229,31 +238,21 @@ and `flagsIronwood`, so the previous `...Orchard` suffix would be misleading. * `nVersionGroupId` MUST equal the version 6 version group ID, and `nConsensusBranchId` MUST equal the NU6.3 consensus branch ID, both defined in [^draft-zodl-valargroup-deploy-nu6.3]. -* As in version 5 [^zip-0225]: - * The Orchard fields `flagsOrchard`, `valueBalanceOrchard`, `anchorOrchard`, - `sizeProofsOrchard`, `proofsOrchard`, and `bindingSigOrchard` are present if and - only if `nActionsOrchard > 0`. If `valueBalanceOrchard` is not present, it is taken - to be `0`. - * The proofs in `proofsOrchard` and the signatures in `vSpendAuthSigsOrchard` each - correspond 1:1 to the elements of `vActionsOrchard`, in the same order. - -* The same rules apply to the Ironwood component: - * The Ironwood fields `flagsIronwood`, `valueBalanceIronwood`, `anchorIronwood`, - `sizeProofsIronwood`, `proofsIronwood`, and `bindingSigIronwood` are present if and - only if `nActionsIronwood > 0`. If `valueBalanceIronwood` is not present, it is - taken to be `0`. - * The proofs in `proofsIronwood` and the signatures in `vSpendAuthSigsIronwood` each - correspond 1:1 to the elements of `vActionsIronwood`, in the same order. +* The proofs in `proofsOrchard` and the signatures in `vSpendAuthSigsOrchard` each + correspond 1:1 to the elements of `vActionsOrchard`, in the same order; likewise the + proofs in `proofsIronwood` and the signatures in `vSpendAuthSigsIronwood` to the + elements of `vActionsIronwood`. (Conditional presence of fields is given in the format + table above.) * In each of `flagsOrchard` and `flagsIronwood`: - * Bits 3..7 inclusive MUST be `0`. - * The semantics of the `enableSpends` and `enableOutputs` bits are as in ZIP 224. + * Bits 3..7 inclusive MUST be 0. + * The semantics of the `enableSpends` and `enableOutputs` bits are as in ZIP 224 [^zip-0224]. * The `enableCrossAddress` bit is specified in [^draft-zodl-valargroup-action-circuit-update]. - Before NU6.3 this bit of `flagsOrchard` was reserved as `0` in v5 transactions. + Before NU6.3 this bit of `flagsOrchard` was reserved as 0 in v5 transactions. * For coinbase transactions, - * `flagsOrchard` MUST be `0`. - * The `enableSpends` bit of `flagsIronwood` MUST be `0`. + * `flagsOrchard` MUST be 0. + * The `enableSpends` bit of `flagsIronwood` MUST be 0. * The `anchorOrchard` field refers to the Orchard note commitment tree, and the `anchorIronwood` field to the Ironwood note commitment tree. The Orchard and Ironwood @@ -269,8 +268,8 @@ so that it cannot be bypassed by using a version 5 transaction. See [^draft-zodl-valargroup-deploy-nu6.3] for additional consensus requirements that apply to **all** transactions from NU6.3 onward, regardless of transaction version. (Briefly and non-normatively, these are that coinbase transactions must have an empty Orchard component; -that the `enableCrossAddress` bit of `flagsOrchard` must be `0`; and that -$\mathsf{v}^{\textsl{balanceOrchardPool}}$ must be nonnegative.) +that the `enableCrossAddress` bit of `flagsOrchard` must be 0; and that +$\mathsf{v}^{\textit{OrchardPoolBalance}}$ must be nonnegative.) ## Transaction Identifiers, Signature Hashing, and Block Commitments @@ -319,25 +318,26 @@ personalizations at each node. Also, distinct personalizations are used for Sapl where what is directly hashed has been affected as a result of moving the anchor commitments to auth data, as follows: -node | v5 personalization | v6 personalization | Comment for v6 -------------------------------------- | ------------------ | ------------------ | ------------------------- -sapling_digest[_v6] | `ZTxIdSaplingHash` | `ZTxIdSaplingHash` | not changed directly -sapling_spends_digest | `ZTxIdSSpendsHash` | `ZTxIdSSpendsHash` | unchanged -sapling_spends_compact_digest | `ZTxIdSSpendCHash` | `ZTxIdSSpendCHash` | unchanged -sapling_spends_noncompact_digest[_v6] | `ZTxIdSSpendNHash` | `ZTxIdSSpendNH_v6` | omits `anchor` -sapling_auth_digest[_v6] | `ZTxAuthSapliHash` | `ZTxAuthSapliH_v6` | includes `anchorSapling` -------------------------------------- | ------------------ | ------------------ | ------------------------- -orchard_digest[_v6] | `ZTxIdOrchardHash` | `ZTxIdOrchardH_v6` | omits `anchorOrchard` -orchard_actions_compact_digest | `ZTxIdOrcActCHash` | `ZTxIdOrcActCHash` | unchanged -orchard_actions_memos_digest | `ZTxIdOrcActMHash` | `ZTxIdOrcActMHash` | unchanged -orchard_actions_noncompact_digest | `ZTxIdOrcActNHash` | `ZTxIdOrcActNHash` | unchanged -orchard_auth_digest[_v6] | `ZTxAuthOrchaHash` | `ZTxAuthOrchaH_v6` | includes `anchorOrchard` -------------------------------------- | ------------------ | ------------------ | ------------------------- -ironwood_digest_v6 | n/a | `ZTxIdIronwd_H_v6` | omits `anchorIronwood` -ironwood_actions_compact_digest_v6 | n/a | `ZTxIdIrnActCH_v6` | -ironwood_actions_memos_digest_v6 | n/a | `ZTxIdIrnActMH_v6` | -ironwood_actions_noncompact_digest_v6 | n/a | `ZTxIdIrnActNH_v6` | -ironwood_auth_digest_v6 | n/a | `ZTxAuthIrnwdH_v6` | includes `anchorIronwood` +| Node | v5 personalization | v6 personalization | Comment for v6 | +|:--------------------------------------- | ------------------ | ------------------ | ------------------------- | +| $\hspace{22em}$ **Sapling** |||| +| `sapling_digest[_v6]` | `ZTxIdSaplingHash` | `ZTxIdSaplingHash` | not changed directly | +| `sapling_spends_digest` | `ZTxIdSSpendsHash` | `ZTxIdSSpendsHash` | unchanged | +| `sapling_spends_compact_digest` | `ZTxIdSSpendCHash` | `ZTxIdSSpendCHash` | unchanged | +| `sapling_spends_noncompact_digest[_v6]` | `ZTxIdSSpendNHash` | `ZTxIdSSpendNH_v6` | omits `anchor` | +| `sapling_auth_digest[_v6]` | `ZTxAuthSapliHash` | `ZTxAuthSapliH_v6` | includes `anchorSapling` | +| $\hspace{22em}$ **Orchard** |||| +| `orchard_digest[_v6]` | `ZTxIdOrchardHash` | `ZTxIdOrchardH_v6` | omits `anchorOrchard` | +| `orchard_actions_compact_digest` | `ZTxIdOrcActCHash` | `ZTxIdOrcActCHash` | unchanged | +| `orchard_actions_memos_digest` | `ZTxIdOrcActMHash` | `ZTxIdOrcActMHash` | unchanged | +| `orchard_actions_noncompact_digest` | `ZTxIdOrcActNHash` | `ZTxIdOrcActNHash` | unchanged | +| `orchard_auth_digest[_v6]` | `ZTxAuthOrchaHash` | `ZTxAuthOrchaH_v6` | includes `anchorOrchard` | +| $\hspace{22em}$ **Ironwood** |||| +| `ironwood_digest_v6` | n/a | `ZTxIdIronwd_H_v6` | omits `anchorIronwood` | +| `ironwood_actions_compact_digest_v6` | n/a | `ZTxIdIrnActCH_v6` | | +| `ironwood_actions_memos_digest_v6` | n/a | `ZTxIdIrnActMH_v6` | | +| `ironwood_actions_noncompact_digest_v6` | n/a | `ZTxIdIrnActNH_v6` | | +| `ironwood_auth_digest_v6` | n/a | `ZTxAuthIrnwdH_v6` | includes `anchorIronwood` | As in the case of Sapling and Orchard, when a version 6 transaction has no Ironwood actions, `ironwood_digest_v6` and `ironwood_auth_digest_v6` are the hashes of empty input under the component @@ -545,10 +545,10 @@ accounted for independently. ## `enableCrossAddress` polarity This flag is encoded in the enabled sense (`1` = cross-address transfers enabled, the -normal case for Ironwood-pool actions; `0` = action outputs restricted to use the same -protocol-level address as the action's spend), with bit 2 reserved as `0` before NU6.3. +normal case for Ironwood-pool actions; 0 = action outputs restricted to use the same +protocol-level address as the action's spend), with bit 2 reserved as 0 before NU6.3. This is backward-compatible: an Orchard-pool spend after NU6.3 requires the restricted -state, which is bit 2 = `0` — exactly the value that signers treating bit 2 as a +state, which is bit 2 = 0 — exactly the value that signers treating bit 2 as a reserved-zero bit already produce. The in-circuit constraint and the equivalent internal `disableCrossAddress` instance value are discussed in [^draft-zodl-valargroup-action-circuit-update]. @@ -560,6 +560,12 @@ This transaction format is deployed at NU6.3. Activation heights, the version 6 group ID, and the NU6.3 consensus branch ID are specified in [^draft-zodl-valargroup-deploy-nu6.3]. +# Acknowledgements + +We thank the developers of Penumbra [^penumbra] for demonstrating the advantages of +treating the note commitment tree anchor as authorizing data rather than effecting data. + + # References [^BCP14]: [Information on BCP 14 — "RFC 2119: Key words for use in RFCs to Indicate Requirement Levels" and "RFC 8174: Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words"](https://www.rfc-editor.org/info/bcp14) @@ -607,3 +613,5 @@ group ID, and the NU6.3 consensus branch ID are specified in [^draft-zodl-valarg [^draft-zodl-valargroup-ironwood-migration]: [Wallet Considerations for NU6.3 and Migration to the Ironwood Pool (draft)](draft-zodl-valargroup-ironwood-migration.md) [^zcash-ironwood]: [GitHub repository zcash/ironwood: Formal Verification of the Zcash Protocol and Documentation for the Ironwood Pool](https://github.com/zcash/ironwood) + +[^penumbra]: [The Penumbra Protocol](https://protocol.penumbra.zone/main/index.html) From ccd7c1f6fa6c1237b6dd7a45daff7466f1564d77 Mon Sep 17 00:00:00 2001 From: Daira-Emma Hopwood Date: Tue, 23 Jun 2026 21:51:47 +0100 Subject: [PATCH 07/14] Use Raleway italic for pool names, starting with ZIP 2005 and draft-zodl-valargroup-ironwood-txformat. Also disambiguate protocol and pool for some cases. Signed-off-by: Daira-Emma Hopwood --- static/assets/fonts/OFL.txt | 93 +++++++++++++++ .../Raleway-Italic-VariableFont_wght.ttf | Bin 0 -> 303788 bytes .../fonts/Raleway-VariableFont_wght.ttf | Bin 0 -> 309444 bytes static/css/style.css | 31 ++++- ...draft-zodl-valargroup-ironwood-txformat.md | 95 ++++++++------- zips/zip-2005.md | 112 +++++++++--------- 6 files changed, 229 insertions(+), 102 deletions(-) create mode 100644 static/assets/fonts/OFL.txt create mode 100644 static/assets/fonts/Raleway-Italic-VariableFont_wght.ttf create mode 100644 static/assets/fonts/Raleway-VariableFont_wght.ttf diff --git a/static/assets/fonts/OFL.txt b/static/assets/fonts/OFL.txt new file mode 100644 index 000000000..2478ae502 --- /dev/null +++ b/static/assets/fonts/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2010 The Raleway Project Authors (impallari@gmail.com), with Reserved Font Name "Raleway". + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/static/assets/fonts/Raleway-Italic-VariableFont_wght.ttf b/static/assets/fonts/Raleway-Italic-VariableFont_wght.ttf new file mode 100644 index 0000000000000000000000000000000000000000..64f5882c7ec2b9f8cde54aaa57c81b49454f3a3f GIT binary patch literal 303788 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 literal 0 HcmV?d00001 diff --git a/static/assets/fonts/Raleway-VariableFont_wght.ttf b/static/assets/fonts/Raleway-VariableFont_wght.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8aa222662ff7016b18f588f6b10fdaea6cc24f71 GIT binary patch literal 309444 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

qC?=Xg*24H=O*_2PA{OGAe6 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 section { margin: 0 auto; padding: 1.5rem 0 3rem; @@ -461,7 +475,16 @@ pre { } .katex { - font-size: 1.21em; + font-size: 1.2em; +} + +/* Render \textit{...} inside KaTeX in the body font, so slanted identifiers + in math (e.g. pool names such as IronwoodPool) match the slanted look of + Markdown emphasis *foo* in surrounding text. */ +.katex .textit { + font-family: 'ralewayitalic', Arial, 'Helvetica Neue', Helvetica, sans-serif; + font-style: italic; + font-size: 0.92em; } div.math { @@ -569,6 +592,12 @@ a.footnote-ref sup, a.footnote sup { } /* }}} md-specific */ +em { + font-family: 'ralewayitalic',Arial,Helvetica Neue,Helvetica,sans-serif; + font-weight: 720; + font-stretch: 85%; +} + strong, b { font-family: 'robotomedium',Arial,Helvetica Neue,Helvetica,sans-serif; font-weight: normal; diff --git a/zips/draft-zodl-valargroup-ironwood-txformat.md b/zips/draft-zodl-valargroup-ironwood-txformat.md index 938e4d39d..5fc9829e8 100644 --- a/zips/draft-zodl-valargroup-ironwood-txformat.md +++ b/zips/draft-zodl-valargroup-ironwood-txformat.md @@ -29,20 +29,20 @@ The term "Recovery Protocol" is to be interpreted as described in [^zip-2005]. The terms below are to be interpreted as follows: Orchard protocol (or Orchard shielded protocol) -: The shared cryptographic design that supports the Orchard pool and the Ironwood - pool, including the Pallas and Vesta curves, the Sinsemilla hash, the Action +: The shared cryptographic design that supports the *Orchard pool* and the + *Ironwood pool*, including the Pallas and Vesta curves, the Sinsemilla hash, the Action circuit (as modified by [^draft-zodl-valargroup-action-circuit-update]), the note, note commitment, nullifier, and key constructions, and the note encryption (as modified by [^zip-2005]) used for these two pools. -Orchard pool (or Orchard shielded pool) +*Orchard pool* (or Orchard shielded pool) : The value pool, with its own note commitment tree, anchor, and chain value pool balance, that was introduced by ZIP 224 [^zip-0224]. -Ironwood pool (or Ironwood shielded pool) +*Ironwood pool* (or Ironwood shielded pool) : A new value pool of the Orchard protocol, introduced by this ZIP, with its own note - commitment tree, anchor, and chain value pool balance, distinct from the Orchard - pool. + commitment tree, anchor, and chain value pool balance, distinct from the + *Orchard pool*. # Abstract @@ -51,27 +51,27 @@ This ZIP defines version 6 of the Zcash transaction format, to be activated at N [^zip-0257]. NU6.3 [^draft-zodl-valargroup-deploy-nu6.3] introduces the Ironwood shielded pool, an -Orchard-protocol successor to the Orchard pool, that ensures quantum recoverability +Orchard-protocol successor to the *Orchard pool*, that ensures quantum recoverability [^zip-2005] and has supply integrity supported from the start by formal verification efforts [^zcash-ironwood]. This requires a new transaction version that can hold an **Ironwood component**: a second Orchard-protocol shielded component that commits to, and spends from, the -Ironwood shielded pool, rather than the Orchard pool. The Ironwood component reuses +Ironwood shielded pool, rather than the *Orchard pool*. The Ironwood component reuses the Orchard Action encoding and proof system unchanged. This ZIP defines the corresponding txid, signature-hash, and block-commitment changes. -The addition of the Ironwood pool does not change address structures or encodings. +The addition of the *Ironwood pool* does not change address structures or encodings. At the protocol level, Orchard spending-key and viewing-key material grants authority -to spend or view notes in both the Orchard and Ironwood pools. However, NU6.3 enforces -that outputs to the Orchard pool are sent to an Orchard-protocol-level address for +to spend or view notes in both the *Orchard* and *Ironwood pools*. However, NU6.3 enforces +that outputs to the *Orchard pool* are sent to an Orchard-protocol-level address for which the transaction creator can authorize spends. The intent is that transfers -between users will automatically create notes in the Ironwood pool. The address -restriction discourages economic activity between users within the Orchard pool, and -encourages faster migration to the Ironwood pool. +between users will automatically create notes in the *Ironwood pool*. The address +restriction discourages economic activity between users within the *Orchard pool*, and +encourages faster migration to the *Ironwood pool*. This ZIP specifies only the transaction format and its associated hashing. The Action -circuit changes needed to restrict address usage within the Orchard pool are specified +circuit changes needed to restrict address usage within the *Orchard pool* are specified in [^draft-zodl-valargroup-action-circuit-update], and implications for wallets are discussed in [^draft-zodl-valargroup-ironwood-migration]. Activation parameters are specified in the NU6.3 deployment ZIP [^draft-zodl-valargroup-deploy-nu6.3]. @@ -82,23 +82,22 @@ specified in the NU6.3 deployment ZIP [^draft-zodl-valargroup-deploy-nu6.3]. The main purpose of the NU6.3 network upgrade is to bolster confidence in Zcash's supply integrity, after the discovery and remediation of the Orchard soundness vulnerability described in [^zip-0257]. The turnstile mechanism [^zip-0209] ensures that the overall -ZEC supply is bounded. However, since a substantial portion of ZEC was in the Orchard -pool at the time this vulnerability was remediated, it is necessary to take further steps -to ensure confidence in the supply by migrating funds to a new pool. - -All funds in the Ironwood pool will be **quantum-recoverable** [^zip-2005]. The existing -Zcash shielded protocols are dependent on the hardness of finding discrete logarithms; -an adversary who can do so (via quantum computers or otherwise) would be able to steal -or forge funds. In the event of needing to disable the Orchard protocol in order to -prevent these attacks, it will be possible to use a Recovery Protocol to recover funds -from the Ironwood pool. This Recovery Protocol is expected to remain secure against -discrete-log-breaking and quantum adversaries. Recovery would not be possible for -funds still in the Sprout, Sapling, or Orchard pools at that point. This change does -not by itself make Zcash secure against attacks using quantum computers, but is a -necessary and substantial step toward that goal. +ZEC supply is bounded. However, since a substantial portion of ZEC was in the +*Orchard pool* at the time this vulnerability was remediated, it is necessary to take +further steps to ensure confidence in the supply by migrating funds to a new pool. + +All funds in the *Ironwood pool* will be **quantum-recoverable** [^zip-2005]. +The existing Zcash shielded protocols are dependent on the hardness of finding +discrete logarithms; an adversary who can do so (via quantum computers or otherwise) +would be able to steal or forge funds. In the event of needing to disable these +protocols in order to prevent such attacks, it will be possible to use a Recovery +Protocol to recover funds from the *Ironwood pool*. This Recovery Protocol is expected +to remain secure against discrete-log-breaking and quantum adversaries. This change +does not by itself make Zcash secure against attacks using quantum computers, but is +a necessary and substantial step toward that goal. The version 6 transaction format also changes the authorization structure for all -supported shielded pools (Sapling, Orchard, and Ironwood) so that anchors are +supported shielded pools (*Sapling*, *Orchard*, and *Ironwood*) so that anchors are considered to be authorizing data rather than effecting data. This allows a transaction to be pre-authorized and its proofs computed independently after choosing an anchor, and also improves opportunities for parallelism in transaction creation. @@ -107,7 +106,7 @@ and also improves opportunities for parallelism in transaction creation. # Privacy Implications The turnstile mechanism reveals the amounts in each transaction that cross between pools, -including the amounts migrated into the Ironwood pool. This is considered in full detail +including the amounts migrated into the *Ironwood pool*. This is considered in full detail in [^draft-zodl-valargroup-ironwood-migration]. There is no reason to believe that the soundness vulnerability described in [^zip-0257] @@ -121,16 +120,16 @@ privacy against quantum adversaries are discussed in [^zip-2005]. Changes relative to v5 transactions should be minimized. -The version 6 transaction format must be able to carry an Ironwood-pool component in -addition to transparent-pool, Sapling-pool, and Orchard-pool components similar to +The version 6 transaction format must be able to carry an *Ironwood-pool* component in +addition to transparent-pool, *Sapling-pool*, and *Orchard-pool* components similar to those in a version 5 transaction. The Ironwood component must reuse the Orchard Action design and component encoding, so that implementation is shared between them to the maximum extent possible. The transaction identifier, signature hash, and authorizing-data commitment must -commit to the Ironwood-pool component when it is present, using personalizations -distinct from those used for the Orchard-pool component. +commit to the *Ironwood-pool* component when it is present, using personalizations +distinct from those used for the *Orchard-pool* component. The changes to the authorization structure must support pre-authorizing transactions using spending key material, and later updating the anchor and proofs (for all @@ -139,8 +138,8 @@ supported shielded pools). Personalizations for nodes in the digest tree must be changed when what is hashed at that node changes. -The `flags` fields in the Orchard-pool and Ironwood-pool components must support -encoding an indication of whether outputs to the Orchard pool are required to use +The `flags` fields in the *Orchard-pool* and *Ironwood-pool* components must support +encoding an indication of whether outputs to the *Orchard pool* are required to use a protocol-level address for which the transaction creator can authorize spends. @@ -224,8 +223,8 @@ Fields marked in the Note column are conditionally present: The encoding of the transparent and Sapling fields is unchanged from version 5 [^zip-0225]. Ironwood Action descriptions use the same `OrchardAction` encoding as -Orchard Action descriptions. Every Ironwood-pool output note uses the quantum-recoverable -note plaintext format (lead byte `0x03`) defined in ZIP 2005 [^zip-2005]; no Orchard-pool +Orchard Action descriptions. Every *Ironwood-pool* output note uses the quantum-recoverable +note plaintext format (lead byte `0x03`) defined in ZIP 2005 [^zip-2005]; no *Orchard-pool* output note uses that format. This is the only note-level distinction between the two pools. Two `flagsOrchard` bits have been renamed relative to version 5: `enableSpendsOrchard` → @@ -255,14 +254,14 @@ and `flagsIronwood`, so the previous `...Orchard` suffix would be misleading. * The `enableSpends` bit of `flagsIronwood` MUST be 0. * The `anchorOrchard` field refers to the Orchard note commitment tree, and the - `anchorIronwood` field to the Ironwood note commitment tree. The Orchard and Ironwood - pools have separate, independent note commitment trees and nullifier sets. + `anchorIronwood` field to the Ironwood note commitment tree. The *Orchard* and + *Ironwood pools* have separate, independent note commitment trees and nullifier sets. Version 4, version 5, and version 6 transactions are all valid from NU6.3 activation onward; this ZIP defines only the version 6 format (the version 4 and version 5 formats are unchanged). The NU6.3 consensus rules on Orchard actions apply regardless of transaction version. In particular, the Orchard-protocol cross-address restriction is enforced for every -Orchard-pool Action mined from NU6.3 onward [^draft-zodl-valargroup-action-circuit-update], +*Orchard-pool* Action mined from NU6.3 onward [^draft-zodl-valargroup-action-circuit-update], so that it cannot be bypassed by using a version 5 transaction. See [^draft-zodl-valargroup-deploy-nu6.3] for additional consensus requirements that apply @@ -448,7 +447,7 @@ with Changes corresponding to the [ZIP 209 changes above](#changestozip209) are required in § 4.17 ‘Chain Value Pool Balances’ [^protocol-chainvalue] to define an Ironwood chain value -pool balance alongside those for the existing Sprout, Sapling, and Orchard pools. These +pool balance alongside those for the existing Sprout, Sapling, and *Orchard pools*. These mirror the changes above and are not spelled out here. ## Changes to ZIP 221 @@ -529,7 +528,7 @@ update), were omitted from this upgrade. ## Reuse of the Orchard protocol with minimal changes -Carrying the Ironwood pool as a second Orchard-protocol component, rather than defining a +Carrying the *Ironwood pool* as a second Orchard-protocol component, rather than defining a new shielded protocol, keeps the transaction-format and implementation surface small: the Action encoding, proving system, authorization, and note encryption (modulo the new note plaintext format defined by [^zip-2005]) are inherited unchanged. The pools are @@ -538,16 +537,16 @@ balances, and component position, not by separate circuits. ## Separate state -Giving the Ironwood pool its own note commitment tree, anchor, and nullifier set creates -a state boundary from the Orchard pool, so that their chain value pool balance can be +Giving the *Ironwood pool* its own note commitment tree, anchor, and nullifier set creates +a state boundary from the *Orchard pool*, so that their chain value pool balance can be accounted for independently. ## `enableCrossAddress` polarity This flag is encoded in the enabled sense (`1` = cross-address transfers enabled, the -normal case for Ironwood-pool actions; 0 = action outputs restricted to use the same +normal case for *Ironwood-pool* actions; 0 = action outputs restricted to use the same protocol-level address as the action's spend), with bit 2 reserved as 0 before NU6.3. -This is backward-compatible: an Orchard-pool spend after NU6.3 requires the restricted +This is backward-compatible: an *Orchard-pool* spend after NU6.3 requires the restricted state, which is bit 2 = 0 — exactly the value that signers treating bit 2 as a reserved-zero bit already produce. The in-circuit constraint and the equivalent internal `disableCrossAddress` instance value are discussed in diff --git a/zips/zip-2005.md b/zips/zip-2005.md index bc5e1cb39..7417ac80f 100644 --- a/zips/zip-2005.md +++ b/zips/zip-2005.md @@ -54,16 +54,19 @@ The term "Orchard[ZSA] protocol" in this document refers to the Orchard shielded protocol before the deployment of ZSAs, and to the OrchardZSA shielded protocol after the deployment of ZSAs. -The terms "Ironwood pool" and "Orchard pool" are to be interpreted as -described in [^draft-zodl-valargroup-ironwood-txformat]. +The terms "*Ironwood pool*" and "*Orchard pool*" are to be interpreted as +described in [^draft-zodl-valargroup-ironwood-txformat]. Following the +convention in the protocol specification, we use *slanted text* to refer +to pool names, in order to more clearly distinguish them from shielded +protocols. The terms "recoverable note" and "recoverable note plaintext" refer to a note or note plaintext that was created according to this proposal. As -initially deployed, these are necessarily Ironwood-pool notes or note +initially deployed, these are necessarily *Ironwood-pool* notes or note plaintexts. The term "Recovery Protocol" refers to a potential new shielded protocol -that would allow recovery of funds held in recoverable Orchard[ZSA] notes. +that would allow recovery of funds held in recoverable *Ironwood-pool* notes. This ZIP describes the Recovery Protocol in outline but not in detail: many of its design decisions are intentionally left open. @@ -107,25 +110,25 @@ it would still be possible for a quantum or discrete-log-breaking adversary to forge and spend notes that are not actually in the commitment tree — thus breaking the Balance property. -This ZIP proposes a small change to the way Orchard[ZSA] notes are derived. -If this change is made in advance of quantum computers becoming viable, -then users' Orchard[ZSA] funds could remain safe and recoverable after a -post-quantum transition. This would not require any change to the Orchard -or proposed OrchardZSA *circuits* for the time being, and would not require -deciding on the particular proof system or note commitment tree hash used -in the future protocol. - -Recovering Orchard[ZSA] funds after the post-quantum transition would -involve checking a more expensive and complicated statement in zero -knowledge, but it is expected that this will be entirely practical for the -intended usage of recovering funds into another shielded pool. The current -privacy properties of Orchard would be retained against pre-quantum -adversaries, and also against post-quantum adversaries without knowledge -of the notes' addresses. [^pq-zcash] - -To reduce overall protocol complexity and analysis effort, we do *not* -propose a similar change for Sapling. Instead, Sapling funds can be -migrated to Orchard in order to make them quantum-recoverable. (Note +This ZIP proposes a small change to the way Orchard-protocol notes are derived, +that would apply to all notes in the new *Ironwood pool*. If this change is made +well in advance of quantum computers becoming viable, it would provide time for +users to move their funds to the *Ironwood pool*, keeping them safe and recoverable +after a subsequent post-quantum transition. This would not require any change to +the Orchard-protocol (or proposed OrchardZSA-protocol) **circuits** for the time +being, and would not require deciding on the particular proof system or note +commitment tree hash used in the future protocol. + +Recovering these funds after the post-quantum transition would involve checking +a more expensive and complicated statement in zero knowledge, but it is expected +that this will be entirely practical for the intended usage of recovering funds +into another shielded pool. The current privacy properties of the Orchard +protocol would be retained against pre-quantum adversaries, and also against +post-quantum adversaries without knowledge of the notes' addresses. [^pq-zcash] + +To reduce overall protocol complexity and analysis effort, we do **not** +propose a similar change for Sapling. Instead, Sapling funds can be migrated +to the *Ironwood pool* in order to make them quantum-recoverable. (Note that this analysis effort needs to include the child and internal key derivations defined in ZIP 32, which differ significantly between Sapling [^zip-0032-sapling-child-key-derivation] [^zip-0032-sapling-internal-key-derivation] @@ -166,7 +169,7 @@ and/or ZSAs [^zip-0226]. # Non-requirements * It is not required to address discrete-log-breaking or quantum - attacks on *privacy* with this proposal, as long as it does not + attacks on **privacy** with this proposal, as long as it does not cause any regression in privacy properties. * It is not required to add support for the Recovery Protocol to consensus rules now. @@ -181,9 +184,10 @@ and/or ZSAs [^zip-0226]. This subsection and the flow diagram below are non-normative. -This proposal defines a new note plaintext format for Orchard notes, -with lead byte $\mathtt{0x03}.$ The $\mathsf{pre\_rcm}$ value is computed -differently for this new format, by including all of the note fields in +This proposal defines a new note plaintext format to be used for +recoverable notes (that is, those in the *Ironwood pool*), with lead byte +$\mathtt{0x03}$. The $\mathsf{pre\_rcm}$ value is computed differently +for this new format, by including all of the note fields in $\mathsf{pre\_rcm}$. This means that an adversary constrained to treat the PRF used to derive $\mathsf{rcm}$ from $\mathsf{pre\_rcm}$ as a random oracle, could not vary any note field without producing a @@ -192,13 +196,13 @@ commitment scheme is post-quantum binding, as long as the new derivation of $\mathsf{rcm}$ is checked in the Recovery Protocol. Essentially the same technique also needs to be applied to the -function $\mathsf{Commit^{ivk}}$ that is used to derive Orchard +function $\mathsf{Commit^{ivk}}$ that is used to derive Orchard-protocol incoming viewing keys. The randomness $\mathsf{rivk}$ in $\mathsf{Commit^{ivk}}$ is derived directly or indirectly from $\mathsf{rivk\_ext}$, which is in turn derived from one of two random oracles, depending on which key material the user holds: -* For existing Orchard keys, $\mathsf{rivk\_ext}$ is derived from +* For existing Orchard-protocol keys, $\mathsf{rivk\_ext}$ is derived from the secret key $\mathsf{sk}$ via $\mathsf{H^{rivk\_legacy}}(\mathsf{sk})$, with $\mathsf{ak}$ and $\mathsf{nk}$ also derived from $\mathsf{sk}$. The Recovery Protocol checks all three derivations. @@ -225,7 +229,7 @@ hardware-wallet use cases are described in ## Flow diagram for the Orchard protocol -This diagram shows, approximately, the derivation of Orchard keys, +This diagram shows, approximately, the derivation of Orchard-protocol keys, addresses, notes, note commitments, and nullifiers. All of the flow diagrams in this ZIP omit type conversions between curve points, field elements, byte sequences, and bit sequences, and so are not sufficiently @@ -256,7 +260,7 @@ of additional inputs to derivation functions or alternative derivations. The derivations shown in the box labelled [Proposed Recovery Statement](#proposedrecoverystatement) are, roughly speaking, those enforced by the section of that name. The diagram shows the recoverable-note case ($\mathsf{leadByte} = \mathtt{0x03}$); -for $\mathsf{leadByte} = \mathtt{0x02}$ the existing Orchard derivation +for $\mathsf{leadByte} = \mathtt{0x02}$ the existing Orchard-protocol derivation $\mathsf{rcm} = \mathsf{ToScalar^{Orchard}}\big(\mathsf{PRF^{expand}_{rseed}}([\mathtt{0x05}] \,||\, \underline{\text{ρ}})\kern-0.1em\big)$ applies, and the additional fields feeding into $\mathsf{pre\_rcm}$ are absent. @@ -322,7 +326,7 @@ graph BT Once this proposal is deployed, wallets SHOULD move all of the funds they control (including transparent, Sprout, and Sapling funds) into recoverable -Orchard notes as soon as practically possible. This does not depend on support +*Ironwood-pool* notes as soon as practically possible. This does not depend on support from other wallets for receiving recoverable notes, because wallet-internal addresses can be used. @@ -332,11 +336,11 @@ recoverable notes as an ongoing process. ## Usage with FROST -When generating Orchard keys for FROST, $\mathsf{ak}$ will be derived jointly +When generating Orchard-protocol keys for FROST, $\mathsf{ak}$ will be derived jointly from the participants' shares of $\mathsf{ask}$ according to the FROST Distributed Key Generation (DKG) protocol. -This ZIP further constrains FROST key generation for Orchard as follows: +This ZIP further constrains FROST key generation for the Orchard procotol as follows: participants MUST privately agree on a value $\mathsf{sk}$, and then use it with $\mathsf{use\_qsk} = \mathsf{true}$ to derive $\mathsf{nk}$, $\mathsf{qsk}$, $\mathsf{qk}$, and (using the $\mathsf{ak}$ output by the DKG protocol) @@ -389,7 +393,7 @@ the adversary cannot find discrete logarithms on the Pallas curve, checking this RedDSA signature will ensure that spend authorization continues to require a $t$-of-$n$ threshold of participants. An important advantage of FROST —that the parties can sign using their -shares *without* reconstructing $\mathsf{ask}$, the Spend authorizing +shares **without** reconstructing $\mathsf{ask}$, the Spend authorizing key— is retained. Note that a quantum adversary may be able to steal the funds with only @@ -497,7 +501,7 @@ Under this assumed structure, with FROST + hardware-wallet deployment, spend authorization is broken only by either: 1. **$\mathsf{qsk}$ possession + finding discrete logarithms on the - Pallas curve.** The variants differ only in *how* $\mathsf{qsk}$ + Pallas curve.** The variants differ only in **how** $\mathsf{qsk}$ is obtained: @@ -608,8 +612,8 @@ Delete the non-normative note: Add the non-normative note: -> * For Orchard note plaintexts sent in v6 transactions [^zip-0248], the only -> allowed lead byte value is $\mathtt{0x03}.$ +> * For *Ironwood-pool* note plaintexts, the only allowed lead byte value is +> $\mathtt{0x03}$. It is assumed for these changes that v6 transactions will not activate before $\mathsf{ZIP2005ActivationHeight}$. @@ -1251,7 +1255,7 @@ We're not finished yet because we also have to prove that the nullifier is computed deterministically for a given note. All of the inputs to $\mathsf{DeriveNullifier}$ are things we committed to -in the protocol so far *except* $\mathsf{nk}$. By the same argument used +in the protocol so far **except** $\mathsf{nk}$. By the same argument used pre-quantumly, there is only one $\mathsf{ivk}$ for a given $(\mathsf{g_d}, \mathsf{pk_d})$. So in order to just use the existing protocol for this part, we would need to prove that there is only one @@ -1708,7 +1712,7 @@ Maurer [^Maurer2002] (Section 2, p. 5) establishes a matching upper bound of ${k \choose 2}/N$ on the success probability of any classical algorithm in finding a collision against a random oracle with an $N$-element output space using $k$ queries. Maurer's bound applies -to the *equality* event $F_i = F_j$; our win condition allows +to the **equality** event $F_i = F_j$; our win condition allows $F_i = \pm F_j$ (two winning configurations per pair instead of one). Applying Maurer with $N = r_{\mathbb{P}}$ (the $\mathsf{H^{rcm}}$ output space) gives ${q_{\mathsf{rcm}} \choose 2}/r_{\mathbb{P}}$ for @@ -1787,8 +1791,8 @@ The classical-ROM proofs above (for [key binding](#thm-key-binding-rom) and [Spendability](#thm-spendability-collide)) rely on $\mathsf{H^{rcm}}$ and the various $\mathsf{rivk}$-derivation hashes being collision-resistant. The natural quantum analog is called the -*collapsing* property, introduced by Unruh [^Unruh2015] [^Unruh2016]. -It says that even a quantum adversary holding a *superposition* over +**collapsing** property, introduced by Unruh [^Unruh2015] [^Unruh2016]. +It says that even a quantum adversary holding a **superposition** over several preimages of a fixed output cannot tell —by any subsequent measurement— which preimage it now has. This is the right property for our reductions. Each proof above splits cases based on which oracle @@ -1799,7 +1803,7 @@ adversary's superposition to a single classical preimage. Subsequent work has analyzed whether standard hash-function constructions inherit collapsing from their compression function. Unruh [^Unruh2016] proved this for Merkle–Damgård (with a padding -restriction); Czajkowski et al. [^CBHSU2017] for the *sponge* +restriction); Czajkowski et al. [^CBHSU2017] for the **sponge** construction (the absorb-then-squeeze paradigm used by SHA-3 / Keccak), with [^ACMT2025] strengthening the sponge result via the related notion of quantum indifferentiability. Fehr [^Fehr2018] gave a unified @@ -1816,7 +1820,7 @@ requires for arbitrary-length inputs is automatically satisfied if the compression function is modelled as a random oracle — which is also the modelling assumption underlying the classical-ROM analyses above. -By the argument in [^Bernstein2009], the best known *generic* quantum +By the argument in [^Bernstein2009], the best known **generic** quantum attack on a hash function is simply the classical attack of [^vOW1999]. (In particular, the Brassard–Høyer–Tapp algorithm [^BHT1997] is entirely unimplementable for a 253-bit output size: to achieve the @@ -1837,7 +1841,7 @@ stated in the Spendability proof above). This factor-of-2 absorption relies on the [fibres](https://en.wikipedia.org/wiki/Fiber_%28mathematics%29) $\{P, -P\}$ -of $\mathsf{Extract}_{\mathbb{P}}$ forming a *uniform* partition of the +of $\mathsf{Extract}_{\mathbb{P}}$ forming a **uniform** partition of the non-identity points of $\mathbb{P}$ — the free $\mathbb{Z}/2$ negation action gives every fibre for non-identity points exactly size 2 — which is what lets birthday-style bounds substitute $r_{\mathbb{P}} \to r_{\mathbb{P}}/2$ cleanly. @@ -1875,7 +1879,7 @@ them would need to mount a BHT-style attack, which is unimplementable for a 253-bit output (as discussed above, the BHT algorithm would require a quantum circuit randomly accessing a $2^{92.3}$-bit quantum memory). In practice the achievable bound remains close to the -classical $q^2 / r_{\mathbb{P}}$, since the best *known* generic +classical $q^2 / r_{\mathbb{P}}$, since the best **known** generic quantum attack is the classical attack of [^vOW1999] — Bernstein [^Bernstein2009] is careful to flag this as best-known rather than provably best. @@ -1905,15 +1909,15 @@ for transparent spend authentication can be forged. The combined effect is severe. An adversary can: -* break Balance for the Sapling or Orchard pools by forging value-commitment +* break Balance for the *Sapling pool* or *Orchard pool* by forging value-commitment openings or binding signatures; -* break Balance for the Sprout, Sapling, or Orchard pools by forging Groth16 or +* break Balance for the *Sprout*, *Sapling*, or *Orchard pools* by forging Groth16 or Halo 2 proofs of balanced transactions; * break Spend authentication (i.e. steal funds, independently of a Balance break) - for the Sprout, Sapling, or Orchard pools by forging alternative note witnesses + for the *Sprout*, *Sapling*, or *Orchard pools* by forging alternative note witnesses for any commitment on chain, or by forging Groth16 or Halo 2 proofs of valid spends; -* break Spend authentication for the Sapling or Orchard pools by forging RedJubjub +* break Spend authentication for the *Sapling pool* or *Orchard pool* by forging RedJubjub or RedPallas spend authorization signatures, or for the transparent pool by forging ECDSA-over-secp256k1 signatures used in scripts; * break Spendability via roadblock or Faerie Gold attacks, preventing users from @@ -1935,11 +1939,11 @@ Segwit is not relevant to Zcash. We assume for this section that the legacy Orchard, OrchardZSA (if deployed), Sapling, and Sprout protocols will be switched off. Any remaining funds in -the Sapling and Sprout pools, as well as funds in non-recoverable Orchard notes, +the *Sapling* and *Sprout pools*, as well as funds in non-recoverable Orchard notes, would be rendered permanently unspendable. The Balance, Spend authentication, and Spendability attacks are possible only -*before* the switch to the Recovery Protocol — that is, while legacy Orchard, +**before** the switch to the Recovery Protocol — that is, while legacy Orchard, Sapling, and (if ZIP 2003 is not deployed first [^zip-2003]) Sprout spends are still accepted by the consensus rules. @@ -1963,7 +1967,7 @@ The changes made by ZIP 2005 are only intended to address Balance preservation, Spend authentication, and Spendability for recoverable Orchard[ZSA] notes. The situation with respect to Privacy is unchanged for any pool. -In particular, the note encryption for Orchard[ZSA], Sapling, and Sprout pools +In particular, the note encryption for Orchard[ZSA], *Sapling*, and *Sprout pools* is subject to "Harvest Now, Decrypt Later" attacks: that is, a discrete-log-breaking attack can be performed as long as an adversary has both the ciphertext (which is published on the block chain) and the recipient @@ -2148,3 +2152,5 @@ manipulate the note selection algorithm to some extent. [^Google2025]: [Securing Elliptic Curve Cryptocurrencies against Quantum Vulnerabilities: Resource Estimates and Mitigations. Ryan Babbush, Adam Zalcman, Craig Gidney, Michael Broughton, Tanuj Khattar, Hartmut Neven, Thiago Bergamaschi, Justin Drake, and Dan Boneh](https://quantumai.google/static/site-assets/downloads/cryptocurrency-whitepaper.pdf) [^draft-zodl-valargroup-ironwood-txformat]: [Version 6 Transaction Format (draft)](draft-zodl-valargroup-ironwood-txformat.md) + +[^draft-zodl-valargroup-deploy-nu6.3]: [Deployment of the NU6.3 Network Upgrade (draft)](draft-zodl-valargroup-deploy-nu6.3.md) From 7629f6a1146a257de887f0c0f08e603d5b35969d Mon Sep 17 00:00:00 2001 From: Daira-Emma Hopwood Date: Tue, 23 Jun 2026 21:53:56 +0100 Subject: [PATCH 08/14] ZIP 2005: cosmetics. Signed-off-by: Daira-Emma Hopwood --- render.sh | 8 ++++++- zips/zip-2005.md | 56 +++++++++++++++++++++++------------------------- 2 files changed, 34 insertions(+), 30 deletions(-) diff --git a/render.sh b/render.sh index e499e0990..4ff61157c 100755 --- a/render.sh +++ b/render.sh @@ -59,7 +59,13 @@ cat <( # Not actually MathJax. KaTeX is compatible if we use the right headers. pandoc --mathjax --from=markdown --to=html "${inputfile}" --output="${outputfile}.temp" else - multimarkdown ${inputfile} -o "${outputfile}.temp" + cat "${inputfile}" \ + | sed 's|[\][$]|💲|g; + s|[$]\([.,:;!?-][^ $]\)|💲\1|g; + s|[$]\([.,:;!?-]\)|\\kern-0.05em\\textsf{\\small \1}$|g; + s|[$]—|\\kern-0.3em$ —|g; + s|💲|$|g' \ + | multimarkdown -o "${outputfile}.temp" fi # Both pandoc and multimarkdown just output the HTML body. diff --git a/zips/zip-2005.md b/zips/zip-2005.md index 7417ac80f..56ce127ec 100644 --- a/zips/zip-2005.md +++ b/zips/zip-2005.md @@ -37,7 +37,7 @@ and a variable suffixed with $\star$ indicates a bit-sequence encoding of an elliptic curve point. The notation ${k \choose n}$ denotes the binomial coefficient — the -number of ways of choosing $n$ items from a set of $k$, equal to +number of ways of choosing $n$ items from a set of $k$, which is equal to $\frac{k!}{n!(k-n)!}$ for $0 \leq n \leq k$. For brevity, in the discussion sections of this ZIP we abbreviate @@ -215,12 +215,10 @@ oracles, depending on which key material the user holds: $\mathsf{SoK^{qsk}}$ proof of knowledge of $\mathsf{qsk}$ such that $\mathsf{H^{qk}}(\mathsf{qsk}) = \mathsf{qk}$. -Both branches (and both cases -$\mathsf{rivk} \in \big\{ \mathsf{rivk\_ext},\, \mathsf{H^{rivk\_int}_{rivk\_ext}}(\mathsf{ak}, \mathsf{nk}) \big\}$) -are covered uniformly by the +Both branches (and both cases $\mathsf{rivk} \in \{ \mathsf{rivk\_ext}, \mathsf{H^{rivk\_int}_{rivk\_ext}}(\mathsf{ak}, \mathsf{nk}) \}$) are covered uniformly by the [Security argument for key binding](#securityargumentforkeybinding): -each binds the keys $(\mathsf{ak}, \mathsf{nk}, \mathsf{rivk})$ — and, -when in use, $\mathsf{qk}$ — to the incoming-viewing key $\mathsf{ivk}$ +each binds the keys $(\mathsf{ak}, \mathsf{nk}, \mathsf{rivk})$ —and, +when in use, $\mathsf{qk}$— to the incoming-viewing key $\mathsf{ivk}$ post-quantumly, up to a small advantage against collision-finding in the random oracles used for $\mathsf{rivk}$ derivation. The FROST and hardware-wallet use cases are described in @@ -407,10 +405,10 @@ FROST keys be transferred into that protocol's shielded pool. The same $\mathsf{use\_qsk}$ option can help to improve the efficiency of using the [Recovery Protocol](#proposedrecoveryprotocol) with hardware -wallets. If the keys $\mathsf{rivk\_ext},$ $\mathsf{nk},$ and $\mathsf{ak}$ -are generated from $\mathsf{sk},$ then the circuit for the Recovery Protocol -will need to prove their correct derivation using $\mathsf{H^{rivk\_legacy}},$ -$\mathsf{H^{nk}},$ $\mathsf{H^{ask}},$ and $\mathsf{DerivePublic}$ as shown +wallets. If the keys $\mathsf{rivk\_ext}$, $\mathsf{nk}$, and $\mathsf{ak}$ +are generated from $\mathsf{sk}$, then the circuit for the Recovery Protocol +will need to prove their correct derivation using $\mathsf{H^{rivk\_legacy}}$, +$\mathsf{H^{nk}}$, $\mathsf{H^{ask}}$, and $\mathsf{DerivePublic}$ as shown in the $\mathsf{SoK^{sk}}$ box of the diagram below. ```mermaid @@ -453,7 +451,7 @@ statement that only uses $\mathsf{H^{qk}}$ and a commitment scheme. For example, for some hiding and collapse-binding commitment $$\mathsf{c_{link}} = \mathsf{LinkCommit}_r(\mathsf{qk}, \mathsf{sighash})$$ the hardware wallet could prove knowledge of $(\mathsf{qsk}, r)$ such that -$$\mathsf{c_{link}} = \mathsf{LinkCommit}_r(\mathsf{H^{qk}}(\mathsf{qsk}), \mathsf{sighash}).$$ +$$\mathsf{c_{link}} = \mathsf{LinkCommit}_r(\mathsf{H^{qk}}(\mathsf{qsk}), \mathsf{sighash})\textsf{\small .}$$ This statement, labelled as $\mathsf{SoK^{qsk}}$ in the diagram, can be implemented in a much smaller circuit, so it might be feasible to do the proof in quite constrained hardware. @@ -469,7 +467,7 @@ no information is leaked about which $\mathsf{qk}$ is being used. By *host wallet*, we mean the device that builds the spend transaction and produces the rest of the Recovery Statement proof. In a multi-signer FROST setup, this would be the Coordinator [^zip-0312-threat-model]. The host wallet -is given $\mathsf{nk},$ $\mathsf{ak},$ and (assuming $\mathsf{use\_qsk}$ is true) +is given $\mathsf{nk}$, $\mathsf{ak}$, and (assuming $\mathsf{use\_qsk}$ is true) $\mathsf{qk}$, for use in the Recovery Statement. Then two options are possible for storage of $\mathsf{qsk}$: @@ -1197,10 +1195,10 @@ $\mathcal{C}_j = \mathcal{Q}(D) \text{ or } \mathcal{S}(j)$ used by [$\mathsf{HashToSinsimillaPoint}$](https://zips.z.cash/protocol/protocol.pdf#concretesinsemillahash) as $\mathcal{C}_j = [c_j]\, \mathcal{R}$ for some $c_j$. That is, the note commitment for $\mathsf{notetuple}$ is -$$[\mathsf{H^{rcm}_{rseed}}(\mathsf{noterepr}) + \mathsf{f}(\mathsf{notetuple})]\, \mathcal{R}.$$ +$$[\mathsf{H^{rcm}_{rseed}}(\mathsf{noterepr}) + \mathsf{f}(\mathsf{notetuple})]\, \mathcal{R}\textsf{\small .}$$ We will model $\mathsf{H^{rcm}}$ as a random oracle independent of $\mathsf{f}$ with -uniform output on $\mathbb{F}_{r_{\mathbb{P}}}.$ This is reasonable because +uniform output on $\mathbb{F}_{r_{\mathbb{P}}}$. This is reasonable because $\mathsf{H^{rcm}}$ cannot depend on any of the $c_j$, and in any case it is instantiated using BLAKE2b, a conventional hash function not related to the Pallas curve. @@ -1384,7 +1382,7 @@ $\begin{array}{l} \wedge\; \mathsf{ivk} \not\in \{0, \bot\} \end{array}$ -where $\mathsf{ak} = \mathsf{Extract}_{\mathbb{P}}(\mathsf{ak}^{\mathbb{P}}).$ +where $\mathsf{ak} = \mathsf{Extract}_{\mathbb{P}}(\mathsf{ak}^{\mathbb{P}})$. The predicate intentionally does not constrain the $y$-sign of $\mathsf{ak}^{\mathbb{P}}$. This is consistent with Orchard's design @@ -1441,19 +1439,19 @@ $\varepsilon_{\mathsf{kb}}(\mathcal{A}, q_{\mathsf{kb}}) \leq \frac{3\, q_{\math *Algebraic setup.* By § 5.4.1.10 “Sinsemilla commitments”, $$\mathsf{Commit^{ivk}_{rivk}}(\mathsf{ak}, \mathsf{nk}) = -\mathsf{Extract}_{\mathbb{P}}\big(M' + [\mathsf{rivk}]\, \mathcal{S}\big),$$ +\mathsf{Extract}_{\mathbb{P}}\big(M' + [\mathsf{rivk}]\, \mathcal{S}\big)\textsf{\small ,}$$ where $\mathcal{S}$ is the rivk-randomization base -$$\mathcal{S} := \mathsf{GroupHash}^{\mathbb{P}}(\texttt{“z.cash:Orchard-CommitIvk-r”}, \texttt{“”}),$$ +$$\mathcal{S} := \mathsf{GroupHash}^{\mathbb{P}}(\texttt{“z.cash:Orchard-CommitIvk-r”}, \texttt{“”})\textsf{\small ,}$$ and $$M' := \mathsf{SinsemillaHashToPoint}\big(\texttt{“z.cash:Orchard-CommitIvk-M”},\; \mathsf{I2LEBSP}_{\ell^{\mathsf{Orchard}}_{\mathsf{base}}}(\mathsf{ak}) \,\Vert\, -\mathsf{I2LEBSP}_{\ell^{\mathsf{Orchard}}_{\mathsf{base}}}(\mathsf{nk})\big).$$ +\mathsf{I2LEBSP}_{\ell^{\mathsf{Orchard}}_{\mathsf{base}}}(\mathsf{nk})\big)\textsf{\small .}$$ By expanding the Sinsemilla bases used inside $\mathsf{SinsemillaHashToPoint}$ as scalar multiples of $\mathcal{S}$, without loss of generality we have $M' = [h(\mathsf{ak}, \mathsf{nk})]\, \mathcal{S}$ for a Pedersen-like deterministic scalar hash $h$, so $$\mathsf{Commit^{ivk}_{rivk}}(\mathsf{ak}, \mathsf{nk}) = -\mathsf{Extract}_{\mathbb{P}}\big([h(\mathsf{ak}, \mathsf{nk}) + \mathsf{rivk}]\, \mathcal{S}\big).$$ +\mathsf{Extract}_{\mathbb{P}}\big([h(\mathsf{ak}, \mathsf{nk}) + \mathsf{rivk}]\, \mathcal{S}\big)\textsf{\small .}$$ Domain separation in the protocol's BLAKE2b instantiations ensures $h$ does not query $\mathsf{H^{rivk\_ext}}$, $\mathsf{H^{rivk\_legacy}}$, @@ -1463,7 +1461,7 @@ $h$ depends only on fixed Sinsemilla bases and on $(\mathsf{ak}, \mathsf{nk})$. By the same $y^2 = Y(x)$ argument used in the Spendability proof (using § 5.4.9.7 for the $\mathsf{Extract}_{\mathbb{P}}$-style $x$-coordinate convention), a key-binding break implies -$$h(\mathsf{ak}, \mathsf{nk}) + \mathsf{rivk} \equiv \pm\big(h(\mathsf{ak}', \mathsf{nk}') + \mathsf{rivk}'\big) \pmod{r_{\mathbb{P}}}.$$ +$$h(\mathsf{ak}, \mathsf{nk}) + \mathsf{rivk} \equiv \pm\big(h(\mathsf{ak}', \mathsf{nk}') + \mathsf{rivk}'\big) \pmod{r_{\mathbb{P}}}\textsf{\small .}$$ Define $\mathsf{G}(w) := h(\mathsf{ak}, \mathsf{nk}) + \mathsf{rivk} \pmod{r_{\mathbb{P}}}$ for a witness $w$, and let $G_i := \mathsf{G}(w_i)$ for $i \in \{1, 2\}$. The break condition is @@ -1553,7 +1551,7 @@ single combined uniform random oracle on the joint query domain (each RO contributes its outputs independently of the others), and union-bounding over the at most ${q_{\mathsf{kb}} \choose 2}$ pairs of distinct witnesses, -$$\varepsilon_{\mathsf{kb}}(\mathcal{A}, q_{\mathsf{kb}}) \leq \frac{3 q_{\mathsf{kb}}(q_{\mathsf{kb}}-1)}{2 r_{\mathbb{P}}}.$$ +$$\varepsilon_{\mathsf{kb}}(\mathcal{A}, q_{\mathsf{kb}}) \leq \frac{3 q_{\mathsf{kb}}(q_{\mathsf{kb}}-1)}{2 r_{\mathbb{P}}}\textsf{\small .}$$ ## Security argument for Spendability @@ -1592,7 +1590,7 @@ $$\mathsf{DeriveNullifier_{nk}}(\text{ρ}, \text{ψ}, \mathsf{cm}) := Also recall from [Repairing note commitments] that we have $$\mathsf{cm} = [\mathsf{H^{rcm}_{rseed}}(\mathsf{noterepr}) - + \mathsf{f}(\mathsf{rseed}, \mathsf{noterepr})]\, \mathcal{R}.$$ + + \mathsf{f}(\mathsf{rseed}, \mathsf{noterepr})]\, \mathcal{R}\textsf{\small .}$$ Let $K_{\kern-.08em\mathcal{R}}$ denote the discrete logarithm of $\mathcal{K}$ with respect to $\mathcal{R}$. This is well-defined and @@ -1610,7 +1608,7 @@ $$\mathsf{Extract}_{\mathbb{P}}\Big( \big((\mathsf{PRF^{nf}_{nk}}(\text{ρ}) + \text{ψ}) \bmod q_{\mathbb{P}}\big) \cdot K_{\kern-.08em\mathcal{R}} + \mathsf{H^{rcm}_{rseed}}(\mathsf{noterepr}) + \mathsf{f}(\mathsf{rseed}, \mathsf{noterepr}) \big]\, \mathcal{R} - \Big).$$ + \Big)\textsf{\small .}$$ We model $\mathsf{H^{rcm}}$ as a random oracle with output uniform on $\mathbb{F}_{r_{\mathbb{P}}}$. The functions $\mathsf{f}$, @@ -1703,7 +1701,7 @@ satisfying: Then $\mathcal{A}$ wins this game with probability at most $$\Big({\textstyle{q_{\mathsf{rcm}}} \atop \textstyle{2}}\Big) \cdot \frac{2}{r_{\mathbb{P}}} + \varepsilon_{\mathsf{kb}}(\mathcal{A}, q_{\mathsf{kb}}) - = \frac{q_{\mathsf{rcm}}(q_{\mathsf{rcm}}-1)}{r_{\mathbb{P}}} + \varepsilon_{\mathsf{kb}}(\mathcal{A}, q_{\mathsf{kb}}),$$ + = \frac{q_{\mathsf{rcm}}(q_{\mathsf{rcm}}-1)}{r_{\mathbb{P}}} + \varepsilon_{\mathsf{kb}}(\mathcal{A}, q_{\mathsf{kb}})\textsf{\small ,}$$ taken over the random oracle's responses and any internal randomness of $\mathcal{A}$. @@ -1738,7 +1736,7 @@ Under this conditioning, define $$\mathsf{F}(\mathsf{notetuple}) := \mathsf{H^{rcm}}(\mathsf{notetuple}) + \mathsf{f}(\mathsf{notetuple}) + \big((\mathsf{PRF^{nf}_{nk}}(\text{ρ}) + \text{ψ}) \bmod q_{\mathbb{P}}\big) \cdot K_{\kern-.08em\mathcal{R}} -\pmod{r_{\mathbb{P}}},$$ +\pmod{r_{\mathbb{P}}}\textsf{\small ,}$$ where $\mathsf{rseed}, \text{ρ}, \text{ψ}$ are fields of $\mathsf{notetuple}$ and $\mathsf{PRF^{nf}_{nk}}(\text{ρ})$ is determined by $\mathsf{notetuple}$ via the @@ -1768,10 +1766,10 @@ pair of independent uniform variables, satisfied with probability at most $2/r_{\mathbb{P}}$ (one per sign). Union-bounding over the at most ${q_{\mathsf{rcm}} \choose 2}$ pairs of distinct $\mathsf{H^{rcm}}$ queries: -$$\Pr[\text{win} \mid \neg\,\text{break}] \leq \frac{q_{\mathsf{rcm}}(q_{\mathsf{rcm}}-1)}{r_{\mathbb{P}}}.$$ +$$\Pr[\text{win} \mid \neg\,\text{break}] \leq \frac{q_{\mathsf{rcm}}(q_{\mathsf{rcm}}-1)}{r_{\mathbb{P}}}\textsf{\small .}$$ Decomposing on whether a key-binding break occurs and applying $\Pr[\text{win}] \leq \Pr[\text{win} \mid \neg\,\text{break}] + \Pr[\text{break}]$: -$$\Pr[\text{win}] \leq \frac{q_{\mathsf{rcm}}(q_{\mathsf{rcm}}-1)}{r_{\mathbb{P}}} + \varepsilon_{\mathsf{kb}}(\mathcal{A}, q_{\mathsf{kb}}).$$ +$$\Pr[\text{win}] \leq \frac{q_{\mathsf{rcm}}(q_{\mathsf{rcm}}-1)}{r_{\mathbb{P}}} + \varepsilon_{\mathsf{kb}}(\mathcal{A}, q_{\mathsf{kb}})\textsf{\small .}$$ This completes the classical-ROM proof. The [key-binding theorem](#thm-key-binding-rom) bounds @@ -1871,8 +1869,8 @@ quantum queries to a random oracle with output space of size $N$ finds a collision with probability $O(q^3 / N)$. Applied to our reductions: -* $\varepsilon^{\mathsf{QROM}}_{\mathsf{Spendability}} \leq O\!\left(q_{\mathsf{rcm}}^3 / r_{\mathbb{P}}\right) + \varepsilon^{\mathsf{QROM}}_{\mathsf{kb}}.$ -* $\varepsilon^{\mathsf{QROM}}_{\mathsf{kb}} \leq O\!\left(q_{\mathsf{kb}}^3 / r_{\mathbb{P}}\right).$ +* $\varepsilon^{\mathsf{QROM}}_{\mathsf{Spendability}} \leq O\!\left(q_{\mathsf{rcm}}^3 / r_{\mathbb{P}}\right) + \varepsilon^{\mathsf{QROM}}_{\mathsf{kb}}$. +* $\varepsilon^{\mathsf{QROM}}_{\mathsf{kb}} \leq O\!\left(q_{\mathsf{kb}}^3 / r_{\mathbb{P}}\right)$. These are worst-case theoretical bounds. An adversary that saturates them would need to mount a BHT-style attack, which is unimplementable From 2133b4d2743f299604c4e0cebe110ca337951a21 Mon Sep 17 00:00:00 2001 From: Daira-Emma Hopwood Date: Tue, 23 Jun 2026 21:54:33 +0100 Subject: [PATCH 09/14] ZIP 2005: Remaining changes to be reviewed in the 2026-06-23 ZIP sync. * Updates to activate QR only for the Ironwood pool, and consequences such as being able to identify the QR nullifier set. * Remove references to ZSAs other than to say that the QR proposal is compatible with them. * Harmonize the Abstract wording with the Motivation section of draft-zodl-valargroup-ironwood-txformat. * Add a note about recovery not being possible from the Sprout, Sapling, or Orchard pools. * Add "It should be possible for wallets to identify what subset of a user's funds have been made recoverable." to the Requirements. * Update the reference timeframe for updates to other ZIPs. Co-authored-by: Claude Opus 4.8 (1M context) Signed-off-by: Daira-Emma Hopwood --- zips/zip-2005.md | 147 +++++++++++++++++++++-------------------------- 1 file changed, 64 insertions(+), 83 deletions(-) diff --git a/zips/zip-2005.md b/zips/zip-2005.md index 56ce127ec..25688852c 100644 --- a/zips/zip-2005.md +++ b/zips/zip-2005.md @@ -47,13 +47,6 @@ $\mathcal{K}^{\mathsf{Orchard}}$ as $\mathcal{K}$, and similarly for other Orchard-specific hash function names. The changes to the protocol specification and to other ZIPs use the full forms. -The term "Zcash Shielded Assets" or "ZSAs" refers to the extension to -the Orchard shielded protocol described in ZIPs 226 and 227 [^zip-0226] [^zip-0227]. - -The term "Orchard[ZSA] protocol" in this document refers to the Orchard -shielded protocol before the deployment of ZSAs, and to the OrchardZSA -shielded protocol after the deployment of ZSAs. - The terms "*Ironwood pool*" and "*Orchard pool*" are to be interpreted as described in [^draft-zodl-valargroup-ironwood-txformat]. Following the convention in the protocol specification, we use *slanted text* to refer @@ -67,29 +60,33 @@ plaintexts. The term "Recovery Protocol" refers to a potential new shielded protocol that would allow recovery of funds held in recoverable *Ironwood-pool* notes. -This ZIP describes the Recovery Protocol in outline but not in detail: -many of its design decisions are intentionally left open. +This ZIP describes the Recovery Protocol in outline but not in detail: many +of its design decisions are intentionally left open. The Recovery Protocol +would also allow recovering notes created according to the ZSA extension to +the Orchard protocol [^zip-0226] [^zip-0227] if that were deployed. # Abstract -This ZIP proposes a change to the construction of Orchard[ZSA] notes, -designed to improve Zcash's long-term resilience against a significant -potential threat to its security from quantum computers. It does not -by itself make the protocol secure against quantum adversaries, but is -intended to support a smoother transition to future versions of Zcash -designed to be so. - -Specifically, if it were necessary to disable the current Orchard[ZSA] -shielded protocol in order to prevent a discrete-log-breaking adversary -from stealing or forging funds, this change would make it possible to use -a Recovery Protocol to recover existing Orchard funds. This Recovery Protocol -is expected to remain secure against discrete-log-breaking and quantum -adversaries. - -If the Orchard[ZSA] protocol needed to be disabled for this reason, the -Sapling protocol would need to be disabled as well, which would make all -Sapling funds inaccessible. Sapling funds should be migrated to Orchard in +This ZIP proposes a change to the construction of notes, to be deployed for the +*Ironwood pool* [^draft-zodl-valargroup-ironwood-txformat], designed to improve +Zcash's long-term resilience against a significant potential threat to its security +from quantum computers. It does not by itself make the protocol secure against +quantum adversaries, but is intended to support a smoother transition to future +versions of Zcash designed to be so. + +The existing Zcash shielded protocols are dependent on the hardness of finding +discrete logarithms; an adversary who can do so (via quantum computers or otherwise) +would be able to steal or forge funds. In the event of needing to disable these +protocols in order to prevent such attacks, it will be possible to use a Recovery +Protocol to recover funds from the *Ironwood pool*. This Recovery Protocol is expected +to remain secure against discrete-log-breaking and quantum adversaries. This change +does not by itself make Zcash secure against attacks using quantum computers, but is +a necessary and substantial step toward that goal. + +Recovery would not be possible for funds still in the *Sprout*, *Sapling*, or +*Orchard pools*; all such funds would be inaccessible after their respective +protocols are disabled. They should be migrated to the *Ironwood pool* in order to take advantage of this change. @@ -152,6 +149,8 @@ and/or ZSAs [^zip-0226]. both. * The proposed scheme should not require regeneration of existing non-multisignature keys or addresses. +* It should be possible for wallets to identify what subset of a user's + funds have been made recoverable. * The changes made to the pre-quantum protocol should not cause a significant regression in performance, applicability, or security against any given adversary class, or require significant re-analysis @@ -552,7 +551,7 @@ those proposals will need to use a new lead byte value or values. ## Specification Updates This is written as a set of changes to version 2025.6.2 of the protocol -specification, and to the contents of ZIPs as of May 2026. +specification, and to the contents of ZIPs as of June 2026. ### Changes to the Protocol Specification @@ -569,53 +568,33 @@ Replace the paragraph with -> Let the constant $\mathsf{ZIP2005ActivationHeight}$ be as defined in -> [[ZIP 2005, Deployment]](#deployment). +> Let $\mathsf{pool} \;{\small ⦂}\; \{ \textit{SaplingPool}, \textit{OrchardPool}, \textit{IronwoodPool}\, \}$ +> be the chain value pool of the note. > -> Define $\mathsf{allowedLeadBytes^{protocol}}(\mathsf{height}, \mathsf{txVersion}) =$ +> Define $\mathsf{allowedLeadBytes^{pool}}(\mathsf{height}, \mathsf{txVersion}) =$ > $\hspace{2em} \begin{cases} > \{ \mathtt{0x01} \},&\!\!\!\text{if } \mathsf{height} < \mathsf{CanopyActivationHeight} \\ > \{ \mathtt{0x01}, \mathtt{0x02} \},&\!\!\!\text{if } \mathsf{CanopyActivationHeight} \leq \mathsf{height} < \mathsf{CanopyActivationHeight} + \mathsf{ZIP212GracePeriod} \\ -> \{ \mathtt{0x02} \},&\!\!\!\text{if } \mathsf{CanopyActivationHeight} + \mathsf{ZIP212GracePeriod} \leq \mathsf{height} \text{ and } \\ -> &\;\; (\mathsf{height} < \mathsf{ZIP2005ActivationHeight} \text{ or } \mathsf{protocol} \neq \mathsf{Orchard}) \\ -> \{ \mathtt{0x02}, \mathtt{0x03} \},&\!\!\!\text{if } \mathsf{ZIP2005ActivationHeight} \leq \mathsf{height} \text{ and } \mathsf{protocol} = \mathsf{Orchard} \text{ and } \mathsf{txVersion} < 6 \\ +> \{ \mathtt{0x02} \},&\!\!\!\text{if } \mathsf{CanopyActivationHeight} + \mathsf{ZIP212GracePeriod} \leq \mathsf{height} \text{ and } \mathsf{pool} \neq \textit{IronwoodPool} \\ > \{ \mathtt{0x03} \},&\!\!\!\text{otherwise.} > \end{cases}$ -Replace +Replace the non-normative note: -> Senders SHOULD choose the highest note plaintext lead byte allowed under this -> condition. +> * It is intentional that the definition of $\mathsf{allowedLeadBytes}$ does +> not currently depend on $\mathsf{protocol}$ or $\mathsf{txVersion}$. It +> might do so in future. with -> $\mathsf{ZIP2005ActivationHeight}$ specifies the first block height at which -> recoverable note plaintexts with lead byte $\mathtt{0x03}$ are allowed to -> occur in Orchard outputs. Orchard note plaintexts sent to *wallet-internal* -> addresses SHOULD use lead byte $\mathtt{0x03}$ starting from this height. -> Orchard note plaintexts in v5 transactions sent to *external* addresses -> SHOULD use lead byte $\mathtt{0x02}$ until wallet support for receiving note -> plaintexts with lead byte $\mathtt{0x03}$ is widespread in the Zcash ecosystem. -> -> In other cases, senders of non-dummy note plaintexts SHOULD choose the -> highest note plaintext lead byte allowed according to $\mathsf{allowedLeadBytes}.$ -> For dummy note plaintexts, any of the allowed lead bytes MAY be used (it does -> not matter which). - -Delete the non-normative note: - > * It is intentional that the definition of $\mathsf{allowedLeadBytes}$ does -> not currently depend on $\mathsf{protocol}$ or $\mathsf{txVersion}.$ It -> might do so in future. +> not currently depend on $\mathsf{txVersion}$. It might do so in future. Add the non-normative note: > * For *Ironwood-pool* note plaintexts, the only allowed lead byte value is > $\mathtt{0x03}$. -It is assumed for these changes that v6 transactions will not activate before -$\mathsf{ZIP2005ActivationHeight}$. - #### § 4.1.2 ‘Pseudo Random Functions’ In the list of places where $\mathsf{PRF^{expand}}$ is used: @@ -1988,26 +1967,26 @@ Funds in recoverable Orchard notes can therefore be spent through the Recovery Protocol after the switch. However, if the adversary attacked either Spendability (e.g. via a roadblock attack) or Spend authorization before the switch to the Recovery Protocol, then it could affect the legitimate holder's -ability to spend the funds afterward. The window between -$\mathsf{ZIP2005ActivationHeight}$ and the switch is the critical exposure -period for recoverable Orchard funds. +ability to spend the funds afterward. The window between the activation +height of this ZIP and the switch is the critical exposure period for +recoverable Orchard funds. Note that we can precisely identify the set of note commitments for recoverable -Orchard notes in v6 transactions, even if we cannot decrypt them, since only -recoverable notes are allowed in that case. However, Orchard notes in v5 -transactions after $\mathsf{ZIP2005ActivationHeight}$ could be either -recoverable or not. +notes, even though we cannot decrypt them: the recoverable notes are exactly the +*Ironwood-pool* notes, so their commitments are exactly those in the +*Ironwood pool*'s note commitment tree [^draft-zodl-valargroup-ironwood-txformat]. -We cannot identify the precise set of nullifiers for recoverable notes: an -Orchard action in a v6 transaction could be spending either a recoverable or -non-recoverable note, and their nullifier sets are indistinguishable. +We can likewise identify the precise set of nullifiers for recoverable notes: +they are exactly the *Ironwood-pool* nullifiers, which form a nullifier set +separate from that of the *Orchard pool* [^draft-zodl-valargroup-ironwood-txformat]. -On the other hand, within the Recovery Statement we know that the note being -spent is recoverable. +Within the Recovery Statement we also know that the note being spent is +recoverable. # Deployment -Let $\mathsf{ZIP2005ActivationHeight}$ be {{TBD}}. +The activation height of this ZIP is the NU6.3 ACTIVATION_HEIGHT +[^draft-zodl-valargroup-deploy-nu6.3]. As far as the author of this ZIP is aware, all existing Zcash wallets already derive $(\mathsf{ak}, \mathsf{nk}, \mathsf{rivk})$ from a spending key @@ -2028,21 +2007,25 @@ and randomization, which would otherwise have been difficult. Two options were considered for deployment: -1. Deploy this change prior to the next network upgrade. This optimizes - time-to-deployment. An activation height is still needed, in order to - identify a height from which wallets must re-scan if they are missing - recoverable notes due to late deployment. -2. Deploy this change at the same time as the next network upgrade (NU7), +1. Deploy this change prior to the next network upgrade. This would + optimize the time to deployment if there were a significant time + before the next upgrade. An activation height is still needed, in + order to identify a height from which wallets must re-scan if they + are missing recoverable notes due to late deployment. +2. Deploy this change at the same time as the next network upgrade (NU6.3), at the same time as v6 transactions. -With either option, it is proposed to enforce this change with v6 transactions. -That is, every Orchard output of a v6-onward transaction will be a recoverable -note. +The second option has been chosen. (The first had been the plan, until +the Orchard circuit soundness vulnerability was discovered.) Deploying at +an upgrade makes the set of recoverable notes easy to identify (they are +exactly the *Ironwood-pool* notes), and it strengthens the case for +migrating funds out of the *Orchard pool*: a migrating user gains both +quantum recoverability and the improvement in supply-integrity confidence +that NU6.3 provides. -This ZIP currently reflects the first option. The risk of some wallets -not having deployed support for receiving the new note plaintext format -is mitigated by initially only using that format for note plaintexts sent -to wallet-internal addresses. +This change is enforced from NU6.3: every *Ironwood-pool* output note is a +recoverable note, and no *Orchard-pool* output note is +[^draft-zodl-valargroup-ironwood-txformat]. When a compliant wallet receives an Orchard note with lead byte $\mathtt{0x02}$, the associated funds are not recoverable and need to be @@ -2103,8 +2086,6 @@ manipulate the note selection algorithm to some extent. [^zip-0231]: [ZIP 231: Memo Bundles](zip-0231.md) -[^zip-0248]: [ZIP 248: Extensible Transaction Format (PR: zcash/zips#1156)](https://github.com/zcash/zips/pull/1156) - [^zip-0312]: [ZIP 312: FROST for Spend Authorization Multisignatures](zip-0312.rst) [^zip-0312-key-generation]: [ZIP 312: FROST for Spend Authorization Multisignatures — Key Generation](zip-0312.rst#key-generation) From 3273b414836635e4882c1e24f46b3957b1e2a1f1 Mon Sep 17 00:00:00 2001 From: Daira-Emma Hopwood Date: Tue, 23 Jun 2026 21:56:01 +0100 Subject: [PATCH 10/14] draft-zodl-valargroup-ironwood-txformat: add comment about non-recovery of funds in shielded pools other than Ironwood. Signed-off-by: Daira-Emma Hopwood --- zips/draft-zodl-valargroup-ironwood-txformat.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/zips/draft-zodl-valargroup-ironwood-txformat.md b/zips/draft-zodl-valargroup-ironwood-txformat.md index 5fc9829e8..a74fdc2cb 100644 --- a/zips/draft-zodl-valargroup-ironwood-txformat.md +++ b/zips/draft-zodl-valargroup-ironwood-txformat.md @@ -96,6 +96,11 @@ to remain secure against discrete-log-breaking and quantum adversaries. This cha does not by itself make Zcash secure against attacks using quantum computers, but is a necessary and substantial step toward that goal. +Recovery would not be possible for funds still in the *Sprout*, *Sapling*, or +*Orchard pools*; all such funds would be inaccessible after their respective +protocols are disabled. They should be migrated to the *Ironwood pool* in +order to take advantage of this change. + The version 6 transaction format also changes the authorization structure for all supported shielded pools (*Sapling*, *Orchard*, and *Ironwood*) so that anchors are considered to be authorizing data rather than effecting data. This allows a transaction From 3fc6dfec4dc269f88df81c8e34b22c1fe26b5564 Mon Sep 17 00:00:00 2001 From: Daira-Emma Hopwood Date: Tue, 23 Jun 2026 21:58:08 +0100 Subject: [PATCH 11/14] Add ZIP 258. Co-authored-by: Claude Opus 4.8 (1M context) Signed-off-by: Daira-Emma Hopwood --- README.rst | 4 ++ zips/zip-0258.md | 180 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 184 insertions(+) create mode 100644 zips/zip-0258.md diff --git a/README.rst b/README.rst index 0dc627a3f..18edc0e01 100644 --- a/README.rst +++ b/README.rst @@ -131,6 +131,7 @@ Released ZIPs 252 Deployment of the NU5 Network Upgrade Final 253 Deployment of the NU6 Network Upgrade Final 255 Deployment of the NU6.1 Network Upgrade Proposed + 257 Deployment of the Orchard Temporary Vulnerability Mitigation and NU6.2 Network Upgrade Proposed 271 Dev Fund Extension and One-Time Disbursement Proposed 300 Cross-chain Atomic Transactions Proposed 301 Zcash Stratum Protocol Active @@ -184,6 +185,7 @@ written. 240 Standard Transaction Rules Reserved zips#648 245 Transaction Identifier Digests & Signature Validation for Transparent Zcash Extensions Draft zips#384 246 Digests for the Version 6 Transaction Format Draft + 258 Deployment of the NU6.3 Network Upgrade Draft 260 Extending Block Messages with Additional Authentication Data Reserved zips#522 270 Key Rotation for Tracked Signing Keys Reserved zips#1047 302 Standardized Memo Field Format Draft zips#366 @@ -334,6 +336,8 @@ Index of ZIPs 253 Deployment of the NU6 Network Upgrade Final 254 Deployment of the NU7 Network Upgrade (Withdrawn) Withdrawn 255 Deployment of the NU6.1 Network Upgrade Proposed + 257 Deployment of the Orchard Temporary Vulnerability Mitigation and NU6.2 Network Upgrade Proposed + 258 Deployment of the NU6.3 Network Upgrade Draft 260 Extending Block Messages with Additional Authentication Data Reserved 270 Key Rotation for Tracked Signing Keys Reserved 271 Dev Fund Extension and One-Time Disbursement Proposed diff --git a/zips/zip-0258.md b/zips/zip-0258.md new file mode 100644 index 000000000..7e86954c1 --- /dev/null +++ b/zips/zip-0258.md @@ -0,0 +1,180 @@ + ZIP: 258 + Title: Deployment of the NU6.3 Network Upgrade + Owners: Daira-Emma Hopwood + Status: Draft + Category: Consensus / Network + Created: 2026-06-19 + License: MIT + Discussions-To: ‹https://github.com/zcash/zips/issues/XXXX› + + +# Terminology + +The key words "MUST", "MUST NOT", and "SHOULD" in this document are to be interpreted as +described in BCP 14 [^BCP14] when, and only when, they appear in all capitals. + +The term "network upgrade" in this document is to be interpreted as described in +ZIP 200. [^zip-0200] + +The character § is used when referring to sections of the Zcash Protocol +Specification. [^protocol] + +The terms "Mainnet" and "Testnet" are to be interpreted as described in § 3.12 +‘Mainnet and Testnet’. [^protocol-networks] + +The terms "Orchard protocol", "*Orchard pool*", "*Ironwood pool*", "*Orchard-pool* Action", and +"version 6 transaction" are to be interpreted as described in +[^draft-zodl-valargroup-ironwood-txformat]. + + +# Abstract + +This proposal defines the deployment of the NU6.3 network upgrade, which introduces the +Ironwood shielded pool. The consensus changes for NU6.3 are specified across the version 6 +transaction format [^draft-zodl-valargroup-ironwood-txformat], the Orchard Action circuit +update [^draft-zodl-valargroup-action-circuit-update], ZIP 2005 [^zip-2005], and this ZIP, +which fixes the activation parameters and the consensus rules that gate on NU6.3 activation +regardless of transaction version. + + +# Specification + +## NU6.3 deployment + +The primary sources of information about NU6.3 consensus protocol changes are: + +* The Zcash Protocol Specification [^protocol]. +* ZIP 200: Network Upgrade Mechanism [^zip-0200]. +* The version 6 transaction format [^draft-zodl-valargroup-ironwood-txformat], the Orchard + Action circuit update [^draft-zodl-valargroup-action-circuit-update], and ZIP 2005 + [^zip-2005]. + +The network handshake and peer management mechanisms defined in ZIP 201 [^zip-0201] also +apply to this upgrade. + +The following network upgrade constants [^zip-0200] are defined for the NU6.3 upgrade: + +CONSENSUS_BRANCH_ID +: TBD + +ACTIVATION_HEIGHT (NU6.3) +: Testnet: TBD +: Mainnet: TBD + +MIN_NETWORK_PROTOCOL_VERSION (NU6.3) +: Testnet: TBD +: Mainnet: TBD + +The version group ID for version 6 transactions [^draft-zodl-valargroup-ironwood-txformat] is: + +TX_VERSION_GROUP_ID (v6) +: TBD + +For each network (Testnet and Mainnet), nodes compatible with NU6.3 activation on that +network MUST advertise a network protocol version that is greater than or equal to the +MIN_NETWORK_PROTOCOL_VERSION (NU6.3) for that activation. + +## Consensus rules from NU6.3 activation + +The following consensus rules apply to every transaction in a block mined at a height greater +than or equal to the NU6.3 ACTIVATION_HEIGHT, regardless of its transaction version. They +ensure that, after NU6.3, the *Orchard pool* can only be spent from (not added to), and that +cross-address transfers within the *Orchard pool* are disabled, so that newly created shielded +value is directed into the *Ironwood pool*. + +* A coinbase transaction MUST NOT contain any *Orchard-pool* Actions; that is, its Orchard + component MUST be empty. + +* Every *Orchard-pool* Action MUST be created with cross-address transfers disabled (the + `enableCrossAddress` bit clear). This restriction is enforced by the Action circuit + verifying key, which is selected by block height + [^draft-zodl-valargroup-action-circuit-update], so it applies to *Orchard-pool* Actions in + version 5 transactions as well as version 6. + +* No new value may enter the *Orchard pool*: for every transaction, + $\mathsf{v}^{\textit{OrchardPoolBalance}} \geq 0$ (so the encoded `valueBalanceOrchard` is + nonnegative). Value may still leave the *Orchard pool*, including across the turnstile into the + *Ironwood pool*. + +## Changes to ZIP 209 + +ZIP 209 [^zip-0209] is extended to track an Ironwood chain value pool balance and to require +it, like the other shielded pool balances, not to become negative. + +In the Terminology section, after the paragraph + +> The "Orchard chain value pool balance" for a given block chain is the negation of the sum +> of all `valueBalanceOrchard` fields for transactions in the block chain. (Before NU5 has +> activated, the Orchard chain value pool balance is zero.) + +add + +> The "Ironwood chain value pool balance" for a given block chain is the negation of the sum +> of all `valueBalanceIronwood` fields for transactions in the block chain. (Before NU6.3 +> has activated, the Ironwood chain value pool balance is zero.) + +In the Specification section, replace + +> If any of the "Sprout chain value pool balance", "Sapling chain value pool balance", or +> "Orchard chain value pool balance" would become negative in the block chain created as a +> result of accepting a block, then all nodes MUST reject the block as invalid. + +with + +> If any of the "Sprout chain value pool balance", "Sapling chain value pool balance", +> "Orchard chain value pool balance", or "Ironwood chain value pool balance" would become +> negative in the block chain created as a result of accepting a block, then all nodes MUST +> reject the block as invalid. + +Corresponding changes are required in § 4.17 ‘Chain Value Pool Balances’ +[^protocol-chainvalue] to define an Ironwood chain value pool balance alongside those for the +existing *Sprout*, *Sapling*, and *Orchard pools*; these mirror the changes above and are not +spelled out here. + +## ZIP 2005 activation + +ZIP 2005 [^zip-2005] activates at NU6.3: its $\mathsf{ZIP2005ActivationHeight}$ (also referenced +by § 3.2.1 ‘Note Plaintexts and Memo Fields’) is the NU6.3 ACTIVATION_HEIGHT for each network. From that height, every *Ironwood-pool* output note uses +the quantum-recoverable note plaintext format (lead byte `0x03`) defined in ZIP 2005. (ZIP 2005 +has not been deployed, so it is updated directly rather than via a "Changes to" section here.) + +## Implementation support + +It is proposed that `zcashd` will not implement the consensus changes for NU6.3. `zebra` is +therefore expected to be the only full-validator implementation able to follow the consensus +Zcash block chain from NU6.3 activation onward. + + +# Backward compatibility + +Prior to the network upgrade activating on each network, NU6.3 and pre-NU6.3 nodes are +compatible and can connect to each other. However, NU6.3 nodes will have a preference for +connecting to other NU6.3 nodes, so pre-NU6.3 nodes will gradually be disconnected in the run +up to activation. + +Once the network upgrades, even though pre-NU6.3 nodes can still accept the numerically larger +protocol version used by NU6.3 as being valid, NU6.3 nodes will always disconnect peers using +lower protocol versions. + + +# References + +[^BCP14]: [Information on BCP 14 — "RFC 2119: Key words for use in RFCs to Indicate Requirement Levels" and "RFC 8174: Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words"](https://www.rfc-editor.org/info/bcp14) + +[^protocol]: [Zcash Protocol Specification, Version 2025.6.3 [NU6.1] or later](protocol/protocol.pdf) + +[^protocol-networks]: [Zcash Protocol Specification, Version 2025.6.3 [NU6.1]. Section 3.12: Mainnet and Testnet](protocol/protocol.pdf#networks) + +[^protocol-chainvalue]: [Zcash Protocol Specification, Version 2025.6.3 [NU6.1] or later. Section 4.17: Chain Value Pool Balances](protocol/protocol.pdf#chainvaluepoolbalances) + +[^zip-0200]: [ZIP 200: Network Upgrade Mechanism](zip-0200.rst) + +[^zip-0201]: [ZIP 201: Network Peer Management for Overwinter](zip-0201.rst) + +[^zip-0209]: [ZIP 209: Prohibit Negative Shielded Chain Value Pool Balances](zip-0209.rst) + +[^zip-2005]: [ZIP 2005: Ironwood Quantum Recoverability](zip-2005.md) + +[^draft-zodl-valargroup-ironwood-txformat]: [Version 6 Transaction Format (draft)](draft-zodl-valargroup-ironwood-txformat.md) + +[^draft-zodl-valargroup-action-circuit-update]: [NU6.2 and NU6.3 updates to the Orchard Circuit (draft)](draft-zodl-valargroup-action-circuit-update.md) From 53ff9b82b7387cf0e59f60bb3944471ca9829ef8 Mon Sep 17 00:00:00 2001 From: Dev Ojha Date: Tue, 23 Jun 2026 15:44:15 -0600 Subject: [PATCH 12/14] Apply suggestions from 2026-06-23 ZIP sync. Co-authored-by: Daira-Emma Hopwood Co-authored-by: Tal Derei Co-authored-by: Dev Ojha --- ...draft-zodl-valargroup-ironwood-txformat.md | 57 +++---------------- zips/zip-0258.md | 2 +- 2 files changed, 10 insertions(+), 49 deletions(-) diff --git a/zips/draft-zodl-valargroup-ironwood-txformat.md b/zips/draft-zodl-valargroup-ironwood-txformat.md index a74fdc2cb..8506741e1 100644 --- a/zips/draft-zodl-valargroup-ironwood-txformat.md +++ b/zips/draft-zodl-valargroup-ironwood-txformat.md @@ -48,7 +48,7 @@ Orchard protocol (or Orchard shielded protocol) # Abstract This ZIP defines version 6 of the Zcash transaction format, to be activated at NU6.3 -[^zip-0257]. +[^zip-0258]. NU6.3 [^draft-zodl-valargroup-deploy-nu6.3] introduces the Ironwood shielded pool, an Orchard-protocol successor to the *Orchard pool*, that ensures quantum recoverability @@ -116,9 +116,8 @@ in [^draft-zodl-valargroup-ironwood-migration]. There is no reason to believe that the soundness vulnerability described in [^zip-0257] could have led to any compromise of key material associated with existing addresses. -However, we encourage users to rotate addresses regularly in any case, and wallet -developers to support that practice. Further implications of address usage policy for -privacy against quantum adversaries are discussed in [^zip-2005]. +Independent of the soundness bug, we recommend address rotation for quantum privacy +implications discussed in [^zip-2005]. # Requirements @@ -147,6 +146,8 @@ The `flags` fields in the *Orchard-pool* and *Ironwood-pool* components must sup encoding an indication of whether outputs to the *Orchard pool* are required to use a protocol-level address for which the transaction creator can authorize spends. +The one known Orchard-supporting hardware wallet, Keystone, must continue to be able to +sign v5 tx format Orchard -> Transparent unshielding transactions, without firmware update. # Non-requirements @@ -174,13 +175,13 @@ is new. | Note | Bytes | Name | Data Type | Description | ---- | ------------------------------- | ------------------------ | -------------------------------------- | ----------- -| **Common Transaction Fields** ||||| +| **Common Transaction Fields (unchanged from v5)** ||||| | | $4$ | `header` | `uint32` | Contains the `fOverwintered` flag (bit 31, always set) and `version` (bits 30 .. 0), which MUST be `6`. | | $4$ | `nVersionGroupId` | `uint32` | Version group ID (nonzero); the version 6 value fixed in [^draft-zodl-valargroup-deploy-nu6.3]. | | $4$ | `nConsensusBranchId` | `uint32` | Consensus branch ID; MUST be the NU6.3 branch ID [^draft-zodl-valargroup-deploy-nu6.3]. | | $4$ | `lock_time` | `uint32` | Unix-epoch UTC time or block height, encoded as in Bitcoin. | | $4$ | `nExpiryHeight` | `uint32` | A block height in {1 .. 499999999} after which the transaction will expire, or 0 to disable expiry. [^zip-0203] -| **Transparent Transaction Fields** ||||| +| **Transparent Transaction Fields (unchanged from v5)** ||||| | | `varies` | `tx_in_count` | `compactSize` | Number of transparent inputs in `tx_in`. | | `varies` | `tx_in` | `tx_in` | Transparent inputs, encoded as in Bitcoin. | | `varies` | `tx_out_count` | `compactSize` | Number of transparent outputs in `tx_out`. @@ -255,7 +256,6 @@ and `flagsIronwood`, so the previous `...Orchard` suffix would be misleading. Before NU6.3 this bit of `flagsOrchard` was reserved as 0 in v5 transactions. * For coinbase transactions, - * `flagsOrchard` MUST be 0. * The `enableSpends` bit of `flagsIronwood` MUST be 0. * The `anchorOrchard` field refers to the Orchard note commitment tree, and the @@ -279,7 +279,7 @@ $\mathsf{v}^{\textit{OrchardPoolBalance}}$ must be nonnegative.) Version 6 transaction identifiers (txids), authorizing-data commitments ("auth digests"), and signature hashes are computed as in ZIP 244 [^zip-0244], with two changes: an -**Ironwood component digest** is added, and for version 6 the Orchard and Ironwood anchors +**Ironwood component digest** is added, and for version 6 the Sapling, Orchard and Ironwood anchors move from effecting data to authorizing data. The version 5 algorithm is unchanged. ### Ironwood component digest @@ -411,49 +411,10 @@ and their `auth_digest`s are present only if the corresponding component is non- ### Block commitments -The `hashBlockCommitments` authorizing-data commitment [^zip-0244] incorporates the version 6 auth +The `hashAuthDataRoot` component of `hashBlockCommitments` [^zip-0244] incorporates the version 6 auth digest — which now includes the Ironwood auth digest, and (per the change above) the anchors — with no further structural change. -## Changes to ZIP 209 - -ZIP 209 [^zip-0209] is extended to track an Ironwood chain value pool balance and to require -it, like the other shielded pool balances, not to become negative. - -[TODO take account of changes that should be (but are not currently) made in ZIP 256. -The check for each pool is now that the chain value pool balance stays within [0, MAX_MONEY].] - -In the Terminology section, after the paragraph - -> The "Orchard chain value pool balance" for a given block chain is the negation of the sum -> of all `valueBalanceOrchard` fields for transactions in the block chain. (Before NU5 has -> activated, the Orchard chain value pool balance is zero.) - -add - -> The "Ironwood chain value pool balance" for a given block chain is the negation of the sum -> of all `valueBalanceIronwood` fields for transactions in the block chain. (Before NU6.3 -> has activated, the Ironwood chain value pool balance is zero.) - -In the Specification section, replace - -> If any of the "Sprout chain value pool balance", "Sapling chain value pool balance", or -> "Orchard chain value pool balance" would become negative in the block chain created as a -> result of accepting a block, then all nodes MUST reject the block as invalid. - -with - -> If any of the "Sprout chain value pool balance", "Sapling chain value pool balance", -> "Orchard chain value pool balance", or "Ironwood chain value pool balance" would become -> negative in the block chain created as a result of accepting a block, then all nodes MUST -> reject the block as invalid. - -## Changes to the Protocol Specification - -Changes corresponding to the [ZIP 209 changes above](#changestozip209) are required in -§ 4.17 ‘Chain Value Pool Balances’ [^protocol-chainvalue] to define an Ironwood chain value -pool balance alongside those for the existing Sprout, Sapling, and *Orchard pools*. These -mirror the changes above and are not spelled out here. ## Changes to ZIP 221 diff --git a/zips/zip-0258.md b/zips/zip-0258.md index 7e86954c1..d86a2a671 100644 --- a/zips/zip-0258.md +++ b/zips/zip-0258.md @@ -86,7 +86,7 @@ value is directed into the *Ironwood pool*. component MUST be empty. * Every *Orchard-pool* Action MUST be created with cross-address transfers disabled (the - `enableCrossAddress` bit clear). This restriction is enforced by the Action circuit + `enableCrossAddress` bit set as 0). This restriction is enforced by the Action circuit verifying key, which is selected by block height [^draft-zodl-valargroup-action-circuit-update], so it applies to *Orchard-pool* Actions in version 5 transactions as well as version 6. From 6525c4f6a7ca53d309a65822dc8ea0966d327c60 Mon Sep 17 00:00:00 2001 From: Daira-Emma Hopwood Date: Tue, 23 Jun 2026 23:34:57 +0100 Subject: [PATCH 13/14] ZIP 258: Minor cleanups. * Set the `Discussions-To` field to #1304 * Add a TODO about updates to ZIP 209. * Add a section heading before the ZIP 209-related changes to the protocol specification. * Cosmetic line-wrap and header fix. Signed-off-by: Daira-Emma Hopwood --- zips/zip-0258.md | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/zips/zip-0258.md b/zips/zip-0258.md index d86a2a671..98991c8f6 100644 --- a/zips/zip-0258.md +++ b/zips/zip-0258.md @@ -1,3 +1,4 @@ + ZIP: 258 Title: Deployment of the NU6.3 Network Upgrade Owners: Daira-Emma Hopwood @@ -5,7 +6,7 @@ Category: Consensus / Network Created: 2026-06-19 License: MIT - Discussions-To: ‹https://github.com/zcash/zips/issues/XXXX› + Discussions-To: # Terminology @@ -101,6 +102,9 @@ value is directed into the *Ironwood pool*. ZIP 209 [^zip-0209] is extended to track an Ironwood chain value pool balance and to require it, like the other shielded pool balances, not to become negative. +[TODO take account of changes that should be (but are not currently) made in ZIP 256. +The check for each pool is now that the chain value pool balance stays within [0, MAX_MONEY].] + In the Terminology section, after the paragraph > The "Orchard chain value pool balance" for a given block chain is the negation of the sum @@ -126,17 +130,19 @@ with > negative in the block chain created as a result of accepting a block, then all nodes MUST > reject the block as invalid. -Corresponding changes are required in § 4.17 ‘Chain Value Pool Balances’ -[^protocol-chainvalue] to define an Ironwood chain value pool balance alongside those for the -existing *Sprout*, *Sapling*, and *Orchard pools*; these mirror the changes above and are not -spelled out here. +## Changes to the Protocol Specification + +Changes corresponding to the [ZIP 209 changes above](#changestozip209) are required in +§ 4.17 ‘Chain Value Pool Balances’ [^protocol-chainvalue] to define an Ironwood chain value +pool balance alongside those for the existing Sprout, Sapling, and *Orchard pools*. These +mirror the changes above and are not spelled out here. ## ZIP 2005 activation ZIP 2005 [^zip-2005] activates at NU6.3: its $\mathsf{ZIP2005ActivationHeight}$ (also referenced -by § 3.2.1 ‘Note Plaintexts and Memo Fields’) is the NU6.3 ACTIVATION_HEIGHT for each network. From that height, every *Ironwood-pool* output note uses -the quantum-recoverable note plaintext format (lead byte `0x03`) defined in ZIP 2005. (ZIP 2005 -has not been deployed, so it is updated directly rather than via a "Changes to" section here.) +by § 3.2.1 ‘Note Plaintexts and Memo Fields’) is the NU6.3 ACTIVATION_HEIGHT for each network. +From that height, every *Ironwood-pool* output note uses the quantum-recoverable note plaintext +format (lead byte `0x03`) defined in ZIP 2005. ## Implementation support From d138c0dea9a5270006d2ca932731f4bfab3ac93b Mon Sep 17 00:00:00 2001 From: Daira-Emma Hopwood Date: Tue, 23 Jun 2026 23:32:19 +0100 Subject: [PATCH 14/14] ZIP 258: Add consensus branch ID for NU6.3. echo "I want freedom, the right to self-expression, everybody's right to beautiful, radiant things." |sha256sum |head --bytes=8 Signed-off-by: Daira-Emma Hopwood --- zips/zip-0258.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zips/zip-0258.md b/zips/zip-0258.md index 98991c8f6..304528ddd 100644 --- a/zips/zip-0258.md +++ b/zips/zip-0258.md @@ -56,7 +56,7 @@ apply to this upgrade. The following network upgrade constants [^zip-0200] are defined for the NU6.3 upgrade: CONSENSUS_BRANCH_ID -: TBD +: 0x37A5165B ACTIVATION_HEIGHT (NU6.3) : Testnet: TBD