Efficient and Secure Data Management Using Points of Unknown Order
Bilinear accumulators are cryptographic primitives that allow multiple elements {aiβ} from a set to be combined into a single, compact value called an accumulator. This accumulator enables efficient verification of whether an element is a member (or not a member) of the accumulated set without revealing the entire set or requiring large amounts of data.They are defined using a polynomial constructed from the elements to be accumulated:
A(x)=βiβ(xβaiβ).
To commit to this set, we evaluate this polynomial at a point of unknown orderΟ, resulting in an accumulator that is a group element:
A point of unknown order is a group element gΟ where g is the generator of the group, and Ο is an unknown scalar. We can make such a point and its powers gΟi up to some maximum power t 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.
This method requires explicit computation of A(x), which involves multiplying linear factors corresponding to each element in the set. Although this computation is linear in the size of the set, it is practical for sets of reasonable size.
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.
To prove that an element aiβ is part of the accumulated set, a prover provides a witness polynomial W(x), which is the accumulator polynomial without the factor (xβaiβ):
W(x)=(xβaiβ)A(x)β=βjξ =iβ(xβajβ).
The prover computes the witness value:
W(Ο)=gβjξ =iβ(xβajβ).
The verifier can check the membership of aiβ using bilinear pairings:
To prove that an element b is not part of the accumulated set, the prover uses the Polynomial remainder theorem which says that we can always represent our polynomial as:
A(x)=q(x)(xβb)+A(b).
Using this, the prover can then find q(x) and send q(Ο),A(b) to the verifier. The verifier can then check:
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.
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).
In our scheme, we use a point G on an elliptic curve where the order of G 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 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.