Non-interactive zero-knowledge proofs— also known as NIZK, zk-SNARK, zk-STARK — are zero-knowledge proofs that require no interaction between the prover and verifier. The first widespread application of zk-SNARKs was in the Zerocash blockchain protocol, where zero-knowledge cryptography provides the computational backbone, by facilitating mathematical proofs that one party has possession of certain information without revealing what that information is.