Go to file
Conrado Gouvea ffe5c57a17
Expose internals to support randomization (simplified) (#152)
* changes required for randomization

* simplified version

* simplify compute_signature_share return

* add frost-rerandomized crate

* move rerandomized tests to frost-rerandomized from reddsa; remove unused deps

* Update frost-core/src/frost.rs

Co-authored-by: Deirdre Connolly <durumcrustulum@gmail.com>
2023-01-06 04:26:13 +00:00
.github Bump actions/checkout from 3.1.0 to 3.2.0 (#199) 2022-12-14 05:47:28 +00:00
frost-core Expose internals to support randomization (simplified) (#152) 2023-01-06 04:26:13 +00:00
frost-ed448 fix Identifier ordering; add big identifier test vectors (#197) 2023-01-02 22:43:27 +00:00
frost-ed25519 fix Identifier ordering; add big identifier test vectors (#197) 2023-01-02 22:43:27 +00:00
frost-p256 fix Identifier ordering; add big identifier test vectors (#197) 2023-01-02 22:43:27 +00:00
frost-redjubjub Update digest requirement from 0.9 to 0.10 2022-07-26 20:27:06 -04:00
frost-rerandomized Expose internals to support randomization (simplified) (#152) 2023-01-06 04:26:13 +00:00
frost-ristretto255 fix Identifier ordering; add big identifier test vectors (#197) 2023-01-02 22:43:27 +00:00
frost-secp256k1 fix Identifier ordering; add big identifier test vectors (#197) 2023-01-02 22:43:27 +00:00
gendoc move dkg module to its own file; update and refactor gendoc (#196) 2022-12-15 09:38:48 +00:00
rfcs add missing checks 2021-06-15 17:10:38 -04:00
.gitignore Ignore .DS_Store 2022-03-08 14:11:41 -05:00
.mergify.yml ci(Mergify): configuration update 2022-06-15 20:13:45 -04:00
CHANGELOG.md Don't reject small-order verification keys (#137) 2021-11-18 15:53:35 -03:00
Cargo.toml Expose internals to support randomization (simplified) (#152) 2023-01-06 04:26:13 +00:00
LICENCE Frost keygen with dealer (#47) 2021-02-25 09:06:54 -07:00
LICENCE.MIT Frost keygen with dealer (#47) 2021-02-25 09:06:54 -07:00
LICENSE.Apache-2.0 Frost keygen with dealer (#47) 2021-02-25 09:06:54 -07:00
README.md Improve examples (#160) 2022-11-01 15:54:04 +00:00
codecov.yml Port frost-ristretto255 to frost-core (#57) 2022-06-17 14:54:54 -04:00

README.md

FROST (Flexible Round-Optimised Schnorr Threshold signatures)

Rust implementations of 'Two-Round Threshold Schnorr Signatures with FROST'.

Unlike signatures in a single-party setting, threshold signatures require cooperation among a threshold number of signers, each holding a share of a common private key. The security of threshold schemes in general assume that an adversary can corrupt strictly fewer than a threshold number of participants.

'Two-Round Threshold Schnorr Signatures with FROST' presents a variant of a Flexible Round-Optimized Schnorr Threshold (FROST) signature scheme originally defined in FROST20. FROST reduces network overhead during threshold signing operations while employing a novel technique to protect against forgery attacks applicable to prior Schnorr-based threshold signature constructions. This variant of FROST requires two rounds to compute a signature, and implements signing efficiency improvements described by Schnorr21. Single-round signing with FROST is not implemented here.

Status ⚠

The FROST specification is not yet finalized, and this codebase has not yet been audited or released. The APIs and types in frost-core are subject to change.

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.