A cryptographic protocol that allows a party to prove possession of information, such as a private key, without revealing it. Zero-knowledge proofs offer "proofs of validity" to convey information from a prover to a verifier. They are used to verify transactions on a blockchain very quickly.
Layer 2 Blockchains - ZK-SNARK and ZK-STARK
Zero Knowledge SNARK and STARK are examples used in Layer 2 blockchain "rollups." ZK-SNARK (ZK-succinct non-interactive argument of knowledge) hides addresses and transaction amounts but allows the network to verify and confirm a transaction. It is used by privacy-oriented Zcash to provide anonymous payments (see Zcash
ZK-STARK (ZK-succinct transparent argument of knowledge) offers more scalability and transparency and is touted as the ultimate successor to ZK-SNARK. See Layer 2 blockchain
and zero confirmation transaction
A Simple Zero Proof Example
For blockchains and other verification purposes, zero-knowledge proofs can be very complicated. However, a "challenge-response" server login is a simple example that shows how a value can be proven even though it is never divulged. Instead of storing an authentication password on a server, which could be stolen if the server is attacked, an all-numeric hash value of the password is created by the client and stored on the server. When a user logs in, the server creates a random "challenge" number and sends it to the client. The client subtracts its hash number from the challenge and sends the result (the "response") back to the server, which performs the same subtraction. If the two subtraction results match, the server knows the client has the original password, and the user is authenticated. See hash