In this chapter, we discuss set commitments, which are the first in the hierarchy with a partial opening mechanism.
The mathematical object to be committed to, which will consitute our message , is a set of variable size . Being a set, its elements are unique, i.e. and indexing of the elements is arbitrary.
In practice, commitments to sets are usually simulated by vector commitments. However, there is an important commitment primitive called an accumulator that is invariant to the arbitrary indexing of the set's elements (order/permutation invariance). Accumulators are not vector commitments, as they do not commit to a particular positioning of the elements. We will discuss accumulators through a specific example.
Let us assume that the elements of the sets to be committed to belong to the set . In other words, the sets to be committed to are elements of the power set of , .
Further, let us assume that there exists a one-to-one mapping function that transforms each element to a distinct prime number . This mapping is easy to create for any finite cardinality .
The prime number mapping makes this commitment scheme impractical and in general accumulators replace this mapping with a more interactive map such as where is determined by a verifier. This makes the mapping pseudo-unique, meaning that it is hard to replicate its results without knowing beforehand.
Efficiency: The space/communication complexity of the digest and any opening proof are single group elements (whose size depends on the group size and representation).
The complexity of the commitment algorithm is group operations in , using fast exponentiation such as the square & multiply algorithm.
The complexity of the opening algorithm is group operations in using fast exponentiation.
The scheme does not require a trusted-setup algorithm, as the parameters of the group and are completely public.
Given a set commitment , it is straightforward to simulate a single-element commitment through the following reduction:
This is extremely simplistic, as we are just wrapping the single-element message as a set and using the set commitment algorithms to simulate the single-element commitment. This will be a common theme, but the reductions become a bit more complex and will require additional algorithms in later chapters.
As we mentioned, commitments to sets are usually simulated through practical and efficient vector commitments, which we discuss in the next chapter. However, accumulators (with some slight modifications to the presented version) are important components in some state-of-the-art zero-knowledge proof systems.
Intro: A Hierarchical View of Cryptographic Commitment Schemes
Previous: Single-element Commitments
Next: Vector Commitments