综合价格馈送

介绍

一般来说,项目通常依赖于来自oracle供应商的数据馈送,如Chainlink,但综合价格馈送(CPF)设计分层并交叉引用不同的oracle和链上数据源。

因此,它是一个强化区块链价格反馈的框架,通过整合来自链上和链下的各种信息,并验证链上信息完整性的可能性。乐观地说,综合价格馈送达到了Chainlink 的速度,但如果Chainlink的价格出现错误,则有后备保证。

实际上,多个一致性检查被应用于参考多个深度链上市场,这为操纵价格反馈增加了可量化的成本。这些检查的核心是通过对AMM的链上引用来定义一个相对的价格水平,然后通过与各种oracle交叉引用来确定该价格水平。

技术规格

要阅读有关数学规范和实施的内容,请参见以下章节。

page技术文档

数据源

综合价格馈送整合了来自四种不同来源的数据,这些来源有不同的信任假设:

  • Chainlink:Chainlink 的安全模型实际上相当于一个大型但受信任的多重签名和一个受信任的中继。

  • AMM TWAPs:这些TWAPs不需要信任,因为它们存在于链上,不需要中继。然而,它们是可操纵的,对价格的跟踪估计也很慢。

  • 交易所签署的价格:由于这些价格的签名可以在链上验证,所以这些价格的中继不需要被信任,尽管数据提供者(即交易所)是一个受信任的对手方。

  • 观测协议状态的变化:关于代理人如何与协议互动的信息是完全可以在链上观察到的,没有信任假设。当oracle价格可能是错误的时候,不寻常的行为可以用来标记可疑的设置。

合并机制

合并机制结合了两类交叉引用资产价格的检查:

  • 相对价格检查比较一个链上资产的价格相对于另一个链上资产的价格信息。

  • 绝对价格检查比较链上资产的价格相对于外部(链外)资产的信息,如美元。

这些检查的联合结构在资产对之间形成了一个网络,其基础是关于美元价格的交叉参考信息。CPF可以可视化如下:

相对价格检查

相对价格检查是通过观察DEX市场进行的。

对于一个给定的DEX TWAP相对价格 pi/jp_{i/j}检查验证了依靠Chainlink的数据计算出的相对价格 pi/USDp^j/USD\frac{p_{i/\text{USD}}}{\hat p_{j/\text{USD}}}是足够接近的.

由于所有的信息都是可以在链上观察到的,所以在进行相对价格检查时不需要信任假设。

相对价格检查的设计空间主要围绕着所包括的资产数量和所包括的资产的选择:

  • 增加所含资产的数量可以提高操纵价格检查的成本,从而提高其弹性。然而,这也会增加Gas成本。

  • 所包含的资产的选择是至关重要的,因为每对资产必须有足够大的流动性,以便移动市场价格的成本是巨大的。这一点尤其重要,因为操纵这个价格检查的成本是由操纵流动性最小的一对市场的成本决定的。

更多信息请参考技术规范

绝对价格检查

绝对价格检查是通过检查一项资产以美元计价的价格与几个独立的数据来源是否一致来完成的。

绝对价格检查将 ETH/USD 价格和 ETH/稳定币 价格作为输入。对于一个给定的资产 ii,如果 ETH/USD 价格的中位数与第二低的 ETH/稳定币 价格一起足够接近于从price_{ii/ETH}、price_{ii/USD}推断出的可比价格,则检查通过。

由于美元价格不能在链上获得,而是由外部人员提供,因此绝对价格检查依赖于信任最小化的方法。

绝对价格检查的设计空间在很大程度上围绕着可信的或外部的数据提供者的选择和所包含的稳定币的选择:

  • 可以就中位数价格中包含的数据提供商的选择进行辩论。对于CPF来说,将使用Coinbase和Chainlink oracle的签署的交换价格。

  • 选择将哪些稳定币纳入中位数,应根据稳定币的波动性和DEX的流动性来决定。对于CPF,将使用USDC、USDT、DAI。实际上,稳定币发行者被解释为预言机。

原则上,可以将更多的链上信息纳入中位数,以进一步提高CPF的复原力。关于文档资料,请参考技术规范

优点

