Blockchain technology has come a long way since the inception of Bitcoin more than a decade ago. While the initial blockchain networks were groundbreaking in their decentralized approach, they faced significant challenges, particularly in terms of scalability. As blockchain applications and use cases continue to expand, finding solutions to scalability issues has become a top priority.
One of the promising advancements in this realm is the transition from zkEVM (Zero-Knowledge Ethereum Virtual Machine) to zkVM (Zero-Knowledge Virtual Machine), which holds the potential to enhance blockchain scalability drastically. In this article, we will delve into the world of zkEVM, explore its limitations, and understand how the evolution to zkVM is set to bring about substantial improvements in blockchain scalability.
The Rise Of Zero Knowledge Proofs (ZKPs)
Zero-knowledge proofs play a pivotal role in safeguarding user privacy on the internet, especially as we strive for widespread adoption on the blockchain. They also hold the promise of resolving computational challenges. Presently, there are two prominent avenues to achieve this: zkEVMs and zkVMs. In this exploration, we will delve into both approaches, weighing their advantages and disadvantages. However, before diving into this analysis, it is essential to grasp what we are optimizing for and why privacy holds such significance.
In the realm of cryptographic evolution, much like the biological counterpart, the development of traits is guided by the aim of optimizing for specific outcomes. Bitcoin, for instance, prioritized security above all else, recognizing that decentralized digital currency needed to be unequivocally secure before it could gain acceptance and widespread adoption. Ethereum followed a similar path, emphasizing security while introducing an additional layer: the programmability afforded by smart contracts.
These iterations in cryptographic evolution tend to build upon one another, each bringing its unique set of trade-offs. In the case of Ethereum, every node is required to re-execute every transaction, presenting formidable computational challenges that result in high gas fees and sluggish transaction speeds. The decision to perform computations directly on the blockchain was made to enhance security and transparency. However, it comes at a cost: compromised performance and privacy.
Rollups emerged as a solution to enhance scalability by reducing the computational burdens associated with Ethereum. While they begin to address the performance issue, they do not account for privacy concerns. This is significant because privacy has evolved into a prerequisite for applications aiming to expand their user base. Users increasingly demand more control over their data and are becoming wary of entities seeking unrestricted access to their information.
App developers have recognized this growing trend towards privacy and its necessity. Consequently, they have been actively exploring methods to safeguard privacy through the use of zero-knowledge proofs (ZKPs). These cryptographic protocols enable users or applications to verify the truth of a statement without divulging any additional information. For instance, ZKPs can confirm that a user is over 18 years old without disclosing their exact age or date of birth.
As highlighted in a16z’s 2023 State of Crypto report, the adoption of ZK-proof technology by developers is poised to increase further. This trend is driven by a surge in academic publications and a rising number of daily transactions that involve verifying ZK proofs on the Ethereum network. The momentum behind ZKPs demonstrates their growing importance in the quest to balance privacy, security, and scalability in the blockchain space.
The first aspect that needs definition is: what constitutes a virtual machine (VM)? In a nutshell, a VM is a software program capable of executing other programs, typically functioning as an iterative loop that carries out a specified set of instructions—these instructions representing the “other program.”
The Ethereum Virtual Machine (EVM), specifically, serves as the VM responsible for executing Ethereum smart contracts. The original compilation of supported instructions and their respective behaviors was outlined in 2014 within the seminal yellow paper—distinguished not just by its importance but also by its distinctive yellow color—authored by Gavin Wood. The paper maintains a state of continuous updates, aiming to reflect the current array of supported instructions.
A zero-knowledge virtual machine (zk VM), on the other hand, is essentially a VM implemented as a circuit within a zero-knowledge proof (zkp) system. This distinguishes it from conventional zkp systems that predominantly focus on proving program execution. In zkVMs, the emphasis shifts towards verifying the execution of a virtual machine itself. Consequently, some individuals draw a distinction, categorizing non-VM zkps as part of the FPGA (Field-Programmable Gate Array) approach, while considering zkVMs as constituents of the CPU (Central Processing Unit) approach.
Within zkp systems, programs or circuits are immutable entities, much like binaries compiled from specific programs. Consequently, a zkVM circuit effectively embodies a predetermined number of iterations for the loop, which can be likened to unrolling the loop. In essence, a zkVM is a circuit designed to execute a virtual machine. The instructions of the actual program can be introduced as public input to this circuit, enabling complete transparency regarding the program being verified. (Various methods exist for conveying the program’s instructions to the VM should one wish to explore further alternatives.)
Several zkVM projects have emerged, with at least three noteworthy endeavors:
- Cairo: Utilized by Starknet, this project is noteworthy for its meticulous paper, regarded as a work of art. An experimental implementation known as “turshi” is also featured in the Kimchi framework.
- Miden: A project in progress within the Polygon ecosystem, Miden is currently under development.
- Risczero: Another work-in-progress initiative, Risczero aims to support the RISC-V instruction set, a widely recognized standard beyond the blockchain domain.
Each of these projects accommodates distinct instruction sets, rendering them non-interoperable with each other.
Types Of zkVM
The field of zk VMs can be categorized into two distinct types:
- zk-optimized VMs: Notable examples include Cairo and Miden. These VMs are meticulously designed to prioritize efficiency, making them significantly faster. Their primary aim is to facilitate seamless integration with zero-knowledge proof (zkp) systems, streamlining the verification process.
- Real-world VMs: This category encompasses VMs like RiscZero, which supports the RISC-V instruction set, and various zkEVMs tailored to the Ethereum Virtual Machine (EVM). Real-world VMs are intended to provide compatibility with established instruction sets and ecosystems beyond the realm of zero-knowledge proofs.
The motivation behind supporting the EVM can be attributed to several compelling reasons. Firstly, for Ethereum itself, it enables the creation of proofs encompassing the entire state transition—from the genesis state to the latest Ethereum state. This capability is exemplified by projects like Mina.
Secondly, for non-Ethereum projects, adopting EVM compatibility offers the advantage of seamlessly incorporating projects and applications from the Ethereum ecosystem, such as Uniswap. This not only facilitates interoperability but also presents an opportunity to attract developers from the Ethereum community to new projects.
Mechanism Of zkVM
ZkVM, stemming from our prior work on TxVM and influenced by Bitcoin and Ethereum designs, introduces a novel transaction format. In ZkVM, a transaction is represented as a program that directly manipulates asset flow as first-class objects, updating the blockchain state via a transaction log. This separation of transaction log application from validation enables a highly scalable design while providing a robust environment for custom contracts.
To enhance blockchain scalability and enable confidential value transfers, ZkVM employs a UTXO (Unspent Transaction Output) model to represent balances. All balances are expressed as sets of unspent outputs (UTXOs), which can be created, destroyed, and manipulated within transactions. These UTXOs are efficiently stored as Merkle roots using the Utreexo scheme, significantly reducing storage requirements and facilitating wider deployment of fully-validating nodes.
In ZkVM, each output is a contract stored in the blockchain state, containing multiple items protected by a predicate—a condition that must be met to unlock these items. ZkVM utilizes a Taproot-based design, allowing contracts to be unlocked either through cryptographic signatures or by executing an embedded sub-program that verifies custom conditions.
Contracts in ZkVM serve as versatile building blocks for higher-level protocols like accounts, order books, and payment channels. This flexibility enables platforms like Stellar to move protocol design choices away from the consensus-critical layer, promoting experimentation with a wide range of decentralized applications.
Regarding confidentiality, ZkVM strikes a balance using the Taproot scheme in predicates. Contract logic need not be revealed if all parties cooperate, but security remains intact if they do not. Even when contract logic must be disclosed, data such as balances and contract parameters remain confidential due to a zero-knowledge verified constraint system.
ZkVM leverages the Bulletproofs zero-knowledge proving system, encrypting values and data by default as Pedersen commitments. Users can specify arithmetic and logical expressions over secret values, which are automatically transformed into a Bulletproofs constraint system. Transactions are compact and efficient, with small transactions ranging from 1 to 1.5 KB in size and aggregated payments incurring a marginal cost of just 200 bytes per input-output pair. Verification is highly parallelizable, taking only about 1 millisecond per output. This efficiency allows ZkVM to prioritize security without compromising data encryption, ensuring that data is revealed solely to authorized parties on a need-to-know basis. Furthermore, the Bulletproofs framework eliminates the need for a trusted setup, enabling the creation of new protocols atop ZkVM without necessitating network-wide upgrades for each feature.
The Need For Transitioning From zkEVM To zkVM
Limitations of zkEVM
While zkEVM introduced significant improvements, it still had some limitations that hindered its scalability potential:
- Limited Compatibility: zkEVM was primarily designed for the Ethereum network. This meant that other blockchain platforms could not readily adopt the technology, limiting its broader impact on the blockchain ecosystem.
- Complexity: Implementing zkEVM required a deep understanding of zero-knowledge proofs and cryptography. This complexity made it challenging for developers to incorporate zkEVM into their projects, further limiting its adoption.
- Storage and Data Challenges: zkEVM did not address the issue of data storage on the blockchain effectively. Large data storage requirements remained a bottleneck for scalability.
The Transition to zkVM: A Scalability Breakthrough
Recognizing the limitations of zkEVM, the blockchain community embarked on a journey to develop a more versatile and scalable solution, leading to the birth of zkVM, or Zero-Knowledge Virtual Machine.
zkVM builds upon the foundational principles of zkEVM while addressing its shortcomings. Let’s explore how zkVM is poised to revolutionize blockchain scalability:
- Cross-Platform Compatibility: Unlike zkEVM, zkVM is designed to be blockchain agnostic. This means that it can be integrated into various blockchain networks, not limited to Ethereum. This broader compatibility opens the door for zkVM to have a more significant impact on the entire blockchain ecosystem.
- Improved User Experience: zkVM aims to simplify the implementation process for developers. By offering user-friendly tools and interfaces, zkVM makes it easier for developers to harness the power of zero-knowledge proofs, reducing the barrier to entry.
- Enhanced Data Management: zkVM addresses the issue of data storage more effectively. It introduces innovative techniques for data compression and storage, reducing the storage requirements on the blockchain. This optimization has a direct positive impact on scalability by decreasing the size of the blockchain’s data.
- Faster Transaction Processing: With zkVM’s off-chain computation capabilities, the computational load on the blockchain network is further reduced. This leads to faster transaction processing times, lower fees, and improved overall performance.
What Are We Optimizing For?
Lockheed Martin embarked on the ambitious task of creating the F-35, envisioning it as a versatile fighter jet capable of replacing specialized air-to-air and air-to-ground fighters. However, this endeavor has encountered significant setbacks, trailing a decade behind its intended schedule and earning a reputation among industry experts as one of the least successful fighter jets ever produced.
The key takeaway from this experience is that when a system is engineered with a specific purpose in mind, it often excels at fulfilling that particular role compared to a solution attempting to optimize for multiple objectives simultaneously.
Drawing a parallel to the blockchain realm, Ethereum was initially conceived as a fully public and transparent platform. If one endeavors to introduce privacy features into such a blockchain, it is unlikely to achieve the same level of performance as a system designed with privacy as a core principle right from its inception. This presents engineering challenges, as developers must adapt programs that were not originally intended to function within this context, leading to the creation of complex and unwieldy circuits.
However, the alternative approach involves the development of a purpose-built application layer designed specifically for privacy. This approach allows for the optimization of privacy-related functionalities while reaping the benefits offered by zero-knowledge proofs, a topic we will delve into in the following section.
Real-World Applications of zkVM and zkEVM
Both zkEVM and zkVM find applications in various domains, promising to reshape industries and blockchain use cases:
- DeFi Revolution: Decentralized Finance (DeFi) platforms can leverage zkVM and zkEVM to enhance transaction speed, reduce fees, and protect sensitive financial data.
- Supply Chain Transformation: Improved transparency and traceability in supply chains are possible with zkVM and zkEVM, reducing fraud and increasing efficiency.
- Healthcare Data Security: zkEVM and zkVM can ensure the privacy and security of healthcare data, enabling secure sharing of information among authorized parties.
- Gaming and NFTs: The gaming industry and Non-Fungible Token (NFT) marketplaces can benefit from faster transactions and secure data handling provided by zkVM and zkEVM.
The Future of zkVM and Blockchain Scalability
As zkVM gains traction in the blockchain space, it holds the potential to address the long-standing scalability issues that have limited blockchain adoption and growth. However, like any emerging technology, there are challenges to overcome and considerations to keep in mind:
- Adoption Hurdles: While zkVM’s compatibility with various blockchains is a significant advantage, widespread adoption will still depend on the willingness of blockchain projects to integrate this technology into their networks.
- Security Concerns: Zero-knowledge proofs introduce complex cryptographic techniques, and any vulnerabilities could pose significant security risks. Continuous auditing and improvement of zkVM implementations are crucial to maintain the trust of users.
- Regulatory Landscape: As blockchain technology evolves, it will continue to face regulatory scrutiny. It remains to be seen how regulators will treat zero-knowledge proofs and their applications, which could impact zkVM’s future adoption.
The journey from zkEVM to zkVM represents a significant step forward in addressing blockchain scalability challenges. While zkEVM laid the groundwork, zkVM offers a more versatile and scalable solution that has the potential to revolutionize how blockchain technology is used across various industries.
The transition to zkVM is not without its challenges, but the benefits it brings in terms of cross-platform compatibility, user-friendliness, data management, and transaction processing speed make it a compelling advancement in the blockchain space. As zkVM continues to evolve and find its place in blockchain ecosystems, we can expect to see more scalable and efficient blockchain applications that have the potential to transform industries and improve the lives of people around the world.