Module scheme

Module scheme 

Source
Expand description

Signing scheme implementations for simplex.

§Attributable Schemes and Fault Evidence

Signing schemes differ in whether per-validator activities can be used as evidence of either liveness or of committing a fault:

  • Attributable Schemes (ed25519, bls12381_multisig): Individual signatures can be presented to some third party as evidence of either liveness or of committing a fault. Certificates contain signer indices alongside individual signatures, enabling secure per-validator activity tracking and conflict detection.

  • Non-Attributable schemes (bls12381_threshold): Individual signatures cannot be presented to some third party as evidence of either liveness or of committing a fault because they can be forged by other players (often after some quorum of partial signatures are collected). With bls12381_threshold, possession of any t valid partial signatures can be used to forge a partial signature for any other player. Because peer connections are authenticated, evidence can be used locally (as it must be sent by said participant) but can’t be used by an external observer.

The certificate::Scheme::is_attributable() method signals whether evidence can be safely exposed. For applications only interested in collecting evidence for liveness/faults, use reporter::AttributableReporter which automatically handles filtering and verification based on scheme (hiding votes/proofs that are not attributable). If full observability is desired, process all messages passed through the crate::Reporter interface.

Modules§

bls12381_multisig
BLS12-381 multi-signature implementation of the Scheme trait for simplex.
bls12381_threshold
BLS12-381 threshold implementation of the Scheme trait for simplex.
ed25519
Ed25519 implementation of the Scheme trait for simplex.
reporter
Wrapper for scheme-dependent activity filtering and verification.

Traits§

Scheme
Marker trait for signing schemes compatible with simplex.