Work

EtherVal: Smart Contract Decompiler Validation for the Ethereum Blockchain

Year: 2026
Type: article
Abstract: Ethereum smart contracts manage valuable assets, making them a prime focus for analysis and testing. Because smart contracts are deployed as low-level bytecode, decompilers are essential for translating bytecode into a higher-level representation that is amenable to static analysis. Although the decompilation of Ethereum bytecode is an undecidable problem, it must be semantics-preserving to serve as a basis for static analyses. We propose $\textsf {EtherVal}$ , a decompiler validation framework for the Ethereum blockchain. Because decompiled bytecode is inherently non-executable, we devise execution contexts capable of re-executing decompiled code on historical Ethereum transactions. Semantic equivalence is decided by equivalence-modulo-inputs, a comparison of the transaction side effect of the original bytecode vs. the decompiled code. Decompiled code abstracts away low-level semantic details such as the gas cost of bytecode instructions. Faithful re-execution thus critically depends on a mechanism to re-supply the missing semantic information, which $\textsf {EtherVal}$ achieves through offline trace collection and dynamic analyses within its execution contexts. For transactions with cross-contract calls, $\textsf {EtherVal}$ isolates the side effects of individual smart contracts to decide semantic equivalence. We employ $\textsf {EtherVal}$ with Gigahorse, amounting to the first blockchain-scale validation of a state-of-the-art smart contract decompiler. From the 7.467 billion transactions of the initial 20 million blocks of Ethereum, $\textsf {EtherVal}$ validates 67% of the three-address code, and 44% of the high-level substrate of the Gigahorse decompiler. Our investigation helped close decompiler bugs that could cause incorrect static analysis results.
Source: IEEE Access
Language: English
Open Access status: gold
Estimated APC paid: $2,075
OpenAlex ID: W7220650600
FWCI:
Cites: 57
Cited by:
Related to: 10