什么是区块链预言机?智能合约如何获取现实世界数据 | KTX Crypto Exchange

KTX
KTX
  • 更新
KTX Learn 区块链预言机封面:外部数据源通过网络与智能合约连接。

借贷合约可以计算存入其中的 ETH 数量,但仅凭钱包余额,无法知道这些 ETH 值多少美元。预测市场也有类似的问题:合约能够保管抵押资产、计算赔付,却需要一套明确的方法来判定事件最终出现了哪种结果。

区块链预言机为智能合约提供其自身可用状态之外的信息,例如资产价格、事件结果,或基金公布的资产净值。借助这些输入,合约才能处理相应业务;应用也随之依赖数据的采集、传递和解读方式。

为什么智能合约不能直接打开网站?

在以太坊及类似区块链上,节点必须根据相同的交易和状态,复现相同的执行结果。普通网站的内容可能在两次请求之间改变,也可能暂时不可用,或向不同访问者返回不同答案。如果每个验证者都在执行交易时自行抓取实时网页,就可能无法得出一致结果。以太坊的预言机文档解释了合约执行与外部信息之间的这道边界。

因此,需要由外部流程将数据报告转为区块链能够接受的形式。合约可以读取已发布的数据,也可以验证随交易提交的报告。接入预言机,并不意味着合约从此能自由访问互联网。

区块链共识能够确认哪份报告被接受、哪些规则得到了执行,却不能独立证明气象站运转正常、企业如实披露,或某个市场价格未受操纵。

沿着数据流,看清各方负责什么

一个依赖价格的应用,通常涉及几个不同环节:

  1. 采集:交易所、交易机构或其他提供方生成资产的观测数据。不同来源覆盖的交易场所、交易时段和金融工具可能不同。
  2. 处理:预言机系统按照自身规则聚合数据、生成报告。多个运营方可以降低对单一报告者的依赖,但如果它们共用上游来源,仍可能一起受到同一故障影响。
  3. 传递:通过交易发布数值,或由调用方提交经过认证的报告供合约验证。这笔交易何时执行,取决于目标区块链。
  4. 应用:使用数据的合约检查数据源标识、单位和允许的数据时效,再执行自身的借贷、结算等规则。

不能仅凭一个预言机服务商的名字,就把这些责任混为一谈。例如,Chainlink 的去中心化数据模型区分了数据来源、节点报告和链上聚合。应用仍然需要正确接入最终的数据。

外部数据经预言机网络传入智能合约,时间戳、数据质量和合约规则分别需要检查。
一份报告从数据源走到合约,要经过多项不同的检查。对报告达成一致,本身无法验证外部世界的真实情况。

不同应用,需要不同的预言机设计

推送和拉取描述的是更新如何到达应用。仅凭这一区别,无法判断系统是中心化还是去中心化。

设计 信息如何到达 应用需要考虑什么
推送式数据源 更新发布到链上数据源,合约读取其中最新可用的数值。 更新触发条件、交易延迟,以及已存储的观测数据可能有多旧。
拉取式报告 调用方获取报告,在应用需要时提交。 报告认证、观测数据的时效,以及提交更新的成本。
乐观预言机 提出的答案可在规定期限内被质疑;发生争议后,按相应流程解决。 明确的结果判定标准、监督激励、保证金,以及结算所需时间。

Chainlink 说明了其推送式数据源更新所使用的价格偏差与心跳触发条件。心跳机制并不保证在网络拥堵或服务中断时,每次更新都能准时送达。UMA 的乐观预言机则为参与者留出质疑所提答案的时间。与需要即时价格的交易相比,这类机制可能更适合事件结果判定。

预言机的输入也不一定来自链外。合约可以利用去中心化交易所的链上历史数据计算价格。Uniswap v2 的累积价格设计支持时间加权平均价格,即 TWAP。取平均可以提高短时操纵的成本,但效果仍取决于流动性和选用的观测窗口。窗口越长,对真实价格变化的反应也越慢。

一个过时价格,如何改变清算结果?

