
先明确审计的适用范围
“区块链币的审计”可能指不同类型的审查。本文讨论以太坊等智能合约环境中的代币合约安全审计,重点是代码逻辑和访问权限,不涉及财务报表或储备资产审计。单凭合约安全报告,无法判断审计范围以外的事项。
误区一:经过审计就不会出现漏洞
以太坊开发者安全文档将审计视为独立复核,明确指出它无法发现所有缺陷。因此,“经过审计”只能说明实施过相应检查,不能解释为永久安全保证。

阅读报告时,应先看检查了哪些代码、采用什么假设、有哪些范围限制。一个结论只有放在这些条件下才有意义,不能直接扩展到整个项目。

误区二:测试通过等于安全得到证明
正常输入下功能运行成功,并不能回答异常输入或特殊调用顺序是否安全。测试之外,还可结合静态分析、模糊测试等方法寻找遗漏。形式化验证的结论也受所定义的性质、模型和假设约束,不能理解为对一切风险的证明。
误区三:只检查漏洞,不检查合法权限
OpenZeppelin访问控制文档说明,权限可决定谁能增发代币、冻结转账,以及谁能授予或撤销角色。因此,安全审查既要考虑未经授权的调用,也要理解被授权账户实际能做什么。
例如,增发功能可能严格限制了调用者,但这仍意味着某个账户拥有增发能力。判断权限边界时,需要同时看功能权限和管理这些权限的上层角色。
误区四:多角色或放弃所有权就消除了控制权
角色名称不同,不代表由不同主体控制;同一账户可以兼任多个角色。多签能增加执行敏感操作所需的签名条件,但实际效果仍取决于权限配置及签名方的控制关系。
放弃所有权通常会使仅限所有者调用的功能无法继续使用,却不能据此断言所有管理能力都已消失。若还存在独立角色或其他控制路径,需要分别核实;必要的维护功能也可能因此失效。
常见问题:旧报告和已确认问题如何理解
代码修改后,旧报告是否仍适用?需要核对修改是否影响原先审查的逻辑和范围,不能直接沿用全部结论。报告列出的问题是否已经解决?应区分发现问题、项目方确认问题、完成修复和修复经过复核。
比起只看“通过审计”的标识,更有解释力的是受审版本、覆盖范围、问题状态以及部署配置是否一致。这些信息共同决定报告能够支持怎样的判断。