
适用范围与基本原则
本文适用于第三方应用引用链外数据、通过预言机向合约提供信息的场景,也可用于梳理应用文档中的数据出处。核验应区分三个问题:资料由谁发布,经过哪些处理,应用实际使用了哪一份。某个环节可验证,不代表整条信息链已经可信。
两个参考框架分别解决什么
Ethereum.org 的预言机文档说明,智能合约默认不能直接访问链外信息,预言机承担获取、核验和传递外部数据的作用。其重要检查维度包括来源真实性、传输完整性、可用性,以及提供者能否被识别和追责。
W3C 的 PROV 概览将溯源理解为有关数据产生所涉及对象、活动和责任主体的信息,提供描述、交换这些信息的模型。它有助于组织来源证据,但溯源描述符合模型,不等于描述的现实事实已被证实。
先建立可追查的来源链
实际核验时,可为关键数据建立记录:原始发布者及入口、资料版本、采集时间、处理过程、负责主体,以及对应的链上记录。重点不是收集更多链接,而是让每一次转引和加工都有明确的前后关系。
例如,应用展示经过汇总的数据时,应追查输入来自哪些渠道、如何提取字段、怎样处理冲突,以及最终结果如何传给合约。只找到应用自己的说明,仍不足以确认原始资料与应用结果一致。
分别检查来源、处理与更新
来源检查关注发布主体是否明确,多个渠道是否真正独立。多个节点读取同一个接口,并不等于多个独立来源相互印证。处理检查关注原始值与最终值之间的转换,避免把单位、统计口径或版本差异误认为资料造假。
更新检查需要区分原始数据产生时间、采集时间和上链时间。最近上链的数据仍可能引用较早的记录。还应查看资料是否说明更新条件、异常处理和中断时的行为;无法确认的部分,应保留为核验缺口。
常见问题与结论表达
已经上链是否就是真实?不是。链上记录可以帮助检查提交内容和执行过程,但不能仅凭记录存在,证明外部事件确实发生。
两个来源是否足够?数量不是充分条件。Ethereum.org 与 W3C 的文档分别支撑预言机和溯源的一般原理,并不能共同证明某个第三方应用可靠。具体应用仍需自身的来源记录和处理证据。
核验结论应写清证据边界,例如“已找到原始出处,但尚不能确认应用使用的版本”,而不是笼统标为可信。参考文档入口为 https://ethereum.org/developers/docs/oracles/ 和 https://www.w3.org/TR/prov-overview/ 。