零分Trader

深入解析Angle Protocol的预言机解决方案,如何有效减轻抢跑交易

作者头像
分析师熊大 本文作者

2025-2-15 阅读 208 约 3分钟读完

评论0

深入安格(Angle)的甲骨文解决方案以及如何构建它,以减轻启动交易。

编译者:Denglian社区

已经在角度协议的设计上投入了许多研究。尽管其结构在表面上可能很简单,但背后有许多复杂的想法可以理解。在这一系列文章中,我们将研究协议的某些元素,并解释为什么它们是这样设计的。

第一篇文章讨论了Angle的Oracle解决方案以及如何构建它来减轻跳跃交易。

介绍

Angle允许用户铸造并破坏Agtokens(稳定硬币),以换取其他令牌。交易者还可以在可用的抵押品/稳定对上的长位置开放。这些不是传统的永久合同,因为平衡不取决于资本率,并且执行价格直接来自Oracle。

考虑到这些用例,该协议需要一种可靠的方式来定价可用资产,以便它可以向用户引用公平价格并保护自己免受交易的抢夺。在这篇文章的常见问题解答中,Samcszun解释了为什么这不仅仅是使用现货价格。

交易是市场上长期存在的问题。这归结为一些参与者,他们可以比其他参与者更早获取信息,他们可以使用它来获得无风险的利润,而交易的另一方处于风险的危险中。从历史上看,很难防止这种现象链。高成本和低速以太坊交易使Oracles难以快速和频繁地更新价格。这引入了链链和链价格之间的延迟,从而使Snatch交易者可以利用这一点获利。

并非所有的Stablecoin协议都关心由Oracle延迟引起的匆忙交易的风险。在制造商的DAI案例中,Oracle延迟通常对协议有益。有人看到由于价格下跌而在下一次Oracle更新中清算了她的职位,她有动力将资金放回金库中,从而提高了协议的健康状况和抵押贷款比率。

Synthetix允许合成资产和抵押品之间的Oracle值交换,这是稳定交易难度的完美例子。他们的博客文章总结了协议和抢夺协议的悠久历史,包括他们过去遭受的一些攻击。

与Synthetix类似,当Oracle值处于价格滑倒时,Angle允许资产交换。因此,安格(Angle)也面临着跳进交易的同样问题。 Core Angle团队已付出了很多努力来防止冲刺交易。在这方面实施了两个重大改进:特定的Oracle设计和动态成本结构。在本文中,我们将解释Angle的Oracle设计及其背后的原因。

抢购交易甲骨文更新:一个示例

在挖掘Angle的解决方案之前,让我们尝试了解抢夺交易如何损坏协议。我们将考虑一个示例,其中ETH被接受为支持角稳定的抵押。

没有交易费用

假设攻击者正在查看链链的价格,并发现链条甲骨文即将以更高的价格(从P0到P1,P0 <P1)更新链上数据。该攻击者可以以P0的价格,X/P0的交换ETH销毁X Stablecoins的交易,然后在价格更新为P1后将其出售给协议,从而获得利润:

由于此Oracle更新的紧急交易,这部分利润已从协议储备中获取。如果我们设置X = 100 Eth,P1 = 1.01 * P0(价格上涨1%),这将意味着攻击者从协议的储备中获取1 ETH。

有交易费用

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

例如,如果铸造和销毁的交易费用是恒定而平等的F,则在P0处摧毁X Stablecoins并将其以ETH的价格出售给P1的协议,最终将获得以下利润:

与以前的案件相比,费用减少了利润:

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

交易费和两个Oracle解决方案

