
适用条件:是否需要共同维护记录
区块链城市创新项目有哪些常见问题,首先要从业务需求判断。本文讨论城市协作场景中的通用技术问题,不代表某个项目已出现相关缺陷。
NIST《区块链技术概述》将区块链描述为分布式实现、能够显露篡改并抵抗篡改的数字账本。在网络正常运行时,已发布交易通常不能被更改。由此,适用性判断应关注:参与方是否需要共享记录、共同核验历史,以及这种安排能否解决实际协作问题。
数据问题:上链之前是否可信
账本保护的是记录历史,输入内容仍需核验。例如,若城市协作业务接收了错误的申报信息,保存这条记录并不会自动纠正错误。项目需要明确由谁提交、谁核验,以及发生争议后如何处理。
历史记录难以更改,也要求业务设计考虑纠错。可以通过新增更正记录保留变化过程,同时明确当前有效状态如何判定,避免使用者把旧记录当成现行结果。
权限问题:谁能操作关键功能
以太坊智能合约安全文档强调,敏感功能需要访问控制,单一管理账户可能构成单点风险;测试与独立审查有助于发现缺陷,但审计不能保证发现所有漏洞。
对城市协作项目而言,需要分别明确提交、管理、暂停和升级等权限。角色分工与多方签署可减少部分单一账户风险,但仍需考虑密钥保管、人员离岗后的权限撤销,以及出现异常时由谁负责处置。
合约问题:自动执行规则是否正确
采用智能合约的项目,需要把业务条件转化为可检查的规则。若资格条件、输入校验或异常分支遗漏,程序可能按错误规则持续执行。安全检查应覆盖正常流程、越权调用与边界输入。
合约部署后的修复方式取决于设计。项目需要提前确定是否支持升级、谁能批准变更,以及暂停期间如何维持业务。测试和审查应结合使用,不能把一次验收视为长期安全保证。
协作问题:技术规则与责任是否一致
共享账本并不会自动消除组织间的责任分歧。参与方仍需约定记录含义、纠错程序、管理权限和争议处理方式,否则即使记录一致,也可能对记录的业务效力产生不同理解。
判断项目方案是否完整,可以检查这些规则是否清楚、能否在异常情况下执行。对于未采用智能合约的项目,合约漏洞讨论不直接适用,但数据核验和治理责任仍需要单独说明。