
区块链首先解决共同记账问题
理解区块链的应用边界,可以从一个问题开始:参与方需要共同确认什么?NIST《Blockchain Technology Overview》将区块链概括为分布式实现、能够显现篡改且具有抗篡改能力的数字账本。在网络正常运行的条件下,已发布的交易记录受到机制保护,难以被改写。
这项能力的重点是让参与者围绕同一套记录进行核验。评估应用时,应先说明哪些主体需要共享记录、哪些操作需要共同确认,以及记录发生分歧时依照什么规则处理。

边界一:记录可靠不等于事实真实
假设一条记录写着“货物已经送达”,区块链可以保存这项声明及其后续流转,但仅凭该记录,无法判断货物是否真的交到收件人手中。现实事件与数字记录之间,仍然需要人员、设备或其他信息来源建立联系。

因此,追溯类应用需要分别回答两个问题:记录提交后是否受到保护,提交前的信息又如何核验。错误信息即使被稳定保存,也仍然是错误信息。
边界二:智能合约需要链外信息入口
以太坊开发者文档介绍,智能合约默认不能直接访问链外信息,预言机负责将外部数据提供给合约。这样,各节点可以依据同一份已提交的数据执行规则;外部数据的准确性、可用性和更新情况,则仍需另行保障。
例如,按天气条件触发的程序,需要明确天气数据来自哪里、对应哪个地点和时段,以及数据缺失时如何处理。程序能够执行条件判断,不代表它能够自行确认现实天气。
哪些条件下更适合考虑区块链
当多个参与方需要维护共同记录、核验记录历史,并且能够约定写入权限与确认规则时,区块链才有明确的讨论对象。若业务主要依赖外部事实,还需要把数据采集、核验和责任安排纳入设计。
如果需求只是保存单一主体内部的信息,可以先比较普通数据库是否足以完成任务。是否采用区块链,应取决于共同记账和核验的实际需要,而不是是否能够把数据写上链。
常见问题:上链后是否就不需要信任
区块链并未消除所有信任需求。应用仍可能依赖数据提供者、合约规则及相关运行机制。引入预言机后,还需要判断外部信息是否来自正确来源、传输中是否被改动,以及能否及时提供。
“不可篡改”也应结合运行条件理解,不宜解释为无条件的绝对保证。识别应用边界的关键,是区分账本能够核验的记录、外部系统提供的事实,以及仍需参与方协商处理的问题。