月亮链 月亮链
Ctrl+D收藏月亮链

USD:细数DeFi预言机攻击套路,这六种安全措施你需要了解_THE

作者:

时间:1900/1/1 0:00:00

译者注:价格预言机是去中心化金融的重要一环,然而,正是这一环节中可能存在的漏洞,导致很多DeFi项目遭受了灾难性损失,有的损失甚至达到了数千万美元,那这些攻击到底是怎么回事?又怎样去预防它们?在这篇文章中,知名白帽黑客、Paradigm研究合伙人Samczsun分析了5个关于价格预言机攻击的现实案例,并总结了6种抵御这类攻击的方法。

2019年末,我发表了一篇题为“利用低抵押获利”的帖子,在这篇文章中,我描述了一种针对以太坊dApp的经济攻击,这种攻击依赖于一个或多个代币的准确价格数据。现在是2020年末,不幸的是,很多项目都犯了类似的错误,最近的例子是HarvestFinance,其遭遇了黑客攻击,导致协议用户集体损失达3300万美元。

虽然开发者们已熟悉了可重入等漏洞,但预言机操纵显然不是经常被考虑的问题。事实上,基于可重入漏洞的攻击,在过去几年中有所下降,而基于价格预言机操纵的漏洞利用率,现在正在上升。因此,我认为是时候发表一些关于价格预言机操纵的确定性资料了。

这篇文章分为三个部分,在第一部分,我们会对那些不熟悉这一主题的人,对预言机和预言机操纵进行一个简单介绍。而第二部分,则是一些案例研究,那些想要测试自己知识的人,可以跳过它们。最后,我们总结了一些开发者可用来保护他们的项目不受预言机操纵的技术。

现实生活中的预言机操纵

时间回到2015年12月1日,假设你现在的身份是DavidSpargo,现在你正在澳大利亚墨尔本的PekingDuk演唱会,你想去后台休息室亲自见见这支乐队的成员,但有两名保安拦在你的面前,他们不可能让普通人直接进去。

你想知道,如果你表现得像PekingDuk乐队的亲属,保安会有什么反应。因为家庭成员肯定会被允许在后台访问乐队,所以你所要做的就是让保安相信你是乐队的亲戚。你想了一会儿,想出了一个计划,而这个计划只能被描述为“天才般”或“绝对疯狂的”。

在迅速安排好一切之后,你自信地走到保安面前。你自我介绍自己是DavidSpargo,是PekingDuk乐队的家庭成员,当警卫要求你提供证据时,你给他们看无可辩驳的证据——维基百科。

Cathie Wood:SEC或再次推迟ARK Invest的现货比特币ETF决议:金色财经报道,Cathie Wood对彭博社表示,她预计ARK Invest拟议的现货比特币ETF决议将再次推迟,美SEC将于下周结束对该基金的审查期。该监管机构目前正在审查八只独立基金的申请,上个月承认了贝莱德、富达、VanEck 和景顺等资产管理公司最近发起的大部分基金申请。ARK 21Shares比特币 ETF处于领先地位,目前下一个决策截止日期(8月13日)即将到来,但SEC可以进一步延长该截止日期。[2023/8/8 21:30:28]

警卫挥手让你过去,让你稍等一下。一分钟过去了,两分钟过去了……五分钟后,你想知道你是否应该在执法人员出现之前逃跑。就在你准备放弃的时候,PekingDuk乐队成员ReubenStyles走了过来,然后你和他一起走进休息室,乐队对你的聪明才智印象深刻,最后你们一起喝了几杯啤酒,再后来,他们在自己的Facebook页面上分享了当晚发生的事情。

什么是价格预言机?

价格预言机,大可指你向其咨询价格信息的任何东西。当帕姆向德怀特询问一Schrute元的现金价值时,德怀特就扮演了一个价格预言机。

在以太坊上,一切都是智能合约,价格预言机也是如此。因此,区分价格预言机获取价格信息的方式更为有用。在一种方法中,你可以简单地从价格API或交易所获取现有的链外价格数据,并将其带到链上。而另一类方式,你可以通过咨询链上去中心化交易所来计算即时价格。

