The Zcash ArboretumThe Complete Arboretum PDF

2 Threshold Schnorr signatures

This section fixes the setting that every later protocol assumes: the participants, their identifiers, the signing sets and their Lagrange coefficients; the threshold key material and the group information that coefficient commitments determine; the syntax and correctness of a two-round threshold Schnorr signature scheme with a Coordinator; and the channel types and the static corruption model. Notation is that of §1.3.

2.1 Participants, identifiers and signing sets

Definition 2.1 (Threshold parameters and signing sets).

Let 𝔾 be a group of prime order q with generator B and scalar field 𝔽q (§1.3). Threshold parameters are integers t,n with

1≤t≤n<q.

There are n participants P1,…,Pn. The identifier of Pi is i∈{1,…,n}, read as an element of 𝔽q; identifiers are distinct and nonzero in 𝔽q because n<q. A signing set is a set I⊆{1,…,n} with t≤|I|≤n. In the notation of RFC 9591 (Table 1), t is MIN⁢_⁢PARTICIPANTS, n is MAX⁢_⁢PARTICIPANTS and |I| is NUM⁢_⁢PARTICIPANTS.

The constraints are those of RFC 9591, Section 5 (“Two-Round FROST Signing Protocol”): each identifier is a nonzero scalar in [1,MAX⁢_⁢PARTICIPANTS], distinct from every other; MAX⁢_⁢PARTICIPANTS is less than the group order; and MIN⁢_⁢PARTICIPANTS≤NUM⁢_⁢PARTICIPANTS≤MAX⁢_⁢PARTICIPANTS. The dealer of RFC 9591, Appendix C (“Trusted Dealer Key Generation”), shares at the identifiers 1,…,n. Every statement below that uses only interpolation holds verbatim for any distinct nonzero identifiers; the identifiers 1,…,n are the ones RFC 9591 requires.

Remark 2.2 (Shamir sharing).

Shamir sharing is cited, not re-derived: Crypto Guide, §“Secret sharing”, Construction “Shamir t-of-n secret sharing”. Its parameters 1≤t≤n<q and identifiers 1,…,n are those of Definition 2.1; its share symbol si is this volume’s 𝑠𝑘i, and the generator G of the Crypto Guide’s Construction “Feldman verifiable secret sharing” is B. Any t shares determine the sharing polynomial and its constant term (Lemma 2.4 gives this for every signing set). Fewer than t shares are jointly uniform whatever the secret (Crypto Guide, Theorem “Perfect secrecy below the threshold”). That theorem concerns the shares alone. For key material shared by a dealer, once the coefficient commitments of §2.2 are published, the point [s]⁢B is public and secrecy below the threshold is computational: the view of t−1 participants is computable from [s]⁢B and t−1 uniform scalars. Since [s]⁢B is the group key, which is published in any case, nothing further escapes (Crypto Guide, Remark “The leak, and where it is harmless”). Distributed key generation is treated in §7.3.

Definition 2.3 (Lagrange coefficients of a signing set).

Let I be a signing set and i∈I. The Lagrange coefficient of i in I is

λI,i:=∏j∈I,j≠ijj−i∈𝔽q,

whose denominators are nonzero because identifiers are distinct. For the Lagrange basis polynomial ℓi⁢(X)=∏j∈I,j≠i(X−j)/(i−j) of the nodes I (Math Guide, Theorem “Lagrange interpolation”), λI,i=ℓi⁢(0), since (0−j)/(i−j)=j/(j−i); it is the reconstruction weight of the Crypto Guide’s Construction “Shamir t-of-n secret sharing”. The specified computation takes the list of identifiers of I and the identifier i, and fails with the error “invalid parameters” if i is absent from the list or some identifier occurs in it more than once (RFC 9591, Section 4.2, “Polynomials”).

Lemma 2.4 (Recombination over a signing set).

Let I be a signing set. For every f∈𝔽q⁢[X] with deg⁡f≤t−1,

∑i∈IλI,i⁢f⁢(i)=f⁢(0).

In particular ∑i∈IλI,i=1. The statement and its proof hold verbatim for any finite set I of distinct nonzero elements of 𝔽q with |I|≥deg⁡f+1, the coefficients being defined by the same product.

