A zk-SNARK (zero-knowledge succinct non-interactive argument of knowledge) is a type of zero knowledge proof scheme that can provide privacy and scaling benefits. A zk-SNARK's succinctness derives from its small proof size and the ease by which it can be verified, even if the concept being proven is difficult. The non-interactive property means continuous communication between the prover and verifier is not required. A SNARK is only a zk-SNARK if it has the zero-knowledge property, though, and a SNARK by itself typically only confers scalability advantages to blockchain systems. SNARKs and their ZK variants can differ according to whether they rely on a trusted setup for their creation, the use of quantum-insecure cryptography, and performance metrics such as proof generation time, proving, and verification time.