ETH:DeFi时代的攻击方式:喂价预言机操纵_RET

想象一下,你使用去中心化的借贷平台。用户可以将资产作为抵押品存入平台,也可以借入其他资产,但最高金额取决于他们存入的资产的价值。让我们假设一个用户想用ETH作为抵押品借入美元,ETH的当前价格是400美元,抵押比率是150%。如果用户存款375ETH,意味着存入了150,000美元的抵押品。他们可以每1.5美元的抵押品借入1美元,所以他们可以从系统借入最多100,000美元。

但是当然,在区块链上它不是简单的声明1ETH值400美元,因为恶意用户可以简单的声明1ETH值1000美元,然后从系统中拿走所有的钱。因此,对于开发者来说,寻找最适合的喂价预言机是很诱人的,比如当前Uniswap、Kyber的现货价格,或者另一个去中心化的交易平台。

乍一看,这似乎是正确的做法。毕竟,只要你想买进或卖出ETH,Uniswap的价格总是大致正确的,因为任何偏离都会被套利者迅速纠正。然而,事实证明,去中心化交易平台的现货价格在交易过程中可能严重不正确,如下面的例子所示。想想Uniswap储备系统是如何运作的。价格是根据储备金持有的资产数量计算的,但储备金持有的资产随着用户在ETH和USD之间的交易而变化。如果恶意用户在从你的平台贷款之前和之后进行交易会怎么样?在用户申请贷款之前,他们需要花费200万美元购买5000个ETH。Uniswap交易所现在计算的价格是1ETH=2,600美元。那么现在,他们的375ETH可以作为抵押品,抵押出价值高达650,000美元的资产。最后,他们用200万美元换回原来的5000ETH,这将重新调整价格至正常状态。结果是,贷款平台损失了550,000美元。

这个案例研究说明了在使用去中心化的交易作为喂价预言机时最常见的错误——攻击者在交易过程中几乎完全控制价格,并试图准确地操纵价格就像在天平安定下来之前读出秤上的重量。这样的话,你可能会得到错误的号码,并根据情况它可能会造成很大的损失。SynthetixMKR操纵2019年12月,Synthetix因为预言机价格操纵而再次遭受攻击。值得注意的是,它跨越了链上价格数据和链外价格数据之间的障碍。Reddit用户u/MusaTheRedGuard注意到,一个攻击者正在对sMKR和iMKR(反MKR)进行一些非常可疑的交易。攻击者首先购买了MKR上的一个多头仓位,然后从Uniswapeth/MKR对购买了大量MKR。等了一段时间后,攻击者以iMKR的价格卖掉了他们的MKR,并把它们卖回了Uniswap。然后他们重复了这个过程。在幕后,攻击者通过Uniswap进行的交易允许他们随意调整Synthetix上MKR的价格。这可能是因为Synthetix所依赖的非链式价格源实际上依赖于MKR的链上价格,而且没有足够的流动性让套利者将市场重新调整到最佳状态。

这个事件说明了一个事实,即使你认为你使用的是链外价格数据,实际上你可能仍然在使用链上价格数据,而且你可能仍然暴露在使用这些数据所涉及的复杂性中。ThebZx黑客攻击2020年2月,bZx在几天时间内两次遭到黑客攻击,攻击金额约为100万美元。你可以在这里找到palkeo对这两次攻击给出的技术分析,但是现在让我们分析一下第二次黑客攻击。在第二次攻击中,攻击者首先使用ETH购买了Kyber上几乎所有的sUSD。然后,攻击者从Synthetix购买了第二批sUSD并将其存放在bZx上。攻击者用sUSD作为抵押,借来了ETH的最大数量。然后他们又把sUSD卖回给了Kyber。如果你一直在关注,你会发现这本质上是同样的低抵押借贷攻击,只是使用了不同的抵押品和不同的去中心化交易平台。HarvestFinance遭套利事件2020年10月26日,一个匿名的用户使用一种你现在可能已经猜到的技术入侵了HarvestFinance的资金池。可以在这里阅读官方的事后剖析,但是我再次总结一下:攻击者通过执行交易降低了Curve池中USDC的价格,以降低后的价格进入了Harvest池,通过逆转早期的交易恢复了价格,并以更高的价格退出了Harvest池。这造成超过3300万美元的损失。我该如何保护自己?

到目前为止,我希望你已经学会了识别共同的线索-它并不总是明显的,你正在使用一个喂价预言机,如果你没有遵循适当的预防措施,攻击者可以你的协议,把你所有的钱寄给他们。虽然没有可以规定的一刀切解决方案,但是这里有一些解决方案在过去曾经对其他项目起过作用。也许其中一个也适用于你。浅水市场,不要下潜就像一头扎进游泳池的浅水区一样,一头扎进没有流动性的市场是痛苦的,而且可能会导致永远改变你的生活的巨大开销。在您考虑计划使用复杂的特定价格预言机之前,请考虑该标记是否具有足够的流动性以保证与平台集成。一鸟在手胜过两鸟在林看到Uniswap的潜在代币汇率可能会让人着迷,但只有当你真正点击交易并且交易成功后代币在你的钱包里的时候,才是最终的结果。同样,要确定两种资产之间的汇率,最好的方法就是直接进行资产互换。这种方法很好,因为没有后悔和假设。然而,它可能不适用于那些要求持有原始资产协议,如贷款平台。几乎去中心化的预言机总结依赖于链上数据的预言机模型的问题的一种方法是,它们有点太新了。如果是这样的话,为什么不人为地推迟一下呢?编写一份合约,在Uniswap这样的去中心化交易平台上用最新的价格更新自己,但只有在一小群特权用户提出要求时才这样做。现在,即使攻击者可以操纵价格,他们也不能让你的协议真正使用它。这种方法实现起来非常简单,而且速度快,但也有一些缺点——在链上拥堵的时候,你可能无法按照自己的意愿快速更新价格,而且仍然容易受到内外夹击。此外,现在你的用户需要相信,你实际上会保持价格更新。减速带操纵价格预言是一个时间敏感的操作,因为套利者总是在观望,并且喜欢优化任何次优市场的机会。如果攻击者想要最小化风险,他们会想要在一个交易中操纵一个喂价预言机,这样套利者就不可能在中间跳跃。作为一个协议开发人员,如果系统支持它,那么在用户进入和退出系统之间实现短至1区块的延迟就足够了。当然,这可能会影响可组合性,而且矿商与交易员的合作正在增加。在未来,坏的参与者可能会在多次交易中操纵价格,因为他们知道与他们合作的矿商将保证没有人能跳到中间,从他们的收益中分一杯羹。时间加权平均价格Time-WeightedAveragePrice(TWAP)UniswapV2为链上开发人员引入了TWAP预言机。文档对预言机提供的确切安全保证进行了更详细的描述,但是一般来说,对于长时间的大型交易池,没有区块拥塞的情况下,TWAP预言机对预言机操纵攻击具有很强的抵抗力。然而,由于其实施的性质,它可能无法对市场高度波动的时刻作出足够迅速的反应,而且只适用于已经具有流动性的资产。M-of-N记者如今许多大型项目都采用这种方法:Maker运行一系列由可信实体操作的价格信息提要,Compound创建了Open预言机,并提供Coinbase等记者功能,Chainlink收集来自Chainlink运营商的价格数据,并在链上发布。请记住,如果您选择使用这些解决方案之一,那么您现在已经将信任委托给了第三方,您的用户也必须这样做。要求记者手动在网上发布最新消息也意味着,在市场高度波动和链上拥堵的时候,价格可能无法及时更新。总结

喂价预言机是一个至关重要的,但经常被忽视的组成DeFi安全的部分。安全地使用喂价预言机是困难的,有很多方法可以把你自己和你的用户都搞砸了。在这篇文章中,我们讨论了过去的价格预言者操纵的例子,并且确定在交易过程中阅读价格信息可能是不安全的,并且可能导致灾难性的金融损失。我们还讨论了其他项目过去用于打击价格Oracle操纵的一些技术。不过最终,每种情况都是独一无二的,你可能会发现自己不确定是否正确地使用了喂价预言机。如果是这样的话,尽管去寻求建议吧!

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

大币网

[0:15ms0-6:826ms