预言机基础设施:借贷协议的支柱

本文深入探讨了DeFi借贷协议中预言机基础设施的重要性,对比了Chainlink、Chronicle、Pyth和RedStone等主流预言机提供商的架构、安全价值和性能。同时,分析了Aave、Morpho、Fluid和Euler等头部借贷协议如何利用不同的预言机方案来保障价格数据的准确性和协议的稳定性,并探讨了预言机失效时的应对机制以及潜在的攻击向量。

你信任的研究出版物

Oracle 基础设施:借贷协议的支柱

这份综合报告涵盖了顶级链上货币市场背后的 oracle 基础设施。

简介

Oracle 是去中心化金融 (DeFi) 基础设施的支柱,并在链上经济中发挥着至关重要的作用。没有它们,这些系统将难以存在,因为它们充当了 现实世界信息和智能合约之间的桥梁。 为了完善定义,智能合约运行在区块链上,区块链中没有任何无法在链上计算的数据。这就是 oracle 的用武之地,充当与你交互的区块链之外的数据来源。

Oracle 的主要用例是提供数字资产的最新价格数据。它们还满足其他数据需求,涵盖现实世界的事件、商品、股票等。

为了理解它们的影响和重要性,我们将继续我们关于链上货币市场的上一份报告,探讨借贷协议使用的 oracle 功能和基础设施,包括 Aave、Morpho、EulerFluid。

这份报告将有助于建立构建稳健的 oracle 基础设施的基准,确保协议保持稳定和健康。同样重要的是要注意,涉及 oracle 的漏洞利用不仅仅是 oracle 的故障,还包括 oracle 使用的协议基础设施,该基础设施在开发过程中没有考虑到各种极端情况。

为了强调其重要性,以下是在借贷协议的背景下,如果 oracle 在其输出中出现不足可能触发的一些问题:

  • 协议可能会累积 坏账。

  • 用户头寸的 不公平清算

  • 不公平的套利机会, 因为攻击者可能会利用虚高的抵押品价值来获得比他们应该能够获得的更大的贷款

  • 协议失败和破产。

为了进行我们的研究,我们基于借贷协议运行其 oracle 基础设施的方式来进行比较分析。首先,我们将重点介绍该领域的主要 oracle 提供商,涵盖它们的核心架构、去中心化以及它们提供的价值,以概述这些供应商的运营方式以及它们提供的服务。然后,我们将介绍上述不同的借贷协议,并探讨它们如何处理价格信息,以确保协议的健康和可持续性。


比较不同的 Oracle 提供商

Oracle 是 DeFi 的信任层, 因此,新的竞争者通常面临很高的进入壁垒。因此,市场由几个关键参与者主导,包括 Chainlink,它持有大部分 TVL,其次是 Chronicle、RedStone、Pyth 等。

此外,一些团队运行自己的 oracle 并维护自己的基础设施,以支持其协议的价格信息,这被称为 “内部 Oracle”

我们将基于以下三个因素比较不同的 Oracle 提供商:

  • 总价值锁定 (TVS): TVS 值代表 oracle 锁定的价值,也可以被认为是衡量对该单一提供商的信任程度的指标。

  • Oracle 模型:oracle 使用的模型,无论是推送/拉取模型还是两者都有。每种模型都有其权衡,具体取决于具体条件。

  • Oracle 性能和去中心化:Oracle 性能衡量不同 oracle 的延迟和数据更新频率,同时揭示影响其中一些 oracle 的近期事件。此外,去中心化侧重于网络对多个参与者的依赖以及不存在单一故障点。

总价值锁定 (TVS)

Chainlink 在 oracle 市场中占据主导地位,TVS 达到 915.3 亿美元, 其次是 Chronicle、RedStone 和 Pyth,分别锁定 111.9 亿美元、84.7 亿美元和 79.3 亿美元。

Chainlink: Chainlink 于 2019 年推出,并通过其市场时机和持续的产品创新获得了主导地位。虽然共有 476 个协议使用其 oracle 服务,但仅 Aave 就占 Chainlink TVS 约 70% 的份额。 由于 Chainlink 强大的基础设施,大多数市场领导者更喜欢它,因为 oracle 有助于在重大市场波动期间维持系统。

