Get Started

Begin your EOS journey with these helpful links

Developers

Get started building on EOS with these helpful resources.

Features

Explore the core components of the EOS ecosystem, from native functionality to seamless interoperability.

Resources

All things EOS, from monthly reports to featured dApps.

All Blogs

EVM+: Bringing the Ethereum Virtual Machine to EOS

EVM+ Bringing the Ethereum Virtual Machine to EOS
Author
EOS Network Foundation
Date
Jan 14, 2022
Category
Share

EOS Network Foundation

EVM+ is making moves to make EOS compatible with Solidity based applications.

Overview

The EOS community is coalescing around crucial projects that will revitalize the network. With significant contributions from our talented developers, community leaders, and the stewardship of the EOS Network Foundation (ENF), EOS is forging its own path forward and bringing about a new era of collaboration.

Six ENF sponsored working groups are in motion so far, with four producing “blue papers”. Each blue paper will represent a significant culmination of research. They will articulate development goals, strategies for their completion, and additional recommendations for achieving long term success in their respective domains.

The Six ENF Sponsored WGs:

API+: Providing access for the next generation of EOSIO-powered apps.

Core+: Developing software that allows applications to run on EOSIO.

Wallet+: Working with software to integrate EOSIO into external applications.

Audit+: Providing an overall framework for security analysis tooling and contract audit for EOSIO-based applications.

EVM+: Deploying the Ethereum Virtual Machine (EVM) on EOS.

Recover+: Developing mitigation strategies, emergency response protocols, and best practices for hacks and exploits.

EVM+ will work in a slightly different way than the other WGs. With EOS Argentina at the helm, EVM+ is geared to approach development in a more agile manner. Bypassing the need for a blue paper, the team will proceed directly to product delivery with an implementation of an EVM on EOS at the smart contract level–with an initial budget of $200k.

Introducing EVM+

Blockchain interoperability is perhaps one of the most important issues facing the EOS community today. The blockchain sector can be prone to focusing inwards, especially in EOS. Developers often find themselves repeating the mantra that EOS has the best technology, so EOS is the place to be, even if everyone else hasn’t woken up to the potential yet. However, by doing so, we risk cutting ourselves off from the rest of the blockchain world and, as such, missing out on many opportunities. Many of the developers who have left EOS have done so not because they want to, but because Ethereum, for all its deficiencies, is where the action is. That’s why work involving the Ethereum Virtual Machine is so important and it’s why it’s become the subject of an additional working group.

EVM compatibility is essential to the potential of EOS, not just technically but also from a business perspective. Ultimately, it is essential that we welcome more Solidity developers and users to EOS, and an EVM on EOS is an excellent bridge to do just that.

Build on Success & Attract Developer Talent

Leading the EVM+ working group is EOS Argentina, an EOS genesis block producer and the developers behind Evodex and the EOS Metamask wallet integration.

Also advising the EVM+ group is Syed Jafri, who won the B1 EVM Challenge in 2020 with EOSIO.EVM which allows solidity developers to quickly launch on EOSIO and run their apps up to 100 times faster and 1,000 times cheaper. EOS Argentina is also taking inspiration from the Telos EVM implementation.

This will be a much needed innovation for EOS. One of the main issues the EOS public blockchain has faced throughout the last few years is that it has been starved of funding. Ethereum might be slower, less energy efficient, and charge higher transaction fees, but a much greater network effect and token liquidity exists within Ethereum and other EVM-based chains. Additionally, the developer tooling and code libraries that exist within the EVM ecosystem have been growing at a rapid pace as well as the open source code available to dApp developers. As a result, the developers on EOS have been left to build many pieces of their codebases from scratch with less mature tooling, while their counterparts on Ethereum have been amply rewarded with a plethora of modular, reusable, secure smart contracts written in Solidity and made available through pre-audited libraries from organizations like OpenZeppelin. Some of the other ENF working groups are focused on improving the EOS developer experience and native tooling available, but that will take some time before it can reach its full potential. In the meantime, we can leverage the talent and resources that already exist around EVM to tap into its network effect by making it easy to deploy Solidity based contract deployment on EOS.

EOS effectively faces two challenges going into an extremely important year. On the one hand it has to demonstrate its value to would-be native EOSIO developers, and secondly, it has to remove some of the barriers of entry for more people to work with it. Even if a developer was convinced that EOS represented a better option for speed and scalability, they are still likely to stay where they are if migrating to a new blockchain would be a long, cumbersome and potentially troublesome process. Allowing those developers to deploy existing code in a frictionless way would make migrating or cloning a project much more manageable.

EVM+: Bridging the Gap Between EVM and EOSIO

The overall goal of the EVM+ is to make EOS a compatible EVM platform from the developer and user perspective. To that end, here are some of the key items being addressed:

  • Smart contract level versus native nodeos implementation: EOS Argentina is working towards a smart contract-based solution that enables an EVM to run properly in an EOS VM WASM runtime. This will allow the EOS network to upgrade EVM runtime without making a protocol upgrade (without forking).
  • ETH precompiled contracts: This will not only benefit EVM on EOS but also smart contract developers at the same time. In EOS, as with other chains, you are given a limited amount of time for your transaction to execute (150ms by protocol, 30ms subjective by BPs ). Despite the fact that the EOS VM is powerful and fast, there are some types of operations that, when executed in web assembly, lack the optimisation they can have in native code. In order to speed things up, they are looking to implement ETH precompiles as EOS intrinsics (native code).
  • Full RPC compatibility: Plans in this area are still in development but the EVM+ team aims to at least support most of the RPC required to allow the usage of common tools/environments on ETH. This will be one of the most important aspects of the project.
  • Deterministic gas usage/billing: The EOS chain uses three types of resources: CPU (subjective measure/variable price), NET (objective measure/variable price) and RAM (objective measure/variable price) billing. The challenge here is to give users deterministic gas usage and competitive gas prices and at the same time prevent web3 API providers from being abused.
  • MetaMask support for both EVM and EOS VM runtimes using potentially the same web3 provider: This means that Metamask will be supported as a wallet for EOS to interact with both EOS native contracts and EVM contracts written in Solidity.

The EVM+ working group will evolve the above strategies as they advance their mission to create the optimal solution for EVM compatibility on EOS. Their efforts are aimed at producing a workable solution in Q2 2022.

There are now six working groups building a framework to make it easier for developers and users to engage on EOS–thereby promoting growth in the network and making the EOS ecosystem much more attractive for everyone. The future has never looked brighter for EOS. We invite you to join us as we work together to bring about the greatest comeback story in blockchain.

Stay tuned for more deep dives into the rest of the ENF sponsored working groups!

EOS Network

The EOS Network is a 3rd generation blockchain platform powered by the EOS VM, a low-latency, highly performant, and extensible WebAssembly engine for deterministic execution of near feeless transactions; purpose-built for enabling optimal web3 user and developer experiences. EOS is the flagship blockchain and financial center of the EOSIO protocol, serving as the driving force behind multi-chain collaboration and public goods funding for tools and infrastructure through the EOS Network Foundation (ENF).

EOS Network Foundation

The EOS Network Foundation (ENF) is a not-for-profit organization that coordinates financial and non-financial support to encourage the growth and development of the EOS Network. The ENF is the hub of the EOS Network, harnessing the power of decentralization as a force for positive global change to chart a coordinated future for EOS.

Join the EOS Community
Follow our socials and join the conversation.