
先明确标准的性质和适用范围
讨论区块链服务安全标准,需要先区分技术介绍、开发指南和正式规范。NIST《Blockchain Technology Overview》提供区块链技术概述;以太坊智能合约安全文档侧重开发安全实践。两者可以帮助理解风险,但不能仅凭这些内容认定服务符合某项安全标准。
评估时应明确对象是底层网络、智能合约,还是包含管理系统的完整服务。涉及特定规范时,还需要核对其适用对象、版本和验收要求,避免用局部检查代替整体评估。
抗篡改能力有哪些条件
NIST的概述将区块链描述为具有篡改可察觉性和抗篡改能力的分布式账本,并将已发布交易不可更改的描述置于网络正常运行的条件下。这说明安全判断需要考虑网络的运行假设。
记录难以修改,并不能证明输入内容真实或业务逻辑正确。例如,一项记录即使完整保留,也仍需判断提交者是否有权提交、内容是否经过必要验证。账本完整性与业务正确性需要分别检查。
敏感操作是否有明确权限
以太坊安全文档强调访问控制,介绍了所有者管理、角色分工和多重签名等方式。对于提供管理功能的合约,安全要求应明确谁能执行敏感操作,以及授权需要满足什么条件。
角色分工适合区分不同管理职责,多重签名适合需要多人共同批准的操作。不过,配置多个账户并不自动意味着权力独立;评估时仍需确认权限是否过度集中,以及账户失陷会影响哪些功能。
测试和审计能够证明什么
以太坊安全文档建议结合测试、代码分析及独立审查,并提醒审计无法发现所有漏洞。因此,验收不能只看是否存在审计报告,还应核对审查覆盖的代码版本、问题修复情况及后续变更。
测试应覆盖正常输入之外的边界条件与异常状态。形式化验证的结论也受所定义的属性、模型和假设限制,不能扩大解释为整个服务不存在安全问题。
常见问题:能否直接套用检查清单
不同服务的风险范围并不相同。包含智能合约的服务需要关注调用权限和代码行为;未使用智能合约的场景,不能机械照搬合约检查项。较清楚的安全要求应同时写明检查对象、适用条件、验证方法和证据范围,使“安全”成为可以核查的具体要求。