1 of 17

EVM Q1/2021

near.org

2 of 17

Contents

  1. Q4 OKR Review
  2. Q1 Roadmap
  3. Q1 OKR Planning
  4. Q1 Team Update

3 of 17

Q4 OKR Review

4 of 17

OKR: Usability (75%)

  1. Internal tools => 100%
    1. 3/3 of typical interactions with ability to debug.
    2. near-cli, near-api-js, and near-web3-provider have support for NEAR EVM.
  2. Relevant documentation => 100%
    • There is a tutorial for how to use NEAR EVM.
    • There is high-level documentation.
    • There are working examples for the native flow and MetaMask flow.
  3. Truffle support => 25% (not widely sampled)
    • 90% of tests [which tests?] pass without issues.
    • Projects [which projects?] can use Truffle to reliably test, build, and deploy.

5 of 17

OKR: Updated EVM (67%)

  1. Recent OpenEthereum => 100%
    1. Originally: Runs OpenEthereum 3.1.
    2. Update: Decided not to switch to 3.1 due to the new codebase. We upgraded to 2.7.2.
  2. Meta transactions => 100%
    • Users can use MetaMask to issue NEAR EVM transactions using dApp access key.
  3. Benchmarking => 0% (not measured)
    • Measure NEAR EVM performance in TPS for different contracts relative to Eth1.

6 of 17

OKR: TestNet release (aspirational)

  1. Gas fees are correct => 100%
    1. The discrepancy between NEAR VM and NEAR EVM gas calculations is low.
    2. The difference between NEAR EVM regression calculations and the NEAR VM results is: not more than 12% and in general around 10%.
  2. Test coverage => 100%
    • 100% of NEAR EVM entry points are covered by tests.
    • Add at least one integration tests, e.g., the Balancer test suite.
  3. Betanet stability => 0% (not begun)
    • BetaNet had a security bug bash for 1 week without new reports before releasing to TestNet.
  4. High load => 0% (not measured)
    • NEAR EVM is capable of delivering 200 TPS of ERC-20 transfers.
  5. Testnet release => 0% (not begun)
    • NEAR EVM is scheduled as an upgrade on TestNet.

7 of 17

Q1 Roadmap

8 of 17

NEAR EVM Base Token: nETH

NEAR EVM aims at 100% Ethereum compatibility. That means existing contracts and dApps can be deployed without changing anything else than dependent contract addresses and the Web3 JSON-RPC endpoint, respectively.

  1. Our colleagues elsewhere who have launched EVM chains have seen limited uptake
    1. They have all made the choice to not adopt ETH as their base token, despite in many cases having a bridge that could have bridged that asset.
    2. That has meant their claims of 100% Ethereum compatibility are a dubious proposition.
  2. Digging into Uniswap V2 as a representative example:
    • The assumptions that ETH is the chain’s base token and how the ETH/WETH conversions work are deeply hardcoded in files all over the project, spread out over GitHub repositories.
    • If we don’t adopt ETH, then porting Uniswap would involve forking all relevant repositories and maintaining (indefinitely) custom branches with tons of changes. Repeat this for potentially every dApp to be ported to NEAR EVM.
    • If we do adopt ETH, we can speak about deploying instead of porting.

More discussion at: https://gov.near.org/t/evm-runtime-base-token/340

9 of 17

Ethereum <-> NEAR EVM Bridge

  • This quarter, the EVM and Bridge teams will need to collaborate more closely in order to implement ETH <-> EVM bridging soonest.

10 of 17

ETH -> nETH Principal Scheme

A single user transaction is required�ETH Minter on NEAR side can be added for separation of concerns�Relayer should have an EVM account, so partly nETH is transferred to it as a remuneration�EVM Precompile should be updated once the bridge is deployed

Ethereum

NEAR

Bridge Infrastructure

Block relays

Ethereum light client

Prover

NEAR�light client

Prover

ETH Locker

EVM Precompile

User account

User account

1. User deposits ETH

2. ETH Locker emits Event

3. Block relayer submits a block with Event

Relayer account

4. Relayer issues�finalising tx

5. EVM checks proof

6. EVM Precompile�mints nETH

11 of 17

nETH -> ETH Principal Scheme

Two user interaction points required; can be upgraded with relayer approach�Relayer is remunerated within his transaction execution�

Ethereum

NEAR

Bridge Infrastructure

Block relays

Ethereum light client

Prover

NEAR�light client

Prover

ETH Locker

EVM Precompile

User account

User account

4. User sends withdrawal tx

6. ETH Locker sends ETH to user account

4. Block relayer submits a block with Execution outcome

Relayer account

1. User signs an�EIP-712 message

3. EVM produces execution outcome

2. Relayer sends tx

5. ETH Locker�checks the proof

12 of 17

Q1 OKR Planning

13 of 17

OKR: EVM on TestNet

  • Compatibility
    • The BetaNet EVM is capable of running any standard Ethereum smart contract (including Berlin HF bytecode)
  • DevX
    • An Ethereum developer is able to deploy his Truffle and Hardhat projects to the NEAR EVM in less than 30 minutes in 80% cases
  • UX
    • An Ethereum end-user with MetaMask is able to send transactions to the NEAR EVM in less than 10 minutes
  • Operations
    • The BetaNet EVM deployment is convenient to maintain. (In collaboration with the SRE team)
  • Performance
    • The BetaNet EVM deployment undergoes 1 day of stress testing of an order comparable to the Ethereum mainnet
  • Security
    • The BetaNet EVM deployment survives incentivized active adversarial attacks for 2 weeks

14 of 17

OKR: Support for DeFi dApps

  • Partner Support
    • 80% of our partners have enough tooling, documentation, and support to deploy their dApps to the TestNet EVM�(In collaboration with BD and the DevRel and Berry Pickers teams)
  • Ethereum Bridge
    • ETH and ERC-20 tokens can be bridged to the NEAR EVM runtime from the Ethereum mainnet and testnets�(In collaboration with the Bridge team)

15 of 17

OKR: EVM on MainNet (aspirational)

  • Performance
    • The TestNet EVM deployment undergoes 2 days of stress testing of an order comparable to the Ethereum mainnet
  • Security
    • The TestNet EVM deployment survives incentivized active adversarial attacks for 2 weeks
  • Protocol Upgrade
    • Validators agree to schedule and perform the NEAR EVM deployment as a MainNet protocol upgrade

16 of 17

Q1 Team Update

17 of 17

Q1 Team Update

Supporting roles:

  • Evgeny Kuzyakov (@evgenykuzyakov)
  • Illia Polosukhin (@ilblackdragon)
  • Kirill Abramov (@sept-en)
  • Mike Purvis (@mikedotexe)

Assigned team:

  • Alex Shevchenko (@djsatok)
  • Arto Bendiken (@artob)
  • Evgeny Ukhanov (@mrLSD)
  • Frank Braun (@frankbraun)

We are actively hiring for both the EVM and Bridge teams! https://near.org/careers/