Zero-Knowledge Accumulators and Set Operations

Accumulators provide a way to succinctly represent a set with elements drawn from a given domain, us- ing an accumulation value. Subsequently, short proofs for the set-membership (or non-membership) of any element from the domain can be constructed and efficiently verified with respect to this accumulation value. Accumula- tors have been widely studied in the literature, primarily, as an authentication primitive: a malicious prover (e.g., an untrusted server) should not be able to provide convincing proofs on false statements (e.g., successfully prove membership for a value not in the set) to a verifier that issues membership queries (of course, having no access to set itself). In essence, in existing constructions the accumulation value acts as a (honestly generated) "commitment" to the set that allows selective "opening" as specified by membership queries—but with no "hiding" properties. In this paper we revisit this primitive and propose a privacy-preserving enhancement. We define the notion of a zero-knowledge accumulator that provides the following very strong privacy notion: Accumulation values and proofs constructed during the protocol execution leak nothing about the set itself, or any subsequent updates to it (i.e., via element insertions/deletions). We formalize this property by a standard real/ideal execution game. An adversarial party that is allowed to choose the set and is given access to query and update oracles, cannot distinguish whether this interaction takes place with respect to the honestly executed algorithms of the scheme or with a simulator that is not given access to the set itself (and for updates, it does not even learn the type of update that occurred—let alone the inserted/deleted element). We compare our new privacy definition with other recently proposed similar notions showing that it is strictly stronger: We give a concrete example of the update-related information that can be leaked by previous definitions. We provide a mapping of the relations between zero-knowledge accumulators and primitives that are either set in the same security model or solve the same problem. We formally show and discuss a number of implications among primitives, some of which are not immediately evident. We believe this contribution is interesting on its own, as the area has received considerable attention recently (e.g., with the works of (Naor et al., TCC 2015) and (Derler et al., CT-RSA 2015)). We then construct the first dynamic universal zero-knowledge accumulator. Our scheme is perfect zero- knowledge and is secure under the q-Strong Bilinear Diffie-Hellman assumption. Finally, building on our dynamic universal zero-knowledge accumulator, we define a zero-knowledge authen- ticated set collection to handle more elaborate set operations (beyond set-membership). In particular, this primitive allows one to outsource a collection of sets to an untrusted server that is subsequently responsible for answering union, intersection and set difference queries over these sets issued by multiple clients. Our scheme provides proofs that are succinct and efficiently verifiable and, at the same time, leak nothing beyond the query result. In particular, it offers verification time that is asymptotically optimal (namely, the same as simply reading the answer), and proof construction that is asymptotically as efficient as existing state-of-the-art constructions— that however, do not offer privacy.