This section instantiates the re-randomised protocol of §5 over the ciphersuite FROST(Pallas, BLAKE2b-512) and composes it with the Orchard protocol. After the ciphersuite comes the section’s main result: the aggregate is an ordinary RedPallas spend-authorisation signature under the shifted group key, and consensus accepts it for an Action exactly when the effective randomiser is the Action’s randomiser. There follow the sign normalisation that makes a threshold group key a spend validating key; the key tree of ZIP 2005 for an Orchard-protocol threshold key, with the lemma that its common secrets are simulable; the order of randomiser, randomised validating key, signature digest and proof that the main result forces; and the threshold construction of an Action in that order. Throughout, , , the effective randomiser is (Definition 5.3) and the randomiser of an Action is .
For a point of the Pallas group write , the -byte form of the star encoding (Ironwood Guide, §“Fields, groups, and encodings”, Definition “Star encoding”), and for its partial inverse.
The ciphersuite FROST(Pallas, BLAKE2b-512) is the following instance of Definition 4.1, for re-randomised signing.
Group. The Pallas group , of prime order (ZIP 312’s ) and cofactor , with identity and generator
(Ironwood Guide, §“GroupHash, domain separation, and nothing-up-my-sleeve generators”; Definition “Spend-authorisation and binding-signature instances”), ZIP 312’s . A random scalar is uniform on .
Elements. and , which is total: . The deserialisation maps a -byte string to , and fails if that value is and, in addition, if it is . The function itself decodes to (step 2 of Definition “Star encoding”); the rejection of the identity is the suite’s, not ’s.
Scalars. , , and fails on a -byte string whose little-endian integer is not below .
Hashes. BLAKE2b-512 with a -byte personalisation, , the roles to as in Table 2.
Signature encoding and verification as in Definition 4.1, part (e), with these data.
Randomiser hash. The role of Table 2.
The data are those of ZIP 312, “FROST(Pallas, BLAKE2b-512)”, which takes the group, the order and the encoding from the protocol specification, §“Pallas and Vesta”, and the base point from §“Spend Authorization Signature (Sapling and Orchard)”. The generic element serialisation of RFC 9591, Section 3.1, fails on the identity; this one does not. Three consequences for Theorem 4.11 follow. Its case (2), , does not arise, the serialisation being total. Its case (1), a zero nonce, remains: a commitment or equal to is serialised in Round One and rejected by in check (3) of Round Two. The only identity condition left on the output is the consensus rule (Corollary 6.4).
| Role | Personalisation | Output |
|---|---|---|
| , binding factor | FROST_RedPallasR | |
| , challenge | Zcash_RedPallasH | |
| , nonce | FROST_RedPallasN | |
| , message pre-hash | FROST_RedPallasM | -byte digest |
| , commitment-list pre-hash | FROST_RedPallasC | -byte digest |
| , randomiser | FROST_RedPallasA |
The reduction is ZIP 312’s “interpreting the 64 bytes as a little-endian integer, and reducing the resulting integer modulo G.Order()”. ZIP 312 records the equality of and (protocol specification, §“RedDSA, RedJubjub, and RedPallas”).
Assume Assumption 4.2 in its form for a suite built from one hash function under distinct personalisations: the map is modelled as a random oracle. Its restriction to is the Ironwood Guide’s Assumption “The RedPallas hash as a random oracle”. No further assumption is introduced. Then:
the hashes , , , , and are independent random oracles;
each value of , , and at a new input is within statistical distance
of a uniform scalar, so the suite meets Assumption 4.2 with ;
the hashes and are random oracles onto the -byte strings, so queries find a collision of either with probability at most ;
(i) The six personalisations are pairwise distinct and all bytes long, hence prefix-free; Crypto Guide, §“Domain separation and personalisation”, Proposition “Domain separation yields independent oracles”, gives independence. (ii) A value at a new input is of a uniform -byte string, whose distance from uniform is at most by Math Guide, §“Uniform sampling and the bias of modular reduction”, Proposition “Bias of modular reduction”, with , the bound that the Ironwood assumption records; and with . (iii) Birthday bound, Math Guide, §“The union bound and a birthday calculation”, Proposition “Birthday bound”: . (iv) Part (i) applied to seven distinct personalisations. □
At the collision bound of part (iii) is .
Let valid key material (Definition 2.5) with group key be given over FROST(Pallas, BLAKE2b-512), let be an effective randomiser and a message that every member of the signing set accepts (Definition 5.9). Every run of Construction 5.10 in which every party is honest either fails, in the zero-nonce case of Theorem 4.11, or outputs whose encoding
(RFC 9591, Appendix A) is accepted by the validation of the spend-authorisation instance of RedPallas (Ironwood Guide, Construction “RedPallas”, part 3, with base ) under on . No completed honest run yields an aggregate that validation rejects.
Theorem 5.11 gives with (RFC 9591, Section 4.6), its only exception in this suite being the zero nonce, since is total. Validation of under on proceeds as follows.
The first bytes are , and because the star encoding is canonical and total, included; so the decoded point is .
The last bytes give , an integer below since .
Validation computes , where : the inputs of the FROST challenge in the same order. Since (Table 2), it recomputes .
The equation , whose cofactor is on Pallas, is the FROST equation of RFC 9591, Appendix B, which holds.
How was produced does not enter validation. These are the conditions that ZIP 312, “Rationale”, lists. □
ZIP 312, “FROST(Pallas, BLAKE2b-512)”, states that the suite is meant to produce signatures “indistinguishable from RedPallas Orchard Spend Authorization Signatures”. This volume reads that phrase as the statement of format and validation above; the distributional statement, for randomisers of Construction 5.6, is Proposition 7.24.
Let be the spend validating key of the key of the note that an Action consumes, and let the Action carry (Ironwood Guide, §“Randomised validating keys”, Construction “Randomised validating key”). Then
Consequently:
if , the aggregate of Proposition 6.3 on the signature digest is valid under ;
if , with and fixed before the queries to whose inputs contain either key, the aggregate is valid under with probability at most in an experiment with at most queries to (Proposition 5.2, applied to the key and the shift );
the consensus rule (protocol specification, §“Action Descriptions”; Ironwood Guide, Construction “Verification”, part (1)) fails exactly when . For the output of Construction 5.6, fixed after the key, this has probability at most
with the number of queries to made by the party that fixed the key (Lemma 5.7).
Hence, up to these probabilities, consensus accepts the aggregate as the Action’s spend-authorisation signature if and only if the effective randomiser equals the Action’s .
The map is injective on , since generates a group of prime order ; and . Part (i) is Proposition 6.3 with . Part (ii) is the cited proposition, whose hypotheses hold: the shifted material is valid key material (Definition 5.3 and the paragraph following it), and in an accepted Action. For (iii), is exactly when ; a value within statistical distance of uniform takes a fixed value with probability at most (Math Guide, Theorem “Properties of statistical distance”, part (3)), and Lemma 5.7 gives . □
For FROST(Pallas, BLAKE2b-512) the term of parts (ii) and (iii) is below .
No consensus rule refers to FROST or to a threshold key. The rules that bear on spend authorisation, and validity of the spend-authorisation signature under on the signature digest (Ironwood Guide, §“Verification of a transaction”, Construction “Verification”), read only , the -byte signature and the digest; validation does not depend on how was produced (ZIP 312, “Rationale”). The first requirement of ZIP 312, “Requirements”, that every signature produced by following the ZIP be verified successfully as an Orchard spend-authorisation signature under the appropriate validating key, is met by Proposition 6.3. The remark makes no claim about the security of the signers, which is the subject of §7.
The spend validating key of an Orchard-protocol key has even -coordinate: the last bit, the bit, of is . For keys with the protocol specification, §“Orchard Key Components”, produces this by negating when the bit is (Ironwood Guide, §“The spending key and the spend-side secrets”, Construction “Spend validating key and sign normalisation”). For keys with , ZIP 2005’s replacement text for that section (“Changes to the Protocol Specification”, § 4.2.3 “Orchard Key Components”) requires to be obtained “by any suitably secure method that ensures the last bit of is ”; the published specification does not yet carry that text. The requirement is one of key derivation, not a consensus rule: the Action statement admits either sign (protocol specification, §“Action Statement (Orchard)”; Ironwood Guide, Remark “Sign of ”). A full viewing key records only (Ironwood Guide, §“Viewing keys”, Definition “Full viewing key”), from which a transaction builder recovers the point by the even- lift. For a group key of odd the lift yields ; the builder forms , which with differs from by , and by Proposition 5.2, part (ii), applied to the key and the shift , the aggregate is accepted under with probability at most . The randomised key carries no parity condition. Class (Definition 1.1): specified (ZIP 2005, Proposed, taking effect with NU6.3, which ZIP 258, Draft, deploys; ZIP 258, “ZIP 2005 activation”).
Let shares , coefficient commitments , verification shares and group key be valid key material for the signing key with sharing polynomial (Definition 2.5). Then , , and are valid key material for , with sharing polynomial . If , the last bit of differs from that of , and .
The polynomial has degree at most , coefficients and constant term ; and , , and , which are the conditions of Definition 2.5. For , . Here , since a point with has order and the group has odd order; and is odd, so and have opposite parities. The last bit of the star encoding is (Ironwood Guide, Definition “Star encoding”). The extracted coordinate is for both points (Ironwood Guide, §“Fields, groups, and encodings”, Lemma “Coordinate extraction identifies opposite points”). □
On the toy curve of Example 4.12, the negated material has and shares , , ; the group key becomes , with the same -coordinate and the parity of changed from to .
Input: valid key material output by Construction 3.2 or by Construction 3.6. Every party computes from public data (Lemma 2.6).
If , key generation is repeated: ZIP 2005 requires , and neither key generation excludes .
Otherwise, if the last bit of is , every participant replaces its share by , and every party replaces each , each and by its negative.
The test reads public data only, so all parties decide identically without interaction. Output: the resulting key material and . Class (Definition 1.1): the requirement is specified (ZIP 2005, Proposed); the method is this volume’s.
Validity of the output and even of follow from Lemma 6.6; on output by step (1). □
The Ironwood Guide constructs only keys with (Remark “Scope of the key derivations”). Write for the Ironwood Guide’s Construction “Expansion function” and , for its Definition “Field reductions” (“Pseudorandom functions and field reductions”); returns the first bytes of its input.
This is the branch of ZIP 2005’s replacement for § 4.2.3 “Orchard Key Components”.
Run a key generation (§3) and Construction 6.7; let and , non-zero since (Ironwood Guide, Lemma “Extract vanishes only at the identity”).
The participants privately agree on a spending key , a -byte string drawn uniformly and independently of the key material.
Every participant computes
where is the key-derivation mode of the BLAKE3 hash function with the displayed context string and a -byte output, ZIP 2005’s derivation, of which no property is used below.
The remainder of § 4.2.3 is unchanged: , the internal keys and the other keys derived from , and the rejection of a key whose or internal lies in . On rejection step (2) is repeated with a new , and is kept.
The protocol MUST ensure that all participants obtain the same , and , which ZIP 2005 calls .
The spend authorising key stays threshold-shared. Figure 1 shows the tree.
Steps (3) and (5), the agreement of step (2) and the rejection of step (4) quote ZIP 2005, “Usage with FROST” and “Changes to the Protocol Specification”, § 4.2.3; the uniform, independent draw of in step (2) and keeping on rejection in step (4) are this volume’s reading of “privately agree” and of the repetition with a new . Step (1) meets the even- clause of that section by Construction 6.7. Attempts of step (4) are independent, being fresh on each; the volume proves no bound on their rejection probability.
ZIP 2005 names two sources of for : direct generation of an Orchard-protocol with , which a dealer then shares by Construction 3.2; and FROST distributed key generation in which the spend-authorisation material is -of- shared, here Construction 3.6. Its “Deployment” states that “FROST distributed key generation requires the case”. The key-generation section that ZIP 2005 cites for the second method is ZIP 312, “Key Generation”, which leaves key generation out of scope.
The Orchard pool is spend-only by consensus: no transaction increases its value, and every Orchard-pool Action creates its note at the address of the note it consumes (ZIP 258, Draft, “Consensus rules from NU6.3 activation”; Ironwood Guide, §“The Orchard protocol and its two pools”). By consensus, therefore, only a party able to authorise spends for an address can create an Orchard-pool note to it, the consumed side of the Action being possibly a dummy note at that address (ZIP 326, “Rationale for key-generation restrictions”). ZIP 326 (Draft), “Wallet key-generation restrictions”, forbids conforming wallets to send Orchard-pool funds to a key with ; under that rule such a key, in particular every key from distributed key generation, holds no Orchard-pool notes, and consensus does not enforce the rule. A dealer-shared key with may spend notes of either pool. This qualifies the statement of §1.1 that both pools are served.
ZIP 2005, “Usage with FROST”, states its constraints for keys whose is derived jointly by distributed key generation, and this volume reads its MUST as binding those keys. A dealer that shares an derived from a spending key, which ZIP 312, “Key Generation”, permits, produces an ordinary key with , known to the dealer and outside that constraint. A dealer that shares a directly generated may use Construction 6.8.
For Construction 6.8, the tuple , with every key derived from , and , is a randomised function of alone, being drawn independently of the key material. Hence, for every experiment in which an adversary receives together with other inputs, an adversary that receives only the other inputs, among them, draws uniformly, computes with the same rejection, and runs the first, has identical output distribution.
For a dealer-shared key with and derived from , the spending key determines , so no participant may hold . The participants’ and , hence the full viewing key, are simulated from and independent uniform values with the same rejection, at a cost, per key attempt, of the advantage against the Ironwood Guide’s Assumption “Pseudorandomness of PRF expansion” plus the sum of the three reduction distances, below .
(a) Every component of is computed from and , and the rejection test reads only and ; the construction draws independently of the key material, as the simulating adversary does. (b) By the Ironwood Guide’s Lemma “Independence of domain-separated expansions” (“Pseudorandom functions and field reductions”), under Assumption “Pseudorandomness of PRF expansion” and with the three distinct leading bytes , , , the triple is replaced by independent uniform values at the stated cost, each reduction distance being below . After the replacement and are independent of , hence of , and the simulator draws them and applies the rejection test, which reads , and . No property of is used. □
Section 7 uses the lemma to give the corrupt participants the common secrets. Class (Definition 1.1): ZIP 2005’s constraints on FROST key generation are specified (ZIP 2005, Proposed); how the participants privately agree on is designed but unspecified: ZIP 2005, “Usage with FROST”, requires only that they agree privately, no specification gives a protocol for it, and the revision of ZIP 312 proposed in pull request 895 publishes one.
Consider a signing run over an Orchard-protocol threshold key, re-randomised as in Definition 5.3 by an effective randomiser , whose aggregate consensus accepts as the spend-authorisation signature of an Action with randomiser and randomised validating key , in a transaction with signature digest . Except with the probabilities of Corollary 6.4 and of Proposition 5.5:
the randomiser is fixed before , which is the function of it;
the key is fixed before , which commits to it (Ironwood Guide, §“Transaction digests and signatures”, Definition “Signature digest”);
the digest is fixed before any Round Two share, being the message of the binding factors and of the challenge;
the Action proof takes as auxiliary input and as instance, so it follows (i), and it is unconstrained with respect to and to Round Two, proofs being authorising data outside the digest.
(i) is Corollary 6.4. (ii) and (iii) are the data dependencies of the cited definition and of Construction 4.8, as run in step (3) of Construction 5.10: takes and takes . (iv) is the input of in Construction 5.6. (v) follows from the Ironwood Guide’s Definition “Authorising-data digest; effecting and authorising data” and “Construction of a transaction”, where signing can precede proving (ZIP 244, “Authorizing Data Commitment”, field A.3a). A randomiser that is a function of , as under Construction 5.4 with the digest as message, would by (i) and (ii) be a fixed point, which Proposition 5.5 bounds; so that derivation admits no order except with that negligible probability. □
Class (Definition 1.1): the order of Proposition 6.12 under Construction 5.6 is designed but unspecified; no specification composes ZIP 312 with a transaction format.
ZIP 312 derives the randomiser in Round Two (“Randomizer Generation” and “Round Two - Signature Share Generation”), and a derived randomiser equals an fixed earlier, as Corollary 6.4 requires, only with probability at most (Lemma 5.7). A flow in which the transaction constructor fixes and before signing, and the Coordinator sends that as the effective randomiser, respects the order of Proposition 6.12, but no specification or published design states it: its design is an open problem (Definition 1.1), and under it the Coordinator chooses the effective randomiser outright (Remark 5.8).
The single-signer construction is cited, not rebuilt. Each Action draws by , sets and , proves the Action statement with as auxiliary input, computes the signature digest and signs it under (Ironwood Guide, §“Randomised validating keys”, Construction “Randomised validating key”; “Construction of a transaction”, Construction “Ironwood-pool bundle”, steps (5), (7), (10) and (11); protocol specification, §“Sending Notes (Orchard)” and §“Spend Authorization Signature (Sapling and Orchard)”).
The transaction builder acts as Coordinator: it creates the Action proof and so already controls the privacy of the transaction (ZIP 312, “Threat Model”). For each Action that consumes a note of an Orchard-protocol threshold key (Construction 6.8), in the order of Proposition 6.12, it proceeds as follows.
It runs Round One (Construction 5.10, step (1)) with a signing set of at least participants.
It sets and .
Once every Action of the transaction is fixed, it computes the one signature digest of the transaction.
At any point after step (3), it proves the Action statement with as auxiliary input (Ironwood Guide, §“The Action statement”).
These steps replace the draw of and the single-holder signature in the cited construction; every other Action, dummy spends included, is built as there. No party holds . The builder alone makes the binding signature (Ironwood Guide, §“The binding signature”). Every threshold-spent Action has its own and and its own signing run, with fresh nonces and randomiser, all on the one digest ; since commits to the of every Action, the Round One and the randomiser of every threshold-spent Action precede , and hence every Round Two (Proposition 6.12, (i) to (iv), applied to each Action). Class (Definition 1.1): designed but unspecified; the composition of ZIP 312 with the transaction is this volume’s own.
The circuit and the consensus rules are unchanged (Remark 6.5). Both pools of the Orchard protocol use the same RedPallas spend authorisation, so one flow serves an Action of either pool (Ironwood Guide, §“The Orchard protocol and its two pools”; ZIP 229, “Reuse of the Orchard protocol with minimal changes”); which pool’s notes a key may hold is fixed in §6.4.