Specification
Specification 51 — FROST threshold signature over ECDSA P-256
* FROST: draft-irtf-cfrg-frost-13
status: accepted · implementation: shipped
Specification sources
- FROST: draft-irtf-cfrg-frost-13
- ECDSA: FIPS 186-5
- Curve: NIST P-256 (SECG SEC 2)
What Confium provides
confium-tc-frost-p256 provides real cryptographic primitives:
- Real Shamir secret sharing over P-256 scalar field
- Real Lagrange interpolation at x=0
- Real P-256 ECDSA signing via
p256::ecdsa::SigningKey - Real P-256 ECDSA verification via
p256::ecdsa::VerifyingKey
Trusted dealer model (caveat)
True threshold ECDSA signing (where the secret is never reconstructed)
requires the Multiplicative-to-Additive (MtA) protocol used by
confium-tc-cmp20 and confium-tc-gg18.
This crate provides:
- Real Shamir (split any scalar into N shares, recover from any T)
- Real ECDSA (sign and verify under standard
p256crate) - Reconstruct-then-sign (for testing, integration, demonstration)
For production threshold ECDSA where the secret is never reconstructed,
use confium-tc-cmp20.
Algorithm details
Shamir split:
Random polynomial f(x) = secret + a_1·x + a_2·x² + ... + a_{t-1}·x^{t-1}
Share i: (i, f(i)) for i in 1..=n
Lagrange recovery:
secret = f(0) = Σ y_i · Π_{j≠i} (0 - x_j) / (x_i - x_j)
All arithmetic in P-256 scalar field (modular, prime order ~2^256).
Test coverage
- All C(5,3) = 10 share subsets recover same secret
- Different threshold configurations (1-of-1, 2-of-3, 3-of-5, 5-of-7)
- Real ECDSA round-trip: sign with
SigningKey, verify withVerifyingKey - Integration tests:
crates/confium-tc-frost-p256/tests/integration.rs
Implementation source
- Crate:
confium-tc-frost-p256 - Example:
confium-examples/src/bin/p256_threshold_signing.rs