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