Common reference string 2026-11-05
A common reference string is public setup data shared by the parties to a cryptographic protocol. Its distribution is specified by the cryptographic setup. In a non-interactive zero-knowledge proof, the prover and verifier can use the same string without exchanging a new challenge during each proof.[ref]
A common random string is the special case in which the setup string is uniformly sampled; more general reference-string models specify another efficiently generated distribution. Being public is compatible with its purpose: the cryptographic witness may be secret even though the reference string is available to everyone.
An original eight-bit example shows why format and distribution are distinct. A uniform eight-bit string satisfiesA generator that always outputs those eight zeros satisfies the same length requirement but gives that event probability one. Checking length alone cannot establish the intended sampling law. This example illustrates a distributional distinction, not a proposed secure setup.
The zero-knowledge simulator may also simulate the joint distribution of setup data and proof. Consequently, the definition must state how setup is generated and what generation-related information the relevant parties possess. A public string with the right shape is not by itself evidence for the security properties of a proof system.[ref]
Zero-Knowledge: a tutorial by Oded Goldreich. Section8, real and simulated reference-string/proof pairs
Cryptographic setup 2026-11-05
Cryptographic setup is the generation and distribution of initial parameters or other resources required by a cryptographic protocol. Its specification includes the input cryptographic security parameter, the sampling procedure, the public output and any information that must remain secret. Setup is part of the protocol's security model, rather than an arbitrary source of well-formatted constants.
A common reference string gives one example. Parties to a non-interactive zero-knowledge proof may share a public string sampled by the prescribed setup. The definition describes both its distribution and how that setup participates in real and simulated proof experiments.[ref]
Zero-Knowledge: a tutorial by Oded Goldreich. Section8, shared reference-string model and joint simulation
An original distribution example makes the generation rule explicit. Let a toy setup sample two independent uniform bits and publishIts support is , each with probability . A uniformly sampled three-bit string instead has eight possible values, each with probability . The two generators publish strings of the same length, but the second satisfies the parity equation only half the time.
Honest-verifier zero knowledge 2026-11-05
Honest-verifier zero knowledge is the zero-knowledge proof simulation requirement restricted to a verifier that follows its prescribed algorithm. The zero-knowledge simulator reproduces that verifier's view without the prover's secret cryptographic witness. General zero knowledge must account for permitted deviations by the verifier as well.[ref]
Zero-Knowledge: a tutorial by Oded Goldreich. The Basics, restriction to honest verifiers and simulation variants
In the graph-isomorphism proof protocol, the honest verifier chooses an independent uniform challenge bit. A simulator can first choose , sample a uniform permutation , set and output . For isomorphic public graphs, this has the same distribution as the honest conversation.[ref]
Probabilistic Proof Systems: A Primer by Oded Goldreich. Construction2.3, honest-verifier simulation on printedp.27
An original small example shows what changes if the verifier deviates. Suppose is a uniform relabeling of a three-vertex path. There are three labeled paths; two contain the edge . A different verifier could choose exactly when that edge is present, soThe elementary honest-verifier simulator chooses a uniform bit and instead gives . It therefore fails to reproduce this changed verifier's view.
This comparison does not show that the standard graph protocol lacks general zero knowledge. It shows that a simulator for the honest verifier does not automatically prove the stronger property. The general analysis may use rewinding in cryptographic proofs to simulate challenges that depend on the first message. The stated adversary model is part of the theorem.
Non-interactive zero-knowledge proof 2026-11-05
A non-interactive zero-knowledge proof allows a prover to send one proof message that a verifier can check without an ensuing challenge-response conversation, while satisfying an appropriate zero-knowledge proof definition. Non-interactive describes the proof exchange; it does not mean that setup assumptions disappear.[ref]
Zero-Knowledge: a tutorial by Oded Goldreich. Section8, single-message model and shared reference string
In a common reference string model, both parties use public setup data . The prover constructs a proof for a public statement , and the verifier evaluatesThe setup's distribution and the adversary's knowledge of its generation must be specified. In the tutorial's basic common-random-string model, the zero-knowledge simulator produces a reference-string/proof pair with the required computational indistinguishability from a real pair.[ref]
Zero-Knowledge: a tutorial by Oded Goldreich. Section8, real and simulated reference-string/proof distributions
An original toy relation separates a statement from a cryptographic witness. Let the public values be and , and ask whether there is a value withThe value satisfies the relation because . Sending directly verifies that example but reveals that witness; it does not demonstrate a zero-knowledge property. A non-interactive proof would instead require a defined proof construction, verifier and simulation argument.
The tiny modulus is chosen only for transparent modular arithmetic; it is not a secure cryptographic parameter. Likewise, a single short message is not automatically a non-interactive zero-knowledge proof: efficient verification, soundness and information disclosure remain separate obligations.
Zero-knowledge simulator 2026-11-05
A zero-knowledge simulator is an efficient randomized algorithm that reproduces the relevant verifier-view distribution of a zero-knowledge proof without receiving the prover's secret cryptographic witness. Depending on the definition, the real and simulated views must be identical, statistically close or satisfy computational indistinguishability.[ref]
Zero-Knowledge: a tutorial by Oded Goldreich. The Basics, simulator and level of distribution similarity
The graph-isomorphism proof protocol provides an illuminating example for honest-verifier zero knowledge. On a fixed public isomorphic pair , a real prover sends a random relabeling , receives a uniform challenge bit , and supplies a graph isomorphism from to .[ref]
Probabilistic Proof Systems: A Primer by Oded Goldreich. Construction2.3 and the honest-verifier simulation immediately following it, printedpp.26–27
An explicit simulation reverses that construction. First choose a uniform bit and a uniform vertex permutation . Setand output the transcript . The simulator never needs a mapping between and . For an isomorphic public pair, random relabelings of either graph have the same probability distribution; conditional on , the response mapping is uniform in both constructions. Thus the honest verifier's transcript distribution is reproduced exactly.
This does not give a live cheating prover control of the verifier's future challenge. The simulator chooses a complete transcript in a different order from the real exchange. Nor does this simple sampler establish security against an arbitrary malicious verifier, whose challenge could depend on .
The example exposes the central requirement: producing one plausible accepting transcript is insufficient. The simulator must reproduce the specified distribution within the required efficiency bound and adversary model.