区块链 · 数字资产知识 · 行业资讯
文章库关于本站

数字资产知识

区块链审查指南需要注意哪些问题:技术边界与安全验证

摘要

区块链审查需要明确网络与合约的适用范围,区分账本抗篡改能力和应用安全,重点核查敏感权限、异常处理、测试证据及独立审查的边界。审查结论应对应具体版本和假设,不能把通过审计理解为不存在漏洞。

SGT区块链发行总量的科技主题配图

明确审查对象与适用范围

区块链审查指南需要注意哪些问题,首先取决于审查对象。网络层的账本机制、应用层的智能合约和管理权限涉及不同问题。本文讨论技术与安全审查,不涉及特定项目认定或法律合规结论;以太坊合约的具体检查方法也不能直接套用于所有区块链。

NIST《区块链技术概述》将区块链描述为分布式、具有篡改可察觉性和抗篡改能力的数字账本,并将已发布交易不被改变的描述限定在网络正常运行条件下。这意味着审查时必须写清运行条件,不能仅凭“不可篡改”判断整个系统安全。

区分账本记录与业务正确性

记录难以修改,无法单独证明写入内容真实、操作获得合法授权或业务规则正确。审查应分别回答:系统怎样保存记录,哪些主体能够发起操作,以及程序是否正确执行预期规则。把这些问题混在一起,容易遗漏应用层缺陷。

核查敏感操作与权限分配

以太坊智能合约安全文档强调访问控制、异常检查、多种测试方法和独立代码审查,也提醒审计不能发现所有漏洞。对于采用类似权限机制的合约,可据此检查谁能执行升级、暂停或其他敏感操作。

权限审查需要查看实际限制,不能只看函数名称或说明。角色分工有助于限制单个账户的职责,多签则要求多个签名共同批准操作;两者作用不同。即使设置多个管理账户,也需要检查权限是否重叠,以及某个账户是否仍可独自改变关键规则。

让测试覆盖异常路径

验证正常输入能够成功执行,只能说明部分功能符合预期。审查还应覆盖未授权调用、输入边界、状态不满足条件和重复操作,并明确哪些状态关系必须始终成立。

单元测试、静态分析、动态测试和形式化验证提供不同类型的证据。形式化验证的结论受所选性质、模型和假设约束,不能扩大为整个系统绝对安全;测试数量本身也不能替代对检查范围的说明。

常见问题与结论边界

通过审计是否意味着可以忽略后续检查?审计提供额外审查机会,仍可能遗漏问题。报告应注明检查的代码版本、覆盖范围、发现的问题和修复复核情况,后续代码或权限变化也应纳入判断。

已部署合约是否总能直接修复?通常不能像普通服务一样直接修改已部署代码。对于采用升级机制的系统,还需要审查升级授权与规则变化。有效的审查结论应说明证据支持了什么,以及哪些条件和问题仍未得到验证。

← 返回全部文章

延伸阅读 · 相关栏目

区块链基础技术原理数字资产知识资料与核验