A zero-knowledge proof, sometimes also referred to as a ZK protocol, is a verification method that takes place between a prover and a verifier. In a zero-knowledge proof system, the prover is able to prove to the verifier that they have the knowledge of a particular piece of information (such as the solution to a mathematical equation) without revealing the information itself. These proof systems can be used by modern cryptographers to provide increased levels of privacy and security.
A ZK proof must fulfill two basic requirements known as completeness and soundness. Completeness refers to the ability of the prover to demonstrate knowledge of the relevant information to a high degree of probable accuracy. For the proof to be sound, the verifier must be able to reliably determine whether or not the prover is actually in possession of the information. Finally, in order to be truly zero-knowledge, the proof must achieve both completeness and soundness without the information in question ever being communicated between the prover and the verifier.
Zero-knowledge proofs are mostly used for applications in which privacy and security are essential. Authentication systems, for example, can employ ZK proofs to verify credentials or identities without directly divulging them. As a simple example, it can be used to verify that a person has a password to a computer system without the need for disclosing what the password.