欢迎订阅专栏:10分钟智能合约:进阶实战
概念
重入(Reentrancy)攻击是最常见的一种智能合约攻击方式,通常发生在不同合约之间交互时,利用回调机制,反复调用原合约的某些函数,打破原本的代码执行流程,造成不可预期的行为。
重入问题的产生
- EVM特性决定合约可以调用其他外部合约
- 以太币、合约Token等转账时会执行回调函数。
- 将程序控制权交给接收合约。
- 回调函数逻辑未知
- 可能不断回调原合约,出现重入的问题
重入攻击分类
- 单函数重入(Single function reentrancy):涉及单个合约中单个函数
- 跨函数重入(Cross function reentrancy):涉及单个合约中多个函数。
- 跨合约重入(Cross contract Reentrancy):也称为只读重入,涉及多个合约中的多个函数