pub trait SignatureScheme: Send + Sync {
    type ValidatorId: ValidatorId;
    type Signature: Signature;
    type AggregateSignature: Signature;
    type Signer: Signer<ValidatorId = Self::ValidatorId, Signature = Self::Signature>;

    fn verify(
        &self,
        validator: Self::ValidatorId,
        msg: &[u8],
        sig: &Self::Signature
    ) -> bool; fn aggregate(sigs: &[Self::Signature]) -> Self::AggregateSignature; fn verify_aggregate(
        &self,
        signers: &[Self::ValidatorId],
        msg: &[u8],
        sig: &Self::AggregateSignature
    ) -> bool; }
Expand description

A signature scheme used by validators.

Required Associated Types

Signature type.

Type representing an aggregate signature. This would presumably be a BLS signature, yet even with Schnorr signatures half-aggregation is possible. It could even be a threshold signature scheme, though that’s currently unexpected.

Type representing a signer of this scheme.

Required Methods

Verify a signature from the validator in question.

Aggregate signatures.

Verify an aggregate signature for the list of signers.

Implementations on Foreign Types

Implementors