Why LightLink's EVM Equivalence is Better Than EVM Compatibility?
Discover how LightLink's EVM equivalence offers a seamless, future-proof solution for developers, outshining traditional EVM compatibility.
The Ethereum Virtual Machine (EVM) is the standard execution environment for smart contracts in the Web3 ecosystem. Solidity is the industry-standard programming language, with numerous tools developed for it. The Ethereum blockchain boasts the best liquidity in the Web3 ecosystem, with a total value locked of $96.8 billion in various protocols at the time of writing.
Most Layer 2 (L2) solutions use Ethereum as their L1 to benefit from its developed ecosystem and liquidity. However, they are not EVM-compatible. LightLink is not merely compatible either. It is EVM-equivalent.
Why Not EVM Compatibility?
EVM-compatibility implies using a virtual machine that produces outputs compatible with the EVM. While it is easy to fork Ethereum and launch an EVM-compatible L1, achieving this with L2 is challenging due to the differences in consensus layers between Ethereum and its L2s. Specifically, EVM smart contract execution results stored in L1 might not be compatible with fraud-proof checks, rendering the L2 concept ineffective.
Implementing standard EVM, or being EVM-compatible, in optimistic rollups means deploying any existing app will require porting it—modifying its code to ensure L2 execution is compatible with L1. Porting complicates development: instead of leveraging the well-developed Ethereum infrastructure, clients, IDEs, and other tools, developers would need to modify everything themselves to make it work with L2.
Moreover, the Ethereum protocol is constantly evolving, and future changes could break L2 compatibility. Striving for full EVM-compatibility entails dedicating resources to continually modify L2 clients to ensure everything functions as intended. That's why the LightLink team opted for EVM-equivalence instead of compatibility.
What is EVM Equivalence?
EVM-equivalence entails integrating the EVM interpreter within the L2 execution client, i.e., running EVM within the L2 virtual machine. It's not about creating a VM that executes smart contracts with EVM-compatible results but integrating EVM to make the results equivalent to those on Ethereum.
The primary issue—fraud proofs—is resolved by L2 converting L1 batches into EVM-equivalent L2 blocks and executing them within the EVM. The rest is straightforward: EVM-equivalence allows any bytecode that can run on L1 to run on L2.
This approach addresses several issues with EVM-compatibility:
- Developers can deploy any Ethereum or L2 dApp on LightLink with only minor changes.
- Any Ethereum development tools and smart contract libraries work with LightLink.
- Any future Ethereum or EVM updates can be easily integrated into LightLink.
- New token standards can be launched on LightLink without modification.
In essence, EVM-equivalence means that the execution layers on Ethereum and LightLink are identical, allowing Solidity developers to work with LightLink without needing to study extensive documentation.
A Simplified Example of EVM Equivalence
To simplify, let's compare this concept to web browsers. In the early 2000s, we had Netscape, Safari, Internet Explorer, Mozilla, Opera, and many more browsers, each with its own stack. They all had slightly different implementations of JavaScript, leading to fragmentation: web developers had to modify their websites and apps for each browser to ensure correct functionality.
Now, most popular browsers use Chromium at their core. While they may look and feel different, they display content similarly and simplify web development.
Similarly, EVM-equivalent L2s, despite their different approaches to scalability and architecture, use the same EVM within their VMs. What can run on Ethereum will run on LightLink or other EVM-equivalent chains as well.