This section states the status of key generation in RFC 9591 and ZIP 312 and the two protocols that output the threshold key material of Definition 2.5: key generation by a trusted dealer and distributed key generation. Each is proved to output valid key material and is classified by Definition 1.1.
RFC 9591 places key generation out of its scope and, for completeness, specifies key generation by a trusted dealer in Appendix C (“Trusted Dealer Key Generation”); Section 1 (“Introduction”) says so. Its Section 5 (“Two-Round FROST Signing Protocol”) names the two mechanisms by which the key material of Definition 2.5 may be configured, a trusted dealer and a distributed key generation protocol, and specifies neither beyond that appendix. ZIP 312 specifies no key generation (“Non-requirements”). Its “Key Generation” requires key generation to be consistent with FROST, referring to the dealer appendix of RFC 9591 for guidance, and names the spend authorising key as the key to be shared. It records that is usually derived from the spending key but need not be; that not deriving it permits distributed key generation, since the key so generated is unpredictable; and that not deriving it prevents recovery of the secret from a seed phrase, which the ZIP notes may be desirable for FROST. The security analysis of Bellare, Tessaro and Zhu (ePrint 2022/833, in its current revision, whose preliminary version is part of the analysis RFC 9591 cites) models key generation as an algorithm run by a trusted party. Two protocols output key material: the dealer of RFC 9591, Appendix C, in this subsection, and the distributed key generation of ePrint 2020/852, Figure 1, in §3.2.
The dealer runs Construction 3.2 as written:
it samples and the coefficients uniformly and independently from its own randomness;
it reveals , the coefficients and the shares only as the construction prescribes, the share of to alone;
it deletes , the coefficients and the shares once the shares are distributed.
The adversary of Definition 2.11 does not control the dealer and never obtains its state.
The three clauses are the trust requirements of RFC 9591, Appendix C: the dealer is trusted to generate good randomness, to delete secret values after distributing the shares, and to keep secret values confidential; the appendix further requires that the dealer delete the secret key and the secret key shares upon completion.
Let be threshold parameters with identifiers (Definition 2.1), over the group of prime order with generator and scalar field . The dealer proceeds as follows.
It samples the signing key uniformly and independently and uniformly.
For it sends the secret share , with , to over a mutually authenticated confidential channel (Definition 2.10, type (c)).
It sends the coefficient commitments
to every party, the participants and the Coordinator, by consistent broadcast (Definition 2.10, type (d)).
It deletes , the coefficients and the shares.
Participant aborts if its view of differs from that of another party, and aborts if
Every party computes the group information
by Lemma 2.6; by this computation every party learns every verification share. Output: the share to , and to every party. The dealer knows . Class (Definition 1.1): specified.
The construction is that of RFC 9591, Appendix C, with its Appendices C.1 (“Shamir Secret Sharing”) and C.2 (“Verifiable Secret Sharing”). The secret is generated uniformly at random and must be derived from at least bytes of entropy, being the length of an encoded scalar; Appendix D (“Random Scalar Generation”) gives the generation of uniform scalars. The shares are the evaluations of at , the secret prepended to the coefficients, and an identifier is never (Appendix C.1). The commitment is the vector of the ; a participant must abort if it does not hold the same view of it as the other participants, which a secure broadcast channel ensures (Appendix C), and must abort if its share fails the check, the failure being investigated out of band (Appendix C.2). The channel for shares is mutually authenticated and provides confidentiality and integrity (Appendix C). Consistent broadcast realises the first abort rule: under Definition 2.10, type (d), every honest recipient outputs the same vector or every honest recipient aborts.
Let the commitments of Construction 3.2 travel by consistent broadcast (Definition 2.10, type (d)).
Without Assumption 3.1, the commitments determine a unique polynomial of degree at most with for every ; a participant whose check passes holds ; and every honest party computes the same group information, that of . The shares that pass and the group information are thus consistent with the one polynomial , whose constant term the dealer chooses freely.
Under Assumption 3.1, for every set of fewer than participants there is a randomised algorithm that, given alone, outputs a tuple distributed identically to the joint view of : its shares and the commitments. The commitments reveal and nothing further to .
(i) By steps (1) to (3), for the polynomial of degree at most with . Each honest share passes its check by the identity displayed in Crypto Guide, Construction “Feldman verifiable secret sharing”, and consistent broadcast from an honest dealer that does not abort gives every honest party the dealer’s vector, so no honest participant aborts. Lemma 2.6, part (i), gives and , which are the conditions of Definition 2.5.
(ii) Consistent broadcast gives every honest party the same vector , or every honest party aborts. By Crypto Guide, Proposition “What the Feldman check certifies”, that vector determines the unique with , a check passes if and only if , and nothing constrains . Lemma 2.6, part (i), applied to , gives the common group information and .
(iii) Suppose first . By Crypto Guide, Theorem “Perfect secrecy below the threshold”, the shares are jointly uniform on whatever is. Given the shares, the points and , , are values of the map at distinct points; since each is a fixed -linear combination of these values (interpolation in the exponent), the commitments are a function of and the shares. The algorithm samples uniform scalars as the shares and computes the commitments so; this is the argument of Crypto Guide, Remark “The leak, and where it is harmless”. If , then, since , some set of participants exists; the view of is a projection of that of , and the algorithm for followed by the projection serves for . □
For an Orchard-protocol key the shared secret is (ZIP 312, “Key Generation”). The output of Construction 3.2 then passes through Construction 6.7 in §6.3 and is completed by Construction 6.8. ZIP 312 also admits a dealer that shares an derived from a spending key; that is not sampled as in Assumption 3.1, clause (1), and §7.3 treats both cases.
The challenge hash
of Construction 3.6, applied to an injective encoding of its input (identifier, context string, point, point), is modelled as a random oracle (Crypto Guide, §“The random oracle model”) independent of every other hash of the volume, in particular of the ciphersuite hashes of Assumption 4.2.
An instantiation achieves the independence by domain separation: a random oracle restricted to prefix-free tags yields independent random oracles (Crypto Guide, §“Domain separation and personalisation”, Proposition “Domain separation yields independent oracles”). No ZIP fixes or the context string for the Pallas ciphersuite of ZIP 312: that ciphersuite defines the hashes to and only (“FROST(Pallas, BLAKE2b-512)”), and key generation is outside the ZIP’s scope (“Key Generation”). The volume therefore takes as the named oracle of Assumption 3.5.
Let be threshold parameters (Definition 2.1) and the hash of Assumption 3.5. Before Round One the participants agree, by means outside the construction, on a context string unique to the ceremony.
Round One, participant :
It samples independently and uniformly and sets .
It proves knowledge of : it samples and sets
It computes for .
It sends to every other party, the Coordinator included, by consistent broadcast (Definition 2.10, type (d)).
For every it computes and aborts unless
If every check passes, it deletes the proofs .
Round Two, participant :
It sends to each , , over a mutually authenticated confidential channel (Definition 2.10, type (c)), keeps , and deletes and the values sent.
For every it aborts unless
It sets and deletes the .
Output: to , and to every party. A failed check leads to abort only; its cause is investigated out of band.
The construction is that of ePrint 2020/852, Figure 1, in additive notation: the paper’s , , , , and are , , , , and . The paper’s Section 5.1 describes it as Pedersen’s protocol, parallel runs of Crypto Guide, Construction “Feldman verifiable secret sharing”, one with each participant as dealer, each share being the sum of the shares received. Round One, step (2), is the Fiat–Shamir transform of Crypto Guide, Construction “Schnorr identification” (§“The Schnorr identification protocol”; §“The Fiat–Shamir transform: from interactive to non-interactive”), with statement , witness , and the prover’s identifier and bound into the challenge; the verification equation of step (5) is that of the identification protocol rearranged. ePrint 2020/852, Figure 1, binds the context string into the challenge to prevent replay of proofs across ceremonies, a design claim that no cited source proves (Remark 3.9). The last part of Figure 1 computes every verification share from the broadcast commitments, which is how parties other than learn .
Consistent broadcast of Round One is a hypothesis of the construction: ePrint 2020/852, Section 5.1, assumes that participants hold a consistent view of the commitments and does not provide it. A participant that sent different commitment vectors to different parties would lead them to compute different group information: different verification shares, and different group keys when the constant terms differ.
Let have degree at most , with coefficients and coefficient commitments . Then has degree at most , constant term , and coefficient commitments
and for every .
Polynomial addition adds coefficients and does not raise the degree, so the coefficient of in is , zero for . Evaluation at a point is additive in the polynomial. The map is a group homomorphism , which gives the commitments. □
Consider an execution of Construction 3.6 without abort in which the Round One messages travel by consistent broadcast. For each let be the unique polynomial of degree at most whose coefficient commitments are , let , and let for every identifier . Then:
every honest participant outputs ;
every honest party computes the same group information, and ;
the shares with this group information are valid key material (Definition 2.5) for the signing key
If every participant is honest, for every .
The polynomials exist and are unique by Crypto Guide, Proposition “What the Feldman check certifies”. An honest broadcasts the commitments of its own , so and its kept value is . Each received , , passed the check of Round Two, step (2), so equals by the same proposition. Hence by Lemma 3.7, which is (i). Consistent broadcast gives every honest party the same , hence the same , which by Lemma 3.7 are the coefficient commitments of , of degree at most . Lemma 2.6, part (i), applied to gives and , which is (ii); with the shares these are the conditions of Definition 2.5, which is (iii), and . If every participant is honest, each broadcasts the commitments of its own polynomial, so . □
The statements of this remark are design claims of ePrint 2020/852; none is a theorem. The proofs of knowledge of Round One, step (2), are the change from Pedersen’s protocol: the paper adds them against rogue-key attacks, in which a participant chooses its commitment as a function of the others’ commitments to bias the group key, in the setting (Section 5.1). No source cited in this volume proves Construction 3.6 secure, or proves FROST as RFC 9591 specifies it unforgeable with it; §7.3 states what is known (Remark 7.13). The protocol is not robust: any failed proof or share check aborts the whole execution and its cause is investigated out of band (Figure 1; Section 3), so one participant can prevent key generation.
Construction 3.6 is designed but unspecified for Zcash (Definition 1.1). The protocol is published (ePrint 2020/852, Figure 1), but no RFC or ZIP specifies a distributed key generation: RFC 9591 places key generation out of scope (Section 1), and ZIP 312 specifies none (“Key Generation”). ZIP 2005 (Proposed), “Usage with FROST”, names the FROST distributed key generation protocol without a specification behind the reference; the revision of ZIP 312 proposed in pull request 895 names a different key-generation protocol, so its adoption would not specify this one. Its Zcash instantiation, the hash and the context string , is fixed by no ZIP (Assumption 3.5).