2022 · 期刊论文
Elipmoc:以太坊智能合约的高级反编译
Elipmoc: Advanced Decompilation of Ethereum Smart Contracts
Elipmoc 将以太坊虚拟机字节码反编译为结构化的三地址中间表示,服务于安全分析与逆向工程。它由基于 Datalog 的 Gigahorse 反编译器演进而来,新增事务上下文敏感性、结合路径合并的路径敏感函数参数与返回值推断,以及完全上下文敏感的私有函数重建。作者在 2021 年 4 月至 9 月间首次部署于主网的 5,000 个唯一合约的均匀随机样本上,报告 99.5% 的合约操作数被完全解析(Gigahorse 为 62.8%),识别出的唯一外部调用签名比 Etherscan 的 Panoramix 多 67%,且反编译速度快 5 倍以上。
研究范围与局限
仅面向 EVM 字节码。评测指标包括操作数解析、结构化控制流、函数与跳转目标精度、外部调用与事件覆盖率、超时及速度,对比对象为 2022 年的 Gigahorse 产物与 Panoramix;这些指标不衡量与原始 Solidity 源码的等价性或源码恢复,输出也是三地址中间表示而非可重新编译的代码。实验使用 2021 年五个月部署窗口内的一个 5,000 合约样本、每个合约 120 秒的时限以及 Souffle 2.0.2。未与 JEB、Trustlook SECaaS 和 EtherSolve 比较,EtherVM、Porosity 与 Vandal 则因较弱或已停止维护而被排除。基于 Elipmoc 的漏洞发现被描述为端到端影响,并非系统性评测。
与本合集的关联
补充被 DiSCo 用作基线的静态 EVM 字节码反编译器,扩展本书目对智能合约反编译的覆盖。
发表与复核详情
- 发表载体
- Proceedings of the ACM on Programming Languages (OOPSLA 2022)
- 发表状态
- 期刊论文
- 出版/提交日期
- 2022 年 4 月 29 日
- 日期依据
- ACM 提交的 Crossref 元数据将 published/纸质与在线出版日期均记为 2022-04-29,文章页脚标注为 2022 年 4 月;本条目不以 OOPSLA 会议日期替代该出版日期。
- DOI
- 10.1145/3527321
Crossref 与作者托管的最终版 PDF 在四位作者顺序、DOI、第 6 卷、OOPSLA1 期及页码 1–27 上一致;PDF 将文章编号列为 77,Crossref 记录其采用 CC BY 4.0 许可。Crossref 标题为句首大写形式,PDF 则为标题式大写。未找到 arXiv 预印本。代码链接是实现 Elipmoc 的 Gigahorse 工具链,其 README 引用本论文及 2025 年介绍后续改动的另一篇论文。在所审阅的 master 提交 1b06cef(2026-09-14)中,LICENSE 文件为 BSD 3-Clause,并包含在各文件中标注的悉尼大学材料,而 GitHub API 报告为 NOASSERTION。当前环境需要递归子模块、Souffle 2.3 或 2.4.1、Boost、Z3,以及通过 uv 提供的 Python 3.13,不同于论文使用的 Souffle 2.0.2 与 Python 3.8.2,因此该快照并非论文的实验配置。本条目不将 gigahorse-toolchain 仓库收录为工具记录。本次未运行代码或实验。
来源复核于
本合集仅做来源复核,未重新运行论文实验。请通过原始论文或 BibTeX 引用原作者。
一手来源
- https://dl.acm.org/doi/10.1145/3527321
- https://api.crossref.org/works/10.1145/3527321
- https://yanniss.github.io/elipmoc-oopsla22.pdf
- README.md GitHub · nevillegrech/gigahorse-toolchain · 修订 1b06cef
- LICENSE GitHub · nevillegrech/gigahorse-toolchain · 修订 1b06cef