Expand description

Implementation of aggregate signatures specified in https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-bls-signature-04

Structs§

  • A Public Key is a point on the second curve of the pairing
  • A Secret Key is a scalar in the scalarfield of the pairing.

Constants§

Functions§

  • Verifies an aggregate signature on pairs (messages m_i, PK_i) for i=1..n by checking pairing(sig, g_2) == product_{i=0}^n ( pairing(g1_hash(m_i), PK_i) ) where g_2 is the generator of G2. Verification returns false if any two messages are not distinct
  • Verifies an aggregate signature on pairs (messages m_i, set_i) for i=1..n but where set_i denotes the set of public keys corresponding to the secret keys that signed m_i. This implements a combination of AggregateVerify from Section 3.1.1 and FastAggregateVerify from Section 3.3.4 of https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-bls-signature-05.
  • Verifies an aggregate signature on the same message m under keys PK_i for i=1..n by checking pairing(sig, g_2) == pairing(g1_hash(m), sum_{i=0}^n (PK_i)) where g_2 is the generator of G2.

Type Aliases§

  • A proof of knowledge of a secretkey