为了进一步减少这一机会,我们可以依靠辅助甲骨文获得两个可能的价格来源:PC(链链接价格)和PU(UNISWAP价格)。该协议可以通过利用最有利的价格(铸造时的价格较低,即购买用户的代币购买,而销售时的价格较高,即将ETH销售给用户的价格较高,则可以使交易变得更加无吸引力(即较高的价格) 。力量。

稍后,我们将看到,由于单税费的平均价格(TWAP)设计,PU倾向于落后PC。

如果我们将数字保留在上面的示例中,则攻击者最终将在此操作中损失0.6 ETH。

角度的解决方案

角度专门设计用于消除这种冲进交易的风险。因此,该协议将实施与上述示例非常相似的机制。在本节中,我们将更详细地探讨现有的现有选项,重点关注我们将要实施的设计的特殊性,并对选择TWAP的时间窗口进行分析。

选项

可能适合角度用例的主要甲骨文解决方案是:

ChainLink是显而易见的首选:它是一种广泛使用的分散甲骨文解决方案,提供了涵盖广泛资产的多个数据源。他们的价格来自多个数据源,并通过分散的继电器网络传递,以确保此数据可靠,易于访问且难以操纵。但是,某些数据源通常仅在“重大”价格变化(例如ETH/USD的0.5%)或一段时间后更新,这意味着Chainlink的价格总是落后于实际市场价格。因此,由于观看链价格或内存池,Chainlink的价格更新可能会急于进行交易。

UNISWAP V3时间加权平均价格(TWAP)是另一个明显且广泛使用的Oracle解决方案。可以从UNISWAP的合同中查询TWAP,以在特定时间段内获得池中代币的时间加权平均价格,范围从几秒钟到9天不等。价格是根据在指定时间内两个令牌之间的平均价格计算的。这样,操纵Twap需要很多钱,并且需要很长时间,这在大多数情况下效率低下。

然而,由于TWAP是过去块观测的平均价格,因此与实时脱链价格甚至Chainlink价格来源相比,它们往往会落后。如果单独使用,则不足以保护协议免受先发制人的侵害。

此外,由于TWAP仅报告了链上令牌对的价格,因此它们无法满足协议的访问目标,用于未代表链子上的资产(因此也在Uniswap池中),例如外汇稳定的链球菌。

使用制造商的甲壳可能是角度的另一种选择。但这意味着信任Makerdao并在治理过程中应用以访问价格数据。价格来源也仅限于制造商使用的价格来源,这对我们来说还不够,因为我们希望访问外汇费用。

Angle的设计:连锁链接 + Univ3 Twap

考虑到这一点,决定将角度协议的链条甲骨文与10分钟的Uni V3 Twap相结合。这允许随时可能达到最合理的价格,同时保护协议免受预先交易攻击的侵害。

一般而言,Angle的合同将比较这两个渠道的价格,并使用该协议的最优惠价格。通过这种设计,先发制人的交易协议变得更加复杂,因为当利用协议的汇率时,必须操纵或先发制人交易。

具体而言,我们的合同将获得Chainlink和UnisWap之间所有波动资产/稳定货币对的最优惠价格,并使用Chainlink的Forex Oracle将价格转换为所需的菲亚特货币。每个抵押品/稳定对,将拥有专用的Oracle合同及其独立的价格来源。

它如何工作?

例如,假设用户想交易ETH/年龄对。我们的合同需要ETH/USD和USD/EUR的价格。它将保留Chainlink的ETH/USD最佳价格和ETH/USDC UNIV3池的10分钟Twap。然后,它将从ChainLink中获得外汇美元/欧元的价格。

示例:UNISWAP ETH/USDC TWAP:1900 USD(该协议假定USDC通常保持其锚定,即1 USDC值1 USD); Chainlink Eth价格:1850 USD; ChainLink USD价格:1.16欧元。如果用户想在这种情况下施放年龄,则该协议将使用它可以找到的较低的ETH/USD价格,即每ETH 1850 USD for Chainlink。相反,如果在同一情况下用户想将ageur销毁到weth,则协议将使用更高的价格,即uni eth/usdc twap为1900。在这两种情况下,该协议都将使用chainlink使用ChainLink将ETH/USD转换为ETH/EUR美元/欧元1.16汇率。同样,该协议将对想要开设永久合同和最低价格的用户使用最高的价格,对于想要关闭合同的用户。

更一般:

需要价格的用户合同将拨打相关的Oracle合同。

根据对的类型,Oracle合同可以从Univ3 Twap和Chainlink中读取报价,或者只是从Chainlink(例如,用于Stablecoin Exchanges)中读取并将其返回到主合同中。

根据所执行的行动(铸造,销毁,开放或关闭),相关合同保留了协议的最佳报价并执行交易。

选择UNI V3 TWAP时间窗口

角度合同将使用10分钟的时间窗口进行TWAP。仔细考虑了此选择,因为不同的时间窗口可以导致完全不同的价格结构。

不同时间窗口之间的差异

在Angle的情况下,一方面,时间窗口应长时间进行后备,以便在协议和现货价格之间提供足够的滞后。当Chainlink的先发制人交易风险增加一倍时,在价格波动的情况下,在铸造和破坏价格之间的利差确实更高。此外,时间窗口越长,操纵TWAP价格的困难就越困难,因为最近的观察结果对价格的影响较小。

另一方面,该协议仍应为用户提供公平和最新的报价:使用太宽的时间Windows将在我们和当前的市场价格之间造成过多的价格差距,并且使用太狭窄的时间Windows不会给我们提供我们想要的东西。价格差异。

将10分钟和60分钟的Twap与链链接价格来源进行比较

为了让您了解为什么我们最终选择了10分钟的时间窗口,将10分钟和60分钟的ETH/USDC TWAP与Chainlink ETH/USD/USD价格和Coinbase CLASE价格进行比较,如下所示。

您可以看到当用户在价格之间过渡时,如何在用户关闭/破坏/打开时,如何使用协议的上限和下限速率,如何在ChainLink和Uniswap的TWAP之间最有利的价格之间移动。

虽然60分钟的Twap行业通常会使价格远离市场,但10分钟的TWAP为Chainlink的价格来源提供了有益的缓冲,使价格足够接近市场。

值得注意的是,从第一张图表中,波动率越高,链链接价格和单式链接价格之间的传播越大。相反,当价格在一段时间内保持相对稳定时,Uniswap和Chainlink的价格来源彼此接近。

使用TWAP作为抢先交易的额外保护实际上等于在高价波动期间动态收取更重要的费用,因为在这种情况下,由于链上的甲骨文延迟,先发制人的交易更具风险。这些较高的有效费用的成本是降低套利交易者直接从协议中重复稳定的能力。

在大多数情况下,UNISWAP和ChainLink价格将非常相似,因此用户几乎无法感觉到他们正在使用两种Oracle解决方案。在高波动时间期间,由于当前和未来的连锁链接上的链上价格之间的价格差异很大,可以首先交易协议时,协议价格将有所不同,并且该协议将受到预先交易的保护。

关注Synthetix费用恢复/退款

Angle的Oracle Research的灵感来自Synthetix关于先发制交易及其相关博客文章的治理讨论。我们在研究中还遇到的另一种选择是他们在2020年2月实施的收费/退款,最终是临时的。

他们要做的就是在交易中添加等待期,在此期间用户无法操纵他们想要使用的合成器。在此期间,Oracle可以检查交易是否受到不一致的影响,即执行时间和等待期结束之间是否存在价格差异。如果存在,则必须由用户或协议或与Synthetix的下一次交易向另一方(协议或用户)支付价格差。

该解决方案在减少先发制人的交易方面非常有效,但是他们必须延长等待时间并增加费用,这为所有交易者带来了非常糟糕的用户体验。它还可以防止合成器与许多用例中的其他协议结合使用。在SIP-1220中,他们用一种解决方案替换了该解决方案,该解决方案将Twap Oracle添加到大型交易中。

综上所述

Angle的特定甲骨文设计对协议有两个主要影响:

最后的影响是在FEI治理论坛中讨论的话题。由于提供最佳交易执行不是协议的核心目标,因此我们认为,匆忙交易抵抗对于确保协议更安全更为重要。二级市场将在高波动期间提供更好的交易执行。

我们在Angle项目中的目标是设计一个完全支持和高效的Stablecoin协议。这样做需要考虑协议的许多方面,以确保不能欺骗它不利,其中之一就是夺取交易的抵制。这尤其重要,因为依靠甲壳的链分散稳定稳定性取决于其甲壳。

以TWAP的形式增加次级供稿可以帮助协议减轻高市场波动的潜在严厉影响,并有机会在这些时刻开始启动交易。

最后但并非最不重要的一点是,这种Oracle解决方案保持灵活性和可扩展性。一方面,角度治理可以随时投票并更新其甲骨文合同。另一方面,可以为Chainlink支持的任何价格提要创建甲骨文。这是实现Angle以资本效率将金融资产带入连锁店的愿景的最低支持。

上一篇 BLOCKLORDS AI发展路线图发布:英雄智能化与区块链技术深度融合 下一篇 WLFI CoinbasePrime 资产持仓结构分析:ETH占据核心地位,逆势加仓凸显以太坊生态价值
评论
更换验证码