智能合约安全基础模型
本章梳理以太坊智能合约开发中的经典漏洞模型、底层触发机理与基础防护模式。
在以太坊虚拟机(EVM)与 Solidity 开发早期,大多数严重安全事件源于代码层面的边界校验疏漏、不安全的外部调用以及基本的算术假设失效。本部分重点解构 8 类经典漏洞的单点复现与通用防御:
- 重入攻击:单函数内状态更新滞后于底层
call调用,通过递归回调抽干合约资金。 - 权限控制:未配置访问控制修饰器、函数修饰器执行流反转或特权密钥泄露。
- DoS 攻击:无界循环耗尽 Gas、外部转账失败阻断关键业务流转(Push 模式缺陷)。
- 整数溢出:Solidity 0.8 之前的算术回绕模型及 SafeMath 的防护边界。
- 授权竞争:ERC-20
approve接口在广播修改额度时的内存池前置抢跑利用。 - 预言机操纵与闪电贷:依赖 DEX 瞬时现货储备作为定价依据,遭闪电贷大额 Swap 破坏抵押品估值。
- 签名滥用与重放:缺少 Nonce、缺失 ChainId 隔离、椭圆曲线签名延展性(Malleability)利用。
- 可升级代理漏洞:实现合约与代理合约存储槽位直接重叠、未受保护的公开初始化函数。
更深层次的跨合约中间态暴露、EIP-1153 瞬态存储鉴权、ERC-4626 金库通胀与编译器底层缺陷,参见 进阶机制与复合风险。