Caulk: Lookup Arguments in Sublinear Time

Abstract

We present position-hiding linkability for vector commitment schemes: one can prove in zero knowledge that one or mm values that comprise commitment cm all belong to the vector of size NN committed to in C. Our construction Caulk can be used for membership proofs and lookup arguments and outperforms all existing alternatives in prover time by orders of magnitude. For both single- and multi-membership proofs Caulk beats SNARKed Merkle proofs by the factor of 100 even if the latter instantiated with Poseidon hash. Asymptotically our prover needs O(m2+mlogN)O(m^2 + m\log N) time to prove a batch of mm openings, whereas proof size is O(1)O(1) and verifier time is O(log(logN))O(\log(\log N)). As a lookup argument, Caulk is the first scheme with prover time sublinear in the table size, assuming O(NlogN)O(N\log N) preprocessing time and O(N)O(N) storage. It can be used as a subprimitive in verifiable computation schemes in order to drastically decrease the lookup overhead. Our scheme comes with a reference implementation and benchmarks

    Similar works