A zero-knowledge proof (ZKP) is a cryptographic method allowing one party (the prover) to convince another party (the verifier) that a statement is true without revealing any additional information beyond the truth of the statement. For example, you can prove you know a password without revealing it, or prove you have sufficient funds without revealing your balance. ZKPs are formalized by three properties: completeness (valid proofs always verify), soundness (invalid proofs rarely verify), and zero-knowledge (the verifier learns nothing except the statement's truth). Practical ZK systems use arithmetic circuits (constraint systems), polynomial commitments, and interactive or non-interactive protocols. Popular proof systems include SNARKs (Succinct Non-Interactive Arguments of Knowledge), STARKs (Scalable Transparent ARguments of Knowledge), and others.