
先区分:交易有效不等于外部事实真实
“区块链无法验证交易”并不准确。比特币开发者指南的交易章节说明,普通交易通过输入引用此前的输出,节点检查相应花费条件与签名等规则。这类验证回答的是交易是否得到授权、是否符合协议,而不是某份链外资料是否真实。
例如,付款记录与商品是否实际交付是不同问题。核验时应先明确待证实的对象:是链上交易本身,还是交易背后的现实事件。两者需要不同证据,不能用一个交易标识代替完整的事实核查。

预言机连接链外信息,但不消除信任问题
以太坊预言机文档说明,智能合约默认不能直接访问链外信息,预言机负责获取并向链上提供外部数据。其核心挑战包括来源是否正确、数据是否被改动,以及能否持续提供更新。

因此,记录已经上链,只能作为检查提交内容的依据,不能单独证明内容准确。适用范围也应明确:涉及天气、交付状态等外部事实时,需要额外核验数据提供与处理环节;仅检查链上授权规则时,问题则不同。
资料来源应沿数据路径逐层核验
首先定位原始出处。核验对象应包括实际发布者、原始记录或接口,而不只是转述页面。需要区分谁产生数据、谁转发数据、谁将数据提交上链,避免把提交者误认为事实的直接见证者。
其次核对处理过程。检查取用了哪些字段、对应哪个时间点、使用什么单位,以及是否经过筛选或汇总。来源相同但口径不同,也可能形成看似矛盾的结果;只有比较对象一致,交叉核对才有意义。
最后检查分歧与失效处理。多个报告不一致时如何形成最终值,数据停止更新后是否仍被采用,都应有明确说明。多个节点若共同依赖同一个原始接口,也不能据此认定获得了多份独立证据。
常见问题:签名、共识能证明多少
签名有效能证明资料属实吗?不能直接这样推断。签名用于检查相应密钥对所签内容的授权;它不自动证明签名者提供的现实描述正确,也不自动确认其现实身份。
节点对数据达成一致,是否就无需核验来源?不是。一致使用某个输入与该输入真实,是两个层面的问题。完整核验应分别说明协议验证结果、原始来源证据和仍需信任的环节;来源缺失或更新状态不明时,应保留不确定性,而非宣称已经证实。