paperbot · PL 论文追踪

全部论文 待读 收藏

P2 EtherDiffer: Differential Testing on RPC Services of Ethereum Nodes

EtherDiffer:以太坊节点 RPC 服务的差分测试
FSE Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering2023匹配度 1/10 · 该论文属于区块链节点 RPC 服务的差分测试,核心是测试用例生成与实现偏差检测,与用户关注的静态分析、LLM/Agent 结合、浮点程序分析或贝叶斯程序分析没有直接交集。引用 19 inbox
Shinhae Kim, Sungjae Hwang
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:提出 EtherDiffer,对以太坊节点的 RPC 服务进行差分测试,自动生成有效与无效测试用例并揭露实现偏差。

以太坊节点实现官方 RPC 规范并暴露统一接口,但规范对非确定性事件处理与非法参数缺乏说明,导致不同实现出现偏差。本文提出 EtherDiffer,对四种主流节点的 RPC 服务进行自动差分测试:先以多并发交易和传播延迟生成非确定性链,再用基于属性的生成与类型保持变异构造语义有效及无效但可执行的测试用例,执行后报告错误处理或返回值差异。评估中两种生成技术成功率分别为 98.8% 和 95.4%,检测到 48 类偏差,含崩溃、拒绝服务等 11 个实现缺陷;报告 44 类后获确认与补丁,且全面优于官方测试工具。

问题
以太坊节点的 RPC 规范未明确非确定性事件处理与非法参数行为,导致不同节点实现在错误处理或返回值上出现偏差,影响 DApp 生态稳定性。
方法
提出 EtherDiffer,通过多并发交易与传播延迟生成非确定性链,并使用基于属性的生成和类型保持变异产生语义有效及语义无效但可执行的测试用例,在四种主流节点实现上差分执行并报告偏差。
评估
两种测试用例生成技术的成功率分别为 98.8% 和 95.4%,共检测到 48 类偏差(含 11 个实现缺陷),向规范与开发者报告 44 类并获得确认和补丁,且各项技术指标显著优于官方节点测试工具。
原文摘要(Abstract)

Blockchain is a distributed ledger that records transactions among users on top of a peer-to-peer network. Among all, Ethereum is the most popular general-purpose platform and its support of smart contracts led to a new form of applications called decentralized applications (DApps). A typical DApp has an off-chain frontend and on-chain backend architecture, and the frontend often needs interactions with the backend network, e.g., to acquire chain data or make transactions. Therefore, Ethereum nodes implement the official RPC specification and expose a uniform set of RPC methods to the frontend. However, the specification is not sufficient in two points: (1) lack of clarification for non-deterministic event handling, and (2) lack of specification for invalid arguments. To effectively disclose any deviations caused by the insufficiency, this paper introduces EtherDiffer that automatically performs differential testing on four major node implementations in terms of their RPC services. EtherDiffer first generates a non-deterministic chain by multi-concurrent transactions and propagation delay. Then, it applies our key techniques called property-based generation and type-preserving mutation to generate both semantically-valid and semantically-invalid-yet-executable test cases. EtherDiffer executes the test cases on target nodes and reports any deviations in error handling or return values. The evaluation showed the effectiveness of our test case generation techniques with the success ratios of 98.8% and 95.4%, respectively. Also, EtherDiffer detected 48 different classes of deviations including 11 implementation bugs such as crash and denial-of-service bugs. We reported 44 of the detected classes to the specification and node developers and received acknowledgements as well as bug patches. Lastly, it significantly outperformed the official node testing tool in every technical aspect. We believe that our research findings can contribute to more stable DApp ecosystem by reducing the inconsistencies among nodes.

链接与引用

DOI 原文 · PDF(开放获取) · DBLP

BibTeX
@inproceedings{KimH23,
  title = {EtherDiffer: Differential Testing on RPC Services of Ethereum Nodes},
  author = {Shinhae Kim and Sungjae Hwang},
  booktitle = {FSE},
  year = {2023},
  doi = {10.1145/3611643.3616251}
}