ZkVM aims at lowering the costs of participating in a global network by making transactions customizable, confidential, highly efficient and simple.
Customizable: ZkVM permits custom contracts. Contracts support realistic use cases via programmable constraints over encrypted data and assets. The VM supports a powerful language to express a wide range of higher-level protocols without the need to change the VM and upgrade the entire network.
Confidential: In ZkVM, quantities and types of assets are fully encrypted. The asset flow is hidden on the transaction level. Individuals and organizations can safely perform their transactions directly on the shared ledger, instead of keeping them in siloed databases.
Efficient: The ZkVM blockchain uses a compact data model that fits in a few kilobytes. Verification of transactions is highly parallelizable and takes 1-2 ms per CPU core. Nodes can bootstrap instantly from a network-verified snapshot. Virtually any computing device can run a full node, without relying on intermediate infrastructure and trusted third parties. Devices with limited cellular data plans can save bandwidth by tracking relevant state updates only (e.g. watching their own payment channels), without having to verify all transactions.
Simple: ZkVM requires no special compilers, debuggers, or optimizers. Its abstractions map well onto real-world concepts, and the technology stack consists of a small number of inventions reviewed by a global community of cryptographers and engineers. ZkVM is an evolution of the authors’ prior work on TxVM, which in turn was influenced by the design of Bitcoin and Ethereum. The motivation for such ledgers was originally expressed in the paper Secure Property Titles by Nick Szabo.
Recommended citation: Oleg Andreev, Bob Glickstein, Vicki Niu, Tess Rinearson, Debnil Sur, Cathie Yun. (2019). "ZkVM: fast, private, flexible blockchain contracts."