In this series of notes, we explore cryptographic commitment schemes, which are primitives that lie at the foundation of various cryptosystems, such as digital signatures and zero-knowledge proofs.
Commitment schemes can be categorized based on the type of data or information containing mathematical objects (think data structures but possibly extended to infinities) they operate on, such as sets, vectors, functions and so on.
Specifically, we are interested in building a hierarchy of commitment schemes that connect to each other through reductions, mathematical bridges that allow us to simulate a family of commitments designed for a simpler type of object (such as a set), through another family of commitments designed for a more complex type (such as a vector, which can be viewed as an ordered multi-set).
We will begin by discussing the origins of commitment schemes and the oracle ideals they embody, binding and hiding. Then, we describe the common elements within all commitment schemes, four well-specified algorithms that make up a commitment, whose computational complexity along with their output sizes determine the efficiency of the scheme.
In each chapter that follows, we will introduce and give a clear definition for a different family of commitments based on the catagorization above, e.g. set commitments, vector commitments, univariate polynomial commitments and so on. Further, we will introduce some of the most common or well-known commitment schemes used across many applications in the real-world for that particular family.
Finally, in each chapter after the first, we will connect the hierarchy of commitment schemes by introducing a simple reduction that connects that family to its child family introduced previously.
This series reflects our introductory views on commitment schemes formed from an ongoing and more general study of zero-knowledge proofs. Some of these views are possibly over-simplifications. Further, despite our efforts to minimize them, they may contain certain inaccuracies and we would be happy to remedy any such mistakes. Please feel free to contact us if you would like to contribute to this series in any way, with due acknowledgement on our part. Thank you in advance.
P.S. As a practical example of using commitment schemes, here is the digest of a hidden message (based on SHA3-512) that reveals our identity and proves our authorship, which we can open to a 3rd-party/public at a later time if we choose to do so:
881a092f2856a4dbe26a4f274035fdddec406dcbb1acd5848eb63a71de310110b4216c1eae8f1b3fa0f19b8ecc79265af668fb90481ab4621d43481b5e4cf932