Module ops

Expand description

Digital signatures over the BLS12-381 curve using G1 as the Public Key (48 bytes) and G2 as the Signature (96 bytes).

§Domain Separation Tag (DST)

All signatures use the POP (Proof of Possession) scheme during signing. For Proof-of-Possession (POP) signatures, the domain separation tag is BLS_POP_BLS12381G2_XMD:SHA-256_SSWU_RO_POP_. For signatures over other messages, the domain separation tag is BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_POP_. You can read more about DSTs here.

Functions§

aggregate_public_keys
Aggregates multiple public keys.
aggregate_signatures
Aggregates multiple signatures.
aggregate_verify_multiple_messages
Verifies the aggregate signature over multiple unique messages from a single public key.
aggregate_verify_multiple_public_keys
Verifies the aggregate signature over a single message from multiple public keys.
compute_public
Computes the public key from the private key.
hash_message
Hashes the provided message with the domain separation tag (DST) to the curve.
hash_message_namespace
Hashes the provided message with the domain separation tag (DST) and namespace to the curve.
keypair
Returns a new keypair derived from the provided randomness.
msm_interpolate
Interpolate the value of some Point with precomputed Barycentric Weights and multi-scalar multiplication (MSM).
partial_aggregate_signatures
Aggregates multiple partial signatures into a single signature.
partial_sign_message
Signs the provided message with the key share.
partial_sign_proof_of_possession
Generates a proof of possession for the private key share.
partial_verify_message
Verifies the partial signature against the public polynomial.
partial_verify_multiple_messages
Verifies the signatures from multiple partial signatures over multiple unique messages from a single signer.
partial_verify_multiple_public_keys
Attempts to verify multiple PartialSignatures over the same message as a single aggregate signature (or returns any invalid signature found).
partial_verify_multiple_public_keys_precomputed
Attempts to verify multiple PartialSignatures over the same message as a single aggregate signature (or returns any invalid signature found).
partial_verify_proof_of_possession
Verifies the proof of possession for the provided public polynomial.
sign
Signs the provided message with the private key.
sign_message
Signs the provided message with the private key.
sign_proof_of_possession
Generates a proof of possession for the private key.
threshold_signature_recover
Recovers a signature from at least threshold partial signatures.
threshold_signature_recover_multiple
Recovers multiple signatures from multiple sets of at least threshold partial signatures.
threshold_signature_recover_pair
Recovers a pair of signatures from two sets of at least threshold partial signatures.
threshold_signature_recover_with_weights
Recovers a signature from threshold partial signatures.
verify
Verifies the signature with the provided public key.
verify_message
Verifies the signature with the provided public key.
verify_proof_of_possession
Verifies a proof of possession for the provided public key.