This section extends the Orchard note by one field, the Asset Base (§3.1); extends the note commitment by a case split whose native branch is the Orchard commitment (§3.2); states the derivations of the note’s randomness from its seed and what no live text fixes of them (§3.3); states the field set of the note plaintext (§3.4); and replaces the fixed value base of the net value commitment by the Asset Base (§3.5). It proves hiding and binding of both commitments within and across Assets. Every construction of the section is taken from ZIP 226, which is Draft; the Orchard objects it extends are those of the Ironwood Guide and are cited, not restated.
An OrchardZSA note is a tuple
of type
with as in §2.3. It is the note of the Ironwood Guide’s Definition “Note” (§“Notes”) with exactly one added field, the Asset Base of the note’s Asset: for a Custom Asset the point of Construction 2.10, for the Native Asset the point of Definition 2.15. The components and their types, with typed in , are those of the cited definition. ZIP 226 types the added field in , a group element that is neither the identity nor (Table 1). The value counts units of the note’s Asset; the Ironwood Guide’s Definition “Unit of value” (the zatoshi) applies only when (ZIP 226, “Note Structure and Commitment”; protocol specification, §“Shielded Pools and Notes”). Class: specified.
Let be an OrchardZSA note, , and
the -bit Orchard message of the Ironwood Guide’s Definition “Note commitment”. Let
where the -bit star encoding has the bytes of Definition 2.14. The string has the fixed length : chunks of bits with padding , against chunks for , within the chunk bound of the Ironwood Guide’s Construction “Sinsemilla hash on Pallas”. With the Orchard blinding base and the hash point
the OrchardZSA note commitment of is defined in two branches. In the native branch, , it is
with the Orchard commitment of the cited definition. In the custom branch, , it is
In both branches , and the extracted note commitment is , as for Orchard. The custom branch is not the routed of the Ironwood Guide’s Construction “Sinsemilla commitment and short commitment” for any domain: its hash domain is new, while its blinding base is Orchard’s. The hash base is a row of Table 3. The new domain hashes the single length , as the Ironwood Guide’s Remark “Fixed length” requires of every domain (ZIP 226, “Note Structure and Commitment”; protocol specification, §“Sinsemilla commitments”). Class: specified.
In the native branch the Asset Base is not an input of the commitment. Hence the OrchardZSA commitment of a note with equals, bit for bit, the Orchard commitment of its Orchard components; an Orchard note and a native OrchardZSA note with the same Orchard components have the same ; and every leaf of the Orchard-pool note commitment tree created before OrchardZSA remains a valid opening target. Both branches output in , so custom-branch commitments enter the same tree. Each statement is immediate from Definition 3.2 (ZIP 226, “Note Structure and Commitment” and “Rationale for Note Commitment”).
Hiding with one output distribution. Let be uniform on and independent of the content. For every content whose hash point in its branch is not , the commitment is uniform on . Hence the distributions of and of depend neither on the content nor on the branch, and commitments to ZEC and to Custom Assets are identically distributed.
Binding. Under the Ironwood Guide’s Assumptions “Discrete logarithms on Pallas” and “GroupHash as a random oracle”, no efficient algorithm outputs, except with negligible probability, OrchardZSA notes with ; in particular none with , and none whose contents are equal except for the Asset Base.
Under the same assumptions, no efficient algorithm outputs, except with negligible probability, a custom-branch content with .
Status (Definition 1.3): proved here for the specified construction; conditional on no unspecified object. Part (a) is stated for uniform and does not cover a derived trapdoor, whose derivation is classified in Remark 3.6.
Write
The generators , , and are values of at pairwise distinct inputs, by Lemma 2.8 and the Ironwood Guide’s table of §“GroupHash, domain separation, and nothing-up-my-sleeve generators”.
(a) In both branches , with the same blinding base and a point fixed by the content. The proof of the Ironwood Guide’s Lemma “Hiding and binding of SinsemillaCommit” (i) uses only these two facts, the first established for before that volume’s Proposition “Hiding and binding of note commitments”; so is uniform, whatever the content and the branch. The value is a fixed function of .
(b) Step 1. The map from a content to its branch and message is injective except on a diversifier collision: the branch is fixed by whether ; in the native branch the Asset Base is determined, and the message determines the Orchard components; in the custom branch the message determines them and, by the injectivity of the star encoding, the Asset Base. A diversifier collision is excluded as in Step 1 of the proof of the Ironwood Guide’s Proposition “Hiding and binding of note commitments” (b). Outside that event, gives distinct branches, or one branch with distinct messages, or one branch and one message with .
Step 2. Let . Both commitments are points, and by the Ironwood Guide’s Lemma “Coordinate extraction identifies opposite points”, ; both hash points are not . Three cases remain.
Both native. The Orchard components differ, since the Asset Bases agree, and the Ironwood Guide’s Proposition “Hiding and binding of note commitments” (b) applies.
Both custom. The three steps of the Ironwood Guide’s Proposition “Collision resistance of the Sinsemilla instances” hold for the message length and chunks. Since , every difference of the unfolding in its proof has absolute value below , so is injective, and the coefficient on in the opposite case is non-zero modulo . Equal points on distinct messages, or opposite points, therefore give a non-trivial relation among , the and . Equal messages with and equal points give , impossible for in a group of prime order ; opposite points on equal messages are the opposite case above.
Across branches. Let be native and custom, with pieces and of and . Unfolding both hash points gives
The coefficient on is non-zero modulo .
In each case the relation is non-trivial among values of at distinct inputs, which the Ironwood Guide’s Lemma “Relations among fixed generators” excludes except with negligible probability. The first particular case of (b) is the case across branches; the second is either that case or the case of two custom notes with distinct messages.
(c) Step (2) of the proof of the cited proposition applies to the domain of : an operand arises only if or some is , itself a non-trivial relation, and an exceptional case at step yields a relation with coefficient on , where and . The same lemma excludes both. □
ZIP 226 argues the property in rationale only, attributing it to the Sinsemilla hash function (“by definition of the Sinsemilla hash function”, “Rationale for Note Commitment”; see also “Privacy Implications”). The unblinded hash is deterministic and hides nothing; the hiding comes from the term . The plaintext equivalence of Orchard and native OrchardZSA notes, which is withdrawn ZIP 230 text, is not used.
Commitments are hidden only as group elements. ZIP 226, “Privacy Implications”, states that Orchard note commitments are distinguishable from OrchardZSA note commitments by context, since the two protocols are carried by different transaction versions (in its text, version for Orchard and version for OrchardZSA), whether or not both are active. No current format assigns OrchardZSA a version: version is the format of ZIP 229, “Transaction Format”, which carries Orchard-pool and Ironwood-pool Actions and no ZSA. ZIP 248, “Potential Future Bundle Types”, lists OrchardZSA provisionally as variant of bundle type , the Orchard bundle type, whose public variant identifier would likewise separate the two. Within one OrchardZSA bundle, commitments to ZEC and to Custom Assets are identically distributed under a uniform trapdoor (Proposition 3.3(a)); the derived trapdoor, undefined in live text, is not covered (Remark 3.6). The carrier is treated in “The transaction carrier” (§8).
ZIP 226, “Abstract”, is defined relative to the protocol with ZIP 2005 applied, and reads , and the recoverable plaintexts as ZIP 2005 defines them; it calls ZIP 2005 “Orchard Quantum Recoverability”. ZIP 2005 is now “Ironwood Quantum Recoverability” (Proposed). It is active with NU6.3 and merged into the protocol specification (ZIP 258, “ZIP 2005 activation”; ZIP 2005, “Specification Updates”), and it applies its recoverable plaintext format, lead byte , only to Ironwood-pool notes (ZIP 229, “Transaction Format”), while ZIP 226 places OrchardZSA notes in the Orchard pool (Remark 1.7). The two premises no longer coincide. Two constructions depend on them: the lead byte, here, and the seed of split nullifiers, at “Nullifiers of OrchardZSA notes” (§4.2). The derivations of ZIP 2005 are constructed in the Ironwood Guide, §“The note seed: Ironwood derivations (lead byte )”, and are cited, not restated.
Let an OrchardZSA note be created with recipient , value , element , note seed uniform on the -byte strings, and lead byte . Let and . Then
where does not depend on the lead byte, and is defined only for two lead bytes:
the latter being that of the Ironwood Guide’s Construction “Derivations under lead byte ”. Neither input list contains . ZIP 226, “Note Structure and Commitment”, requires to be the placeholder whenever §“Sending Notes (Orchard)” or §“Dummy Notes (Orchard)” of the protocol specification is invoked, directly or indirectly, for an OrchardZSA note. That rule speaks of “the computation of and ”; under the amended specification the lead byte enters only . The specification admits lead byte in the Orchard pool and in the Ironwood pool only (protocol specification, §“Note Plaintexts and Memo Fields”), and ZIP 2005, “Usage with other proposals requiring note plaintext format changes”, requires such proposals to use a new lead byte value or values. Classes: the derivation of is specified; the derivation of and the value of the lead byte are classified in Remark 3.6.
Each part carries one class of Definition 1.2.
The derivation of is specified.
Until the byte is assigned, the of an OrchardZSA note is undefined in live text, and the Ironwood Guide’s Proposition “Hiding under the derived trapdoor” does not transfer. The OrchardZSA Action statement, like the Orchard one, does not check the derivation (Ironwood Guide, Remark “What the statement does not check” (ii)), so for the outputs of a transfer the gap binds only sender and recipient. Its consequence for validators is stated at “Issue Notes” (§6.1).
The OrchardZSA note plaintext of a created OrchardZSA note carries the fields of the Ironwood Guide’s Definition “Note plaintext” and, in addition, the -byte string of Definition 2.14 (ZIP 226, “Note Structure and Commitment”). The recipient needs to recompute by Definition 3.2 and to spend the note. Given an encoding of fixed length and an assigned lead byte, the Ironwood Guide’s Constructions “Encryption to the recipient” and “Trial decryption” apply unchanged. Its acceptance checks (§“Trial decryption and note acceptance”) apply with the lead-byte check and the derivation of replaced by those of that lead byte (Remark 3.6), required to decode to a point of , and the recomputed commitment that of Definition 3.2. Classes: the field set is specified; the encoding is an open problem.
ZIP 226 delegates the encoding to ZIP 230, which is Withdrawn. Its layout
presupposes the memo key of ZIP 231, which is now defined only for version- transactions (ZIP 231, “Specification”), and a lead byte that live text assigns otherwise (Remark 3.6). No current ZIP defines an OrchardZSA plaintext encoding. The statement of withdrawn ZIP 230 that Orchard and native OrchardZSA notes need not be distinguished in plaintexts carries no weight; the commitment half of that statement follows from Definition 3.2.
Let an Action (Ironwood Guide, Definition “Action”) consume an OrchardZSA note of value and create an OrchardZSA note of value , both with Asset Base . Its net value is the integer
For drawn by the Ironwood Guide’s Construction “Value-commitment trapdoor”, its per-Asset value commitment is
with and the reading of modulo as in the Ironwood Guide’s Definition “Net value commitment”. For it equals . The only change against Orchard is that the fixed-base multiplication by becomes a variable-base multiplication by the Action’s Asset Base; the randomness term is unchanged. The condition that controls the base is stated in “The OrchardZSA Action statement” (§4.3) (ZIP 226, “Value Commitment”; protocol specification, §“Homomorphic Pedersen commitments (Sapling and Orchard)”). Class: specified.
Perfect hiding. For every and every integer , with uniform on and independent of , the point is uniform on .
Binding across bases. Call a base admissible if it is given as the value of at the input or at for a byte string . Under the Ironwood Guide’s Assumptions “Discrete logarithms on Pallas” and “GroupHash as a random oracle”, no efficient algorithm outputs, except with negligible probability, two families and of polynomial size, of admissible bases with integers, and trapdoors , with
while the base-value vectors differ: for some group-hash input , the sum of the at bases with input and the sum of the at bases with input differ modulo . For one pair each, and with inputs and , equal commitments force , hence , and , or else .
Binding fails for arbitrary bases. For , and , the point satisfies and , so the two openings and share every trapdoor and every commitment. Hence the Action statement must control the base.
Status (Definition 1.3): proved here; conditional on no unspecified object.
(i) The proof of the Ironwood Guide’s Lemma “Hiding and binding of net value commitments” (i) uses only and the prime order of the group, not the value base: is uniform, and so is its translate by the fixed point .
(ii) Let denote the value of at input , and the difference, modulo , of the two sums of values at input . Grouping both sides by input, a double opening gives
with some , the relation of the proof of the Crypto Guide’s Theorem “Properties of the vector commitment” (§“Pedersen vector commitments”). The inputs are pairwise distinct by construction, and distinct from the input of : the input of differs from it in the message, and every input under z.cash:OrchardZSA differs from both by Lemma 2.8. The relation is therefore non-trivial among values of at distinct inputs, and the Ironwood Guide’s Lemma “Relations among fixed generators” excludes it except with negligible probability. For one pair each, gives and , non-trivial unless ; and gives , non-trivial unless .
(iii) Direct computation: ; the scalar is neither nor modulo , and generates the group of prime order , so and . □