CPF预言机设计的主要优点是:

  • 强化的安全性:通过对多个来源的价格进行三角测量,差异可以在链上迅速检测出来,而不需要依赖可信的设置。

  • 抽象的复杂性:在处理AMMs的TWAPs(例如Uniswap)方面,以及在计算相对价格水平方面都是如此。通常情况下,AMMs可能会把稳定币的价格作为一个代理oracle。这是一个隐藏的复杂性问题,可以通过我们提出的oracle设计来解决。

  • 更高的 "投资回报率":通过我们的方法确认的价格可以被储存起来,从而可以使用(与TWAPs的成本相似),而不需要重新访问各种oracles 和重新计算价格。

  • 易用性:易于验证和“一站式接入”强大的价格源。任何已有Chainlink集成的项目都可以决定增加建议的一致性检查来加强他们的价格反馈。这可以被认为是添加了类似于 "断言 "的功能逻辑,因为系统可以检测到个别组件是否已经损坏。

执行

为了测试和审计的目的,已经在Polygon上部署了综合价格反馈

合并机制的最重要的功能在CheckedPriceOracle.sol在下表中定义和列出。

功能目的

ensureRelativePriceConsistency

执行单个的相对价格检查。

batchRelativePriceCheck

执行相对价格检查的网状结构。

getRobustWETHPrice

执行绝对价格检查。

getPricesUSD

执行包括价格检查的合并机制。

所有需要校准的参数都在文件CheckedPriceOracle.sol中定义,并列在下表中。此外,当前的relativeOracle实现是依靠UniswapV3TwapOracle.sol;机制中使用的TWAP池需要在那里注册。

范围目的

usdOracle

主要预言机(例如,调用Chainlink)。

trustedSignerPriceOracles

选定的可信赖的价格预言机的注册。

assetsForRelativePriceCheck

用于相对价格检查的报价资产。

quoteAssetsForPriceLevelTWAPS

选定的稳定币的注册。

relativeMaxEpsilon

相对价格检查的偏差阈值。

MAX_ABSOLUTE_WETH_DEVIATION

绝对价格检查的偏差阈值。

在目前的实施中,相对价格检查的偏差阈值被设定为所有相对价格检查的通用值。以下是校准合并机制的要点:

  • TWAPs的DEX池需要在广泛的价格范围内拥有合理的流动性。

  • TWAPs的价格检查和时间段的阈值应该根据TWAPs的预期偏差水平来平衡对灵活性和安全性的要求。

  • 选定的受信任的价格预言机的注册应包含彼此相对独立的馈送,当它们代表交易所签署的价格时,交易所应具有合理的市场深度。

  • 应管理所选稳定货币的登记簿,以重点关注预期保持挂钩汇率的稳定货币(如托管型货币),并在外汇交易中有足够的流动性。选择它们时应考虑集合中稳定货币之间的风险因素共性。

断路器

CPF也具有一系列的断路器,旨在保护应用程序协议,以防有问题的预言机信息通过整合机制进入,并提供对更普遍的风险的保护,例如减轻智能合约错误的影响。

闪断断路器

如果Chainlink报告的预言机价格在一定时间内的变化超过了阈值,那么闪断断路器就会在协议中启动安全模式。

闪断断路器在CrashProtectedChainlinkPriceOracle.sol中实现,参数为minDiffTime和maxDeviation,为每个资产注册。

过量断路器

接下来的断路器会启动安全模式,也就是在设定的时间段内暂停协议操作。它被设计为最后的手段,以防止预言机漏洞以及智能合约漏洞和未知漏洞。它通过测量协议内的超短期流量进行操作,如果它们超过阈值,就会触发安全模式。原子漏洞也通过增加各自的阈值来限制。

对于陀螺仪,动态稳定机制(DSM)可以暂停使用。DSM是一个自动化的做市商,它定义了针对储备资产的稳定币的铸造和赎回。

断路器的参数可以通过考虑合并机制中的价格检查的操纵成本来校准。

预言机守护者机制

DAO选择的预言机守护者白名单可以在定义的时间段内启动安全模式。DAO能够在任何时候更换守护者的名单。这个机制被设计成一个应急响应杠杆,它只有暂停控制权,目的是在预言机失效或发现智能合约错误时启动激活。

最后更新于