Cryptographic/bls_signatures library

🔐 BLS (Boneh-Lynn-Shacham) Signatures Implementation

A production-ready implementation of BLS signatures, a cryptographic signature scheme that supports aggregation and is used in modern blockchain systems for efficient multi-signature schemes and threshold signatures.

Features:

  • BLS12-381 curve implementation (modern standard)
  • Signature aggregation support
  • Threshold signature capabilities
  • Optimized for performance with minimal memory allocation
  • Comprehensive error handling and validation
  • Thread-safe implementation suitable for concurrent environments
  • Produces short signatures (96 bytes) and supports aggregation

Time complexity: O(n) for signature aggregation, O(1) for verification Space complexity: O(1) constant space usage

Example:

final signature = BLSSignatures.sign('Hello, World!', privateKey);
final isValid = BLSSignatures.verify('Hello, World!', signature, publicKey);
print('Signature valid: $isValid');

Classes

BLS12381Curve
BLS12-381 curve parameters
BLSKeyPair
BLS key pair
BLSPublicKey
BLS public key structure
BLSSignature
BLS signature structure
BLSSignatures
BLS digital signature algorithm implementation