Inferring Needless Write Memory Accesses on Ethereum Bytecode (Extended Version)
Elvira Albert, Jes\'us Correas, Pablo Gordillo, Guillermo, Rom\'an-D\'iez, Albert Rubio

TL;DR
This paper introduces a static analysis method for Ethereum bytecode that identifies needless memory write operations, enabling significant cost reductions in smart contract deployment and execution.
Contribution
It presents a novel static analysis technique at the bytecode level to detect and remove needless memory writes in Ethereum smart contracts, improving efficiency.
Findings
Detected about 6,200 needless write accesses in over 19,000 contracts
Identified memory patterns that can be optimized by removing bytecode blocks
Existing tools cannot infer such needless write accesses
Abstract
Efficiency is a fundamental property of any type of program, but it is even more so in the context of the programs executing on the blockchain (known as smart contracts). This is because optimizing smart contracts has direct consequences on reducing the costs of deploying and executing the contracts, as there are fees to pay related to their bytes-size and to their resource consumption (called gas). Optimizing memory usage is considered a challenging problem that, among other things, requires a precise inference of the memory locations being accessed. This is also the case for the Ethereum Virtual Machine (EVM) bytecode generated by the most-widely used compiler, \texttt{solc}, whose rather unconventional and low-level memory usage challenges automated reasoning. This paper presents a static analysis, developed at the level of the EVM bytecode generated by \texttt{solc}, that infers…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsBlockchain Technology Applications and Security · Security and Verification in Computing · Cryptography and Data Security
