🪶Pedersen commitment
A Pedersen commitment is a cryptographic primitive used to commit to a chosen value while keeping it hidden from others, but with the capability to reveal the chosen value later. Pedersen commitments are commonly used in cryptographic protocols to achieve both confidentiality (hiding information) and commitment (ensuring information isn't changed later).
The Pedersen commitment has the properties of being both hiding (it's computationally infeasible to determine the committed value) and binding (once you've committed, you can't change your mind without detection).
Here's how it works:
Setup: Two large prime numbers and are chosen such that divides . Then, a cyclic group of order is selected with generator . A random is also chosen from such that no one knows the discrete logarithm of with respect to , i.e., no one knows where .
Commitment: To commit to a value with randomness , the commitment is calculated as:
Opening: To open the commitment (i.e., to reveal the committed value), the committer provides the value and the randomness . The verifier then checks the commitment using the given and against the previously provided commitment .
The hiding property ensures that, given , it's computationally hard to deduce or . The binding property ensures that, once has been provided, it's computationally infeasible to find any other or such that the commitment could have been created with and (i.e., you can't find two different sets of values that result in the same commitment).
Pedersen commitments are used in a variety of cryptographic protocols and systems, especially in the context of zero-knowledge proofs and privacy-preserving mechanisms.
Last updated