Skip to main content

Module polynomial

Module polynomial 

Source
Expand description

Polynomial helpers for verifiable secret sharing.

FROST’s DKG and signing both rest on Shamir-style secret sharing over the scalar field: a secret a_0 is committed as the constant term of a degree-T-1 polynomial f(X) = a_0 + a_1·X + … + a_{T-1}·X^{T-1}, and party i’s share is f(i). lagrange_coefficient rebuilds the original secret (or any linear function of it) from any T shares via interpolation, without ever recombining the shares themselves.

Structs§

CommitmentList
A Feldman-style commitment list to a VSS polynomial: C_k = a_k · B for each coefficient a_k. Reveal nothing about the secret beyond what the public key already does (since C_0 = A, the public key), but let recipients verify that a share f(i) is consistent with the committed polynomial via f(i)·B == Σ_k i^k · C_k.
Polynomial
A degree-(t-1) polynomial over the scalar field used for VSS. Coefficients are little-endian: f(X) = sum coeff[k] * X^k.

Functions§

lagrange_coefficient
Compute the Lagrange coefficient λ_i for party i relative to the participating set S (party indices, all distinct). The coefficient is