安全
最后更新:2025 年 1 月
简介:200 亿美元的问题
自 DeFi 诞生之初以来,已有数十亿美元因漏洞而损失。审计已成为基线,但仍然是更大的安全生命周期的一部分,其中包括错误赏金、正式验证和主动监控。
什么是智能合约审计?
审计是一种深度安全审查,结合了手动代码审查、自动分析,有时还包括形式验证和经济建模。输出是一份优先级报告,其中包含补救步骤和更安全部署的建议。
- 手动代码审查
- 自动扫描
- 形式验证(可选)
- 经济与博弈论分析
- 最终报告和补救措施
审核流程:步骤和内容时间线
审计前准备
开发人员应在交给审核员之前冻结代码、记录架构、提供测试并定义明确的范围。
自动分析
Slither、Mythril、Echidna 和 Manticore 等工具会自动生成结果。这些很有价值,但可能包含误报,应辅以人工审核。
手动审查和形式验证
经验丰富的审计员进行逐行审查,并在需要时使用正式方法以高成本为关键任务系统提供数学保证。
报告和补救措施
报告按严重程度对发现结果进行分类并提供可行的修复措施;补救和重新审核是标准的最后步骤。
常见智能合约漏洞
了解典型的漏洞利用类别有助于团队确定防御的优先级:重入、访问控制错误、整数错误、预言机操作、业务逻辑错误和 MEV/抢先交易都是最重要的。
可重入
当外部调用启用操纵合约状态的回调时,就会发生重入——检查-效果-交互模式和 ReentrancyGuard 是主要防御措施。
函数提款(uint256 amount) public {
需要(余额[msg.sender]>=金额);
余额[msg.sender] -= 金额; // 首先更新状态
(bool success, ) = msg.sender.call{值: 金额}("");
要求(成功);
访问控制失败
缺少角色检查或管理密钥暴露不当是导致灾难性问题的常见原因 — 多重签名、时间锁和最低权限执行可降低这种风险。
Oracle 操作
协议应依赖 TWAP、去中心化信息源和健全性检查来限制通常通过闪电贷策划的价格操纵攻击。
业务逻辑和MEV
博弈论错误和抢先交易 (MEV) 需要仔细的经济分析、模拟和内存池感知缓解策略。
领先的审计公司和选择审核员
顶级公司(Trail of Bits、OpenZeppelin、ConsenSys Diligence、Certora)提供深入的技术和形式验证服务。较小的公司可以为较低的预算提供出色的覆盖范围——合适的审计师取决于项目风险状况和时间表。
位尾迹
专注于深度技术分析和形式化工具——最适合高 TVL、任务关键型系统。
OpenZeppelin
值得信赖的 Solidity 专家,拥有广泛的生态系统工具和防御者服务。
超越审计:赏金、监控和推出
审计需要辅之以错误赏金(Immunefi、HackerOne)、需要时的正式验证、仔细的推出实践以及使用 Forta、Tenderly 和 Defender 等工具的持续监控。
- 错误赏金激励持续发现
- 形式验证为关键系统提供数学保证
- 逐步推出限制爆炸半径
- 实时监控可实现快速事件响应
对于投资者:如何阅读审计报告
寻找多个信誉良好的审计、已解决的关键发现、公共赏金计划、最近的报告以及主动监控和限时升级的证据。危险信号包括没有审计、隐藏报告或未解决的关键问题。
结论:安全是过程,而不是产品
审计是必要的,但还不够。安全性是持续的——结合审计、错误赏金、监控、逐步发布和高价值系统的正式方法,以确保协议在对抗环境中安全。