Chronicle: Chronicle 于 2017 年推出,主要旨在为 Sky(前身为 MakerDAO)提供 oracle 服务。它直到 2023 年 9 月才公开并开始向其他协议提供其服务。它目前支持 10 个协议,并希望为其高影响力产品提供服务。作为 Sky 的早期提供商,Sky Lending 及相关产品(如 SparkLend)占其 TVS 份额的约 90%。

Pyth: Pyth 于 2021 年 8 月首次亮相,此后发展到 支持 288 个协议, 重点是 Solana 与上述提供商不同,Pyth TVS 分布相当均匀,利用其 oracle 的主要协议是 Kamino Lend,占 TVS 的约 18%。

RedStone: RedStone 也与 Pyth 同时推出,并在过去一年中见证了显着增长,其 TVS 从 34.7 亿美元增长到 84.7 亿美元(增长超过 140%)。 它目前支持 87 个协议,其中 Venus(BNB 上的货币市场)占 TVS 的约 35%。

Oracle 模型

在 oracle 中,有两种主要模型:推送和拉取。

推送 Oracle:oracle 网络本身决定何时发布新数据,并以固定的时间间隔将其推送到链上。oracle 网络持续监控链下数据(例如资产价格),节点会定期或在达到阈值时(例如,价格发生重大变化)就更新后的值达成一致。

它们具有低延迟性,并且 dapp 更容易访问,因为它们可以从特定来源读取数据。另一方面,它们成本高昂: 定期更新信息流会消耗 gas(通常由 oracle 网络或协议支付),即使没有人需要更新,并且在各个链上维护新的信息流的成本也越来越高。

拉取 Oracle: 在这种架构中,oracle 仅在响应应用程序需求时才更新数据。也就是说,它仅在有人在链上请求数据时才响应。数据通常在链下聚合并存储在快速访问层中(例如,Pythnet 或 RedStone 数据缓存)。每当 dapp 或智能合约需要更新后的值时,它会在链上检索最新数据。用户或协议支付检索数据的 gas 成本。

拉取 oracle 更具可扩展性、成本更低且对于多链设置更有效。它们的延迟略高,并且数据的新鲜度取决于使用情况。它们还具有更复杂的集成过程。

Chainlink 和 Chronicle 使用推送模型,Chainlink 的较新产品(例如数据流)使用拉取模型。

Pyth 使用拉取模型,而 RedStone 提供对两种模型的访问。

Oracle 性能和去中心化

在低延迟产品中,Pyth Lazer 在其拉取 oracle 中提供 约 1 毫秒的延迟。RedStone 通过其 Bolt 推送 oracle 提供 2.4 毫秒的更新,目前在 MegaETH 和 Monad 上运行。重要的是要注意,这些 oracle 用于高性能环境,这些环境需要更快的价格信息流更新,以用于特定产品和对延迟敏感的应用程序,例如高频交易 (HFT) 和永续协议。

Chainlink 数据流 提供 亚秒级延迟 并使用 拉取模型

比较 oracle 延迟很困难,因为它取决于 oracle 使用的模型、它推送价格数据的链以及执行/请求的价格更新次数(尤其是在拉取模型中)。例如,RedStone 通过其基于推送的模型在以太坊主网上每天更新 40 到 60 次 ETH/USD 价格,这比其低延迟产品 Bolt 慢 576 倍。

上面提到的延迟来自 oracle 的低延迟产品,这些产品尚未被广泛采用,因为它们是今年推出的。

在价格来源方面,Chainlink 利用价格聚合器来获取其信息流,从 CEX 获取数据,Chronicle 支持多个验证器和数据源,而 Pyth 依赖于发布者或做市商。RedStone 依赖于 CEX、DEX、聚合器和机构来提供与价格相关的数据。