Proof.

Put d:=|I|−1, so d≥t−1≥deg⁡f. By Math Guide, Theorem “Lagrange interpolation”, with nodes I and targets f⁢(i), the polynomial g:=∑i∈If⁢(i)⁢ℓi has degree at most d and satisfies g⁢(i)=f⁢(i) for every i∈I, that is at d+1 distinct points. The polynomial f also has degree at most d, so g=f by Math Guide, Corollary “Few points determine a low-degree polynomial”. Evaluating at 0 and using ℓi⁢(0)=λI,i (Definition 2.3) gives the identity. The constant polynomial f=1 has degree 0≤t−1, because t≥1, and gives the sum one. □

The proof is given in place: the Math Guide’s Proposition “Lagrange polynomials sum to one” concerns its roots-of-unity domain and does not apply to the nodes I. ZIP 312, “Rationale”, uses the sum ∑i∈IλI,i=1 and refers to an external note for its proof; ePrint 2024/436, Section 5, justifies it in one line as the interpolation of the constant polynomial 1.

The coefficients λI,i depend on the identifiers of I alone, not on the shares or on the polynomial (Definition 2.3). Hence the signing set is chosen per signing run, after key generation, by the Coordinator of Definition 2.8, which determines the participants, at least MIN⁢_⁢PARTICIPANTS in number (RFC 9591, Section 5).

2.2 Key material and group information

Definition 2.5 (Threshold key material).

Let (t,n) be threshold parameters. Threshold key material consists of:

  1. 1.

    a sharing polynomial f⁢(X)=∑k=0t−1ak⁢Xk∈𝔽q⁢[X] with f⁢(0)=a0=s, the signing key;

  2. 2.

    for each identifier j, the secret share (j,𝑠𝑘j) with 𝑠𝑘j=f⁢(j), held by Pj alone;

  3. 3.

    the coefficient commitments Ak:=[ak]⁢B for k=0,…,t−1;

  4. 4.

    the group information (𝑃𝐾,(𝑃𝐾j)j=1n), with group key 𝑃𝐾:=[s]⁢B and verification shares 𝑃𝐾j:=[𝑠𝑘j]⁢B, held by every party, the Coordinator included.

Shares (𝑠𝑘j)j=1n∈𝔽qn and group information (𝑃𝐾,(𝑃𝐾j)j=1n)∈𝔾n+1 are valid key material if some f∈𝔽q⁢[X] with deg⁡f≤t−1 has f⁢(j)=𝑠𝑘j for every j∈{1,…,n}, 𝑃𝐾=[f⁢(0)]⁢B and 𝑃𝐾j=[𝑠𝑘j]⁢B for every j. Such f is unique, since n≥t (Math Guide, Corollary “Few points determine a low-degree polynomial”). No party is given s or f; the definition names them. Valid key material is the output of both key generations (§3) and the input of signing.

The components are those of RFC 9591, Section 5: each participant is configured with its identifier, the share 𝑠𝑘i=f⁢(i) and 𝑃𝐾i=[𝑠𝑘i]⁢B; the group information consists of 𝑃𝐾 and 𝑃𝐾i for each i in [1,MAX⁢_⁢PARTICIPANTS].

Lemma 2.6 (Group information from coefficient commitments).

Let f=∑k=0t−1ak⁢Xk and Ak=[ak]⁢B.

  1. (i)

    The group key is 𝑃𝐾=[f⁢(0)]⁢B=A0, and for every identifier j

    𝑃𝐾j=[f⁢(j)]⁢B=∑k=0t−1[jk]⁢Ak.

    Every party holding (A0,…,At−1) therefore computes the group information from the commitments alone.

  2. (ii)

    Let (A0,…,At−1)∈𝔾t, however chosen, and let 𝑠𝑘1,…,𝑠𝑘n∈𝔽q satisfy [𝑠𝑘j]⁢B=∑k=0t−1[jk]⁢Ak for every j∈{1,…,n}. Then (𝑠𝑘j)j=1n, with the group information computed by (i), is valid key material (Definition 2.5) for the unique polynomial f∗=∑kak∗⁢Xk with [ak∗]⁢B=Ak.

