zkSNARKs
zkSNARKs are a class of cryptographic proof systems that allow a prover to convince a verifier that a secret witness satisfying a computation exists, without revealing the witness, and with a proof that is short and quick to verify. The acronym stands for zero-knowledge Succinct Non-Interactive Argument of Knowledge. They are zero-knowledge, meaning no information about the witness leaks; succinct, yielding small proofs and fast verification; non-interactive, requiring only a public setup to check proofs; and an argument of knowledge, meaning a valid witness is presumed to exist for the statement.
In practice, the computation is encoded as a circuit or algebraic constraint system. A trusted setup produces
zkSNARKs enable privacy-preserving applications such as shielded transactions in blockchains (for example, Zcash) and verifiable outsourced
Limitations include the need for a trusted setup in most constructions; a setup compromise can undermine security.