A prover is the party that claims knowledge of private information and supplies evidence without revealing the secret itself. In zero-knowledge protocols, the verifier checks whether the claim is valid. section 1.3.4
A prover participates in the proof flow by:
- Keeping a private witness, such as public-key, coin, address, medical, or patient data. section 1.3.4 section 19.2
- Combining the witness with public inputs and a common reference string to construct a proof of knowledge. section 1.3.4
- Using a quadratic arithmetic program whose wires and multiplication gates encode the computation being proved. section 19.2
- Sending either interactive messages or a noninteractive proof, with SNARKs removing repeated prover-verifier communication. section 1.3.4 section 19.7
Medical-record proof
The prover uses a medicine number, dose, and hidden patient number as QAP inputs, adding a random value so the computation does not reveal the patient. The resulting proof shows that a qualifying record exists without identifying the patient. section 19.2
Figure 1.8 Requirements involved to create zero-knowledge proof
Trace the public data, private witness, common reference string, and proof inputs used to create a noninteractive zero-knowledge proof. section 1.3.4
Figure 19.2 Example quadratic arithmetic program
Inspect the toy QAP showing how prover-known wire values and multiplication gates encode the claimed computation. section 19.2

