There is a newer version of the record available.

Published June 4, 2025 | Version v1
Software Open

Let's Move2EVM

  • 1. ROR icon Ca' Foscari University of Venice
  • 2. ROR icon TU Wien
  • 3. TU Vienna

Description

About

The Move programming language, designed with strong safety guarantees such as linear resource semantics and borrow-checking, has emerged as a secure and reliable choice for writing smart contracts. However, these guarantees depend on the assumption that all interacting contracts are well-formed—a condition naturally met in Move’s native execution environment but not in heterogeneous or untrusted platforms like the Ethereum Virtual Machine (EVM). This hinders the usage of Move as a source language for such platforms: for instance, we show in this paper that the existing Move-to-EVM compiler is not secure, meaning the compilation of secure Move contracts yields vulnerable EVM bytecode.

This work addresses the challenge of preserving Move’s security guarantees when compiling to EVM. We introduce a novel compiler design extending the existing Move-to-EVM compiler with an Inlined-Reference-Monitor-(IRM)-based protection layer. Our approach enforces Move’s linear semantics and borrow-checking rules at runtime in EVM, ensuring the correctness and safety of the compiled smart contracts, even in adversarial execution environments. 

We formally define the compilation process, establish correctness guarantees for the translation, and implement our protection mechanism in the original compiler. 
Our evaluation draws on three datasets: (i) an ERC-20 implementation in Solidity and Move, (ii) the Rosetta dataset curated by Bartoletti et al., and (iii) modules scraped from the Aptos blockchain. The performance evaluation shows that the gas cost overhead introduced by our compiler—compared both to the original compiler and Solidity-compiled code—is modest, thereby confirming our approach as a practical solution for bringing the security guarantees of Move code to the EVM.

Structure of the Artifact

This record includes the following artifacts:

  1. A Zip File containing the source code of the IRM-based Move-to-EVM compiler
  2. A Zip File containing the Aptos Dataset used for the evaluation in the paper (see 4)
  3. A Zip File containing average gas prices and Ethereum exchange Rates for each day of April'25, which were used for the evaluation in the paper (see 4)
  4. The extended version of our Let's Move2EVM paper

Files

paper_extended.pdf

Files (634.2 MB)

Name Size Download all
md5:2826fe52bc9fa7622f26ec60e71b6563
45.1 MB Preview Download
md5:64a91d918e0898715e3cb947975ee847
1.8 kB Preview Download
md5:745b5b456ecd8309bcad361c69a67b9a
588.1 MB Preview Download
md5:f9b2e61973221c36a7aa3221fe0ce3f4
979.0 kB Preview Download

Additional details

Software

Repository URL
https://github.com/lets-move-to-evm/lets-move-to-evm
Programming language
Rust , Move , Solidity , JavaScript
Development Status
Concept