这两种选择各有利弊。链外数据对波动性的反应通常较慢,这是好是坏,取决于你试图使用它的目的,而这种方式通常需要少数特权用户将数据推送到链上,因此你必须相信这些人不会做恶,也不会被迫推送坏的更新。而链上数据不需要任何特权访问,并且总是最新的,但这意味着它很容易被攻击者操纵,从而导致灾难性的失败。

19635枚ETH从未知钱包转移到Coinbase:金色财经报道,据WhaleAlert监测,19635枚ETH(价值35,853,369美元)从未知钱包转移到Coinbase。[2023/5/15 15:03:27]

那可能出现什么问题?

让我们来看几个关于价格预言机集成问题导致DeFi项目重大财务损失的例子。

1、SynthetixsKRW预言机故障

Synthetix是一个衍生品平台,它允许用户访问其他货币等资产。为了实现这一目标,当时的Synthetix依赖于一个定制的链外喂价实现,其喂价数据以固定的时间间隔发布到链上。这些价格允许用户对支持的资产做多或做空。

2019年6月25日,Synthetix依赖的一份喂价报告称,韩元的价格比真实汇率高出1000倍。由于价格预言机系统中其他地方的错误,这一价格被系统接受并发布到链上,随后一个交易机器人迅速进出这个sKRW市场。

尽管Synthetix团队能与交易者协商,让其返还资金,但总的来说,这个机器人有能力赚取超过10亿美元的利润。

Synthetix正确地执行了价格预言机,并从多个来源获取价格,以防止交易者在价格变化发布到链上之前预测价格变化。然而,一个孤立的上游喂价故障导致了一次毁灭性的攻击。这说明了使用链外数据的价格预言机的风险:你不知道价格是如何被计算的,因此你的系统必须经过仔细设计,以便正确处理所有潜在的失败模式。

低抵押借贷

如上面提到的,我在2019年9月发表了一篇文章,其中概述了使用链上数据价格预言机的相关风险。虽然我强烈建议你阅读这篇文章,但是它的篇幅很长,技术细节也很繁重,这可能会让人难以理解。因此,我会在这里提供一个简化的解释。

想象一下,你把去中心化的借贷放到区块链上。用户可以将资产作为抵押品存放,也可以借入其他资产,而能够借入的最高金额由他们存入的资产价值决定。假设一个用户用ETH作为抵押品,然后借入USD,目前ETH的价格为400美元,抵押率为150%。

Cask Protocol上线Arbitrum:金色财经报道,Cask Protocol的自动资金流现在已经在Arbitrum上线,资金流包括:在DEX上自动购买加密货币、接受定期付款(web3订阅)、经常性的P2P支付。[2023/1/7 10:59:05]

如果用户存入375ETH,则其存入的抵押品价值15万美元,根据每1.5美元抵押品可借入1美元的规则,那么该用户最多可以从系统那借款10万美元。

当然,在区块链上,这并不像简单地声明1ETH值400美元那么简单,因为恶意的用户可以简单地声明1ETH价值1000美元,然后从系统中拿走所有的钱。因此,开发者很容易会去接入像Uniswap、Kyber或其他去中心化交易所的现货价格。

乍一看,这似乎是正确的做法。毕竟,无论何时你想买或卖出ETH,Uniwap的价格总是大致正确的,因为套利者很快就会纠正任何偏差。然而,事实证明,去中心化交易所的即期价格在交易期间可能会非常不正确,如下面的示例所示。

思考一下Uniswap的存储功能,价格以储备资产金额为基础计算,但由于用户在ETH和USD之间交易,储备所持有的资产会发生变化。如果恶意用户在从平台贷款之前和之后执行交易,会怎样?

