
先明确“自由合约”的含义
讨论“区块链 自由合约的应用边界是什么”,首先要区分约定自由与技术执行。这里将“自由合约”限定为按参与者约定的程序规则执行的智能合约,不将其视为某个已核实的项目或独立技术标准。规则可以由人设计,但程序只能处理被明确编码的条件,不能因此获得无限的判断能力。
账本可信不等于事实可信
NIST的区块链概述将区块链描述为分布式、具有篡改可察觉性和抗篡改能力的数字账本,并指出在网络正常运行时,已发布交易不能被随意更改。这说明区块链能够支持共享记录,却不能直接证明记录所描述的现实事实为真。
因此,应用边界首先取决于输入:链上可以记录一项声明,但声明是否真实仍需要相应证据。把错误信息写入难以修改的账本,并不会使它成为事实。
外部数据是自动执行的关键依赖
Chainlink Data Feeds的说明展示了预言机的一类用途:汇集外部数据并发布到链上,供合约读取,数据类型包括资产价格、储备和净资产值等。它说明合约可以利用链外信息,但不意味着合约能够独立观察现实世界。
如果执行条件依赖外部数据,适用性就取决于数据含义、更新情况及异常处理规则。程序读取到一个数值,与该数值足以支持当前判断,是两个不同问题。多来源汇集也不能被理解为对所有输入错误的绝对免疫。
哪些条件下适合应用
较适合的场景具有明确条件:参与者能够事先定义判断规则,所需数据可验证,执行结果能够由链上程序控制,而且异常情况有清楚的处理安排。规则越依赖主观评价,自动化覆盖的范围就越有限。
例如,判断指定链上状态是否满足条件,与判断线下服务是否令人满意,性质不同。前者可以转化为程序判断;后者通常还需要证据解释和争议处理。链上动作完成,也不能单独证明线下交付已经完成。
常见问题:是否可以完全取消信任
不能。信任需求可能从单一记账者转移到程序规则、数据提供过程及相关管理机制。判断应用边界时,应分别确认谁提供事实、谁定义规则、谁能处理异常,而不是仅看是否使用区块链。
自动执行也不等于自动解决争议。对于无法预先形式化的条件,应明确链上程序负责什么、链外机制负责什么。智能合约更适合执行可验证的明确规则,而不是替代对全部现实关系的判断。