Decompiling Smart Contracts with a Large Language Model

📅 2025-06-24
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
Many smart contracts on blockchain explorers lack source-code verification, rendering their EVM bytecode difficult to analyze and severely hindering security auditing. Existing decompilers suffer from low semantic fidelity and poor readability. Method: This paper pioneers the integration of a large language model (Llama-3.2-3B) into smart contract decompilation: bytecode is first statically analyzed into three-address code (TAC) as an intermediate representation, then a fine-tuned LLM translates TAC into high-fidelity Solidity code. Contribution/Results: Trained on 238,446 function pairs, our system achieves an average semantic similarity of 0.82 between decompiled and original source code—substantially outperforming conventional tools. The fully open-source system is publicly deployed at https://evmdecompiler.com, providing trustworthy, interpretable, and automated support for on-chain smart contract security analysis.

Technology Category

Application Category

📝 Abstract
The widespread lack of broad source code verification on blockchain explorers such as Etherscan, where despite 78,047,845 smart contracts deployed on Ethereum (as of May 26, 2025), a mere 767,520 (< 1%) are open source, presents a severe impediment to blockchain security. This opacity necessitates the automated semantic analysis of on-chain smart contract bytecode, a fundamental research challenge with direct implications for identifying vulnerabilities and understanding malicious behavior. Prevailing decompilers struggle to reverse bytecode in a readable manner, often yielding convoluted code that critically hampers vulnerability analysis and thwarts efforts to dissect contract functionalities for security auditing. This paper addresses this challenge by introducing a pioneering decompilation pipeline that, for the first time, successfully leverages Large Language Models (LLMs) to transform Ethereum Virtual Machine (EVM) bytecode into human-readable and semantically faithful Solidity code. Our novel methodology first employs rigorous static program analysis to convert bytecode into a structured three-address code (TAC) representation. This intermediate representation then guides a Llama-3.2-3B model, specifically fine-tuned on a comprehensive dataset of 238,446 TAC-to-Solidity function pairs, to generate high-quality Solidity. This approach uniquely recovers meaningful variable names, intricate control flow, and precise function signatures. Our extensive empirical evaluation demonstrates a significant leap beyond traditional decompilers, achieving an average semantic similarity of 0.82 with original source and markedly superior readability. The practical viability and effectiveness of our research are demonstrated through its implementation in a publicly accessible system, available at https://evmdecompiler.com.
Problem

Research questions and friction points this paper is trying to address.

Automated decompilation of opaque smart contract bytecode for security analysis
Improving readability and accuracy of decompiled Solidity code using LLMs
Addressing limitations of traditional decompilers in vulnerability detection
Innovation

Methods, ideas, or system contributions that make the work stand out.

Uses LLMs to decompile EVM bytecode
Converts bytecode to structured three-address code
Fine-tunes model on TAC-to-Solidity function pairs
🔎 Similar Papers
No similar papers found.