Vector commitment allows one to commit to an ordered sequence of $q$ value ($m_1,\cdots,m_q$) in such a way that one can later open the commitment at specific positions(e.g., prove that $m_i$ is the $i$-th committed message).

A Zero-knowledge set means that users commit to a set and subsequently prove the (non-)membership of some elements without revealing any further information (not even the cardinality of the committed set).

Accumulator allows to succinctly present a set by an accumulation value with respect to which short (non-)membership proofs about the set can be efficiently constructed and verified. Zero-knowledge accumulator additionally provides hiding guarantees: Accumulation values and proofs leak nothing about a set.

Zero-knowledge Elementary Database allows to commit a database that consists of the pairs $(i, DB[i])$ and prove that $DB[i]$ is the value on position $i$ without revealing any further information.

I confuse these primitives. The zero-knowledge set and Zero-knowledge accumulator set are designed for unordered data. Vector commitment and Zero-knowledge Elementary Database are designed for ordered data. Could these primitives be transferred mutually? What's the difference. Could we say that Vector commitment is Zero-knowledge Elementary Database?

  • $\begingroup$ Zero-knowledge elementary databases generalize zero-knowledge sets in that each element $x$ has an associated value $D(x)$ in the committed database. $\endgroup$
    – Qiang Wang
    Apr 7 '19 at 20:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.