Get a quote
Thanks! We'll get back to you soon.
Back to home in 10 seconds...
Nov 21, '22
Like in the life-cycle of all technologies, the adoption of blockchain is co-related to the impediments that it faces as a whole. One of the greatest challenges for the space as a whole, for quite some time, was scalability of the solutions.
A lot of solutions attempted to solve that, however, while also creating a tangential issue of decreasing decentralization. This came further in light when the adoption was incremental during the bull run from Summer 2020 to 2022 till the crash fees.
While the market reached dangerous highs, gas fees also raised exorbitant amounts. More importantly, it happened too often. One of the potential reasons for this, is the lack of division between the networks where the projects go live, and the one where users transact; a division web2 benefits by and was lacking in web3.
A Zero-Knowledge Ethereum Virtual Machine is, as the name suggests, a virtual machine that generates zero-knowledge proofs to verify the correctness of the data, and by extension, the programs. They’re basically a layer on top of Ethereum; a ZK-rollup submits transaction data to Ethereum along with Zero-Knowledge Proofs verifying the validity of off-chain transaction batches.
What are ZK-rollups?
Very briefly, a roll-up performs transaction computations off-chain, but stores transaction data on-chain; creating two layers within the data. This is handled through smart contracts whose primary function is to bundle transaction data and transfer it off-chain for processing. This is then handled by the participants on the network, known as ‘validators’ or ‘sequencers’, who then submit batches of data containing minimum information required to validate the transactions.
Here’s where ZK-rollups are different from their optimistic counterparts. ZK-rollups generate cryptographic proofs that are used to verify the validity of the transactions. Optimistic rollups, on the other hand, assume that all transactions are valid and perform no validity checks whatsoever.
What is ZK-EVM?
To oversimplify, Ethereum Virtual Machine (EVM) is the mechanism through which Ethereum executes its transactions. The idea is that every blockchain needs a mechanism to ensure the transactions are valid, because every transaction in every block means there’s a state change to the machine.
The idea with Ethereum was to have a global computer connected through individual nodes. EVM is that network. EVM is basically an environment where various activities happen within the ecosystem.
For a developer or user used to working within the Ethereum environment, improper state changes could, at the very least, cause headaches. It very well has the potential to make the application completely unusable.
The idea here is to scale the functionalities of Ethereum while retaining all of its functionalities, in a way that doesn’t harm the integrity of the environment. It’s a complicated problem, to say the very least.
Ideally, this means that the environment for the rollups should be as close to EVM as possible, however, there is a significantly positive correlation between incremental closeness to EVM and costs. This has been pointed out by Vitalik Buterin as well (summarized by Polygon) “‘The closer a zkEVM is to the EVM in its every detail, the more costly it will be to generate ZK proofs”
A zkEVM replicates the Ethereum environment as a rollup, and allows the developers to build as though they were building on Ethereum. The idea is that the developers would not need to change their code or abandon their EVM tools while moving towards a rollup.
Vitalik Buterin has divided rollups into four types, in decreasing closeness to Ethereum:
Type 1 - zkEVMs: Fully Equivalent to Ethereum
zk-EVM Type 1s are to be fully equivalent to Ethereum, with practically no changes made to their state or transaction trees within their consensus. Type-1 zkEVMs are fully compatible with EVM, but require more time as no re-working is done to make proof generation faster.
Type 2 zkEVMs : EVM Equivalent
zkEVMs Type 2 aim to be ‘like’ Ethereum, in terms of having a native environment that is equivalent to EVM and not Ethereum. They look like Ethereum on the outside but their EVM has modifications to make the proof generation process faster.
Type 3 zkEVMs - Departure from Ethereum
Type 3 zkEVMs focus on creation of EVM-like systems within zk-rollups. This means making specific changes to the EVM to make building applications easier and the proof generation process much faster. However, some applications built with native EVM chains might need some rewiring.
Type 4 zkEVMs - Derivative EVM
zkEVM Type - 4 would be functional with high level languages, but not EVM itself. There are several layers to the process here, which is made efficient by skipping the process of providing zero-knowledge proofs for each stage of EVM execution.
zkEVMs are the latest in what is going to be a long-line of blockchain complementary products. As mentioned before, one of the greatest problem that the space faces as a whole is the fact that despite being decentralized, blockchain technology is not scalable.
Major investment firms have already started to realize the value of products like this. Scroll, Polygon and zkSync are currently in competition for launching their products; and despite being a work-in-progress, I’m convinced that they’re only the beginning of a long line.