Proof.

Part (i) is the identity displayed in Crypto Guide, Construction “Feldman verifiable secret sharing”, where it follows from the homomorphism a↦[a]⁢B; that construction’s G and Φk are this volume’s B and Ak. For (ii), by Crypto Guide, Proposition “What the Feldman check certifies”, the vector (A0,…,At−1) determines a unique polynomial f∗ of degree at most t−1, and each passing check gives 𝑠𝑘j=f∗⁢(j). Then A0=[f∗⁢(0)]⁢B and ∑k[jk]⁢Ak=[𝑠𝑘j]⁢B, which are the conditions of Definition 2.5. □

RFC 9591, Appendix C.2 (“Verifiable Secret Sharing”), derives the group information from the commitment vector in this way. Both key generations of §3 cite the lemma.

2.3 Two-round threshold signature schemes

Remark 2.7 (Prerequisites).

The syntax of a signature scheme, existential unforgeability under chosen-message attack and strong unforgeability are those of Crypto Guide, §“Syntax and security goal” (Definitions “Digital signature scheme”, “Existential unforgeability under chosen-message attack” and “Strong unforgeability”), which admits correctness with overwhelming probability. The single-party Schnorr signature is Crypto Guide, §“From identification to signature via the Fiat–Shamir transform”, Construction “Schnorr signature”, perfectly correct by its Proposition “Perfect correctness”. In additive notation with generator B, signing key s and public key 𝑃𝐾=[s]⁢B, a signature on a message m is

r←$𝔽q,R=[r]⁢B,c=H⁢(R⁢‖𝑃𝐾‖⁢m),z=r+c⁢s,σ=(R,z),

and verification accepts (R,z) if and only if

[z]⁢B=R+[c]⁢𝑃𝐾.

The Crypto Guide’s response s is written z here, s being the signing key. The challenge input order (nonce commitment, public key, message) is that of RFC 9591, Section 4.6 (“Signature Challenge Computation”), and of RedPallas; the hash and the encodings of FROST are fixed by the ciphersuite (Definition 4.1). Discrete logarithms and random oracles are those of the Crypto Guide, §“The discrete logarithm problem” and §“The random oracle model”, as §1.3 records.

Definition 2.8 (Two-round threshold signature scheme with a Coordinator).

Let (t,n) be threshold parameters (Definition 2.1). A two-round threshold signature scheme with a Coordinator is run by the participants P1,…,Pn and one Coordinator: a role, which a participant may also play, that uses no share of the signing key and no nonce, and that chooses the signing set, relays messages, aggregates and publishes the signature. It consists of:

  1. 1.

    Key generation, a dealer algorithm or a protocol, which outputs valid key material (Definition 2.5): 𝑠𝑘j to Pj, and the group information to every party.

  2. 2.

    Round One, run by each Pi independently of any message and of any signing set, which outputs a public commitment 𝑐𝑜𝑚i, sent to the Coordinator, and a secret state 𝑠𝑡i, which Pi keeps and uses in at most one Round Two.

  3. 3.

    Round Two. The Coordinator chooses a signing set I and a message m, and sends the request (m,(𝑐𝑜𝑚j)j∈I) to each Pi with i∈I. Participant Pi either returns a signature share zi, computed from 𝑠𝑘i, 𝑠𝑡i, the request and the group information, or aborts; in both cases it deletes 𝑠𝑡i.

  4. 4.

    Aggregation, by which the Coordinator maps m, the commitment list (𝑐𝑜𝑚j)j∈I and the shares (zj)j∈I to a signature σ or to ⊥.

  5. 5.

    Verification, the single-party Schnorr verification of a signature on m under the group key 𝑃𝐾.

The scheme is correct if, for all valid key material output by key generation, every signing set I and every message m, a run in which every party is honest outputs either ⊥ or a signature that verification accepts under 𝑃𝐾, and outputs ⊥ with probability negligible in the security parameter.

The parties and the rounds are those of RFC 9591, Section 5: the Coordinator determines the participants, coordinates the rounds, aggregates the signature shares and publishes the signature; Round One produces commitments; Round Two produces a signature share over the message and the commitments that the Coordinator supplies. Theorem 4.11 bounds the probability of ⊥ for FROST. Unforgeability notions are defined in §7, before any use.

