# Scroll vs Hermez ###### tags: `thread` I haven't looked into Hermez's zkevm solution in-depth But it's an interesting topic, comparing Scroll_ZKP and 0xPolygonHermez's zkevm is a very good perspective to help everyone understand the zkVM and zkEVM ## Two Solutions Basically, Scroll_ZKP/ @PrivacyScaling's zkEVM solution does EVM equivalence by "re-implementing" the entire EVM All operations of EVM are defined in zkevm-circuits, which require a lot of steps (constraints) to prove Hermez's zkEVM solution is different Instead of re-implementing an EVM, they implement a specific zkVM and map the EVM operations to their own zkVM So prove the operation of EVM = prove the corresponding operation in Hermez's zkVM And zkVM has a very large degree of freedom, they can avoid the zk-unfriendly part of EVM ## zkVM or zkEVM? There are different ways to define whether Hermez is zkEVM or zkVM👇 - Definition: As long as you can prove that all operations from the EVM are correct **Satisfied**, Hermez is zkEVM - Must re-implement full EVM **Not satisfied**, Hermez is zkVM As a result, the zkEVM of Scroll and PSE is very complex (the zk-unfriendly part is magically implemented). Our zkEVM has 34469 lines of code But Hermez's zkEVM is less than 7000 lines of code([YouTube](https://www.youtube.com/watch?v=Os10Ln8sMOc&t=6165s)) ## Trade-off and Future **Trade-off** The tradeoff is Scroll/PSE's zkEVM is difficult to implement at first, but it is easy to deal with EVM updates later Hermez's zkEVM was easy to implement initially, but subsequent updates are difficult (possibly will need redesign zkVM) Btw, the PSE solution is more suitable for Layer 1, and subsequent upgrades are also easy And because Scroll directly cooperates with PSE (even contributes to the same repo), the subsequent upgrade of Scroll's zkEVM is also very easy **Future for L1** A future worth looking forward to is: we optimize the proof generation time to 12s (exactly 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 the proof generation time can be optimized to 12s, I think a prover network that helps to accelerate will be considered (hardware acceleration, community participation, etc.) 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 main net will likely learn the experience of Scroll and try to use the roller-network way to accelerate its own zkEVM (to achieve 12s) Rollups is an innovative test field for Layer 1, not only about novel applications, but also these underlying infrastructures There are currently multiple zkEVM implementations being led by different rollup teams, which is good for both rollups and Layer 1 in the long run For rollups, we can use other zkEVM implementations to check if our own zkEVM misses constraints or has bugs, etc. One zkEVM generates proof, and other zkEVMs verify the process ![](https://i.imgur.com/DyyYe52.png) ![](https://i.imgur.com/27nrm3a.jpg) For Layer 1, if multi-zkEVM can form a cooperative mechanism, there is no reason not to directly learn from it Of course, not so many layer 2 teams will implement a consensus-layer zkEVM (but still can learn how they design) ## Conclusions Anyways, we will still see very active discussions on zkEVM in the future There will be more designs, more innovations, more bugs, and finally the EVM -> zkEVM upgrade on Layer 1 We'll also see rollups innovations learned by Layer 1, helping Ethereum itself get better (not just cheaper transactions) [Thread](https://twitter.com/LuozhuZhang/status/1581385011604750336?s=20&t=hf32T6kwnUQiTjAV1MfiLA)