1. 首页
  2. 术语表
  3. 价格预言机

价格预言机

又称 预言机 · 区块链预言机 · 价格数据源

定义

价格预言机把代币价格等外部数据带到区块链上,供智能合约使用。借贷市场通过预言机为抵押品估值,因此错误或被操纵的价格,可能触发本不该发生的清算。

智能合约只知道自己所在区块链上的信息。它无法查询 ETH 的价格,也无法查询金库份额的价值。然而借贷市场需要时刻知道其抵押品值多少。预言机把这个封闭的世界与它所依赖的数据连接起来,这使它们成为不可或缺的基础设施,也成为频繁遭受攻击的目标。

价格预言机如何运作

大多数价格预言机从交易所和数据提供方等众多来源收集价格,合成为一个数字,并发布到链上。常见的交付模式有两种:

  • 推送式数据源按计划,或在价格变动超过设定阈值时,向链上写入新价格。
  • 拉取式数据源把签名价格保存在链下,由用户或协议在需要的时刻,把最新价格带到链上。

Chainlink 和 RedStone 是广泛使用的预言机服务商,两者都提供推送和拉取两种模式。

市场价格与基本面价格

市场价格数据源报告的是代币的成交价格。基本面价格数据源报告的是代币依据其底层资产的价值,例如根据金库持仓计算出的金库代币份额价值。这一区别对抵押品很重要。如果金库代币在流动性稀薄的市场中短暂低于其底层价值交易,市场价格数据源会把借贷头寸推向清算,而基本面价格数据源则不会。代价是,基本面价格数据源对市场信心真正丧失的反应更慢。

预言机如何失灵

  • 操纵。攻击者通过闪电贷借入一大笔资金,在预言机读取的流动性稀薄的流动性池中推动价格,以虚高的价格借款,然后离开,给协议留下坏账。
  • 数据过时。如果数据源在快速行情中停止更新,合约就会按旧价格行事。
  • 来源有误。如果足够多的来源报告了错误价格,合成出的数字也会出错。
  • 配置错误。小数位或资产配置错误的数据源,可能瞬间导致整个市场定价错误。

一个简单示例

某借贷市场接受一种代币,其价格来自单一的小型资金池。攻击者在该池中大量买入,在一笔交易内把报告价格推高一倍,然后把该代币作为抵押品存入,以其为抵押借出其他资产,再任由价格回落。市场最终持有的抵押品,只值其借出金额的一半。如果数据源综合多个来源并跨时间取值,就能抵御这种操纵。

风险与局限

没有完美的预言机设计:每个数据源都要在速度、成本、准确性和抗操纵能力之间取舍。货币市场通过保守的贷款价值比上限、对单一资产可供应或借入数量的上限,以及对异常价格的暂停机制,来弥补其余的风险。需要在链之间传递的数据会带来自身的风险,这也是预言机网络同时提供 Chainlink CCIP 等跨链消息传递服务的原因。

Tori Finance 如何运用这一概念

trUSD 和 strUSD 的 RedStone 基本面价格数据源已在以太坊上线。基本面价格数据源依据代币的底层资产报告其价值,而不是依据它在某一个市场中的交易价格。

常见问题

什么是区块链预言机?

一种把资产价格等区块链外部数据带到链上、供智能合约使用的服务。

什么是预言机操纵攻击?

一种推动预言机报告价格的攻击,通常借助闪电贷在流动性稀薄的市场中进行,使协议以虚高的抵押品放出过多贷款,或不公平地清算头寸。

什么是基本面价格数据源?

一种依据代币的底层资产报告其价值的数据源,例如根据金库持仓计算出的金库份额价值,而不是它在市场上的交易价格。

参考来源

由 Tori Finance 团队撰写。不构成投资建议。收益会有波动,资金存在风险。