
先明确“区块链加审计”的范围
这一说法容易混淆两类用途:利用区块链记录支持核查,以及对智能合约进行安全审计。前者关注记录如何保存和核对,后者关注程序逻辑与权限是否存在缺陷。两者结合,仍需分别判断证据质量和代码安全。
误区一:上链就能证明内容真实
NIST《区块链技术概述》将区块链描述为具有篡改可察觉性和抗篡改能力的分布式账本,并将已发布交易不被更改的描述限定在网络正常运行条件下。

因此,上链主要帮助核查记录是否发生变化。若最初录入的内容错误,保存下来仍是错误内容。判断业务事实,还需要核对记录来源及其与实际事件的对应关系,不能仅凭上链状态下结论。

误区二:经过审计就没有漏洞
以太坊开发者安全文档强调,独立审计能补充开发和测试阶段的检查,但无法发现所有漏洞。文档还讨论了访问控制、多签及多种测试方法,体现出安全需要多个环节共同支撑。
理解审计结论时,应关注检查对象、代码版本、覆盖范围和问题修复情况。某一版本接受过审查,并不能自然推导出后续修改或整个应用都具有同样的安全保障。
误区三:去中心化意味着没有管理风险
账本分布式运行,并不意味着合约的敏感操作也分散管理。若升级、暂停或其他关键权限由单个账户控制,该账户的密钥安全仍会影响系统。
多签可以提高敏感操作的授权门槛,但其效果取决于签名门槛、参与者和权限安排。审查时需要确认谁能执行哪些操作,以及这些权限是否符合设计目标。
误区四:测试通过或形式化验证就能覆盖一切
测试结果受输入、场景和检查条件限制,正常流程通过不代表异常路径也安全。形式化验证的证明同样依赖所定义的性质、模型和假设;遗漏的业务要求不会自动被证明正确。
常见问题:两者结合适用于什么条件
需要多方核对共同记录时,区块链的账本特性可支持追溯;业务规则由智能合约执行时,代码审计可帮助识别实现和设计缺陷。
已有链上记录,仍需核对原始信息;已有审计报告,仍需确认实际部署与被审查版本的对应关系。发生代码、权限或外部依赖变化时,也应重新判断原有结论是否适用。