International Association for Cryptologic Research (IACR)
Abstract
Cryptographic accumulators are a common solution to proving information about a large set S.
They allow one to compute a short digest of S and short certificates of some of its basic properties, notably membership of an element. Accumulators also allow one to track set updates: a new accumulator is obtained by inserting/deleting a given element.
In this work we consider the problem of generating membership and update proofs for {\em batches} of elements so that we can succinctly
prove additional properties of the elements (i.e., proofs are of constant size regardless of the batch size), and we can preserve privacy.
Solving this problem would allow obtaining blockchain systems with improved privacy and scalability.
The state-of-the-art approach to achieve this goal is to combine accumulators (typically Merkle trees) with zkSNARKs. This solution is however expensive for provers and does not scale for large batches of elements. In particular, there is no scalable solution for proving batch membership proofs when we require zero-knowledge (a standard definition of privacy-preserving protocols).
In this work we propose new techniques to efficiently use zkSNARKs with RSA accumulators. We design and implement two main schemes: 1) \harisa, which proves batch membership in zero-knowledge;
2) \insarisa, which proves batch updates.
For batch membership, the prover in \harisa is orders of magnitude faster than existing approaches based on Merkle trees (depending on the hash function). For batch updates we get similar cost savings compared to approaches based on Merkle trees; we also improve
over the recent solution of Ozdemir et al. [USENIX\u2720]