
误区一:数据上链就代表事实真实
NIST《区块链技术概述》将区块链描述为分布式实现、具有篡改可察觉性和抗篡改能力的数字账本。这些特性主要说明记录如何保存,并不直接证明录入内容符合现实。
例如,记录某件货物已经验收,与货物确实达到验收标准,是两个需要分别验证的问题。应用涉及现实事件时,仍须明确谁采集信息、采用什么核验方法,以及错误由谁负责。
误区二:不可篡改意味着任何情况下都不会改变
NIST对已发布交易不能被更改的描述,带有网络正常运行这一条件。将其理解为脱离网络条件和规则的绝对保证,会夸大技术能力。
应用设计需要区分保留历史与纠正业务错误。错误记录被保留,不代表业务必须接受错误结果;可以通过后续记录表达更正,并明确新旧记录之间的关系。
误区三:智能合约可以直接知道链外发生了什么
以太坊预言机文档说明,智能合约默认无法访问链外信息,需要预言机传入外部数据。因此,依据天气、物流状态等条件运行的应用,还依赖链外信息服务。
自动执行的适用条件,是相关事件能被转化为明确、可核验的输入。若事件定义含糊,或不同来源相互矛盾,仅把规则写成代码并不能解决争议。
误区四:接入预言机就消除了信任问题
预言机文档同时讨论了数据正确性、可用性和提供者责任等问题。数据进入区块链后可以供合约共同使用,但来源错误、更新中断等问题仍可能影响执行。
多来源也不天然等于可靠。如果多个报告者使用同一个原始接口,表面上的数量增加未必带来独立验证。需要考察来源之间的关系,以及意见不一致或数据过期时如何处理。
适用条件与常见问题
哪些需求更贴近区块链的能力?多个参与方需要共同维护交易记录,并关注历史记录的可核验性和抗篡改性时,共享账本具有讨论价值。若主要困难是原始信息失真,应先解决采集和验证环节。
采用区块链后是否还需要管理?仍然需要。参与权限、数据来源、异常处理和责任归属都要明确。判断一个应用是否成立,应同时检查账本记录是否可靠、链外输入是否可信,以及执行规则是否覆盖实际业务中的例外。