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

风险识别

区块链系统 普通系统有哪些常见问题:权限、安全与维护差异

摘要

区块链系统与普通业务系统都会遇到权限控制、代码缺陷和异常处理问题,但在记录确认、漏洞修复与责任分配上存在差异。理解这些差异,需要区分账本共识、应用逻辑与管理权限,并结合具体业务判断适用条件。

盾牌保护透明数据核心的原创概念插画

比较前先明确系统范围

这里的普通系统指由明确运营方维护应用和数据库的业务系统;区块链部分主要讨论公共链账本及智能合约。普通系统也可以采用分布式架构,区块链应用也可能依赖集中管理的入口,两者不能简单等同于单机与多机。

比较常见问题时,可以围绕三个问题展开:谁有权修改状态,哪些规则决定操作有效,出现错误后如何恢复。不同系统对这些问题的处理方式,决定了其安全边界。

权限问题:公开调用与管理权集中

以太坊智能合约安全文档强调,敏感函数需要访问控制,并介绍了所有者、角色划分和多重签名等方式。文档也指出,测试与独立审查需要配合使用,审计不能发现所有缺陷。

对两类系统而言,能够访问功能不代表应该拥有执行敏感操作的权限。需要分别审视身份识别和操作授权;即使采用多个管理账户,也要检查单个账户是否仍能独立完成高风险操作。权限分散的效果取决于实际规则。

一致性问题:提交不等于稳定确认

比特币开发者指南说明,全节点按共识规则验证区块,账本规则限制同一输出被重复花费。网络可能短暂出现竞争分支,节点在有效链中依据累计工作量选择链,因此区块高度不能作为全局唯一标识。

这提示业务设计应区分请求提交、记录被接收和结果达到所需确认程度。普通系统与链上应用都需要明确状态转换,避免界面已经显示完成,后续流程却仍依赖尚未稳定的结果。比特币的具体机制不能直接套用于所有区块链。

代码问题:规则正确与执行一致是两回事

共识解决参与节点如何接受记录的问题,业务代码则决定操作是否符合应用要求。即使节点一致执行某段逻辑,也不能由此推断该逻辑没有权限漏洞或边界错误。

检查系统时,需要覆盖异常输入、重复操作和不满足前置条件的情况。测试通过只能说明已检查的情形符合预期;形式化验证的结论也受所定义的性质、模型和假设限制,不能扩展为整个系统绝对安全。

维护问题与适用条件

普通业务系统通常由运营方协调修复和数据更正,但仍需处理关联记录与操作审计。智能合约则需要在部署前明确可否升级、谁能升级及异常处置方式,不能默认发现缺陷后可以直接覆盖代码。

如果业务需要多个参与方依据共同规则验证记录,区块链具有可讨论的适用基础;如果需求主要是单一机构内部的数据管理,则应先明确引入共同账本要解决什么问题。无论采用哪种架构,权限边界、规则正确性和故障恢复责任都需要单独设计。

← 返回全部文章

延伸阅读 · 相关栏目

安全防护钱包与账户风险识别信息核验