Vector Commitment, Zero-knowledge Set, Zero-knowledge Accumulator等区别

What’s the difference among Vector Commitment, Zero-knowledge Set, Zero-knowledge Accumulator, and Zero-knowledge Elementary Database?

Vector commitment allows to commit to an ordered sequence of q value (m1,⋯,mq) in such a way that one can later open the commitment at specific positions(e.g., prove that mi is the i-th committed message).
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 ii without revealing any further information.
I confuse these primitives. 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?
Zero-knowledge elementary databases generalize zero-knowledge sets in that each element x has an associated value D(x) in the committed database.

参考资料:
[1] https://crypto.stackexchange.com/questions/68600/whats-the-difference-among-vector-commitment-zero-knowledge-set-zero-knowledg

发布了154 篇原创文章 · 获赞 13 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/mutourend/article/details/103723876