由于去中心化受到关注,所有这些提供商都给予了足够的重视,Chainlink 利用了数千个独立的节点运营商;这些节点运营商需要质押其 LINK 代币才能成为网络的一部分。使用多个节点运营商从各种来源检索数据的方法消除了单点故障。如上所述,Chainlink 然后会聚合这些价格。

Chronicle 允许一个权限集验证器在链上签名和提交价格。目前网络中有 24 个验证器,他们的模型优先考虑 gas 效率。Chronicle 在以太坊上使用乐观模型,该模型假定价格是正确的,除非受到质疑。

Pyth 从其 120 个发布者 处获取数据,包括机构、做市商和主要的中心化交易所,这些交易所与他们合作提供相关的价格信息。由于数据来自生产者,因此其可靠性会提高。

RedStone 采用具有多个独立数据提供商的混合模型。该协议利用分布式签名者网络,这些签名者获取、验证和签署数据,然后再将其推送到链上。

近期与 Oracle 相关的事件

最近的一个 oracle 故障示例发生在 Chainlink 上,当时 根据其信息流,deUSD 脱钩。deUSD 是 Elixir 的 RWA 支持的稳定币,目前的市值为 1.41 亿美元;在 2025 年 5 月 29 日发生此事件时,其供应量为 1.85 亿美元。此事件仅限于 Avalanche 网络。

在短时间内,Chainlink oracle 报告了不正确的 deUSD 价格,从而触发了 Euler 上的清算事件,导致整个网络损失超过 50 万美元。

此事件的原因是以太坊网络上的 Curve Pool 中的一次交换。由于 Chainlink 利用 VWAP(成交量加权平均价格),成交量的增加导致 deUSD 的定价错误。同样重要的是要注意,这并非完全是 Chainlink 的错,因为 VWAP 是一种定价方法。当流动性较低的资产需要价格信息流时,这些风险无法完全缓解。

VWAP 的计算方法是将每个交易价格按其在指定时段内的交易量进行加权。大额交易对平均值的影响更大。池中成交量的突然激增会显着影响 VWAP,这解释了为什么基于 VWAP 的 oracle 价格会对异常成交量事件做出反应。

针对此类事件的有效缓解措施是利用 PoR(储备证明)价格信息流,该信息流根据支持它们的储备对资产进行定价。如果储备不足,资产将会脱钩并失去价值。这种与支持的直接连接不依赖于代币的链上流动性概况,同时还确保资产得到充分支持和偿付能力。

其他 oracle 事件包括 Pyth 在 2025 年 5 月 16 日经历了 40 分钟的停机,涉及各种信息流,包括 BTC。这次停机导致了 Jupiter Perps 和其他平台上的错误清算。


借贷协议的比较概述

在介绍了不同的提供商之后,本节将分析一些最大的借贷协议的核心组件,这些协议共同占据了借贷市场 67% 以上的份额,其中 Aave 处于领先地位,其次是 Morpho、Fluid (Juplend)、Euler 等。

特别是,重点将放在 Oracle 及其在各种借贷协议中的功能上,旨在了解以下内容:

  • 协议用于服务不同资产的 Oracle 类型: 加密资产主要分为两类:ETH 和 BTC 等波动性资产,以及与第一类中的任何波动性资产或与特定稳定资产(如美元)Hook的Hook资产。每个协议可能会使用不同类型的 oracle,具体取决于所列出的资产以及它如何选择处理这些资产,以实现更大的稳定性和抵御短期波动。

  • 如果 oracle 出现不足或在一段时间内提供过时的价格会发生什么?:Oracle 是借贷市场的关键组成部分;出现故障可能会扰乱整个协议。因此,这是一个关键问题,用于分析每个协议如何处理 oracle 过时或在一段时间内无法提供价格的情况。

Aave

Aave 的起源可以追溯到 2017 年,当时它以 ETHLend 的名义推出。快进到今天,它即将发布 v4。通过持续的升级和对成熟资产的关注,Aave 已经将自己确立为 DeFi 生态系统的重要组成部分,成为按总价值锁定 (TVL) 计算的最大协议,存款超过 740 亿美元,占 DeFi 中净贷款存款的 50% 以上。

