Questions: Commitment Schemes

5 questions to test your understanding

Score: 0 / 5
Question 1 Short Answer

A hash-based commitment c = H(v || r) is computationally hiding and computationally binding. What would happen if we used c = H(v) without the random nonce r?

Think about your answer, then reveal below.
Question 2 Multiple Choice

The hiding and binding properties of a commitment scheme are in tension — perfect hiding and perfect binding cannot both be achieved simultaneously. Why?

AThe commitment would require infinite storage
BPerfect hiding means that for any value v, there exists a randomness r' that makes c consistent with a different value v'. But if this is true, the committer CAN find v' and r' to change their commitment — violating perfect binding. Conversely, perfect binding means c uniquely determines v, but then an unbounded adversary could search for the unique v, violating perfect hiding
CQuantum computers break both properties simultaneously
DThe two properties require contradictory key lengths
Question 3 Multiple Choice

Pedersen commitments (c = g^v * h^r mod p, where the discrete log relationship between g and h is unknown) provide information-theoretic hiding. Why?

AThe modular exponentiation is a one-way function
BFor any commitment c and any target value v', there exists a randomness r' such that c = g^{v'} * h^{r'} — the commitment is consistent with every possible value. An unbounded adversary cannot determine v because every v is equally plausible. Finding r' requires knowing the discrete log of g base h, so opening to a different value (binding) is computationally hard
CThe Pedersen commitment uses a random oracle
DThe prime p is so large that brute force is infeasible
Question 4 True / False

Commitment schemes are essential for fair coin-flipping over a telephone line (Blum's protocol). Without commitments, the first party to announce their coin flip can cheat by choosing based on the other's announcement.

TTrue
FFalse
Question 5 Short Answer

Vector commitments generalize standard commitments: instead of committing to a single value, you commit to a vector (v_1, ..., v_n) and can later open any individual position i without revealing other positions. Why is this useful for blockchain?

Think about your answer, then reveal below.