什么是 Audit?
Audit 是对加密项目的独立审查,用于在问题影响用户之前发现代码、设计和运营方面的弱点。可以把它看作代码的健康检查,专业人员会反复测试并尝试触发故障。就像比赛前的维修组,只不过针对的是智能合约。
“Audit 能保证安全。”并非如此。它能降低风险并发现许多问题,但没有任何审查能保证万无一失。把它当作严格的尽职调查,而不是万能的防护罩。
Audit 如何运作
下面是典型智能合约安全审查的简要流程,从启动到公开报告。
- 范围:团队与审计方就将检查的代码、配置和假设达成一致。
- 审查:工具扫描仓库,然后人工逐行检查以寻找如 重入漏洞 和逻辑错误。
- 测试:审计人员编写测试、运行模糊测试并模拟真实流程以触发边缘情况。
- 报告:发现按严重程度排序,提供清晰的修复建议和示例。团队进行修补并反复迭代。
- 验证:审计方会重新核查修复并发布一份可读的报告。
没错,做得好时流程既简单又彻底。
为什么 Audit 很重要
你关心是因为资金随代码运行而流动。一份严谨的 Audit 可能决定是顺利上线还是出现严重问题。
- 好处:更少漏洞、更少意外,为用户和合作伙伴带来更多信任。
- 视角:攻击可能从细微的逻辑陷阱扩展到 拒绝服务(DoS),因此让第二方审查是明智的。
- 适用场景:在代币发行、DeFi 发布、跨链桥、NFT 铸造和 DAO 升级等场合,你会看到 Audit 报告。
阅读 Audit 报告时,可先查看“未解决”清单。如果仍有严重项,询问原因和计划修复时间。
Audit 的关键特征
优秀 Audit 的特点包括:
- 独立:审查者与团队分开,并以报告质量承担声誉责任。
- 透明:发现会以严重程度、概念验证和解决方案记录。
- 时点性:代码在发布后可能发生变更,但许多合约是 不可变的,因此发布前的审查更为重要。
- 可重复:良好的流程意味着类似项目会得到一致的检查和相似的测试深度。
不同类型
Audit 有几种类型。根据你的技术栈和风险状况选择合适的一种。
- 代码:侧重智能合约和链上逻辑。
- 安全:更广泛地审查密钥、基础设施、部署和威胁模型。
- 经济:评估代币激励、预言机假设和博弈论要点。
- 持续:持续检查并配有告警与定期的小规模复审。
- 内部:在引入外部审计前由团队主导的审查。
Audit 只是某一时点的快照。新的提交可能会重新引入诸如 整数溢出 之类的旧问题,因此在变更后再次审查是明智的。
示例
例如:某借贷协议在 Audit 指出有风险的清算路径后暂停新功能,团队修补后审计方在上线前核实修复。
趣闻
audit 一词来自拉丁语 audire,意为“听”,这是因为早期检查常以朗读方式向官员汇报。今天我们依然“听”,但更多是查看测试日志和 Gas 报告,而不是听演讲。
总结
快速结论:Audit 是对涉及资金流动的代码进行的预检。把它作为必需的步骤,然后放心发布。
