Points of Unknown Order
A point of unknown order is a group element where is the generator of the group, and is an unknown scalar. We can make such a point and its powers up to some maximum power public without revealing using a trusted setup ceremony. The use of a point of unknown order is crucial because it ensures that we can commit to various polynomials by evaluating them at a random point - but the random point is preset and we donβt have to find one from scratch each time. This is particularly important when we start a protocol and havenβt sent any messages with which to use to compute some deterministic random point.Accumulator Computation
The accumulator is computed by evaluating the polynomial:Accumulators and Trade-offs
Different types of accumulators have varying trade-offs:- RSA-based Accumulators: Rely on the hardness of factoring large integers. They allow for dynamic updates and efficient proofs without needing to recompute the entire accumulator. However, they require large key sizes and complex key management due to the need for secure generation and storage of an RSA modulus with unknown factorisation.
- Merkle Tree Accumulators: Use hash trees to accumulate elements. They provide efficient (logarithmic-size) membership proofs and are widely used in blockchain systems. Updates (adding or removing elements) have logarithmic time complexity, but the proofs are larger compared to bilinear accumulators.
- Bilinear Accumulators (This Scheme): Offer constant-size accumulators and proofs for both membership and non-membership. However, updates require recomputing the accumulator polynomial from scratch, resulting in linear-time updates. They require the use of elliptic curves, bilinear pairings, and points of unknown order, but do not require any secret parameters.
Membership and Non-Membership Proofs
Bilinear accumulators enable efficient and compact proofs of both membership and non-membership.Membership Proofs
To prove that an element is part of the accumulated set, a prover provides a witness polynomial , which is the accumulator polynomial without the factor :- Bilinearity:
- Non-degeneracy:
- Computability: can be efficiently computed
Non-Membership Proofs
To prove that an element is not part of the accumulated set, the prover uses the Polynomial remainder theorem which says that we can always represent our polynomial as:Efficient and Compact Proofs
Both membership and non-membership proofs are constant-size (do not depend on the size of the accumulated set) and can be verified efficiently using bilinear pairings.The Role of Elliptic Curves, Bilinear Pairings, and Points of Unknown Order
Elliptic Curves
Elliptic curves over finite fields provide group structures suitable for cryptographic operations. Points on the curve can be added together, and scalar multiplication (repeated addition) is computationally efficient. The security of operations relies on the hardness of the Elliptic Curve Discrete Logarithm Problem (ECDLP).Points of Unknown Order
In our scheme, we use a point on an elliptic curve where the order of is unknown to all parties. This prevents anyone from reducing exponents modulo the group order, which enhances security by making discrete logarithm attacks infeasible.Bilinear Pairings
A bilinear pairing is a map:- Bilinearity:
- Non-degeneracy:
- Computability: Efficient algorithms exist to compute
Security Assumptions
Our bilinear accumulator scheme does not require any secret parameters. Its security is based on hardness assumptions such as:- Strong Diffie-Hellman (SDH) Assumption: Given , it is hard to compute for some .
- Discrete Logarithm Problem (DLP): Given and , it is hard to find .
Applications of Bilinear Accumulators
Bilinear accumulators are used in various cryptographic applications that require efficient and secure management of dynamic sets:- Blockchain Systems: Manage sets of valid transactions or state data, enabling nodes to verify inclusion or exclusion without downloading the entire blockchain.
- Digital Certificates and Revocation Lists: Efficiently manage certificate revocations, allowing entities to verify the revocation status of a certificate quickly.
- Anonymous Credentials: Allow users to prove membership in a group without revealing their identity.
- Zero-Knowledge Proofs: Serve as building blocks in complex cryptographic protocols requiring efficient verification of set membership.