What cryptographic primitive does Zcash use for private transactions?

The story behind the answer

Zcash uses zk-SNARKs for private transactions. These zero-knowledge proofs let the network verify that a shielded transaction is valid without revealing the sender, recipient, or amount to the public blockchain.

Zcash launched in 2016 as a privacy-focused cryptocurrency based on Bitcoin’s code. Its shielded addresses use cryptographic commitments and zero-knowledge proofs, while transparent addresses expose transaction information in a Bitcoin-like manner. Privacy is therefore an available transaction mode, not an automatic property of every Zcash payment.

The protocol’s proving systems have evolved. Earlier shielded pools used Groth16 zk-SNARKs and required a trusted setup ceremony. The Orchard pool, introduced with the NU5 upgrade, uses the Halo 2 proving system, which is also a zk-SNARK construction and avoids the same style of trusted setup. Thus “zk-SNARKs” remains the correct broad answer even though the specific proving system depends on the transaction pool and protocol generation.

Mimblewimble and Bulletproofs are different privacy technologies, while zk-STARKs are another family of zero-knowledge proofs. They are not the canonical answer for Zcash’s shielded transactions.

Source: Wikipedia · fact-checked Sept. 2026

Add question to a list

Choose a list to keep this question in: