欢迎光临
我们一直在努力

价格预言机为什么对DeFi如此重要?

全球最大交易所币安

国区邀请链接:https://accounts.suitechsui.us/zh-CN/register?ref=16003031 支持86手机号码,网页直接注册。

目前不清退的交易所推荐:

1、全球第二大交易所OKX欧意

国区邀请链接: https://www.nfqsloqixg.com/zh-hans/join/1837888   币种多,交易量大!

国际邀请链接:https://www.okx.com/join/1837888 注册简单,交易不需要实名,新用户能开合约,币种多,交易量大!

2、老牌交易所比特儿现改名叫芝麻开门 :https://www.gate.ac/signup/XgRDAQ8?ref_type=103  注册成功之后务必在网页端完成 手机号码绑定,大陆号码输入+086即可 ,实名认证。推荐在APP端实名认证初级+高级更方便上传。网页端也可以实名认证。

全球最大交易所币安,国区邀请链接:https://accounts.binance.com/zh-CN/register?ref=16003031  币安注册不了IP地址用香港,居住地选香港,认证照旧,邮箱推荐如gmail、outlook。支持币种多,交易安全!

买好币上KuCoinhttps://www.kucoin.com/r/af/1f7w3  CoinMarketCap前五的交易所,注册友好操简单快捷!

2019年年底,我发表了一篇题为 《Taking undercollateralized loans for fun and for profit》的文章。在其中,我描述了对以太坊 DApp的经济攻击,这些攻击依赖于一个或多个Token的准确价格数据。目前已经到了2020年末,不幸的是,此后众多项目都犯了非常类似的错误,最近的例子是Harvest Finance黑客事件,导致协议用户集体损失2400万美元。

虽然开发者对重入等漏洞很熟悉,但预言机操纵价格显然不是人们经常考虑的问题。相反,基于重入性的漏洞这些年有所下降,而基于价格预言机操纵的漏洞现在却在上升。因此,我决定是时候有人发表一篇关于价格预言机操纵的权威资源了。

这篇文章分为三个部分。对于不熟悉这个问题的人,有一个关于预言机和预言机操纵的介绍。想要测试自己知识的人可以跳到案例研究,我们在这里回顾了过去与预言机相关的漏洞和利用。最后,我们总结了一些开发人员可以用来保护他们的项目不受预言机操纵的技术。

在现实生活中预言机操纵

2015年12月1日,星期三。你的名字叫大卫-斯帕戈,你正在澳大利亚墨尔本的北京公爵演唱会上。你想亲自见见乐队,但你和后台通道之间站着两个保安,他们不可能让一些普通人直接走进去。

你想知道,如果你表现得像个普通人,保安们会有什么反应。乐队的家人们肯定会被允许到乐队后台参观,所以你要做的就是让保安们相信你是他们的家人。你思考了一会儿,想出了一个只能用天才或疯子来形容的计划。

迅速安排好一切后,你自信地走到保安面前。你自我介绍说是大卫-斯帕戈,Peking Duk的家人。当保安要求你提供证据时,你向他们展示了无可辩驳的证据–维基百科。

价格预言机为什么对DeFi如此重要?插图(15)

这个案例研究说明了使用去中心化交易所作为价格预言机时最常见的错误–攻击者在交易过程中几乎完全控制了价格,而试图准确地读出这个价格就像在秤上读出它完成结算前的重量一样。你很可能会得到错误的数字,根据情况,可能会让你损失很多钱。

Synthetix MKR操纵

2019年12月,Synthetix又遭遇攻击,原因是价格预言机操纵。这次值得注意的是,它跨越了链上价格数据和链下价格数据之间的障碍。

Reddit用户u/MusaTheRedGuard观察到,一名攻击者针对sMKR和iMKR(反向MKR)进行了一些非常可疑的交易。攻击者首先通过买入sMKR购买了MKR的多头头寸,然后从Uniswap ETH/MKR交易对中购买了大量的MKR。等待一段时间后,攻击者将他们的sMKR卖出换成iMKR,并将他们的MKR卖回Uniswap。然后,他们重复这个过程。

在幕后,攻击者通过Uniswap进行的交易让他们可以随意改变Synthetix上MKR的价格。这很可能是因为Synthetix所依赖的链外价格推送实际上是依赖于MKR的链上价格,没有足够的流动性让套利者将市场重新设置回最佳状态。

这个事件说明,即使你认为自己使用的是链下价格数据,但实际上你可能仍然在使用链上价格数据,你仍然可能暴露在使用这些数据的复杂性之中。

bZx黑客

2020年2月,bZx在几天内被黑了两次,损失约1百万美元。你可以在这里找到palkeo写的关于两次黑客的优秀技术分析,但我们只看黑客的第二次攻击。

在第二个黑客攻击中,攻击者首先用ETH购买了Kyber上几乎所有的sUSD。然后,攻击者自己从Synthetix购买了第二批sUSD,并将其存放在bZx上。攻击者用sUSD作为抵押,借到了他们允许的最大数额的ETH。然后他们将sUSD卖回给Kyber。

如果你一直在关注,你会认识到这本质上是相同的抵押贷款攻击,但使用不同的抵押品和不同的去中心化交易所。

yVault Bug

2020年7月25日,我向yEarn报告了一个关于他们新的yVault合约推出的bug。我将在下面简单总结一下。

yVault系统允许用户存入Token并在上面赚取收益率,而不需要自己管理。在内部,金库会跟踪yVault Token的总发行量以及存入的基础 Token总量。单个yVault Token的价值由铸造的Token 与存入的Token的比例给出。金库赚取的任何收益都会分摊到所有已发行的yVault Token (因此,也就分摊到所有yVault Token 持有人身上)。

第一个yVault允许用户通过向Balancer MUSD/USDC池提供流动性来赚取USDC的收益率。当用户向Balancer池子提供流动性时,他们会收到BPT作为回报,BPT可以兑换池子的一部分。因此,yVault根据可以用其BPT赎回的MUSD/USDC的数量来计算其持有的价值。

这似乎是正确的实现方式,但不幸的是,与之前给出的原理相同–交易过程中Balancer池的状态并不稳定,不能被信任。在这种情况下,由于Balancer选择的价格曲线,用户从USDC换成MUSD时,不会得到1:1的汇率,但事实上会在池子里留下一些MUSD。这意味着BPT的价值可以暂时被放大,这使得攻击者可以随意操纵价格,随后将金库耗尽。

这一事件表明,价格预言机并不总是清晰的反映价格数据,开发者需要警惕他们摄取的是什么样的数据,并考虑这些数据是否能被无权用户轻易操纵。

对于收益率耕作的黑客攻击

2020年10月26日,一个不知名的用户入侵了流动性挖矿的池子,使用的技术你现在可能已经猜到了。你可以在这里阅读官方的事后报告,但我再一次为你总结一下:攻击者通过执行交易将曲线池中USDC的价格虚化,以降低的价格进入耕作池,通过逆转之前的交易恢复价格,并以更高的价格退出耕作池。这导致了超过3300万美元的损失。

我该如何保护自己?

现在,我希望你已经学会了认识到共同点–你使用价格预言机并不总是安全的,如果你不遵循适当的预防措施,攻击者可能会攻击你的协议,将你的钱全部发送给他们。虽然没有一个万能的修复方法可以参考,但这里有一些过去对其他项目有效的解决方案。也许其中一个也会适用于你。

寻找有流动性充足的池子

就像跳入游泳池的浅滩一样,跳入流动性不足市场是痛苦的,可能会导致重大的开支,这将永远改变你的生活。在你考虑你打算使用的具体价格预言机的复杂性之前,请考虑该代币的流动性是否足以保证与你的平台整合。

一鸟在手,胜过两鸟在林

在Uniswap上看到潜在的汇率可能会令人着迷,但在你真正点击交易和代币放在你的钱包里之前,并不意味着那是最终价格。同样,确定两种资产之间汇率的最好方法是直接交换资产。这种方法很好,因为没有回扣,也没有万一。但是,对于借贷平台等协议来说,可能就不适用了,因为这些协议是需要持有原始资产的。