在用户贷款之前,他们以200万USD的价格购买了5000ETH,现在,Uniswap交易所计算的价格为1ETH=1,733.33USD?。现在,他们的375个ETH可以作为抵押,并借取最高433,333.33美元的资产。最后,他们将200万美元换回5000ETH,这将重置价格,而你的借贷平台则损失了333,333.33美元。

Tim Draper:相信会有更多女性参与加密货币领域:金色财经报道,风险资本家、比特币投资者Tim Draper表示,加密领域长期以来一直由男性主导,但他相信会有更多女性参与加密货币领域。从长远来看,这将完全取决于女性。女性控制着 80% 的零售支出,她们只是六个比特币钱包之一。此外,Draper还称,HODLers,那些意识到比特币是人类学飞跃的充满热情的人,他们是现在购买并坚持下去的人。一旦零售商意识到他们可以通过接受比特币节省 2%,一旦女性意识到她们的食物、衣服和住所都是用比特币支付的,她们就不会想要政府硬币了。他们会想要比特币;他们会想要去中心化的、开放的、透明的、和全球的东西……他们会想要一种更好的货币,它会升值……而不是你 [需要] 摆脱的货币的。[2022/12/11 21:36:50]

这个案例研究,说明了将去中心化交易所用作价格预言机时遇到的最常见的错误——攻击者在交易过程中几乎完全控制了价格,而试图准确读取该价格就像在完成结算之前先读取磅秤上的重量一样。

你可能会得到错误的数字,根据具体情况,这可能会花费你很多钱。

2、SynthetixMKR操纵

2019年12月,Synthetix再次遭受价格预言机操纵攻击,值得注意的是,这次攻击跨越了链上数据和链外数据的界限。

用户名为u/MusaTheRedGuard的Reddit用户观察到,一名攻击者对sMKR和iMKR进行了一些非常可疑的交易。攻击者首先通过购买sMKR来做多MKR,然后从UniswapETH/MKR资产交易对中购买大量MKR。在等待了一段时间后,攻击者将他们的sMKR换成了iMKR空头仓位,并将他们的MKR卖回Uniswap。然后他们重复了这个过程。

在幕后,攻击者通过Uniswap进行的交易,允许他们随意移动Synthetix上MKR的价格。这很可能是因为Synthetix所依赖的链外喂价,实际上依赖于MKR的链上价格,而且套利者没有足够的流动性来将市场重新设置到最佳条件。

Qitmeer Network Staking赎回验证通道已开启:10月30日消息,Qitmeer Network Staking赎回验证通道已正式开启,质押用户需要尽快确认资产赎回账户以及资产数额。Qitmeer Network将于2022年11月21日正式开启资产赎回通道,用户需在此之前完成所有信息确认和验证,若未在规定期限内提交正确的信息而造成的一切损失需由自己承担。[2022/10/30 11:57:29]

这起事件说明了一个事实:即使你认为自己在使用链外价格数据,但实际上你可能仍然在使用链上价格数据,而且你可能仍然会因为使用这些数据,而遭遇到复杂的攻击。

3、bZx黑客事件

2020年2月,bZx在几天内遭受两次黑客攻击,损失价值约为100万美元。你可以这里找到由palkeo编写的关于两次黑客攻击的优秀技术分析文章,但我们在这只关注第二次攻击。

在第二次黑客攻击中,攻击者首先使用ETH购买了Kyber上几乎所有的sUSD,然后,攻击者从Synthetix平台购买了第二批sUSD,并将其存放在bZx上。利用sUSD作为抵押品,攻击者借用了他们被允许的最大数量的ETH,然后他们把sUSD卖回给了Kyber。

如果你注意到了,你会发现,这本质上是同样的低抵押借贷攻击,但使用了不同的抵押品和不同的去中心化交易所。

4、yVault漏洞

2020年7月25日,我报告了一个关于yEarn推出的新yVault合约的漏洞,你可以在这里读到关于这个漏洞的官方公告,但我将在下面简要总结一下。

