The evolution of zk-SNARKs technology: from theoretical breakthroughs to scaling applications

robot
Abstract generation in progress

zk-SNARKs: The Evolution from Theory to Application

The Development History of zk-SNARKs

The zero-knowledge proof system originated from the paper "Knowledge Complexity of Interactive Proof Systems" published in 1985 by Goldwasser, Micali, and Rackoff. This paper explored the amount of knowledge exchanged to prove the correctness of a statement through multiple rounds of interaction in an interactive system. If the proof can be completed without revealing any additional information, it is called a zero-knowledge proof.

Early zero-knowledge proof systems were neither efficient nor practical, primarily remaining at a theoretical level. It wasn't until the last decade, with the widespread application of cryptography in the field of cryptocurrencies, that zero-knowledge proofs gradually became an important research direction. Among them, developing universal, non-interactive, and limited-scale zero-knowledge proof protocols is a key goal.

The breakthrough in zero-knowledge proofs was the paper published by Groth in 2010, which laid the theoretical foundation for zk-SNARKs. In 2015, Zcash applied zero-knowledge proofs to protect transaction privacy, initiating the widespread application of zero-knowledge proofs in practical scenarios.

After that, some important academic achievements include:

  • The Pinocchio protocol from 2013 significantly improved proof and verification efficiency.
  • The Groth16 from 2016 further streamlined the proof size and improved verification efficiency.
  • Bulletproofs, proposed in 2017, introduced a short proof algorithm that does not require a trusted setup.
  • The zk-STARKs proposed in 2018 introduced a quantum-resistant zero-knowledge proof protocol.

Other new developments such as PLONK and Halo2 have also improved zk-SNARKs in different aspects.

HashKey ZK 101 Episode 1: Historical Principles and Industry

Main Applications of zk-SNARKs

The two most widely used applications of zk-SNARKs currently are privacy protection and scalability.

Early privacy-focused projects like Zcash and Monero received a lot of attention, but the demand for privacy did not turn out to be as prominent as expected, leading these projects to gradually fall to the sidelines. In contrast, the demand for scalability has become increasingly urgent. Especially after Ethereum 2.0 shifted to a rollup-centric approach, scalability solutions based on zk-SNARKs have returned to the industry's spotlight.

privacy transaction

Representative projects of privacy transactions include:

  • Zcash: Implements transaction privacy using zk-SNARKs
  • Monero: uses the Bulletproofs algorithm
  • Tornado Cash: A mixing pool based on Ethereum, using zk-SNARKs

The privacy transaction process of Zcash includes steps such as system setup, key generation, minting, transaction proof generation, verification, and receiving. However, Zcash also has some limitations, such as being based on the UTXO model, making it difficult to integrate with other applications, and the actual usage rate of privacy transactions is not high.

Tornado Cash adopts a single large mixing pool approach, which offers better universality. It is based on the Groth16 zk-SNARK implementation, ensuring that only the deposited coins can be withdrawn, and each coin can only be withdrawn once.

HashKey ZK 101 Episode 1: Historical Principles and Industry

scalability

The application of zk-SNARKs in scalability mainly involves zk-rollup. The core roles of zk-rollup are the Sequencer and the Aggregator. The Sequencer is responsible for packaging transactions, while the Aggregator merges a large number of transactions and generates zk-SNARKs to update the Ethereum state tree.

The advantages of zk-rollups are low fees, fast transaction speeds, and privacy protection. The disadvantages are that the proof generation requires a large amount of computation, and SNARKs require a trusted setup.

The main zk-rollup projects currently include:

  • StarkNet: uses zk-STARKs, does not support EVM
  • zkSync: uses PLONK, supports EVM
  • Aztec: Developed the PLONK protocol, privacy-first.
  • Scroll: Committed to achieving EVM-compatible zk-rollup.

EVM compatibility is a major challenge faced by zk-rollups. Currently, there are two main solutions: full compatibility with Solidity opcodes or designing a new ZK-friendly virtual machine that is compatible with Solidity. The enhancement of EVM compatibility will greatly impact the development of the ZK ecosystem.

HashKey ZK 101 Issue 1: Historical Principles and Industry

The Basic Principles of zk-SNARKs

zk-SNARK stands for "Zero-Knowledge Succinct Non-Interactive Argument of Knowledge". It has the following characteristics:

  • zk-SNARKs: No additional information disclosed
  • Concise: Low verification cost
  • Non-interactive: No multiple rounds of interaction
  • Proof: computationally reliable
  • Knowledge: The prover must know valid information

The zk-SNARK implementation principle of Groth16 includes the following steps:

  1. Convert the problem into a circuit
  2. Convert the circuit to R1CS form
  3. Convert R1CS to QAP form
  4. Generate trusted setup parameters
  5. Generate and verify zk-SNARKs

HashKey ZK 101 Phase 1: Historical Principles and Industry

The zk-SNARKs technology is developing rapidly and is expected to play an important role in more fields in the future.

HashKey ZK 101 Episode 1: Historical Principles and Industry

ZK1.15%
View Original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Reward
  • Comment
  • Share
Comment
0/400
No comments
Trade Crypto Anywhere Anytime
qrCode
Scan to download Gate app
Community
English
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)