Written by Steve Miller
Zk-STARKs use cryptographic hash functions, similar to the mining algorithms employed to mine Proof-of-Work cryptoassets like Bitcoin, to produce zero-knowledge proofs. The proofs are constructed using publicly verifiable randomness from the hash chain produced by the hash function and known to both the prover and the verifier. Generating zero-knowledge proofs this way makes their deployment more scalable.
Proofs are generated off-chain and then pulled on-chain when required for verification. The way this works is the root of the Merkle tree is stored on-chain. While the leaves of the tree (proofs) are generated off-chain and then batched together for scalable verification via the root on-chain. Once verified, the root updates to reflect the additional leaves added from the off-chain calculated proofs.
Use of a cryptographic hash function to produce proofs via Merkle trees makes STARKs more transparent than SNARKs. Because information for the cryptographic hash function used to create proofs is public. Whereas SNARKs require a trusted set up process in which certain details remain exclusive to the parties entrusted with set up.
Additionally, zk-STARKS should be resistant to advances in quantum computing while the elliptic-curve cryptography that is the foundation of zk-SNARKs could prove more vulnerable.
ZK-STARKs — Create Verifiable Trust, even against Quantum Computers by Adam Luciano
White Paper Published for Blockchain Privacy Tech Zk-starks by Rachel Rose O'Leary