用途:面向 Solidity 智能合约开发的安全参考,集中整理会直接造成资金损失的代码模式,而非泛泛提示。
主要能力:覆盖漏洞与防御写法,包括:代币小数位不一致(如 USDC 为 6 位,需用 decimals() 获取并归一化);Solidity 无浮点、除法截断,应使用基点并在除法前先乘;重入攻击与 Checks-Effects-Interactions 模式配合 ReentrancyGuard;SafeERC20 处理 USDT 等非标准代币,以及费-on-transfer、rebase、可暂停、黑名单等代币特性;禁止用 DEX 现货价作预言机,改用 Chainlink 并做陈旧性与有效性检查,或用 30 分钟以上 TWAP;ERC-4626 金库通胀攻击与虚拟偏移缓解;避免无限授权;状态变更函数需显式访问控制;输入校验(零地址、零金额、数组长度与重复项、边界)。另含 MEV 与三明治攻击防护(设置 amountOutMinimum、Flashbots Protect RPC、MEV 感知聚合器),代理与可升级模式(UUPS 优于 Transparent、初始化器、存储布局只能追加、禁用实现合约初始化、升级权交多签),EIP-712 签名与 delegatecall 风险。
使用方式:作为编码检查清单;部署前建议运行静态与模糊测试:slither .、mythril analyze Contract.sol、forge test --fuzz-runs 10000,另可用 forge test --gas-report。文中给出 OpenZeppelin 相关导入路径与示例。
适用场景:DeFi 协议、代币、金库与可升级合约的开发与审计准备。
限制:资料未提供收费、价格、平台或具体使用步骤;某些外部地址与清单内容在原文中以链接或截断方式呈现,此处不补全。