Crate frost_core

source ·
Expand description

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 frost-core::Ciphersuite implementations.

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, such as frost_ristretto255.

Example

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

Features

  • internals — Expose internal types, which do not have SemVer guarantees. This is an advanced feature which can be useful if you need to build a modified version of FROST. The docs won’t list them, you will need to check the source code.

  • serde — Enable serde support for types that need to be communicated. You can use serde to serialize structs with any encoder that supports serde (e.g. JSON with serde_json).

Re-exports

Modules

  • Performs batch Schnorr signature verification.
  • An implementation of FROST (Flexible Round-Optimized Schnorr Threshold) signatures.

Structs

Enums

  • An error related to FROST.
  • An error related to a scalar Field.
  • An error related to a Group (usually an elliptic curve or constructed from one) or one of its Elements.

Traits

  • A FROST ciphersuite specifies the underlying prime-order group details and cryptographic hash function.
  • A prime order finite field GF(q) over which all scalar values for our prime order group can be multiplied are defined.
  • A prime-order group (or subgroup) that provides everything we need to create and verify Schnorr signatures.

Type Aliases