frost-shamir-degree-constraint

Wed Apr 01 2026

FROST uses two different methods for generating shared random numbers. Method 1 (for the shared secret ss) uses DKG, which needs two rounds of communication. Method 2 (for the nonce kk) uses simple aggregation, which needs just one round. So can we use method 2 for generating ss, since it's faster?

No. Method 1 generates nn Shamir secret shares that let us recreate the shared secret ss with just tt of them. Method 2 creates nn additive secret shares, which requires all nn of them to recreate the shared secret kk. The threshold property comes from Shamir sharing, and simple aggregation doesn't give you that.

Can't we just convert additive shares to Shamir shares?

Can't we use method 2 to generate nn additive shares of ss, then later convert them to Shamir shares using the Lagrange coefficients λi\lambda_i?

This doesn't solve the problem. After converting nn additive shares to nn Shamir shares, the underlying polynomial will have degree n1n-1, not t1t-1. So we would still need all nn Shamir shares to reconstruct ss.

In method 1, the underlying secret polynomial has degree t1t-1, so on converting these Shamir shares to additive, we only need tt additive shares to reconstruct the secret ss.

Lagrange coefficients and share conversion

The Lagrange coefficient λi\lambda_i is basically i(0)\ell_i(0), the Lagrange basis polynomial for xix_i evaluated at zero in the interpolation formula. So we don't need to reconstruct ss during signing.

Additive to Shamir. Given nn additive shares sis_i such that si=s\sum s_i = s. Then S={(i,  si/λi)}S = \{(i,\; s_i / \lambda_i)\} are the Shamir shares that represent the same secret ss.

Shamir to additive. Given nn Shamir shares (i,si)(i, s_i). Then {λisi}\{\lambda_i \cdot s_i\} are the additive shares. That is, λisi=s\sum \lambda_i \cdot s_i = s.

Signing without reconstructing ss

How is the Schnorr signature created without ever reconstructing the shared secret ss? Because the additive shares λisi\lambda_i \cdot s_i (of α\alpha co-signers) used to generate ss are embedded inside the partial signatures ziz_i. When the signature aggregator combines them, it's implicitly combining these additive shares. If these were aggregated standalone, they would in fact recreate ss.