# DiSCo：利用大语言模型将 EVM 字节码反编译为源代码

> DiSCo 通过提示冻结参数的大语言模型，把以太坊合约的创建字节码提升为 Solidity 源码，而不是输出反编译伪代码。它将控制流路径抽象为逻辑不变的语义单元，模拟执行从区块执行中捕获的创建字节码以恢复构造函数逻辑，并借助签名数据库与类型感知图模型推断被剥离的名称。这些单元被转写为自然语言描述，并与编码规范一起放入提示词。主要模型为 GPT-4，另测试了 Llama 3。

- 作者：Xing Su; Hanzhong Liang; Hao Wu; Ben Niu; Fengyuan Xu; Sheng Zhong
- 原标题：DiSCo: Towards Decompiling EVM Bytecode to Source Code using Large Language Models
- 发表载体：Proceedings of the ACM on Software Engineering (FSE 2025)
- 发表状态：期刊论文
- 出版／提交日期：2025 年 6 月 19 日
- 日期依据：ACM 文章页面与出版方提交的 Crossref 元数据均将出版日期列为 2025-06-19；本条目不以 PDF 页脚的 2025 年 7 月期号日期或 FSE 会议日期替代该出版日期。
- DOI：10.1145/3729373
- 来源复核于：2026-10-18
- 收录于：2026-10-19
- 原始论文：<https://dl.acm.org/doi/10.1145/3729373>
- PDF：<https://dl.acm.org/doi/pdf/10.1145/3729373>
- 项目：<https://github.com/b1ue3ky/disco>
- BibTeX：<https://awesomerea.org/papers/citations/paper-disco.bib>
- 目录页面：<https://awesomerea.org/zh/papers/paper-disco/>
- 记录 JSON：<https://awesomerea.org/papers/paper-disco/record.json>
- 英文版：[English](https://awesomerea.org/papers/paper-disco/index.md)

## 研究范围与局限

真实标签来自 Etherscan 上的源码文件：200 个余额最高的合约用于全部基线，1,000 个用于自动化测试；另有独立实验使用 50 个 Vyper 合约、50 个新部署合约和 149 个闭源攻击合约。可编译率（五次采样取优约为 75%，单次运行为 46%）、差分模糊测试通过率与嵌入相似度都不能证明与已部署源码等价。模仿学习模糊测试器生成的交易近半数会回滚；人工审查认为约 28.5% 的生成合约语义一致，Vyper 输入仅为 12%。作者报告路径过多的合约会导致超时或分析不可靠，名称推断能力也仍然有限。基线是将 Panoramix、Ethervm 和 Elipmoc 的输出（多取自其网站，部分为人工反编译）交给同一大语言模型，并非独立反编译器之间的比较。结果依赖某个 GPT-4 预览版快照。攻击复现仅覆盖 2025 年 1 月的十起事件，其中四起复现成功。

## 与本合集的关联

将大语言模型辅助反编译扩展到 EVM 智能合约字节码，恢复构造函数逻辑与标识符，并通过编译和差分执行检查结果。

## 发表与复核说明

六位作者的顺序以 ACM PDF 与 Crossref 为准。ACM 列出第 2 卷 FSE 期、文章编号 FSE103、页码 2311–2334，并以 CC BY 4.0 授权论文。未找到 arXiv 版本。论文的数据可用性章节指向 github.com/suxnju/disco，该地址现重定向至 b1ue3ky/disco。在 2025-04-13 提交中，这个采用 MIT 许可证的仓库包含列出合约地址的数据集 CSV、评估结果与用户研究材料，但没有 DiSCo 实现。合约源码与链上数据保留各自条款。论文所列主要模型为 GPT-4-0315-Preview。

## 一手来源

1. <https://dl.acm.org/doi/10.1145/3729373>
2. <https://dl.acm.org/doi/pdf/10.1145/3729373>
3. <https://api.crossref.org/works/10.1145/3729373>
4. <https://github.com/b1ue3ky/disco/tree/ee04ae812c2239a42fef8046f3c2486c36d7d296>
5. <https://github.com/b1ue3ky/disco/blob/ee04ae812c2239a42fef8046f3c2486c36d7d296/README.md>
6. <https://github.com/b1ue3ky/disco/blob/ee04ae812c2239a42fef8046f3c2486c36d7d296/LICENSE>
7. <https://github.com/b1ue3ky/disco/blob/ee04ae812c2239a42fef8046f3c2486c36d7d296/disco_artifacts/datasets/d_small.csv>

## 关于此条目

已依据论文及一手来源复核。请通过原始论文或 BibTeX 引用原作者。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
