
先区分账本安全与应用安全
区块链风控不是单一技术,而是围绕记录、权限和程序行为识别风险、设置约束。NIST《区块链技术概述》将区块链描述为分布式实现、能够显露篡改痕迹并抵抗篡改的数字账本;以太坊智能合约安全文档则强调权限设计、测试与独立审查。两者关注不同层面:记录能够保持一致,不代表写入记录的业务逻辑一定正确。
抗篡改与共识:记录可靠不等于内容真实
“篡改可察觉”强调修改能够留下可验证的异常;“抗篡改”强调系统通过技术机制抵抗修改。理解“不可篡改”时,应保留网络正常运行这一前提,不能将其解释为任何条件下都绝对无法改变。
“共识”关注参与节点如何对账本状态形成一致判断。它解决的是共同接受哪一份记录的问题,并不自动验证现实世界信息的真实性。因此,链上记录是否稳定与输入内容是否可信,需要分别判断。
访问控制与多签:谁能执行敏感操作
“访问控制”规定哪些账户可以执行特定操作。“角色权限”将不同职责分配给不同账户,适用于需要区分管理职能的合约。职责拆分不意味着风险消失,仍需检查每个角色实际掌握的权限。
“多签”要求达到约定数量的签名才能执行操作,适用于需要共同授权的管理行为。它与角色分工并不相同:前者强调共同批准,后者强调职责划分。若签名密钥实际由同一主体集中控制,多签所提供的独立制约就会减弱。
回滚与不变量:失败时守住程序边界
“回滚”指执行失败后撤销相应执行范围内的状态变更,不是任意删除已经确认的历史记录。“不变量”则是程序应持续满足的逻辑约束。安全检查既要确认操作是否获准,也要确认操作后是否破坏这些约束。
测试、审计与形式化验证:都需要明确范围
单元测试检查选定场景,模糊测试通过变化输入探索异常,审计通过独立审查寻找遗漏。形式化验证针对明确规格和模型证明特定性质,不能脱离假设宣称整个系统绝对安全。
常见问题是“通过审计是否就没有风险”。答案是否定的。阅读安全结论时,需要关注审查覆盖的代码版本、权限配置、验证性质及未覆盖部分。安全术语描述的是控制手段和证据范围,而不是无条件的安全承诺。