yVault系统允许用户在不需要自己管理的情况下存入代币并赚取收益。在内部,这个金库跟踪铸造的yVault代币的总金额以及存放的基础代币的总金额。单个yVault代币的价值,由铸造的代币与存入的代币的比率来确定。金库获得的任何收益,都会分摊到所有铸造的yVault代币上。

第一个yVault允许用户通过向BalancerMUSD/USDC储备池提供流动性来获得USDC收益。当用户向Balancer提供流动性时,他们会收到BPT作为凭证。因此,yVault根据其BPT可赎回的MUSD/USDC金额计算其持有的价值。

这似乎是正确的实现,但不幸的是,与前面提到的原理相同——交易期间,Balancer池的状态是不稳定的,因此不可信任。在这种情况下,由于Balancer选择的联合曲线,在USDC和MUSD之间进行交换的用户将不会获得1:1的汇率,但实际上会在储备池中留下一些MUSD。这意味着BPT的值可以暂时膨胀,这使得攻击者可以随意操纵价格并随后耗尽金库。

这一事件表明,价格预言机并不总是可靠的,开发者需要警惕他们正在摄取什么样的数据,并考虑这些数据是否可以被非特权用户轻易操纵。

5、HarvestFinance黑客攻击

2020年10月26日,一位匿名用户用一种技术攻击了HarvestFinance储备池。你可以在这里阅读官方的分析报告,但我要再次为你总结下:攻击者通过执行交易使得Curve池中的USDC价格降低,然后以降低的价格进入Harvest池子,通过逆转先前的交易恢复价格,并以更高的价格退出Harvest池子。这最终导致用户损失了3300万美元。

如何自我保护?

现在,我希望你了解了价格预言机操纵攻击,此外,如果你不采取适当的防御措施,攻击者可能会你的协议,让其乖乖把钱交给他们。虽然目前并没有适用于所有情况的解决方案,但还是有一些曾在其他项目中奏效的解决方案,也许其中一款也会适合你。

建议1:不跳入浅市场

就像跳入游泳池的浅水区一样,跳入一个浅市场也是痛苦的,这可能会导致巨大的损失,从而永远改变你的生活。在考虑具体的价格预言机计划之前,先考虑一下代币的流动性是否足以保证与你的平台集成。

建议2:一鸟在手胜过两鸟在林

看到Uniswap上的潜在汇率可能会让人着迷,但在你真正点击“trade”按钮,并将代币放到钱包中之前,一切都不会是最终的。同样,要确定两种资产之间的汇率,最好的方法就是直接交换资产。这种方法很好,因为没有撤消,也没有假设。然而,对于贷款平台这样的协议来说,它可能不起作用,因为这些协议需要保留原始资产。

建议3:几乎去中心化的预言机

总结依赖链上数据预言机所存在的一种问题是,它们的更新有点过快。如果是这样,为什么不引入一点人为的延迟呢?写一个合约,用去中心化交易所的最新价格更新自己,但需要通过少数特权用户。现在,即使攻击者可以操纵价格,他们也无法利用这一点。

这种方法实现起来很简单,而且很容易见效,但它也有一些缺点——在区块链拥堵的时候,你可能无法按自己希望地那样快速更新价格,而且你仍然容易受到三明治攻击。另外,现在,你的用户还需要信任你会保持价格的更新。

建议4:增加最短延迟

操纵价格预言机是一种对时间敏感的操作,因为套利者总是在观察,并希望有机会优化任何次优市场。如果攻击者想把风险降到最低,他们会想在单笔交易中完成操纵价格预言机所需的两笔交易,这样套利者就没有机会跳到中间。作为协议开发者,如果你的系统支持它,那么只需要在用户进入和退出系统之间实现一个最短的延迟就足够了。

当然,这可能会影响可组合性,并且矿工与交易者的合作正在增加。在未来,不良行为者有可能在多笔交易中执行价格预言机操纵,因为他们知道矿工将确保没有人能够跳入中间并从中获利。

建议5:时间加权平均价格

