
先区分存证与程序执行
讨论区块链电子合约的应用边界是什么,首先要区分两种用途:一种是记录合约相关数据,供后续核验;另一种是通过智能合约检查条件并执行操作。保存了记录,不等于业务已经履行;程序执行成功,也不等于现实中的争议已经解决。本文讨论的是这两类用途的技术边界。
记录边界:可核验不等于内容真实
Bitcoin开发者指南说明,比特币通过区块之间的哈希关联和工作量证明,提高改写历史交易的成本;节点按共识规则验证区块,链末端也可能出现分叉。这支持对记录完整性的理解,但不能直接推广为所有区块链具有同等保障。

对于电子合约,核验某份文件与已记录的数据一致,和确认文件中的承诺属实,是不同的问题。例如,交付声明被记录下来,并不能仅凭该记录判断实际交付质量。链上记录能辅助核对信息,不能替代对链外事实的确认。

权限边界:自动执行仍可能依赖管理员
OpenZeppelin访问控制文档区分了单一所有者管理与基于角色的管理,并强调最小权限原则。角色管理员能够授予或撤销相应权限,因此,业务操作权限与分配权限的权力需要分别理解。
合约判断某个账户有权提交确认,只说明调用符合授权规则,不说明确认内容必然真实。如果同一管理主体可以重新分配关键角色,表面的岗位分离也未必形成独立制约。应用边界因此不仅取决于代码写了什么,还取决于谁能改变授权关系。
哪些条件下更适用
当业务规则明确、输入能够可靠核验、参与者权限清晰时,智能合约适合承担标准化的条件检查与状态更新。涉及质量评价、责任认定或其他需要判断的事项时,更合理的边界是由链外流程形成结论,再由程序检查提交者权限及输入是否符合约定。
异常处理同样需要事先明确:哪些错误可以纠正,谁有权处理,处理过程如何留痕。自动化不会消除这些治理问题,只会使预设规则的影响更加直接。
常见问题
上链是否意味着绝对不可更改?不能这样概括。记录的稳定性依赖具体网络的共识与安全条件,不能把提高篡改成本理解为无条件保证。
限制调用者是否足够?不够。权限检查解决谁可以操作的问题,还需要关注被授权者能做什么、管理员如何变更授权,以及外部输入是否可靠。
是否应把全部履约环节交给程序?判断标准是条件能否被明确表达和可靠验证,而不是是否使用区块链。难以客观编码的事项仍需要相应的业务处理与争议解决机制。