10分钟智能合约:进阶实战-3.2 重入攻击

27 阅读1分钟

欢迎订阅专栏10分钟智能合约:进阶实战

概念

重入(Reentrancy)攻击是最常见的一种智能合约攻击方式,通常发生在不同合约之间交互时,利用回调机制,反复调用原合约的某些函数,打破原本的代码执行流程,造成不可预期的行为。

重入问题的产生

image.png

  • EVM特性决定合约可以调用其他外部合约
  • 以太币、合约Token等转账时会执行回调函数。
  • 将程序控制权交给接收合约。
  • 回调函数逻辑未知
  • 可能不断回调原合约,出现重入的问题

重入攻击分类

  • 单函数重入(Single function reentrancy):涉及单个合约中单个函数
  • 跨函数重入(Cross function reentrancy):涉及单个合约中多个函数。
  • 跨合约重入(Cross contract Reentrancy):也称为只读重入,涉及多个合约中的多个函数

真实案例