Technically, zkMove is a secure, high-performance zkVM designed specifically for the Move programming language. It empowers Move smart contracts to access and process private data in a fully programmable and trustless manner.
From a product perspective, zkMove is both a middleware and an SDK — one that Move developers can use to build privacy-preserving decentralized applications without deep cryptographic expertise.
A Zero-Knowledge Virtual Machine that proves the execution of Move functions.
- Fully compatible with Move and inherits Move's security.
- State-of-the-art circuit design and cutting-edge performance.
- Client-side proving to naturally preserve user privacy.
- Proofs are verified directly on-chain with near-instant finality.
- Compatible with commonly used development tools in the ecosystem.
- Allows existing Move programs to run with minimum modifications.
A generic halo2 snark verifier written in Move. It enables any zk proof generated by halo2 to be verified on Move blockchains.
A customized Move VM with a built-in execution trace generator. It can generate execution traces for Move functions.
- git = "https://github.com/zkmove/move", branch = "main"
A customized aptos-core with built-in native functions required by the Halo2 verifier. It allows developers to easily test zkmove applications.
- git = "https://github.com/zkmove/aptos-core", branch = "main"
A customized Sui with built-in native functions required by the Halo2 verifier.
- git = "https://github.com/zkmove/sui", branch = "main"
see User Guide for a step-by-step tutorial on how to create a zkMove circuit, generate a proof, and verify it on-chain.
see Litepaper for an in-depth technical overview of zkMove's design and architecture.
zkMove is licensed as Apache 2.0.