VIEW THIS AS

Auto mode follows the Route Engine until you choose a viewpoint.

YOU ARE HERE

ROUTE CHECK

CONNECTED TO

WHAT NEXT

Use the canonical route for this room, or HELP if you are unsure.

区块链预言机:相信外部事实之前,先检查报告

Three students in school uniforms work through open books at a classroom table, with textbooks and stationery nearby and study notes on the whiteboard behind them.

English version · 区块链学习导航 · 上一篇

区块链学习 · 文章 BC040

三名学生在教室桌旁一起阅读书本,身边放有课本和文具。
学习场景配图;不代表照片中的学生正在学习区块链。

预言机把区块链外的信息转换为链上代码能够使用的形式。区块链可以检查程序规定的报告接纳条件,并一致处理报告,但不会自动证明底层测量或事件真实。

本篇跟踪一份虚构柜体温度报告,从观察到合约检查标志。计算中位数之前,需要核对身份、单位、时效、序号和读数分歧。例子不涉及金融,阈值只是课堂设定,不是真实储存、文物保管或安全要求。

选择适合你的阅读路线

本篇目录

先看数据路径,区分已签名声明与准确观察,再完成三报告接纳测试。过期数据和相关来源案例说明,正确签名与看似合理的中位数,都只是证据的一部分。

全程不配置真实传感器、密钥、数据源或交易。下面的报告格式和策略为教学虚构,不代表任何具名预言机服务的实际实现。

返回目录 · 下一节

1. 预言机连接两个证据领域

合约可以评估执行上下文中的输入,却不能仅因代码有一个名叫 temperature 的变量,就独立检查物理柜体。

以太坊预言机概述解释链外组件如何为链上使用提供信息。不同设计的数据来源、运营者和交付方法各异,但共同问题是:外部观察怎样变成一个具体、被接受的声明?

可以把路径理解为物理条件、测量来源、准备报告、认证、交付、链上接纳和应用使用。每一步都有自己的假设。最后一步处理正确,不会消除最初一步引入的不确定性。

例如,传感器可能校准错误,报告者可能用错单位,交付可能延迟,消费者可能读错数据源。这些失败原因不同,所需检查也不同。把整条路径都称为“已由区块链验证”,是在隐藏问题,而不是解决问题。

返回目录 · 下一节

2. 签名识别授权声明,不证明温度计准确

假设报告者 A 签名声明:某柜体在给定时刻测得 7 摄氏度。有效签名可以支持这样的结论:相应签名权限按适用方案授权了这些字节。

它不能证明传感器位于正确柜体、校准正确,或读数在签名前没有被上游错误复制。受到控制或犯错的获授权报告者,也可以生成来源真实、内容却错误的声明。

多个签名也不自动等于多次独立测量。报告者可能都读取同一个上游数据库;数据库错了,报告仍可能完全一致,却共享同一个错误。

因此,预言机审查应区分签名者多样性、运营者多样性和来源多样性。只数密钥不足以理解依赖。本练习先检查不同获授权报告者,再单独说明这一检查不能证明什么。

返回目录 · 下一节

3. 精确定义报告含义

虚构应用在课堂检查练习中监测 Cabinet-7。它记录一个标志,不发出开门、放行物品或支付指令。

每份签名报告包含网络与消费者合约上下文、柜体标识、报告者标识、批次序号、观察时间、单位和整数读数。假设签名覆盖全部字段,并使用无歧义编码。

单位明确为整数摄氏度。7 表示 7 度,不是 0.7、70 或没有单位的数量。接受范围为 0 至 50,仅作为课堂合理性检查。

上下文字段让练习不能把其他柜体或其他消费者的报告直接替换进来。序号帮助拒绝已使用批次;时间戳在给定时间基准下支持年龄检查。任何单一字段都不能证明物理事实。

Chainlink Data Feeds API 参考提供真实接口层面的提醒:答案、小数缩放和更新时间戳是不同数据。其 updatedAt 描述轮次更新时间,不能自动改称物理来源的测量时间。本模型另外明确提供观察时间字段。

返回目录 · 下一节

4. 课堂消费者有完整接纳规则

消费者最后接受批次为 11,授权报告者登记表包含 A、B、C。练习要求三者各提供一份有效报告。

三份报告必须指向同一预期网络、消费者、Cabinet-7、新批次和观察时间,并使用规定单位。批次必须大于 11;重复提交 A 的签名不能代替 B 或 C。

给定评估时间为共享课堂时间尺度上的 1030 秒。每项观察不得晚于 1030,且年龄不得超过 60 秒。玩具规则有意不允许未来时间容差;真实系统必须另行规定时钟和时间戳假设。

每个读数必须是 0 至 50 的整数。通过这些检查后,最大读数减最小读数必须不超过 4。若分歧范围检查通过,消费者取三个读数的中位数。

接受报告后,若中位数不大于 8,课堂标志设为 WithinRange(范围内),否则为 Review(需复核),同时保存批次和观察时间。阈值完全是教学选择,不能用于真实柜体管理。