Aave 遵循池化流动性模型,每个储备资产都有自己的一组配置,包括 清算阈值、贷款价值比 (LTV)、利率模型 (IRM) 等。因此,每个储备资产都需要一个 oracle,并且与特定的价格信息流相关联。

这些 oracle 提供以 BASE_CURRENCY(通常是美元)表示的特定资产(例如 WETH、WBTC、wstETH 等)的价格。Chainlink 利用两种类型的信息流:

Chainlink 价格信息流

Chainlink 价格信息流是 Aave 上唯一的唯一价格来源。由于其经过验证的良好记录以及它提供的去中心化程度(如上文所述),它通常是每个协议的首选。

CAPO(相关资产价格 Oracle)

这是一种特殊的信息流,通过限制相关资产的价格升值来限制协议的风险。这样做是因为这些资产更容易被操纵,并且由于其流动性概况较低,因此风险偏差更大,而支持它们的资产仍锁定在合约中。

例如,由 Lido 提供的生息代币 wstETH 应升值到 Aave 设定的特定限额。此外,CAPO 还用于 稳定币。为了满足这两种资产类别的需求,它利用两种类型的适配器:

  1. RatioCapPriceAdapter: 这些适配器专门为 LST(流动性质押代币)设计,因为它们与其底层资产高度相关。

在构建此适配器时,会考虑三个关键参数,以便在波动性较高时提供上行保护:

  • 快照比率:LST 值相对于底层资产的比率。

  • 快照时间戳:拍摄上述快照的时间戳。

  • 每年的最大允许比率增长 %: 允许 LST 具有的最大年度 % 增长。