UniswapV2引入了一种时间加权平均价格预言机,以供链上开发者使用。这篇文档详细地介绍了这种预言机提供的确切安全保证,一般来说,对于长时间没有链拥堵的大型资产池,这种TWAP预言机对预言机操纵攻击具有很强的抵御能力。然而,由于其实施的性质,它可能无法对市场剧烈波动的时刻做出足够快的反应,而且它只适用于具有链上流动性的代币资产。

建议6:M-of-N报告者机制

有时候人们会说,如果你想把事情做好,就自己去做。那如果你把N个值得信赖的朋友集合起来,让他们提交他们认为正确的链上价格,然后取M个最好的答案汇聚成当前价格,那会怎么样呢?

如今,很多大型项目都在使用这种方法:Maker运行一组由可信实体操作的喂价,Compound创建了OpenOracle,并有像Coinbase这样的预言机报价者,Chainlink聚合了来自Chainlink运营商的价格数据,并在链上公开了这些数据。请记住,如果你选择使用这些解决方案之一,那么你现在已经将信任委托给了第三方,而你的用户也必须这样做。要求报价者在链上手动发布最新信息也意味着,在市场高度波动及区块链拥堵的时期,价格更新可能无法按时完成。

结论

价格预言机对于DeFi安全性而言,是一个重要,但经常被忽视的组成部分。安全地使用价格预言机是很困难的,有很多方法可以让你以及你的用户都措手不及。在这篇文章中,我们讨论了一些价格预言机被操纵的例子,并确定在交易过程中读取价格信息可能是不安全的。我们还讨论了其他项目在过去采用的,用于抵御预言机价格操纵的一些技术。最后,每一种情况都是独一无二的,你可能会发现自己不确定是否正确地使用了价格预言机。如果是这种情况,请随时寻求建议。

特别感谢DanRobinson和GeorgiosKonstantopoulos审阅了这篇文章。

标签:USDETHTHEMKRSFUSD价格ETH最新消息ETHE价格AMKR价格

fil币价格今日行情热门资讯
BRC:BRC-20、ORC-20之后,BRC-21又是什么?_interstellarchain

随着BRC-20的爆火,一些围绕着比特币网络构建的其他资产标准也开始相继出现。5月7日,跨链互操作性项目Interlay的创始人AlexeiZamyatin提议推出BRC-21标准,以向比特币网.

1900/1/1 0:00:00
PUNK:银币网平台币YB玩法深度解析_Tribalpunk cryptoverse

本文来自银币网投稿近日上线的银币网,9月2日上午10点开启了平台币YB的挖矿发行,其“质押挖矿,邀请解锁”的机制受到了业内很多人的关注.

1900/1/1 0:00:00
稳定币:龙白滔:货币金融视角下加密货币交易所的本质、风险与新机会_稳定币有哪些种类

本文在2019年8月7日发布于链捕手公众号,并由龚荃宇整理。为什么说理解交易所要先理解银行?交易所的新机会在哪里?交易所面临的系统性风险有哪些?......近日,链捕手邀请独立货币金融研究员、清.

1900/1/1 0:00:00
哈耶克:对话熊越:自由主义是比特币与奥地利学派的共通之处_UST

如果我们仔细探究各种个人行动的意义,就一定能从中获得整个集体行动的知识。——路德维希·冯·米塞斯本文首发于公众号机械钟,作者李画,原文标题《与熊越聊天:一次关于奥地利经济学派的问答》币价背后有着.

1900/1/1 0:00:00
加密货币:赵长鹏:如何保障加密货币资产安全?_比特币在中国能提现吗

本文于2020年2月23日发布于币安官方博客,作者币安CEO赵长鹏安全性是至关重要的。虽然这是一个显而易见的事实,但我还是很痛苦地看到大多数普通人都缺乏安全意识.

1900/1/1 0:00:00
SYN:一文读懂合成资产协议 Synthetix_Revenge on the Squid Gamers

本文于2020年6月25日发布于公众号加密谷Live,作者MuyAsk|CryptoTruthLexicon.

1900/1/1 0:00:00