返回目录 · 下一节

5. 完成一个可接受批次的计算

批次 12 包含三份签名有效报告:A 为 7,B 为 8,C 为 7。它们都标明 Cabinet-7、所需上下文和单位,观察时间为 1000。

因为 12 大于存储的 11,批次是新的。报告者身份不同且均获授权。年龄为 1030−1000=30 秒,不超过 60,观察时间也不在未来。

所有读数都在给定范围内。排序后为 7、7、8,分歧范围为 8−7=1,不超过 4,中位数为 7。

报告被接受,存储批次变为 12,观察时间变为 1000。因为 7 不大于 8,标志成为 WithinRange。应用按照玩具策略,接受了一份格式正确、足够及时、内部一致的报告。

这才是证据支持的结论。“物理柜体绝对安全”则不是;无论数值阈值还是报告路径,都没有为这种现实主张进行设计与验证。

返回目录 · 下一节

6. 聚合之前,先拒绝重放、重复身份与错误上下文

批次 12 接受后,再提交相同批次,会因新序号条件失败。签名可以仍然有效,但报告已不能作为新更新接受。

如果一个包只包含三次 A 的报告,也会失败。虽然交付了三条消息,却只有一位不同的获授权报告者。直接聚合其数值会掩盖缺失的 B、C 证据。

Cabinet-8 的签名报告,不会因数值看起来合理就变成 Cabinet-7 的报告。使用其他单位或消费者上下文,也应相应失败,不能悄悄重新解释。

检查顺序很重要。先确认报告属于所需集合,再计算中位数。即使统计计算再漂亮,只要对象是错误柜体、重复来源或不兼容单位,就没有回答应用问题。

后续独立练习中,除非明确说明批次 12 已被使用,否则都把最后接受批次重置为 11,避免把重放拒绝与时效或读数测试混淆。

返回目录 · 下一节

7. 时效不仅是一道减法,还涉及时间的含义

观察时间 1000、评估时间 1100,年龄为 100 秒。即使所有签名有效、读数一致,也不符合 60 秒限制。

评估时间为 1060 时,年龄恰好 60,按包含等号的规则通过;1061 时失败。若观察时间声称为 1050,评估时间却为 1030,也失败;不能把负年龄当成新鲜证据。

算术容易,难点是时间戳代表什么、谁能影响它。已签名观察时间仍然是报告者声明。消费者评估时间也需要明确协议上下文,不能由每个验证者任意选择本地时钟。

交付时间、聚合时间和原始观察时间可能描述不同阶段。最近的链上更新仍可能包含陈旧来源信息。使用真实数据源的时间字段前,应阅读实际语义,而不假定所有叫 updated 的字段都表示刚刚测量。

返回目录 · 下一节

8. 拒绝过期更新,不会让旧存储值重新变新

假设已接受批次 12 仍被保存,观察时间 1000。到 1100,消费者读取旧 WithinRange 标志,没有新批次到达。

存储字段可能仍含这个标签,但底层观察已是 100 秒前。使用数值时也必须检查时效,不能只在最初接纳更新时检查一次。

按给定使用规则,过期数据不能为新的检查决定提供 WithinRange 结果。应用应报告数据不可用或要求复核,而不是把旧绿色标签当成永久当前状态。

这不要求存储随时间自动重写。与合约状态机课程一样,资格改变与执行状态更新不同。相关读取或动作应把当前上下文与保存的观察时间比较。

回退策略是有后果的设计选择。保留最后值、暂停动作或请求人工复核,各自以不同方式处理可用性。本练习选择保守的课堂响应,不声称一种后备办法适合所有应用。

返回目录 · 下一节

9. 若策略不检查分歧,中位数会隐藏它

另设独立批次,读数为 7、7、25,其他条件均正确且新鲜。中位数为 7,但分歧范围为 25−7=18。

本策略拒绝该批次,因为 18 大于 4。它不会先接受中位数,再忽略异常读数。明确的分歧规则让消费者要求复核,而不是展示缺少上下文的安心摘要。

这只是可能策略之一,并非通用预言机算法。其他设计可以采用不同聚合、异常值或故障假设。重点是说明什么条件支持输出,以及条件不成立时如何处理。

再看 9、10、9,分歧范围 1,中位数 9。它通过来源认证、时效和一致性检查,是可接受报告;但因中位数超过课堂阈值 8,标志为 Review。

要区分“证据不合格”与“合格证据表明超出范围”。如果把所有不合意读数都拒绝,应用就无法报告它本来要发现的状况。

返回目录 · 下一节

10. 三位一致报告者可能共享一个错误来源

假设 A、B、C 都读取同一个故障上游数据库,因此全报 7。签名、序号、单位和时间戳都满足玩具检查;分歧范围为 0,中位数为 7。

消费者可能接受批次,但真实物理条件不同。这不是算术错误,而是接纳规则保证之外的来源依赖问题。

