预言机与抢跑交易

2025-02-14 18:00:18

编译:登链社区

在 Angle Protocol 的设计中投入了大量的研究。虽然从表面上看它的结构可能简单,但背后有许多复杂的理念需要理解。在这一系列文章中,我们将深入探讨协议的一些元素,并解释它们为什么会被这样设计。

第一篇文章讨论了 Angle 的预言机解决方案,以及它是如何构建以减轻抢跑交易的。

引言

Angle 允许用户铸造和销毁 agTokens(稳定币)以换取其他代币。交易者也可以在可用的抵押品 / 稳定币对上开设多头头寸。这些不是传统的永久合约,因为均衡不依赖于资金费率,而执行价格直接来自预言机。

考虑到这些用例,协议需要一种可靠的方式来定价可用资产,以便能够向用户报价公平的价格,并保护自身免受抢跑交易的影响。在这篇文章的 FAQ 中,Samcszun 解释了为何这并不只是简单地使用现货价格。

抢跑交易是市场中的一个长期存在的问题。这归结于某些参与者可以比其他人更早地获取信息,他们可以利用这些信息在交易的另一方承担风险的情况下获取无风险利润。历史上,链上防止这一现象一直非常困难。以太坊交易的高成本和低速度使得预言机很难快速频繁地更新价格。这在链下和链上的价格之间引入了延迟,从而使抢跑交易者能够利用这一点获利。

并非所有的稳定币协议都关心预言机延迟带来的抢跑交易风险。在 Maker 的 DAI 案例中,预言机延迟通常对协议有利。某人看到她的头寸将在下一个预言机更新中因价格下跌而被清算,她受到激励将资金放回保管库,从而提高协议的健康度和抵押比例。

合成资产 (Synthetix) 允许在合成资产和抵押品之间进行预言机价值交换,是一个完美的例子,说明稳定币协议面临抢跑交易的难题。他们的博客文章总结了该协议与抢跑交易的漫长历史,包括他们过去遭受的一些攻击。

与 Synthetix 类似,Angle 允许在预言机价值处于无价格滑移的情况下进行资产交换。因此,Angle 也面临同样的抢跑交易问题。Angle 核心团队为了防止抢跑交易付出了大量努力。在这方面实施了两个主要改进:特定的预言机设计和动态费用结构。在本文中,我们将解释 Angle 的预言机设计及其背后的原因。

抢跑交易一个预言机更新:一个例子

在深入了解 Angle 的解决方案之前,让我们先试图理解抢跑交易是如何对协议造成损害的。我们将考虑一个例子,其中 ETH 被接受作为支持 Angle 稳定币的抵押品。

没有交易费用

假设攻击者正在查看链下 ETH 价格,并看到 Chainlink 预言机即将以更高的价格(从 p0#p#分页标题#e#更新到 p1,其中 p0 < p1)更新链上数据。这个攻击者可以发送一笔交易以 p0的价格销毁 x稳定币,以 x/p0的 ETH 换取,然后在价格更新到 p1后将其再卖给协议,从而获得利润:

由于这个预言机更新的抢跑交易,这部分利润已从协议储备中拿走。如果我们设定 x = 100ETH 且 p1 = 1.01 * p0(价格上涨 1%),这将意味着攻击者从协议的储备中拿走了 1 ETH。

有交易费用

幸运的是,增加交易费用可以减轻这个问题,因为它们会侵蚀抢跑交易者的利润,减少机会。

例如,如果铸造和销毁的交易费用是恒定且相等的 f,则一个在 p0销毁 x稳定币并在 p1以 ETH 再出售给协议的攻击者,最终会出现以下利润:

与之前的情况相比,费用减少了利润:

当交易费用为 f=0.3%并遵循上述例子时,攻击者的利润现在仅为 0.39 ETH。

带交易费用和两个预言机解决方案

为了进一步减少这个机会,我们可以依赖一个辅助预言机来获取两个可能的价格源:pC(Chainlink 价格)和 pU(Uniswap 价格)。协议可以利用最有利的价格(铸造时较低的价格,即购买用户的代币,以及销毁时较高的价格,即卖出 ETH 给用户),从而使抢跑

声明:投资有风险,入市须谨慎。本资讯不作为投资建议。
本文链接: - 链补手