Speed Matters: The Case for Sending Risc0 zkVM Proofs Directly to zkVerify
TL;DR
- Risc0 zkVM proof creation and verification takes much less time when sent directly to the zkVerify ZK proof verification blockchain compared to sending it to Ethereum.
- ZK proof creation and verification can be done rapidly and inexpensively when using Risco0 zkVM and zkVerify, enabling many new types of ZK dApps to flourish.
- Using Risc0 zkVM for proof creation, with either x86 or ARM processors, and zkVerify for proof verification, the full ZK creation and verification process can take less than 10 seconds.
Zero-knowledge (ZK) proof technology has advanced by leaps and bounds in the last 5 years. Unfortunately, when sending newer ZK proofs such as STARKs to Ethereum for verification, a lot of extra calculation is required, which adds time, computation expense, and limits the dApps that are able to use ZK proofs.
Much less computation is necessary when sending STARKs to zkVerify, the modular blockchain for proof verification. Using the latest Risc0 benchmark data, one can see the STARK proof creation takes 2.48 seconds, whereas the STARK with Groth16 wrapping takes 17.95 seconds! This additional 15 seconds of calculation is necessary for the zk-proof to be verified on Ethereum and other EVMs.
Instead, developers using the Risc0 zkVM can send their Risc0 zkVM proofs directly to zkVerify, where the proof will be verified rapidly and inexpensively, providing an additional cost and time saving bonus compared to ZK proof verification on Ethereum or other EVMs.
zkVerify provides low cost proof verification for advanced ZK proofs and works within the Web3 modular ecosystem. Designed for seamless integration with existing Web3 infrastructure, zkVerify enables builders to streamline network operations by pairing new and exciting ZK proof types with fast and inexpensive proof verification. zkVerify also allows for efficient finalization to Ethereum (or any blockchain network) and is currently live on Ethereum, ApeChain, and Horizen testnets.
In this post, we make the case that sending Risc0 proofs directly to the zkVerify network rather than wrapping these proofs in Groth16 is a more efficient and cost-effective experience. Here are a few reasons why we believe this:
- Enabling new types ZK dApps to be built with proofs created and verified in seconds for pennies
There are hundreds of ZK dApps that have been designed in the Web3 space in the last few years. Unfortunately, every one of these dApps has had to work within the existing proof verification system, which imposes a significant cost in time and money. This has drastically limited ZK application deployment.
All of this changes with zkVerify. By enabling a Risc0 zkVM proof to be created and verified in seconds, for a much lower price, many new ZK dApps which were economically infeasible can now be built. There will be an explosion of new dApps using ZK proofs because of this change.
- Extended platform capability
Many ZK dApps generate the proofs in the user's browser. Unfortunately, the Groth16 wrap generation requires x86 primitives. This can be seen in the Risc0 datasheet link which demonstrates that the full benchmark fails on Mac computers using Apple Silicon, and only works on x86 systems.
By generating the Risc0 zkVM STARK proof without the Groth16 wrapper, applications can be designed to use any type of personal computer, and may be able to be extended to mobile devices in the future as well.
Conclusion: Sending Risc0 zkVM proofs directly to zkVerify is faster, less expensive, and requires less computationally intensive hardware. This approach allows for a much more streamlined developer experience and broadens the operating systems developers can utilize when working with ZK proofs.
Get started with zkVerify!
Github 👉 https://github.com/HorizenLabs/zkVerify
Developer docs 👉 https://docs.zkverify.io/
Discord 👉 https://discord.gg/zkverify