假设有一笔简化的借贷仓位:抵押 10 ETH,债务为 12,000 美元,清算阈值为 80%。假定债务的美元价值不变,并忽略利息和费用。

当 ETH 为 2,000 美元时,抵押资产价值为 20,000 美元,债务占其价值的 60%。如果 ETH 跌至 1,400 美元,抵押资产价值就降至 14,000 美元,债务占比升至约 85.7%,超过假设的清算阈值。合约接受这一价格后,该仓位就满足了本例的清算条件。

如果应用仍使用之前 2,000 美元的观测价格,仓位可能看起来仍然健康,但实际抵押保障已经减弱。错误的偏低价格则可能造成相反的问题:原本健康的仓位被清算。这两种情况下,合约都可能完全按照代码执行。

因此,了解 EVAA 借贷协议这类系统,需要同时关注价格输入和清算规则。以上数字仅作演示,并非 EVAA 的实际参数。

签名刚生成,不代表数据也刚采集

需要分清三个时间:底层观测数据何时产生、报告何时形成,以及区块链何时接受报告。刚提交的交易,也可能携带较早的观测数据。

Pyth Pro 的接入指南区分了更新时点与单项价格数据的时效,并建议应用处理报价中的不确定性。有效签名可以按相应验证规则认证报告,却不能让每个数值都变成最新数据,也无法消除不同市场之间的分歧。

开发者还需要制定故障处置规则。拒绝过期数据、限制新增借款,或暂停依赖价格的操作,都有助于控制损失。自动切换到未经验证的备用来源,则可能引入另一项依赖。Chainlink 明确要求应用开发者负责数据检查、熔断机制和应急逻辑。

在部分 Layer 2 网络上,用户能否提交交易也是问题。排序器停机可能让用户无法调整仓位。Chainlink 的排序器运行状态指南介绍了状态检查和恢复后的宽限期;仅检查价格时间戳,并不能解决用户无法操作的问题。

使用应用之前,应先看清哪些规则?

查看应用使用的具体数据源和网络、对应的市场或报告来源、允许的最大数据时长,以及服务中断时如何处理。还应确认谁有权更换预言机或调整这些限制。“使用预言机”只是了解协议的起点,不能当作安全评级。

对于代币化资产,这一区分同样重要。发布基金净值,并不能证明资产托管、法律所有权或赎回权。我们关于 Chainlink、韩华与 RWA 基础设施的文章,解释了为何可靠的数据传递与资产权利是产品中的两个不同环节。

你可以通过 KTX Crypto Exchange了解相关市场。无论使用哪种产品,都应阅读其定价和结算规则:链上预言机的数值,不会自动成为订单的实际成交价。

常见问题

使用预言机,是否意味着必须购买它的代币?

不一定。用户往往可以直接使用应用,无须持有该应用预言机服务商的代币。是否产生更新费用、由谁支付,取决于具体接入方式。服务商的代币本身也存在市场风险。

预言机能转走我钱包里的资产吗?

一份数据报告本身,既不是钱包签名,也不是代币支出授权。合约可以根据报告触发其规则所管辖资产的相关操作,包括对已抵押资产执行清算。

预言机价格,等于可以实际成交的报价吗?

不等于。参考价格可能汇总多个来源,也可能是一段时间的均价。实际成交取决于交易场所、可用流动性、订单规模和费用。显示一个参考值,并不保证订单能按该价格成交。

区块链跨链桥和预言机是一回事吗?

两者在消息传递和验证基础设施上可能有所重叠。跨链桥通常用于跨链转移或传递消息;预言机则向应用提供信息。名称相近或功能重叠,并不代表它们的安全假设相同。

预言机能替企业保密敏感信息吗?

仅把数据送上链,不能实现保密。公开发布的数据可能被任何人查看。涉及敏感信息的应用,需要另外设计信息披露、访问权限和验证机制。

风险提示:即使区块链正常运行,预言机故障、数据来源遭操纵或接入错误,也可能造成损失。本文仅供知识学习,不构成投资建议。

这篇文章有帮助吗?

0 人中有 0 人觉得有帮助

还有其它问题?提交请求