Remark 2.9 (Scope of the syntax).

The two-round form is the one RFC 9591 specifies (Section 5). Single-round signing with commitments preprocessed in batches (ePrint 2020/852) is out of the scope of RFC 9591 (Section 1, “Introduction”) and of this volume.

The parties compute (R,z) jointly, and no step computes s or r. Round Two binds each share to the message and the whole commitment list (Construction 4.8); unforgeability under concurrent runs is Theorem 7.9, under its assumptions (Remark 7.10).

2.4 Channels and corruption

Definition 2.10 (Channels).

Every message of every protocol in this volume travels on a channel of one of the following four types, and the protocol names the type.

  1. (a)

    An authenticated channel with reliable delivery: the receiver learns the sender and the unmodified message; delivery is assured, as completion of the protocol requires; the content is visible to an observer of the network. It carries the signing messages: the Round One commitments, the Round Two request and the returned shares.

  2. (b)

    A confidential and authenticated channel: a channel of type (a) whose content is hidden from every party but its endpoints. It carries the Round Two request of the re-randomised variant with its confidential inputs, named in Construction 5.10.

  3. (c)

    A mutually authenticated confidential channel: a channel of type (b) in which each endpoint is authenticated to the other. It carries dealt shares and the evaluations of round two of distributed key generation.

  4. (d)

    Consistent broadcast: every honest recipient outputs the same value from the sender, whether or not the sender is honest, or every honest recipient aborts. If the sender is honest, an honest recipient that does not abort outputs the value sent. It carries the coefficient commitments and the proofs of knowledge of key generation.

Realisations are not described. For what authentication provides against an adversary that controls the network, see Crypto Guide, §“Active attacks and the role of authentication”.

Each type is tied to its source. Type (a) is that of RFC 9591, Section 5, which assumes reliable delivery for completion and an authenticated channel, confidentiality not being required; Section 7 (“Security Considerations”) adds that signing may run over a public channel provided it is authenticated and reliable. Authentication is what identifies a misbehaving participant: without it, a party masquerading as another causes only an invalid signature (RFC 9591, Section 5). Type (b) is that of ZIP 312, “Round Two - Signature Share Generation”, which requires a confidential and authenticated channel and records the difference from RFC 9591. Type (c) is that of RFC 9591, Appendix C, which requires a mutually authenticated secure channel with confidentiality and integrity for dealt shares, and of ePrint 2020/852, Figure 1, in which round two of key generation sends the evaluations securely. Type (d) is required by RFC 9591, Appendix C, under which participants must abort if they do not hold the same view of the commitment vector, and by ePrint 2020/852, Figure 1, which broadcasts commitments and proofs.

Definition 2.11 (Static corruption).

Before key generation the adversary fixes a set C⊆{1,…,n} with |C|≤t−1. It receives the entire state of each Pj with j∈C throughout, and chooses their messages. It may in addition control the Coordinator, which holds no share of the signing key and no nonce; in the re-randomised variant it also holds the randomiser and the transaction data (Definition 5.14). It observes and schedules the network, subject to the guarantees of Definition 2.10. The set C never changes, and every other participant follows the protocol.

A malicious Coordinator can deny service, by withholding requests, the aggregate or its publication, and can falsely report a participant as misbehaving; no honest party can prevent either, since FROST provides no robustness (RFC 9591, Section 7; ePrint 2020/852, Section 5, “Signature Aggregator Role”). What a malicious Coordinator cannot do is stated in §7, either as a theorem (Theorem 7.9, Theorem 7.20) or as an open problem (Remark 7.22); Definition 2.11 asserts none of it. The re-randomised variant further trusts the Coordinator and every share holder with the privacy of the transaction (Definition 5.14). Adaptive corruption, metadata privacy and network privacy are out of scope. The model is that of RFC 9591, Section 7, under which the Coordinator and at most MIN⁢_⁢PARTICIPANTS−1 participants may be corrupted and robustness and metadata protection are not goals, and of ZIP 312, “Threat Model”.