Go to file
natalie 4406e01afc
Update changelog (#582)
Update changelog (#581)
2023-11-17 10:46:37 +00:00
.github Bump actions/checkout from 4.1.0 to 4.1.1 (#563) 2023-10-20 17:54:50 +00:00
book Fix warnings (#578) 2023-11-16 17:18:40 +00:00
frost-core Update changelog (#582) 2023-11-17 10:46:37 +00:00
frost-ed448 Release v1.0.0-rc.0 (#575) 2023-11-15 13:08:34 +00:00
frost-ed25519 Release v1.0.0-rc.0 (#575) 2023-11-15 13:08:34 +00:00
frost-p256 Release v1.0.0-rc.0 (#575) 2023-11-15 13:08:34 +00:00
frost-rerandomized Release v1.0.0-rc.0 (#575) 2023-11-15 13:08:34 +00:00
frost-ristretto255 Release v1.0.0-rc.0 (#575) 2023-11-15 13:08:34 +00:00
frost-secp256k1 Release v1.0.0-rc.0 (#575) 2023-11-15 13:08:34 +00:00
gencode remove frost module (#568) 2023-10-31 16:30:05 +00:00
.gitignore Update keygen_with_dealer to return a hashmap (#288) 2023-03-23 22:24:33 +00:00
.mergify.yml Update mergify yaml (#380) 2023-06-16 12:23:03 +02:00
Cargo.toml renamed gendoc to gencode; make it unpublishable (#260) 2023-03-02 21:19:53 +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 update README, move dev info to book (#554) 2023-10-10 14:24:23 +00:00
codecov.yml Refactor test folders (#366) 2023-05-31 21:23:29 +00:00
performance.md ZF FROST Book text proof-read/review (#415) 2023-06-26 17:25:35 +00:00
plot.py Benchmark plot script (#356) 2023-06-01 14:37:59 -04:00
times-by-ciphersuite-and-function-10.png Benchmark plot script (#356) 2023-06-01 14:37:59 -04:00
times-by-ciphersuite-and-function-100.png Benchmark plot script (#356) 2023-06-01 14:37:59 -04:00
times-by-ciphersuite-and-function-1000.png Benchmark plot script (#356) 2023-06-01 14:37:59 -04:00
times-by-size-and-function-ristretto255-aggregated.png Benchmark plot script (#356) 2023-06-01 14:37:59 -04:00
times-by-size-and-function-ristretto255-all-shares.png Benchmark plot script (#356) 2023-06-01 14:37:59 -04:00
verify-aggregated-vs-all-shares-10.png Benchmark plot script (#356) 2023-06-01 14:37:59 -04:00
verify-aggregated-vs-all-shares-100.png Benchmark plot script (#356) 2023-06-01 14:37:59 -04:00
verify-aggregated-vs-all-shares-1000.png Benchmark plot script (#356) 2023-06-01 14:37:59 -04:00
zcash-frost-audit-report-20210323.pdf Remove `frost-redjubjub` (#246) 2023-02-16 22:44:12 +00:00

README.md

ZF FROST (Flexible Round-Optimised Schnorr Threshold signatures)

CI

Crate Crates.io Documentation
Generic FROST implementation [frost-core] crates.io Documentation
Ristretto255 ciphersuite [frost-ristretto255] crates.io Documentation
Ed25519 ciphersuite [frost-ed25519] crates.io Documentation
Ed448 ciphersuite [frost-ed448] crates.io Documentation
P-256 ciphersuite [frost-p256] crates.io Documentation
secp256k1 ciphersuite [frost-secp256k1] crates.io Documentation
Generic Re-randomized FROST [frost-rerandomized] crates.io Documentation

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.

Besides FROST itself, this repository also provides:

Getting Started

Refer to the ZF FROST book.

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.