The proof is about a claim, not the secret itself

A zero-knowledge proof separates what someone wants to establish from the private information that makes it true. In cryptography, the private information is called a witness: it might be a password, a key, or a piece of personal data. The public claim could be that the person knows a valid password, without giving the password to the system checking it.

The prover and verifier use a mathematical protocol designed for that particular claim. The prover generates a proof from the witness; the verifier checks the proof using public information. The verifier does not receive the witness or simply get a scrambled copy of it. The proof is constructed so that a valid witness can produce evidence that passes the check, while someone without one should not be able to fake a passing proof.

Why checking does not require disclosure

Many protocols make the verifier’s check depend on a challenge chosen during the interaction, or use cryptographic techniques that package the check into a proof that can be verified later. The important design goal is that the proof reveals no useful information about the witness beyond what the claim itself implies. A verifier may learn that a requirement is met, but not the underlying private value.

That protection depends on the proof system being correctly designed and implemented; “zero knowledge” is a mathematical property under stated assumptions, not a guarantee that every surrounding app is private. A system could still collect identifying details elsewhere or reveal more through its records. Used carefully, though, the approach changes a familiar exchange: instead of handing over evidence for someone else to inspect, a person can present a checkable answer and keep the evidence itself.