A zero-knowledge proof is a cryptographic demonstration of the truth of a statement such as "I know a number $x$ such that $g^x\mod p =y$", that can be verified by a sceptical party but provides no information beyond the truth of the statement.
A zero-knowledge proof is a cryptographic demonstration of the truth of a statement such as "I know a number $x$ such that $g^x\mod p =y$", that can be verified by a sceptical party but provides no information beyond the truth of the statement.
More formally, a zero-knowledge proof bus satisfy three conditions:
- Completeness. If the statement is true and the process is implemented by an honest prover, it should convince an honest verifier versed in the art of cryptography.
- Soundness. If the statement is false then the probability that a dishonest prover can convince an honest verifier versed in the art should be vanishingly small.
- Zero-knowledge. If the statement is true, the process provides no information to a verifier that they could not have produced themselves. By which we mean that the verifier could generate equivalent random transcripts of the process, by generating the exchanged information in a different order.