Module concordium_base::aggregate_sig
source · 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§
- Size of the aggregate signature public key in bytes.
- Size of the aggregate signature secret key in bytes.
- Size of the aggregate signature in bytes.
Functions§
- Verifies an aggregate signature on pairs
(messages m_i, PK_i)
for i=1..n
by checkingpairing(sig, g_2) == product_{i=0}^n ( pairing(g1_hash(m_i), PK_i) )
whereg_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 whereset_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