Ever heard of the zkEVM?
It’s an up-and-coming tech shaking up the world of decentralised finance.
Basically, it’s a way for developers to create super secure and private apps while still working with Ethereum.
zkEVM uses zero-knowledge proofs to keep blockchain transactions and data safe, which could be a game-changer for blockchain.
This article will explain what zkEVM is, how it works, and why it’s so exciting.
Whether you’re a blockchain pro or just curious, we’ve got you covered!
TABLE OF CONTENTS
WHAT IS EVM?
The Ethereum Virtual Machine (EVM) is a crucial component of the Ethereum network. It executes smart contracts and enables decentralised applications to run on the blockchain.
WHAT IS zkEVM?
zkEVM, short for Zero-Knowledge Ethereum Virtual Machine, is a virtual machine for Ethereum that utilises zero-knowledge proofs to validate program accuracy.
Its purpose is to facilitate the implementation of smart contracts that incorporate zero-knowledge technology.
The ZK technology preserves the confidentiality of sensitive data and offers improved efficiency in processing transactions.
HOW DOES zkEVM WORK?
zkEVM stands for zero-knowledge Ethereum Virtual Machine, a technology that enables the execution of smart contracts on the Ethereum blockchain in a privacy-preserving manner.
At a high level, zkEVM uses a cryptographic technique called zero-knowledge proofs (ZKPs) to enable parties to prove that they have executed a smart contract correctly without revealing sensitive information about the contract inputs or outputs.
The zkEVM employs a mechanism to demonstrate that the execution followed proposed and approved regulations.
To comprehend the workings and distinctions of a zkEVM, let’s examine how it works in more detail:
- First, the smart contract is compiled into zkSNARK circuits, which are mathematical representations of the logic of the contract.
- Next, the circuit is “witnessed” with the inputs to the contract. This proves that the contract was executed correctly on those inputs without revealing the inputs or the outputs.
- The proof is then submitted to the blockchain, which verifies that it is a “verifying key” generated when the circuit is compiled.
- The contract is executed on the blockchain if the proof is verified. Otherwise, the proof is rejected.
Using zkEVM, parties can interact with smart contracts on the Ethereum blockchain without revealing sensitive information about the contract inputs or outputs.
This can be useful in various applications, such as financial transactions or data sharing, where privacy is a concern.
The EVM had some limitations on scalability and privacy.
Smart contracts executed on the EVM are fully transparent, meaning that all parties on the network can see the code and data involved in the contract.
This transparency can be problematic in some scenarios where sensitive data needs to be kept confidential.
For instance, keeping transaction details confidential in financial transactions is essential to prevent fraud or identity theft.
In addition, the EVM’s lack of scalability limits the number of transactions that can be processed on the blockchain at any given time, leading to congestion and higher fees.
Therefore, the zkEVM was developed to address these limitations.
The following are the reasons for zkEVM:
- Enhanced privacy: zkEVM allows for private transactions and computations on the Ethereum network. This means that users can interact with decentralised applications (dApps) without revealing sensitive information such as their identity, transaction history, or the data they are working with.
- Improved scalability: Using zero-knowledge proofs (ZKPs) in zkEVM significantly reduces the amount of data that needs to be processed and stored on the Ethereum network. This can help to improve scalability and reduce the cost of gas fees.
- Secure computation: zkEVM provides a secure environment for executing smart contracts, as the computation is verified using ZKPs, which ensures that the computation output is correct and cannot be manipulated by malicious actors.
- Increased adoption: By providing a more private and scalable environment for Ethereum transactions, zkEVM can help increase the Ethereum network adoption among individuals and institutions.
TYPES OF zkEVMs
Vitalik Buterin categorised Ethereum-compatible technologies into types, with lower numbers being more compatible with Ethereum infrastructure and higher numbers having faster proving times.
Type 1 – Fully Compatible with Ethereum
Type 1 zkEVMs are fully compatible with the current Ethereum system since they don’t alter it for a zero-knowledge proof generation.
This allows for the reuse of block explorers and execution clients among Ethereum-native applications.
Nevertheless, due to the high computational requirements for generating zero-knowledge proofs in some regions of the Ethereum protocol, zkEVMs experience extended proving times.
Type 1 examples:
- zkEVM Community Edition
Type 2 – Fully EVM-Equivalent
Type 2 zkEVM projects are an improvement over Type 1 zkEVM projects because they allow for more complex computations to be performed while maintaining the privacy of the transaction.
Type 1 zkEVMs are limited to only simple operations, such as adding and multiplying, while Type 2 zkEVMs can support more sophisticated computations like conditional statements and loops.
They combine the functionality of Ethereum’s Virtual Machine with more complex computations and privacy. However, although these implementations offer faster proving times, they are still perceived as too slow.
Type 2 Examples
- Optimistic Rollups
- Aztec Protocol
To simplify application development and proof generation, Type-3 zkEVMs modify the EVM features, including precompiles, VM memory, the stack, and smart contract code treatment.
This may require some Ethereum applications to be rewritten, although most should still work in this environment.
Type 3 Examples:
- Polygon Hermez
Type 4 – High-Level Language Equivalent
Type-4 systems translate code written in high-level languages such as Solidity or Vyper into a more suitable language for zero-knowledge proofs.
Although these systems resemble the high-level language, they are not identical to the EVM.
This methodology enables the faster proof generation and cost reduction, but the contracts may have different addresses than those in the original code.
Type 4 Examples:
- zkSync 2.0
- Netherminds’s Warp – a tool that compiles Solidity code to Cairo, a language designed by Starkware, which transforms StarkNet into a type-4 system.
A comparison overview of zkEVM projects (source)
CHALLENGES IN BUILDING zkEVMs
Building a zkEVM can present several challenges, some of which include the following:
Generating zero-knowledge proofs can be computationally intensive, leading to performance issues that can hinder scalability. Ensuring that the zkEVM can handle many transactions while maintaining low costs and high speed is critical.
- Zero-knowledge proofs require properly selecting cryptographic primitives to ensure the system’s security.
- Failure to implement the correct security measures could result in vulnerabilities that attackers could exploit.
For a zkEVM to be helpful, it must be compatible with other blockchains and decentralised applications (dApps). This requires standardisation of protocols and interfaces and collaboration between developers.
- Development complexity
Building a zkEVM requires specialised knowledge, skills, and a deep understanding of cryptographic concepts.
This can make development more challenging and limit the pool of developers who can work on the project.
Introducing a new technology, even one with significant advantages, can be challenging due to network effects and the difficulty of persuading users and developers to switch to a new system.
zkEVM is an exciting development in blockchain technology, offering enhanced privacy and scalability on the Ethereum blockchain.
As the technology continues to evolve, we expect to see more use cases for zkEVM, making it an essential tool for decentralised applications requiring confidentiality and efficient processing.