Chaum Pedersen ZKP Protocol

The Chaum-Pedersen Zero-Knowledge Proof (ZKP) Protocol is a cryptographic method for proving the equality of discrete logarithms without revealing the secret exponent. It ensures that for given group elements (g, h, A, B), there exists a secret x such that A = g^x and B = h^x.

Core Protocol Workflow​​

Setup

Commitment (Prover):

Challenge (Verifier):

Response (Prover):

Verification:

Proof

\begin{align*} g^{s} &= g^{w + c * x \mod q} = g^w g^{cx} \mod q \newline t_1 * A^c &= g^w * (g^x)^c = g^w g^{cx} \mod q \newline & \implies g^s = t_1 * A^c \end{align*} Similarly, can prove that h^s = t_2 * B^c