- Blockchain Council
- November 01, 2023
Summary
- zkEVM is a technology in the Blockchain world that uses cryptographic techniques, specifically Zero-knowledge Proof, to enhance smart contract execution on Ethereum.
- It aims to make Ethereum transactions more efficient, secure, and private by offloading some computation off-chain while providing cryptographic proof of validity.
- zkEVM employs zk-rollups, including a proving circuit, to ensure the integrity of transactions by verifying contract code, inputs, outputs, and sequencing.
- Zero-knowledge proofs generated by zk-rollups are sent to an Ethereum-based verifier contract for validation by network nodes.
- zk-SNARKs (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) play a crucial role in ensuring privacy and efficiency in zkEVM.
- zk-SNARKs allow transactions and smart contracts to be verified without revealing specific details, and they are fast and non-interactive.
- Ethereum’s existing system requires all nodes to validate every transaction, slowing down the network, while zkEVM uses zk-SNARKs to speed up validation.
- There are different types of zkEVM, ranging from fully Ethereum-equivalent to high-level language equivalent, each with varying levels of compatibility with Ethereum.
- Challenges in building zkEVM include the stack-based vs. register-based dilemma, complexity of special opcodes, storage overhead, and resource-intensive proof generation.
- Despite the challenges, zkEVM promises enhanced efficiency and privacy for Ethereum transactions and represents innovation in the Blockchain community.
In the rapidly evolving world of Blockchain and cryptocurrency, one term has garnered significant attention: The result? A more efficient, secure, and private transaction validation process, promising transformative change in how Ethereum operates. This article will demystify zkEVM, walking you through its workings, types, and the challenges faced in its development.
The Blockchain space is in constant flux, with innovations emerging at a rapid pace. Among these innovations, zkEVM has emerged as a beacon, promising to reshape Ethereum’s transaction landscape. zkEVM, an enhanced version of the Ethereum Virtual Machine (EVM). But what is it, and why does it matter? In essence, zkEVM employs cryptographic techniques, specifically Zero-knowledge Proof, to upgrade the execution of smart contracts on the Ethereum network.
But how does it achieve its lofty claims of improved efficiency, heightened security, and enhanced privacy? Read till the end to understand, “How does zkEVM work?” This article delves into the inner workings of zkEVM, breaking down its components and processes in a comprehensive yet accessible manner. Whether you’re a seasoned Blockchain enthusiast or a newcomer intrigued by the potentials of zkEVM, join us as we unravel the mechanics of this groundbreaking enhancement to the Ethereum Virtual Machine (EVM).
What is zkEVM?
In simple terms, zkEVM is a type of Ethereum Virtual Machine or EVM that enhances the way smart contracts are executed on the Ethereum network. It uses cryptographic technique Zero-knowledge Proof to provide a way to validate transactions more efficiently, making Ethereum faster and more secure. It allows transactions to be verified without revealing all the details of those transactions, which enhances privacy.
The core idea is to offload some of the computation involved in validating transactions to a process that happens off-chain, while still providing strong cryptographic proof that the transaction is valid. This off-chain process generates a proof that is much faster and less resource-intensive to verify compared to re-executing the entire transaction on-chain.
It achieves this by integrating zero-knowledge proofs, particularly zk-SNARKs (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge), into Ethereum’s computational model. Wondering how? Let’s understand how zkEVM works!
Read more about zkEVM here to understand exactly what it is!
How Does zkEVM Work?
Here’s a step-by-step breakdown of how zkEVM operates:
1. Smart Contract Execution
- When someone initiates a smart contract on zkEVM, it all starts with the initial state. This state is like a snapshot of the Ethereum network before the transaction. It includes information about account balances and other important data.
- The transaction details are processed, including the execution of the contract code and any changes to account balances. This is where the real action takes place.
2. zk-rollups: The Proving Circuit
- zkEVM employs a critical component known as zk-rollups, which includes a proving circuit. This circuit ensures the integrity of the transaction. It functions as follows:
- Bytecode and Opcode Verification: The proving circuit thoroughly checks the authenticity and accuracy of the contract code and specific instructions within it (opcodes). This verification ensures that the code executes correctly.
- Input and Output Validation: The proving circuit confirms that the transaction fetched the correct information and values before and after the computation. It ensures the transaction adheres to the established rules.
- Sequencing of Computation: The proving circuit checks that the opcodes executed in the correct order, without any deviations. This guarantees that the transaction follows the rules precisely.
3. Verifier Contract and zk-rollups Integration
- After generating zero-knowledge proofs through zk-rollups, these proofs, along with data representing the initial and final states, are sent to an Ethereum-based verifier contract. This contract acts as the final checkpoint.
- During verification, the verifier contract conducts necessary computations on the zero-knowledge proofs, ensuring the legitimacy of the transaction. Once network nodes confirm the validity of the proof, the Ethereum state is updated.
Also Read- Top 5 Blockchain Trends To Watch Out For In 2024
The Role of zk-SNARKS
The role of zk-SNARKs in zkEVM is crucial. zk-SNARKs, which stands for “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge,” are cryptographic tools that enable zkEVM to achieve its goals. Here’s how zk-SNARKs fit into the picture:
Privacy and Verification
zk-SNARKs are all about privacy. They allow one party to prove to another that a statement is true without revealing specific details about the statement. In the context of zkEVM, this means that transactions and smart contract executions can be verified without exposing all the nitty-gritty details. It’s like proving you have a valid ticket to enter an event without showing the ticket itself.
Efficiency
The “Succinct” and “Non-Interactive” aspects of zk-SNARKs are vital for zkEVM’s efficiency. “Succinct” means the proofs are small and don’t require lots of data to be transmitted. This is important for faster verification. “Non-Interactive” means that the proof generation doesn’t involve a back-and-forth process between the prover and verifier. It’s a one-shot deal, making the process efficient.
zkEVM’s Motivation
Ethereum’s existing system requires every transaction to be validated by all network nodes, which slows down the network. zkEVM uses zk-SNARKs to create a proof that a transaction is valid. This proof can be checked quickly, so nodes don’t have to go through all the details of every transaction.
zkEVM’s Workflow
When a smart contract is executed off-chain within zkEVM, zk-SNARKs are used to generate a proof. This proof confirms that the execution followed the rules without revealing sensitive information. The on-chain verification in zkEVM then checks this proof. This is where zk-SNARKs shine because they make the verification process fast and efficient.
Also Read- How To Become A DApp Developer?
Different Types of zkEVM
Type 1: Fully Ethereum-equivalent
In the realm of zkEVMs, Type 1 strives to maintain perfect compatibility with Ethereum. It doesn’t make any changes to Ethereum’s system, ensuring full alignment with Ethereum-native applications. This type allows us to verify Ethereum blocks just as we do today.
Example: The “zkEVM Community Edition” project embodies Type 1. It is a Tier 1 zkEVM, and while it aligns closely with Ethereum, it doesn’t compromise compatibility.
Type 2: Fully EVM-equivalent
Type 2 zkEVMs aim to provide compatibility with existing Ethereum applications. They make minor adjustments to the Ethereum system to optimize proof generation and development, resulting in faster performance.
Example: The “Scroll” project and “Polygon Hermez” both aspire to create Type 2 zkEVMs. They aim for EVM equivalence while enhancing the efficiency of zkEVMs.
Type 2.5: EVM-Equivalent, Except for Gas Costs
For faster worst-case prover times, Type 2.5 zkEVMs significantly increase the gas costs for specific EVM operations that are challenging to prove. This approach requires some developer modifications.
Type 3: Almost EVM-equivalent
Type 3 zkEVMs are nearly EVM-equivalent, making a few sacrifices for the sake of faster proof generation and easier development. They may have differences in how they treat contract code, memory, and the stack.
Example: Both “Polygon Hermez” and “Scroll” projects fall under Type 3 in their current forms. While they aim for compatibility with most applications, some may require rewriting.
Type 4: High-Level-Language Equivalent
Type 4 systems take smart contract source code written in high-level languages and compile it into a language designed for zero-knowledge proofs. This approach results in very fast prover times but may introduce incompatibilities.
Example: The “zkSync 2.0” project and Nethermind’s “Warp” project are building Type 4 systems. They focus on high-level language equivalence for efficient proof generation.
Challenges to Build zkEVM and How to Solve Them
When diving into the world of zkEVM, one encounters a complex ecosystem, promising the holy grail of Ethereum scaling. However, this journey is not without its challenges.
Stack-Based Vs. Register-Based: A Fundamental Dilemma
At the core of zkEVM’s challenges lies the dichotomy of stack-based architecture versus the more efficient register-based model. The Ethereum Virtual Machine (EVM) relies on the last-in, first-out (LIFO) principle, which, while simple, poses difficulties when dealing with high-performance computing and zero-knowledge computations. To overcome this, zkEVMs often lean towards a register-based model, enhancing performance and scalability.
The Complexity of Special Opcodes
Unlike traditional virtual machines, the EVM employs special opcodes for smart contract execution. Operations like CALL, DELEGATECALL, REVERT, and INVALID introduce complexity, making it harder to discern the EVM’s actions. This intricacy adds a layer of challenge when designing zkEVM circuits, necessitating a thorough understanding of these unique instructions.
Navigating Storage Overhead
EVM’s storage relies on Keccak hashing functions and Merkle Patricia Tries, both of which incur high proving overhead. While some zkEVMs attempt to address this challenge by replacing the KECCAK256 function, it can disrupt compatibility with existing Ethereum tools and infrastructure. Balancing storage efficiency with compatibility remains a formidable challenge.
The Resource-Intensive Proof Generation
Even when other challenges are mitigated, the process of generating zero-knowledge proofs remains resource-intensive. Specialized hardware, significant time investments, and financial resources are prerequisites for creating these proofs. This imposes a barrier that developers must overcome to make zkEVMs a reality.
Conclusion
zkEVM, with its promise of enhanced efficiency and privacy, stands poised to redefine the landscape of Ethereum transactions. In this article we answered the question, how does zkEVM work?
By integrating the powerful concept of zero-knowledge proofs, particularly zk-SNARKs, zkEVM aims to optimize the processing of smart contracts, reduce on-chain computations, and elevate the speed and security of the network. While the journey to fully realizing zkEVM’s potential is rife with challenges, from architectural decisions to handling unique Ethereum opcodes, the rewards are undeniable.
As we move forward, the continuous evolution and adoption of technologies like zkEVM underscore the dynamic and innovative spirit of the Blockchain community, driving us towards a more scalable and efficient decentralized future.
FAQs
How does zkEVM work?
- zkEVM enhances smart contract execution on Ethereum.
- It uses cryptographic techniques, particularly Zero-knowledge Proof.
- Offloads some computation off-chain while providing cryptographic proof of validity.
- Employs zk-rollups, including a proving circuit, to verify contract code, inputs, outputs, and sequencing.
- Zero-knowledge proofs are validated by an Ethereum-based verifier contract.
What is zkEVM?
- zkEVM is a technology that improves the way smart contracts are executed on Ethereum.
- It enhances efficiency, security, and privacy.
- Achieves this through cryptographic techniques like Zero-knowledge Proof.
- Allows for off-chain computation and fast verification of transactions.
What is zk-SNARK?
- zk-SNARK stands for “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge.”
- It is a cryptographic tool that enables privacy in transactions and smart contracts.
- Allows proving the truth of a statement without revealing specific details.
- “Succinct” means proofs are small and require less data, enhancing efficiency.
- “Non-Interactive” means the proof generation is a one-shot process.
What are zk-rollups?
- zk-rollups are a critical component in zkEVM.
- They include a proving circuit that ensures the integrity of transactions.
- The proving circuit verifies contract code, inputs, outputs, and sequencing.
- These zero-knowledge proofs are generated off-chain and sent to an Ethereum-based verifier contract for validation.