BilinearAccumulatorProver
Off-chain prover for the BLS12-381 Bilinear Accumulator.
Supports both G1-accumulator (acc on G1, Ethereum ceremony compatible) and G2-accumulator (acc on G2, cheaper on-chain verification). Generates trusted setups, accumulators, and membership/non-membership proofs. After setup, tau is no longer needed — all operations use the CRS points directly via multi-scalar multiplication.
Attributes
- Graph
-
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
Members list
Type members
Classlikes
Self-contained CRS with powers of tau on both G1 and G2.
Self-contained CRS with powers of tau on both G1 and G2.
After trustedSetup, tau can be destroyed. All accumulator and proof operations use only the CRS points.
Attributes
- Companion
- object
- Supertypes
-
trait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Value members
Concrete methods
Compute G1 accumulator: acc = P_U(tau)*G1.
Compute G1 accumulator: acc = P_U(tau)*G1.
Attributes
Compute G2 accumulator: acc = P_U(tau)*G2.
Compute G2 accumulator: acc = P_U(tau)*G2.
Attributes
Generate G1 membership proof: commit(Q, G1) where Q = P_fullSet / P_subset.
Generate G1 membership proof: commit(Q, G1) where Q = P_fullSet / P_subset.
Attributes
Generate G2 membership proof: commit(Q, G2) where Q = P_fullSet / P_subset.
Generate G2 membership proof: commit(Q, G2) where Q = P_fullSet / P_subset.
Attributes
Generate G1 non-membership proof using extended GCD. Returns (commit(S, G2), commit(T, G1)) where SP_U + TP_D = 1.
Generate G1 non-membership proof using extended GCD. Returns (commit(S, G2), commit(T, G1)) where SP_U + TP_D = 1.
Attributes
Generate G2 non-membership proof using extended GCD. Returns (commit(S, G1), commit(T, G2)) where SP_U + TP_D = 1.
Generate G2 non-membership proof using extended GCD. Returns (commit(S, G1), commit(T, G2)) where SP_U + TP_D = 1.
Attributes
Generate a trusted setup with powers of tau on both G1 and G2.
Generate a trusted setup with powers of tau on both G1 and G2.
WARNING: This is intended for testing only. In production, use a multi-party ceremony where tau is never known to any single party. Anyone who knows tau can forge arbitrary proofs.
Value parameters
- maxDegree
-
maximum polynomial degree to support
- tau
-
the secret scalar (must be random and destroyed after setup)
Attributes
Verify G1 membership proof by delegating to on-chain verifier.
Verify G1 membership proof by delegating to on-chain verifier.
Attributes
Verify G2 membership proof by delegating to on-chain verifier.
Verify G2 membership proof by delegating to on-chain verifier.
Attributes
Verify G1 non-membership proof by delegating to on-chain verifier.
Verify G1 non-membership proof by delegating to on-chain verifier.
Attributes
Verify G2 non-membership proof by delegating to on-chain verifier.
Verify G2 non-membership proof by delegating to on-chain verifier.
Attributes
Deprecated methods
Compute accumulator (G2 variant).
Compute accumulator (G2 variant).
Attributes
- Deprecated
-
[Since version 0.15.1]Use accumulateG2 instead
Generate membership proof (G2 variant).
Generate membership proof (G2 variant).
Attributes
- Deprecated
-
[Since version 0.15.1]Use membershipProofG2 instead
Generate non-membership proof (G2 variant).
Generate non-membership proof (G2 variant).
Attributes
- Deprecated
-
[Since version 0.15.1]Use nonMembershipProofG2 instead
Verify membership proof (G2 variant).
Verify membership proof (G2 variant).
Attributes
- Deprecated
-
[Since version 0.15.1]Use verifyMembershipG2 instead
Verify non-membership proof (G2 variant).
Verify non-membership proof (G2 variant).
Attributes
- Deprecated
-
[Since version 0.15.1]Use verifyNonMembershipG2 instead
Concrete fields
BLS12-381 scalar field prime
BLS12-381 scalar field prime