Source: Proofs, Arguments, and Zero-Knowledge, Chapter 12
- Given a generator , the discrete log relation is the collection of pairs such that
- -Protocol: A 3-message public coin protocol that convinces the verifier that the prover knows a tuple in the relation for a public
- Let’s call the messages , where and are prover messages and is a random challenge
- The protocol:
- : The prover picks a random number and sends to the verifier
- : The verifier responds with a random challenge
- : The prover responds with
- → The verifier checks that
- Honest-verifier perfect zero-knowledge (HVZK): There is a simulator that can generate transcripts of identical distribution
- The simulator generates and randomly, then solves for
- Special soundness: There exists a polynomial-time algorithm that for any pair of distinct accepting transcripts and can output a witness
- If the prover was prepared to answer to more than one challenge, (s)he could have run that algorithm to get the witness, so (s)he must know it!
- In this case, setting , we can solve for
- Fiat-Shamit transformation: Set , where is modeled as a random oracle