
Original author:Luozhu
Original compilation: Leo, BlockBeats
Original author:
Original compilation: Leo, BlockBeats
I haven't delved into Hermez's zkevm solution yet (and some parts of Hermez's code are not yet fully open source), interestingly, comparing Scroll and Polygon Hermez's zkevm is a good perspective to help you better understand zkVM and zkEVM .
Basically, Scroll's zkEVM solution achieves EVM equivalence by "reimplementing" the entire EVM, all operations of the EVM are defined in zkevm-circuits (zk circuits), which requires many steps (constraints) to prove.
Hermez's zkEVM solution is different, instead of reimplementing an EVM, they implement a specific zkVM and map the EVM operations to their own zkVM. Therefore, proving the operation of EVM is equivalent to proving the corresponding operation in Hermez's zkVM, and zkVM has a very large degree of freedom, they can avoid the zk-unfriendly part in EVM.
There are different ways to define whether Hermez is zkEVM or zkVM:
- Had to re-implement full EVM, not satisfied - Hermez is zkVMClick to learn
Thus, Scroll and PSE's zkEVM is very complex (and miraculously implements the zk-unfriendly part). Our zkEVM has 34469 lines of code, but Hermez's zkEVM has less than 3000 lines of code,
Click to learn
Initially balancing Scroll/PSE zkEVM is difficult to achieve, but post-processing EVM updates are easy, Hermez's zkEVM is initially easy to implement, but subsequent updates are difficult (may require redesign of zkVM), and the PSE solution is more suitable for Layer 1 , subsequent upgrades are also easy, and because Scroll works directly with PSE (and even contributes to the same repo), subsequent upgrades to Scroll's zkEVM are also easy.
A future worth looking forward to is: we will optimize the proof generation time to 12 seconds (just when a slot is proposed), at this time zkEVM can be directly used in the production environment of Layer 1, and the limit of running a node will also be reduced.
If zkEVM can be directly used for Layer 1, then the main network will have its own prover. If it proves that the generation time can be optimized to 12s, I think a prover network that can help accelerate (hardware acceleration, community participation, etc.) will be considered.
Scroll will have its own Prover network in the future, and its roadmap is as follows:
-Pre-alpha testnet upgrade
-Alpha testnet
- Decentralized roller network
- Launch the mainnet
So if Scroll's roller network works well (there may be a new consensus mechanism), it will have a direct impact on Layer 1. The Ethereum mainnet is likely to learn from Scroll's experience and try to use the roller-network method to accelerate its own zkEVM (up to 12s).
Rollup is an innovative testing area at layer 1, not only involving novel applications, but also these underlying infrastructures. There are currently multiple zkEVM implementations led by different rollup teams, this is good for both rollup and Layer 1 in the long run, for rollup we can use other zkEVM implementations to check if our own zkEVM misses constraints or exists bugs etc.
One zkEVM generates proofs and the other zkEVM verifies its process.
Anyway, in the future we will still see very active discussions about zkEVM, there will be more designs, more innovations, more bugs, and finally the upgrade of EVM on layer 1 -> zkEVM. We will also see rollup innovations learned on layer 1, helping Ethereum itself get better (not just lower Gas transactions).