The intersection of zero-knowledge proofs (ZKP) and virtual machines has led to the creation of a new technology that could revolutionize how we build and deploy software. The technology is called ZK virtual machine (ZKVM), and it combines the privacy-preserving capabilities of ZKP with the flexibility of a virtual machine.
However, there is a challenge to the adoption of this technology: it requires a virtual machine environment to run. For example, the ZKEVM created by notable teams such as Polygon, Scroll, and ZKSync, require an EVM environment to execute. Not all programs require access to an EVM to run. To overcome this, developers have come up with a solution that could make zero-knowledge programming accessible to a wider audience. It's called ZKWasm.
What is ZKWasm?
ZKWasm is a technology that enables developers to write zero-knowledge applications in their favorite programming language and run them in any environment that supports WebAssembly (wasm). Wasm is a portable virtual machine that runs in web browsers, cloud platforms, and blockchains. It was developed collaboratively by Google, Mozilla, Microsoft, and Apple and has become a popular technology for building high-performance web applications.
With ZKWasm, developers can write ZKP applications in any programming language that compiles to wasm. Users can then run these applications in their browsers without the need for any special hardware or downloads. This makes it easier for developers to create privacy-preserving applications without having to specialize in zero-knowledge proof technology.
Why is ZKWasm important?
ZKWasm has the potential to revolutionize the way we build and deploy decentralized applications. By making ZKP applications accessible to a wider audience, it could unlock new use cases for privacy-preserving technologies. For example, developers could create zero-knowledge games, DeFi applications, healthcare applications, supply-chain apps, custom layer-two rollups, reputation protocols, and identity solutions.
Delphinus Lab is leading an open source ZKWasm implementation. Already, several teams are using ZKWasm to build innovative applications. For example, the Hyper Oracle is using it to build a programmable zkOracle network, while the the Blockless Network is using it for ZK Verifiable Execution.
Challenges and opportunities
While ZKWasm is a promising technology, there are still challenges that need to be addressed. For example, the performance of ZKP schemes needs to be improved to make them efficient enough for client-side applications. Currently, most ZKWasm implementations are based on the Halo2 scheme created by ElectricCoinCo for Zcash. While this scheme is efficient for specialized machines or outsourced provers, it may not be efficient enough for client-side applications.
To overcome this challenge, the team at ICME Labs is exploring other ZKP schemes from the ZKVM space that have better performance. They are also looking into folding ZKP schemes and CPU friendly fields, like those used in Plonky2 with FRI. The goal is to make ZKWasm efficient enough for client-side applications, which would enable privacy-preserving applications to run seamlessly in everyone's browser.
ZKWasm is an exciting technology that could unlock new use cases for privacy-preserving technologies. By combining the flexibility of wasm with the privacy-preserving capabilities of ZKP, it has the potential to revolutionize how we build and deploy decentralized applications. While there are still challenges to overcome, the team at ICME Labs is working hard to make ZKWasm accessible to a wider audience. With their efforts, ZK-powered applications could soon be running seamlessly in everyone's browser, without the need for any special hardware or software.