One of the hottest zero-knowledge (ZK) applications right now is the race to launch thefirst zkEVM, which will enable general-purpose smart contracts and the porting of dappsonto validity rollups (which use ZKPs).
The ZK Everything Report | Messari EVM compatibility for an L2 refers to the ability for developers to easily port contracts from Ethereum L1. There is language-level and bytecode-level compatibility at the granular level. Ethereum has an established presence and projected staying power in crypto, thus EVM compatibility is desired for the derived reliability and security. The alternative, Optimistic Rollups (ORUs), can more easily achieve EVM compatibility than ZKrollups, which run into mathematically complex operations to prove EVM execution. As a result, the zkEVM debate often coalesces towards the definition of true EVM compatibility, where achieving perfect compatibility hits diminishing returns if the majority of development does not require full 1:1 opcode conversion. Vitalik mapped out the compatibility and trade-offs for Scroll, Polygon zkEVM, zkSync, and the
id: f0776e8930e06389b50934c3ee7e0cbb - page: 12
Ethereum Foundations zkEVM. Separately, Starknet is an EMV-compatible zkEVM (using a compiler from its own language, Cairo, to Solidity) and uses STARK proofs instead of SNARK. Meanwhile, the Privacy and Scaling Explorations (PSE) team housed within the Ethereum Foundation is slowly building a perfectly compatible zkEVM, but the difference between PSE and Scroll is the storage solution used. PSE uses the Keccack hash function as the EVM and a Merkle Patricia Trie (data structure), which have large proving costs and why zkEVM projects are choosing to use alternatives. Alternative routes can break compatibility. These projects lead the zkEVM race, while newer contestants such as Taiko, Kakarot, and Consensys zkEVM are emerging. To the end-user navigating a zkEVM, dapps should provide a
id: 24619f0f7d700d95766bb2b77bffbfea - page: 12
The system differences will only impact developers closer to the code. Opcodes are instructions read by a virtual machine. Part of EVM compatibility depends on the amount of opcode coverage on the non-EVM machine, which has 141 opcodes. None of the current zkEVMs en route to production have full-opcode coverage, and reasons range from upcoming deprecation, not commonly used, or unable to cover due to compatibility limitations. zkEVM teams expect a fair amount of bugs during testing and will go through rigorous auditing processes before fully launching on mainnet. The race to mainnet is on for the zkEVMs, but being first wont alone be the indicator of which succeeds in attracting the most users, developers, and value. For the average developer, the intricacies of EVM complexity do not
id: 4b388ee8ce0cf2ba0feb628ca706fd12 - page: 12
However, when it comes to low-level bytecode optimizations to achieve things like lowered gas consumption, developers will run into issues with a non-perfect zkEVM. Given the starkly different phases of development that each zkEVM, it is difficult to compare them against each other. Currently, none of the more established zkEVMs have an open-source prover. In zkSyncs case, the prover has not yet been implemented into the public testnet. 12/23 17.11.2022 12:36 The ZK Everything Report | Messari
id: 28f3f8219d878ebe6280c339d209bb1d - page: 12