Chainlink 数据源选择指南强调评估准确性、可用性和风险,包括依赖单一提供方。本文借用来源层面的提醒,不表示柜体模型就是 Chainlink 实现,也不暗示某提供方能消除所有风险。

有意义的审查应询问观察源自何处、看似分离的报告者是否共享基础设施、测量如何校准,以及谁能改变依赖。“三个签名”与“三个独立可靠观察”回答不同问题。

返回目录 · 下一节

11. 可用性与权限需要单独提问

数据来源、报告者、网络路径或更新机制不可用,都可能让预言机停止交付。合约继续运行旧代码,也无法凭空产生新的可靠观察。

三人全员报告规则有意便于核查,却有可用性代价:任一必需报告者缺席,就无法接受新批次。改变门槛会改变信任和故障假设,不是表面配置调整。

报告者登记表也是权限来源。谁能新增报告者、更换失陷密钥,或修改允许柜体上下文?模型固定登记表;真实应用必须识别这些控制路径及保障措施。

Chainlink Data Feeds 概述描述数据源组件与消费方式。真实系统有具体架构和运营要求。图上画一个“预言机”方框,不应隐藏里面的运营者与依赖。

返回目录 · 下一节

12. 区分区块链决定与物理动作

接受的标志只是应用记录,不会实际检查柜体或控制锁。如果后续系统用它触发外部动作,就新增了交付和控制边界。

外部系统必须识别信任哪个状态、报告是否仍及时、所在历史是否达到用途要求的确定程度,以及物理动作是否真正完成。

链上更新成功与物理动作成功是不同事件。执行设备可能故障,人可能误解指令,外部服务可能重复处理。这些可能性需要各自证据与运营规则。

重点不是说自动化不可能,而是完整解释必须沿整条路径展开,不能停在第一个有效签名或已接受交易。记录完整性、外部真实性和现实完成情况仍是不同主张。

返回目录 · 下一节

13. 练习:分类报告并指出边界

除非另有说明,初始最后接受批次为 11,评估时间为 1030,采用给定三报告者策略。未特别说明的上下文和签名均正确。

  1. 批次 12 报告 7、8、7,观察时间 1000。年龄、分歧范围、中位数和标志是什么?
  2. 接受批次 12 后,相同批次再提交,有效签名会让它成为新更新吗?
  3. A 的签名报告交付三次,没有 B、C,满足报告者要求吗?
  4. 观察时间 1000,评估时间 1100,读数一致能弥补年龄失败吗?
  5. 新鲜批次报告 7、7、25,为何按规定策略只看中位数不够?
  6. 新鲜批次报告 9、10、9,是无效报告,还是被接受并产生 Review 的证据?
  7. 三者都复制上游错误值 7,玩具检查能证明真实柜体情况吗?
  8. 旧 WithinRange 标志仍被存储,但观察已过期。新的消费动作可以不检查就把它当作新鲜数据吗?

答案与理由

  1. 年龄 30 秒、分歧范围 1、中位数 7;接受报告,标志为 WithinRange。
  2. 不会。批次序号已不大于最后接受序号。
  3. 不满足。一人三次交付不等于三位不同获授权身份。
  4. 不能。年龄 100 超过 60 秒,一致性不修复过期。
  5. 分歧范围 18 超过上限 4,因此即使中位数为 7,仍拒绝批次。
  6. 是可接受证据:分歧范围 1、中位数 9,因此标志为 Review。
  7. 不能。检查不确立独立准确测量,共同来源错误可能通过全部接纳测试。
  8. 不可以。消费操作必须按策略在使用时评估时效。

延伸:检验精确年龄边界

评估时间 1060,观察时间 1000,年龄 60,通过;1061 时年龄 61,失败。在评估时间 1030 声称观察时间 1050,会因禁止未来时间而失败,不能把负 20 当成合格年龄。

边界测试显露“最近”这种模糊词隐藏的内容。有效接口应同时记录时间戳含义和精确比较条件。

返回目录 · 下一节

14. 常见问题

预言机就是一个受信任的人吗?

它可能包含一个或多个来源、运营者和组件。应检查实际架构,而不是从名称推断。

去中心化能证明外部数据真实吗?

不能。多样性可以应对特定故障假设,但共享来源、测量错误和解释错误仍可能存在。

新鲜就代表正确吗?

不代表。时效只在给定时间戳假设下限制年龄。刚刚签名的错误观察仍然错误。

合约能修好传感器吗?

它可以对收到的信息应用规则,但物理维修和校准需要外部行动。拒绝报告是需要处理的信号,不是已经修复仪器。

返回目录 · 下一节

15. 资料来源与后续阅读

主要资料于新加坡时间 2026 年 10 月 12 日核对。引用服务商文档是为了具体接口和风险概念,不构成背书、投资建议,也不表示服务在所有司法辖区都可使用。

回顾签名课程,明确认证能证明什么;回顾合约条件,了解消费者如何实施检查。进入扩容模块时,也应保持同一习惯:精确识别机制支持的主张,以及仍在机制之外的假设。

返回目录