Class BLS12_381Aggregation


  • public class BLS12_381Aggregation
    extends java.lang.Object
    Helper for aggregating BLS12-381 signatures and verifying aggregates.

    Aggregation itself is suite-independent — it is just point addition in G2. The aggregate-verify equation e(G1_gen, sig_agg) == prod_i e(pk_i, H(msg_i)) collapses to a single multi-pairing check multiPair([(-G1_gen, sig_agg), (RK_1, H_1), ...]) == 1, where each H_i is a distinct hashed-message G2 point and RK_i is the sum of all public keys that signed the corresponding message — the "QK_set" aggregation from draft-irtf-cfrg-bls-signature sec. 2.9. Each suite computes its own list of hashed-message G2 points (BasicScheme: H(msg) with NUL DST; MessageAugmentation: H(pk || msg) with AUG DST; ProofOfPossession: H(msg) with POP DST) and then defers to aggregateVerifyHashed(org.bouncycastle.math.ec.ECPoint[], org.bouncycastle.crypto.bls.BLS12_381G2Point[], org.bouncycastle.crypto.bls.BLS12_381G2Point), which performs the message-grouping plus a single final exponentiation regardless of how many signers participated.

    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static BLS12_381G2Point aggregate​(BLS12_381G2Point[] signatures)
      Aggregate a list of BLS signatures by summing them in G2.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • aggregate

        public static BLS12_381G2Point aggregate​(BLS12_381G2Point[] signatures)
        Aggregate a list of BLS signatures by summing them in G2.
        Parameters:
        signatures - one or more BLS signatures (G2 points). Must be non-empty.
        Returns:
        sig_1 + sig_2 + ... + sig_n.