The Schnorr identification protocol lets a prover demonstrate knowledge of a discrete logarithm without revealing the secret witness. It turns a random commitment, a verifier’s challenge, and a proof into an interactive zero-knowledge exchange. section 7.2.1
The exchange follows three movements:
- Commitment: Peggy chooses a random value k and uses the generator to form a hidden commitment such as g^k. section 7.2.1
- Challenge: Victor sends a challenge c only after receiving Peggy’s commitment. section 7.2.1
- Proof: Peggy combines k with her witness and the challenge to compute s, which Victor checks without learning the witness. section 7.2.1
This construction is complete, sound, and zero-knowledge: an honest prover can demonstrate knowledge, a prover without the witness cannot successfully prove it, and the verifier learns nothing about the witness. Its guarantee is honest-verifier zero-knowledge, so a verifier choosing challenges dishonestly may learn something. section 7.2.1
Figure 7.6 The Schnorr identification protocol is an interactive ZKP that is complete (Peggy can prove she knows some witness), sound (Peggy cannot prove anything if she doesn’t know the witness), and zero-knowledge (Victor learns nothing about the witness).
Use the protocol diagram to trace commitment, challenge, and proof while comparing completeness, soundness, and zero-knowledge. section 7.2.1
