Solidity 漏洞案例总览
阅读漏洞案例是合约工程师的必修课。每一笔被盗的 ETH,背后都是一个具体设计错误的复盘。把它们整理成八类,你就拥有了完整的漏洞字典。无论是评估 Binance 上挂牌的新代币,还是审查自己项目的代码,这份字典都能让你迅速锁定可疑模式。
一、重入攻击
代表事件:The DAO(2016)、Cream Finance(2021)、Curve(2023 只读重入)。攻击者利用合约在外部调用后未完成状态更新的窗口,反复触发同一函数。
防御要点:严格 Checks-Effects-Interactions 顺序,加 nonReentrant 修饰器,必要时用 transient storage 做更便宜的重入锁。还应检查跨函数重入与只读重入。0.8.24 新引入的 tstore/tload 让重入保护几乎零成本。
二、整数溢出与下溢
代表事件:BeautyChain(2018)。攻击者构造让 uint256 加法回绕的输入,凭空创造代币。