一句话:提出 EShield,通过将跳转地址相关指令替换为反模式,干扰字节码控制流恢复,从而保护智能合约抗逆向工程。
智能合约是区块链应用的后端程序,其执行结果确定且公开可见。部分开发者为生成随机性或出于安全考虑不愿公开源码,但攻击者仍可用逆向工程工具反编译和分析字节码。本文提出 EShield,一种自动化的安全增强工具,通过将操作跳转地址的原始指令替换为反模式,干扰从字节码恢复控制流。作者在 EShield 中实现了四种方法,并在超过 2 万个智能合约上开展实验。评估结果表明,所有受保护的智能合约均能抵抗三种不同的逆向工程工具,且仅带来很小的额外 gas 开销。
Smart contracts are the back-end programs of blockchain-based applications and the execution results are deterministic and publicly visible. Developers are unwilling to release source code of some smart contracts to generate randomness or for security reasons, however, attackers still can use reverse engineering tools to decompile and analyze the code. In this paper, we propose EShield, an automated security enhancement tool for protecting smart contracts against reverse engineering. EShield replaces original instructions of operating jump addresses with anti-patterns to interfere with control flow recovery from bytecode. We have implemented four methods in EShield and conducted an experiment on over 20k smart contracts. The evaluation results show that all the protected smart contracts are resistant to three different reverse engineering tools with little extra gas cost.
DOI 原文 ·
@inproceedings{paperbot6066,
title = {EShield: protect smart contracts against reverse engineering},
author = {Wentian Yan and Jianbo Gao and Zhenhao Wu and Yue Li and Zhi Guan and Qingshan Li and Zhong Chen},
booktitle = {ISSTA},
year = {2020},
doi = {10.1145/3395363.3404365}
}