0213 分钟
SOURCE · EVIDENCE · REPORT

一条 API 结果为什么不够?

切换可靠、冲突和模糊来源,理解数据质量、报告者和现实证据不是同一个角色。

本章目标学完后,你应该能:
  • 区分数据源状态与报告者主张
  • 解释多源一致、冲突和延迟各自的风险
  • 判断协议为什么不能把 API 返回值直接当成事实
章节位置第 2 / 4 章
  1. 上一章链上合约怎样得到现实结果?
  2. 本章一条 API 结果为什么不够?

    切换可靠、冲突和模糊来源,理解数据质量、报告者和现实证据不是同一个角色。

  3. 下一章为什么要给错误报告一个反驳窗口?
阅读前

先想一想这几个问题

展开答案前,可以先在心里做个判断。与预期不同的内容可以加入复习列表。

Q01接入十个 API,为什么不一定比一个更去中心化?
简要回答

十个 API 可能都转售同一个上游数据,故障和偏差仍然高度相关。真正的来源多样性要看数据从哪里产生,而不是只数接口数量。

和原先判断相比:

预言机的第一道边界不是智能合约,而是“现实证据到底有多可靠”。一条 API 返回值、一个报告者的签名和最终写入链上的结果,分别处在不同的信任层。

数据源不是最终事实

实验室提供三种来源:多个官方记录一致、未经核验的来源冲突、以及带延迟的模糊来源。先切换它们,再揭开教学用的现实记录。来源状态会改变风险,但不会自动替协议做出报告。

ORACLE SIMULATION虚拟担保 · 非投资建议
ORACLE 001 · REPORT / CHALLENGE / FINALIZE

现实结果如何进入链上?

2028 年前,人类会再次踏上月球吗?

数据源状态来源冲突未经核验的社交媒体账户
数据源
02初始报告
03挑战窗口
04最终结果
当前阶段等待报告状态机
初始报告未报告尚未比较
最终结果未报告发送给市场结算
担保风险0积分锁定中
结算交接未交接等待最终化
FOCUS EXPERIMENT · SOURCES数据源质量

同一个报告流程,换一个数据源就会改变风险。先比较来源状态,再决定报告者是否应该立即相信它。

现实证据与参与者实验真相可展开
揭开数据源记录(教学用真相)
YES

初报与官方记录相反,必须依靠挑战期纠错。

报告者Primary Reporter
可用积分
1,000
锁定担保
0
正确 / 错误
0 / 0
挑战者Challenger
可用积分
1,000
锁定担保
0
正确 / 错误
0 / 0

数据源是现实世界的输入;担保金是让参与者在错误报告时付出代价的激励。两者都不能被价格本身替代。

观察提示

预言机不是把 API 结果复制上链,而是把一组带激励、担保和争议流程的事实输入接入结算。

预言机事件2 EVENTS
  1. 02

    数据源为「未经核验的社交媒体账户」,状态 CONFLICTING。

  2. 01

    等待报告:2028 年前,人类会再次踏上月球吗?

操作记录实验时间轴
1 个状态快照

拖动滑块可以回到此前的步骤。从那里继续操作时,后续记录会替换为新的操作序列。

初始状态
查看实验记录 →

报告者把证据变成可验证主张

报告者不是现实世界本身,而是一个愿意锁定担保、对某个结果负责的参与者。报告会被其他人看到、挑战和最终化;因此系统要把“来源”“报告”“最终结果”拆成不同的状态。

展开:这一步如何实现
source = collect_external_evidence()
report = reporter.sign(outcome, bond)
require report != source  // 不是直接复制
open_challenge_window(report)

教学模拟把复杂的数据聚合压缩成三个可切换来源,但保留了工程核心:证据质量、报告责任和结算权限不能混成一个 API 调用。

理解检查

为什么不能把单个 API 的返回值直接当成最终结果?

本章小结完成练习和理解检查后,可以保存本章