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]
In a common reference string model, both parties use public setup data . The prover constructs a proof for a public statement , and the verifier evaluates
The 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]
An original toy relation separates a statement from a cryptographic witness. Let the public values be and , and ask whether there is a value with
The 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.

Articles by others on the same topic (1)

A Non-Interactive Zero-Knowledge Proof (NIZK) is a cryptographic method by which one party (the prover) can convince another party (the verifier) that a given statement is true, without revealing any additional information about the statement itself, and without the need for interaction between the two parties after the initial setup phase.