例如,让我们考虑 wstETH (除了价格之外,没有使用实际值):

  • 快照比率: 1.19 wstETH/ETH(2025 年 1 月 1 日的 wstETH 价格,数据来自 coingecko

  • 快照时间: 2025 年 1 月 1 日(考虑使用较长的时间来以最大容量评估参数)

  • 最大允许增长: 5% (500 bps)

  • 最小快照延迟: 7 天(快照之间的最小延迟)

在撰写本文时,自快照以来已经过去了 281 天,年增长率为 3.84%(281/365 * 5%)。

*因此,动态比率上限可以计算为 1.19 (1 + 0.0326) = 1.235**

将比率上限与当前标记价格 1.215 进行比较。由于此值小于动态比率上限,因此适配器将返回标记价格 1.215。简而言之,如果 市场价格 大于动态比率上限,则它 返回动态比率上限;否则,它返回市场价格。

这样做是为了防止对 LST 的任何短期操纵,这些操纵可能会损害平台的稳定性。

  1. FixCapPriceAdapter: 此适配器专为不波动且与稳定货币Hook的资产设计。例如,USDC 与美元Hook,由于没有持续增长,因此将其硬编码为 1 美元可以降低链上流动性较低时期发生不公平清算的风险。

在最近的清算事件中也观察到了这一点,当时 Aave 在协议上将由 Ethena 发行的生息稳定币 USDe 的价格设置为 USDT。虽然代币的流动性概况在链上和特定的链下场所发生变化,但该协议没有触发任何清算,考虑到 Ethena 储备仍然支持该代币,这将是不公平的。

Morpho

Morpho 是按市场规模计算的第二大借贷协议。在撰写本文时,供应给该协议的资产价值超过 120 亿美元。 Morpho 最初是作为 Aave 和 Compound 上的优化器层通过 V0 引入的,后来在 2024 年夏天演变为 Morpho V1。它们的构建考虑到了允许性和不变性,同时培养了模块化架构。

Morpho 设计的一个关键方面是其不变性: 合约一旦部署就无法更改,这增加了一层安全性并增强了对系统的信任。一旦创建了任何市场,以后都无法修改。每当部署市场时,市场创建者都会提供有关贷款代币、抵押代币、IRM、清算阈值以及最重要的是 使用的 oracle 的信息。

Morpho 使市场创建者能够根据其特定市场需求选择其 oracle,并且 默认情况下与 oracle 无关(支持多个 oracle)。oracle 返回以贷款代币计价的 1 单位抵押代币的价格。

例如,cbBTC/USDC (抵押资产/贷款资产) 输出将是 11.4 万美元 USDC,缩放到 1e36,以提高价格精度。

Morpho 根据市场利用三种类型的 Oracle 实现:

  • 价格信息流 Oracle: 利用外部价格信息流计算资产汇率(提供商包括 Chainlink、RedStone、API3、Pyth、Chronicle)

  • 汇率 Oracle: 专门用于 LST(监控价值累积或重新调整基准),如 wstETH、stETH、LBTC、cbBTC

  • 固定价格 Oracle: 用于具有已知汇率的资产,例如 稳定币

这三种类型的 Oracle 使市场创建者能够确保他们可以为其市场提供最新和最相关的价格。

Fluid

Fluid 也是新一代借贷协议中的一员,并且最近经历了显着增长。与 Jupiter Exchange 合作推出的 Jupiter Lend 以及最近在 Plasma 链上的部署已将其 净市场规模提升至超过 60 亿美元, 使其成为按市场规模计算的第四大借贷协议。

Fluid 建立在资本效率原则之上,并在其生态系统的三个重要领域提供服务,它们是:

  • 借贷协议: 只需存入资产并 赚取贷款利息

  • 金库协议:最高的 LTV最低的清算罚款 借入资产。

  • DEX 协议: 启用诸如 智能抵押品 之类的功能,该功能允许用户同时 赚取 交易 APR贷款 APR,以及 智能债务,使用交易 APR 降低借款利率

金库协议 为用户提供了一种 高效的清算模型,并且为了开发这种模型,需要一个有弹性的 oracle。为了构建这样的系统,Fluid 结合了 Uniswap 和 Chainlink 价格信息流,以提供最准确和可靠的定价数据。

Fluid 的 oracle 将 Uniswap 的时间加权平均价格 (TWAP) 与 Chainlink 价格结合在一起。将比较这些数据点,以确认该值在特定范围内且未被操纵。

TWAP 的计算方法是计算资产在定义的时间间隔内的平均价格,并按其存在的时间对每个价格进行加权。它通过在一段时间内平均价格而不是依赖于单个现货价值来平滑短期波动并缓解价格操纵。

通过利用这种全面的 oracle 系统,金库协议可以依靠最新的和最准确的 DeFi 价格进行清算。这提高了协议的安全性并最大限度地降低了价格操纵的风险,从而为用户提供了更透明和值得信赖的借款体验。

Fluid 还对 LST 和相关资产使用不同的方法。由于它们可能由于链上流动性较低而导致短期脱钩,因此该协议会在合约级别验证资产支持,从而防止在波动性增加期间发生不公平的清算。

Euler

Euler V22024 年 9 月 推出,从那时起,该协议经历了巨大的增长,现在拥有超过 35 亿美元市场规模

Euler 上的每个市场都是可配置的,并为部署者提供了众多自定义选项。在部署这些市场时,市场风险管理者会定义 清算阈值、oracle 信息流和 IRM。选择哪种价格机制由管理者自行决定,他们可以根据所服务资产的情况决定哪种机制最适合他们的市场。

Euler 使用 ERC-7726(通用报价 Oracle) 标准 API 进行其 oracle 实现,该 API 提供彼此相关的资产价值。选择此 ERC 进行 oracle 实现的原因是其简单性以及与已有的解决方案的兼容性。

Euler 的系统由两个主要组件组成:适配器路由器

适配器 是不可变的、不受管辖的智能合约,它们实现了由 ERC-7726 定义的 IPriceOracle 接口。Euler 支持各种供应商的适配器,并且与供应商无关。支持的提供商包括 Chainlink、Chronicle、Pyth、Restone、Uniswap V3、Balancer Rate Provider 等

路由器 是类似的实现,但它们是受管辖的,并且可以根据需求更改提供商,从而提供更大的灵活性。

Euler 利用三种类型的定价机制:

  • 市场 Oracle: 使用来自去中心化和中心化交易所的交易活动和流动性来确定资产价格。它们聚合来自多个来源的价格,通过减少其对单一来源的依赖来使系统更具弹性。但是,它仍然使金库容易受到短期价格波动的影响,并且同时减少其影响,这在单一来源的情况下会相对更大。

  • 基本 Oracle: 提供固定价格,例如稳定资产的价格。它们通常进行硬编码,并且不反映实际的市场变化。这对于像 USDe 这样的资产非常有用,如果依赖市场 oracle 来获取价格,可能会导致市场动荡期间发生不公平的清算,即使支持 USDe 的资产仍然存在且协议具有偿付能力。

  • 汇率 Oracle: 确定衍生资产的价格,例如 LST。它基于衍生资产及其底层代币之间的内置汇率来确定价格。

这三种定价机制确保风险管理者可以访问专门为其市场设计的 oracle。

在这些顶级借贷协议背后的 oracle 基础设施中,一个共同的特征是根据资产类型使用不同的 oracle 类型。随着资产类型及其支持的变化,处理其价格更新的相应 oracle 及其实现也会发生偏差。

如果 Oracle 过时,有哪些机制到位?

在协议级别引入 oracle 之后,必须了解大多数 oracle 提供商都有系统到位并且相对分散,以保持其系统平稳运行而不会停机。涉及 oracle 的大多数黑客攻击或漏洞利用是由于协议中 oracle 服务的实施不当造成的。

最常见的漏洞利用形式发生在 oracle 直接依赖于现货价格并根据交易所的价格实施跨交易所的更改时。作为一种攻击媒介,攻击者可以进行闪电贷,在 Uniswap 池中造成短期价格差异,通过直接利用相同的价格信息为其市场利用目标协议,虹吸流动性,偿还闪电贷,并使协议留下坏账。

最近的一个例子发生在 10 月 10 日至 11 日的清算事件期间,当时 USDe 在币安上脱钩,因为它依赖于交易所的现货价格,而这些价格的流动性集中度较低,导致了 用户头寸的不公平清算 交易所最终向受此事件和其他类似事件影响的用户支付了超过 2.8 亿美元的赔偿金,包括 BNSOL 和 WBETH 等资产。

Oracle 实施不当可能会对协议造成严重影响,并导致用户资金损失。本报告的这一部分旨在回答借贷协议如何实施其 oracle,以及它们是否具有在 oracle 无法提供准确数据馈送时保护用户的机制。

Aave: Aave 在其 V3 合约中引入了 PriceOracleSentinel,以检测价格 oracle 是否正常运行。Aave 利用 Chainlink 的 L2 排序器正常运行时间馈送,它返回一个布尔值,以反映 L2 排序器是否已启动。一旦 oracle/链再次激活,用户可以利用宽限期来确保他们在平台上的头寸是健康的。这些合约目前尚未在以太坊上 部署宽限期60 分钟

Morpho: Morpho 具有孤立的市场,每个市场都由抵押品和贷款资产对表示。每个市场在部署期间都包含一个 oracle 地址,该地址是不可变的,并且一旦在链上部署市场就无法更改。Morpho 本质上与 oracle 无关,这意味着金库创建者可以从多个 oracle 提供商中进行选择。

由于市场创建者设置了 oracle,验证其合法性和质量的责任由最终用户承担。 如果插入的 oracle 出现故障,则可能会通过不公平的清算和坏账累积来损害市场参与者。

Euler: 它支持两个组件:适配器和路由器,如上所述,它们负责为特定的金库设置 oracle 提供商。

与 Morpho 一样,Euler 的市场定价机制由金库创建者和风险管理者选择,并且与 oracle 无关。由于风险管理者管理 oracle,用户必须在与平台上的市场交互之前评估与每个 oracle 相关的风险

对于利用 Pyth 或 Euler 等拉取 oracle 的金库,Euler 认为它们在 2-3 分钟后会过时,并且需要在交互之前更新价格。这在拉取 oracle 的情况下很重要,因为它们是基于需求的,不会像推送 oracle 那样在固定时间段后自动更新。

Fluid: Fluid 依赖 Chainlink 和 Uniswap 获取价格信息,并定期对其进行交叉验证,从而使系统稳健并保护其用户免受不公平清算和坏账累积。

在任何时候,Fluid 都会检查链上 Uniswap TWAPChainlink 价格:如果 TWAP 在参数范围内,则使用前者;否则,使用 后者

总而言之,在大多数情况下,oracle 始终被认为是正常的,并且在 oracle 提供陈旧信息的情况下,几乎没有后备机制来防御。Aave 通过利用 PriceOracleSentinel 合约来验证链排序器是否已启动来做得不错。但是,这仅适用于 L2 网络。此外,Fluid 依赖 Chainlink 和 Uniswap TWAP 馈送,并对其进行交叉检查,以在提供商出现问题时保护协议。TWAP 还带有一个警告:如果价格计算的时间间隔较大,则可以避免短期价格操纵,但同时降低价格的可靠性,因为价格是在特定时期内平均的。因此,在这两者之间取得平衡非常重要。

潜在攻击向量(捐赠攻击)

包括 Morpho、Euler 和 Fluid 在内的多个借贷协议使用 ERC-4626 进行金库设计。此 ERC 可帮助开发人员将金库代币化,并且在存款后,用户将收到可用于检索底层资产的股份。用户获得的股份数量取决于已存入金库的资产数量。

在我们开始本节之前,必须强调的是,当 ERC-4626 金库既用作抵押品又用作可借资产时,这些攻击才有可能发生。

例如,如果金库有 500 个代币支持 20 股股份,则每股股份价值 25 个代币。

用数学术语来说,

股份的汇率 = 金库中的代币数量 / 池中的股份数量

来源:https://docs.openzeppelin.com/contracts/5.x/erc4626 所以,如果池子中的份额数量保持不变,而池子中的 token 数量增加,那么汇率将会受到极大的影响并增加价值。这是一个被称为捐赠攻击(Donation Attack)的潜在攻击向量

捐赠攻击(Donation Attacks) 经过几个步骤,但最终目标是操纵 vault 的汇率(Exchange Rate)。为了执行这种操纵,攻击者将资产存入池子并提高其份额的价值,如上所述。这种被抬高的抵押品现在可以用于在协议中借入不同的资产,这会导致坏账。

最近一个这样的攻击例子发生在去年,Venus 成为了捐赠攻击的目标,导致 ZkSync 上损失了 70 万美元。需要注意的是,Venus 的实现没有问题;攻击目标是 Mountain 的 wUSDM 汇率预言机,这导致了连锁反应,尤其是在 Venus 和 SyncSwap LPs 上。这些预言机不应该直接在协议中使用,应该通过一些保护措施和价格上限来进行证明。

缓解捐赠攻击的一个好方法是实施内部余额跟踪(internal balance tracking),该跟踪记录 vault 的存款和取款,以防止外部捐赠改变汇率。


结论

不同的借贷协议有不同的预言机结构和实践,以按资产类型提供最新的价格,而不会让用户容易受到清算或自己积累坏账的影响。

所有链上货币市场都使用 Chainlink Price Feeds,它保护着超过 900 亿美元的 DeFi TVL,包括像 Aave 这样的巨头,后者持有超过 50% 的借贷存款。每个预言机提供商都提供一套产品,以简化开发人员的集成,并提供根据他们的需求量身定制的服务。

如果这些预言机提供商中的任何一个变得陈旧,协议可能会陷入困境,并且应该实施自己的机制来防止用户不公平地暴露于这种情况。没有预言机可以保证 100% 的正常运行时间,协议必须有一个备用预言机或多个来源同时提供对最新价格的访问。最终,这取决于协议设计选择,即他们的系统对于可能影响其用户的外部负面动量有多么强大。

借贷是 DeFi 中最大的类别,并且具有巨大的上涨潜力,因为它更容易理解:任何人都可以掌握货币市场并理解收益的来源。使这个类别安全将在长期内吸引更多的用户,并确保该领域继续增长。

  • 原文链接: castlelabs.substack.com/...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
castlelabs
castlelabs
江湖只有他的大名,没有他的介绍。