dev-resources.site
for different kinds of informations.
A Brief History of zkVMs
zkVMs have become a very important part of both Ethereum and its Layer 2s. However, there are many misconceptions and confusing bits of information around them.
This article aims to serve as a gentle introduction for users and researchers interested in understanding their importance, as well as for developers looking to get started with zkVMs so they can select the best option for them in case they want to build a project or contribute to an existing one.
From Low-Level Libraries to zkVMs
This section explores the evolution of ZK projects, from their origins in low-level libraries to the rise of zkDSLs and modern zkVM.
Early ZK implementations focused on low-level libraries, while newer general-purpose VMs improve developer experience but are harder to optimize for specific use cases.
The earliest implementations of ZK were direct translations of research papers into low-level libraries. A good example is libsnark, which was used to create Zcash. The need for generalization soon led to the creation of zkDSLs (domain-specific languages) like Circom, Noir, and ZoKrates. These are languages designed for building zk circuits. Meanwhile, libraries like Halo2 and Plonky2 emerged, focusing on providing zk capabilities within existing languages like Rust.
Main ZK projects falling into every catagory.
The second wave of end user applications were developed using zkDSLs, such as Tornado Cash for private transactions, and MACI for voting. Later, ZK made its way to L2s, making use of it's succinctness properties to reduce transaction costs. L2s often required synthetic virtual machines built on zk libraries and zkDSLs. For instance:
- Polygon zkEVM was built by combining different libraries where it made more sense, zkSTARKs and Plonky2 for producing quick execution proofs and Circom for cheap verification. This resulted on the zkASM + PIL synthetic virtual machine.
- Scroll was born by forking the Ethereum Foundation鈥檚 Privacy and Scaling Exploration (PSE)鈥檚 zkEVM, using the Halo2 zk library that aimed to be able to prove the Ethereum L1 directly.
- Starkware introduced its own Cairo-VM that differs from the EVM but it's still able to be verified by Ethereum L1.
Notable projects and the libraries or DSLs they use
Then, a new need for generalization arose: building general-purpose zkVMs (like PIL, zkEVM, or Cairo VM) to allow developers to create applications using a common interface. These zkVMs could verify a variety of applications with a single circuit, extending beyond L2s to other use cases in the future. This allows developers to focus on building products, while the zkVMs ensure everything runs correctly and efficiently.
zkVMs today
Before zkVMs can be deployed to production, numerous audits and optimizations are necessary. That said, the pace of progress in this space has been remarkable. Notably, SP1 released OP Succinct, a fork of the OP Stack that transforms Optimism into a ZK Rollup. Meanwhile, Risc Zero introduced Zeth, which not only enables proofs for L2s but also represents a significant step toward long awaited light client implementations. This is a huge step towards Ethereum's decentralization and resilience. Additionally, Scroll announced plans to implement OpenVM on mainnet, making use of its modularity to create an OpenVM module of Ceno, Scroll鈥檚 new zkVM initiative.
How zkVMs Generate Value
You might wonder about the revenue model, given that zkVMs are open-source and free. The answer lies in the prover marketplace. As demand for proving grows, reliable and responsive provers will become essential. A decentralized prover marketplace, run by a security and governance token, could be the solution. Risc Zero currently has a closed beta of Bonsai, their prover network and SP1 announced their solution is a work in progress.
Will zkDSLs Die?
I don't think so. But this question is under debate at this point in time. A big part of the ZK community argue that zkDSLs like Circom or Noir will remain fundamental to Ethereum because they can cover a wider variety of cases and also because, with the right amount of time and resources, they can become more efficient that zkVMs. And by more efficient I mean cheaper to verify and faster to prove. However zkDSLs appear less suited for L2s, with zkVMs taking precedence. Privacy-focused applications will likely continue relying on zkDSLs.
Interestingly, zkVMs may enable new forms of privacy through client-side proving or light clients. For instance, zkVMs could facilitate applications where users run light nodes to verify states locally using zk proofs. This idea, while somewhat related, is worth exploring in a future article.
Is There Competition in the zkVM Space?
Absolutely. And yes, there鈥檚 drama too.
Multiple zkVM projects are competing for dominance, each with its own strengths and unique approaches. In my opinion, this is a good thing, as this competition and diversity only serve to enrich the Ethereum ecosystem. Below, you'll find an overview of the main projects, general information, my personal thoughts, and how to get started developing on each one:
Risc Zero
- Announced: April 2022
- Funding: $40M Series A led by Blockchain Capital and Bain Capital (July 2023)
- Developer: Risc Zero
- Social: @RiscZero on X
Risc Zero has been a pioneer in zkVMs and is currently the most advanced project in the field. This has earned it the trust of the community through its significant contributions to the zkVM space.
Get Started with Risc Zero
Run the following a script I wrote to set up and generate proofs:
git clone https://github.com/Turupawn/zkBenchmark.git
cd zkBenchmark
sh generate_proof_risc0.sh
Alternatively, explore the official documentation for detailed guidance.
SP1
- Announced: Valentine鈥檚 Day 馃槆馃挊 2024
- Funding: $55M Series A led by Paradigm (March 2024)
- Developer: Succinct
- Social: @SuccinctLabs on X
SP1 embodies the spirit of a classic Silicon Valley startup: highly competitive, aggressive, and focused on the market and metrics. This approach contrasts with Risc Zero's research-driven ethos.
Get Started with SP1
Run the following script I wrote to set up and generate proofs:
git clone https://github.com/Turupawn/zkBenchmark.git
cd zkBenchmark
sh generate_proof_sp1.sh
Explore their official documentation for more details.
OpenVM
- Announced: December 2024
- Funding: $20M Series A led by Paradigm and Standard Crypto (January 2024)
- Developer: Axiom
- Social: @OpenVM_org on X
OpenVM stands out for its modularity, providing a foundation for projects to build custom solutions while upstreaming their changes on GitHub to benefit all projects within the OpenVM ecosystem.
Get Started with OpenVM
Run the following script I wrote to set up and generate proofs:
git clone https://github.com/Turupawn/zkBenchmark.git
cd zkBenchmark
sh generate_proof_openvm.sh
Check the official documentation for more.
Conclusion
The zkVM space is incredibly fast paced and multidimensional. As new projects are constantly announced, it鈥檚 very important to explore the different approaches, and form your own opinion. This is a rapidly-changing ecosystem, and staying informed will help you navigate and leverage the opportunities within the Web3 world.
Thanks for reading this article!
Follow Filosof铆a C贸digo on dev.to and in Youtube for everything related to Blockchain development.
Featured ones: