#threshold-signature #signature-scheme #schnorr-signature #digital-signature #frost #elliptic-curve #threshold-cryptography

no-std frost-core

Types and traits to support implementing Flexible Round-Optimized Schnorr Threshold signature schemes (FROST)

12 releases (3 stable)

2.1.0 Jan 15, 2025
2.0.0 Oct 23, 2024
2.0.0-rc.0 Jun 20, 2024
1.0.0 Feb 19, 2024
0.1.0 Mar 9, 2023

#119 in Cryptography

Download history 1023/week @ 2024-11-29 943/week @ 2024-12-06 857/week @ 2024-12-13 500/week @ 2024-12-20 322/week @ 2024-12-27 655/week @ 2025-01-03 983/week @ 2025-01-10 1182/week @ 2025-01-17 1211/week @ 2025-01-24 1759/week @ 2025-01-31 2579/week @ 2025-02-07 2968/week @ 2025-02-14 2751/week @ 2025-02-21 2579/week @ 2025-02-28 3270/week @ 2025-03-07 2260/week @ 2025-03-14

11,315 downloads per month
Used in 34 crates (13 directly)

MIT/Apache

295KB
5.5K SLoC

FROST (Flexible Round-Optimised Schnorr Threshold signatures) Core

Base traits and types in Rust that implement 'Two-Round Threshold Schnorr Signatures with FROST' generically for Ciphersuite implementations.

For key generation, refer to the keys module. For round-specific types and functions, refer to the round1 and round2 modules. This module contains types and functions not directly related to key generation and the FROST rounds.

Status ⚠

The FROST specification is not yet finalized, though no significant changes are expected at this point. This code base has been audited by NCC. The APIs and types in frost-core are subject to change during the release candidate phase, and will follow SemVer guarantees after 1.0.0.

Usage

frost-core implements the base traits and types in a generic manner, to enable top-level implementations for different ciphersuites / curves without having to implement all of FROST from scratch. End-users should not use frost-core if they want to sign and verify signatures, they should use the crate specific to their ciphersuite/curve parameters that uses frost-core as a dependency, such as frost_ristretto255.

Example

See ciphersuite-specific crates, e.g. frost_ristretto255.

Dependencies

~1–11MB
~124K SLoC