去中心化的预言机

有一种方法可以总结出依赖链上数据的预言机的问题,那就是它们有点太新潮了。既然如此,为什么不引入一点人为的延迟呢?写一个合约,它可以用Uniswap这样的去中心化交易所的最新价格来更新自己,但只有当一小部分特权用户提出请求时才会更新。现在即使攻击者可以操纵价格,他们也无法让你的协议真正使用它。

这种方法实现起来真的很简单,而且是速战速决,但也有一些缺点–在链路拥堵的时候,你可能无法像你希望的那样快速更新价格,而且你仍然容易受到三明治攻击。另外,现在你的用户需要相信你真的会保持价格更新。

延迟防御

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

当然,这可能会影响到可组合性,矿工与交易员的合作正在上升。在未来,不良行为者可能会在多个交易中进行价格预言机操纵,因为他们知道与他们合作的矿工会保证没有人可以跳到中间,从他们的收益中分一杯羹。

时间加权平均价格(TWAP)

Uniswap V2引入了一个TWAP预言机,供链上开发者使用。文档中更详细地介绍了该预言机提供的具体安全保障,但一般来说,对于长期没有链上拥堵的大池子来说,TWAP预言机对预言机操纵攻击有很强的抵抗力。不过,由于其实现的性质,在市场波动较大的时刻,它的响应速度可能不够快,而且只适用于链上已经有流动性代币的资产。

M-of-N 喂价

有时候人们会说,如果你想把一件事做好,你就自己去做。如果你召集N个值得信赖的朋友,让他们提交他们认为合适的链上价格,最好的M个答案就成了当前的价格,会怎么样?

如今很多大型项目都在使用这种方法。Maker运行了一组由可信实体运营的价格源,Compound创建了Open预言机,并拥有Coinbase等报告器,Chainlink聚合了Chainlink运营商的价格数据,并在链上公开。只要记住,如果你选择使用这些解决方案之一,你现在已经将信任委托给第三方,你的用户也必须这样做。要求报告人手动在链上发布更新也意味着,在市场波动大、链上拥堵的时候,价格更新可能无法及时完成。

价格预言机是 DeFi 安全性的一个重要组成部分,但往往被忽视。安全地使用价格预言机是很难的,而且有很多方法可以让您和您的用户都吃亏。在这篇文章中,我们介绍了过去操纵价格预言机的例子,并确定了在交易中间读取价格信息可能是不安全的,可能会导致灾难性的财务损失。我们还讨论了一些其他项目过去用来打击价格预言机操纵的技术。不过最后,每一种情况都是独特的,你可能会发现自己不确定自己是否正确使用了价格预言机。

目前不清退的交易所推荐:

1、全球第二大交易所OKX欧意

国区邀请链接: https://www.nfqsloqixg.com/zh-hans/join/1837888   币种多,交易量大!

国际邀请链接:https://www.okx.com/join/1837888 注册简单,交易不需要实名,新用户能开合约,币种多,交易量大!

2、老牌交易所比特儿现改名叫芝麻开门 :https://www.gate.ac/signup/XgRDAQ8?ref_type=103  注册成功之后务必在网页端完成 手机号码绑定,大陆号码输入+086即可 ,实名认证。推荐在APP端实名认证初级+高级更方便上传。网页端也可以实名认证。

全球最大交易所币安,国区邀请链接:https://accounts.binance.com/zh-CN/register?ref=16003031  币安注册不了IP地址用香港,居住地选香港,认证照旧,邮箱推荐如gmail、outlook。支持币种多,交易安全!

买好币上KuCoinhttps://www.kucoin.com/r/af/1f7w3  CoinMarketCap前五的交易所,注册友好操简单快捷!

火必所有用户现在可用了,但是要重新注册账号火币https://www.huobi.com

全球最大交易所币安

国区邀请链接:https://accounts.suitechsui.us/zh-CN/register?ref=16003031 支持86手机号码,网页直接注册。

赞(0)
未经允许不得转载:Chia之家 » 价格预言机为什么对DeFi如此重要?