欧科云链:链上套利再上演链上天眼还原“Inverse Finance案”始末

800pchelp 矿机网 2022-04-13 08:35:31 ethtrade套利盘

  原标题:欧科云链:链上套利再上演,链上天眼还原“Inverse Finance案”始末

  近年来,随着DeFi市场规模的指数型增长,预言机作为DeFi安全性的重要组成部分,针对它的攻击已是屡见不鲜,而本次INV(Inverse Finance的链上资产)的价格被操纵,既不是闪电贷攻击,与Inverse Finance的智能合约或前端代码也无关,而是TWAP预言机使用的时间窗口太短。

  价格操纵的另一面是链上套利。DeFi兴起后,以太坊等区块链网络不仅支撑链上资产转账,还有了如挖矿、借贷、衍生品等智能合约的交互场景,这也使得链上可捕获的价值变多,主要通过套利、清算的MEV(Maximum Extractable Value,最大可提取价值)提取的价值也在迅速增加,尤其是Flashbots推出可视化MEV产品「MEV-Explore v1」,更是将MEV清晰地呈现在我们眼前。

  由于存在链上套利机器人不间歇的搬砖行为,如果攻击者操纵预言机,又不是借助闪电贷在一个区块内完成的话,防止MEV-bots抢跑(front-running)就成了攻击者需要考虑的问题。

  2022年1月26日,有黑客使用了与Inverse Finance攻击者类似手法,攻击了借贷平台Rari的Index Coop Pool,但却上演了一幕「黑吃黑」,黑客的攻击被MEV-bots「截胡」,最终亏损68 ETH离场。

  虽然Inverse Finance此次事件的攻击者预先准备了241个批量地址,每个地址打入1.5 ETH,但并不是为了发动DDOS攻击阻截其他人(通常是套利机器人)在监测到INV价格异常波动后的套利行为,而是为了保证他的攻击交易能被打包进下一个区块。

  如果有MEV-bots套利,则他的后续攻击有可能跟Index Coop Pool的攻击者一样,面临赔了夫人又折兵的局面。

  Inverse Finance是一套无需许可的去中心化金融工具,由运行在以太坊区块链上的去中心化自治组织Inverse DAO管理。Inverse Finance的主要产品是Anchor(借贷)和DOLA(资产)。

  Anchor是一种货币市场和合成资产协议,可实现资本高效的借贷。DOLA是一种跟踪 1 美元价格的链上资产。DOLA可以用Anchor上的其他资产作为抵押来铸造,也可以自己作为抵押借入Anchor上的其他资产。INV具有附加功能,可用作锚定中的抵押资产。

  经欧科云链链上天眼分析,本次攻击的关键在于,价格预言机虽然取了TWAP价格,但时间窗口较短,仅是相邻两个数值,由此使得操纵TWAP预言机成为可能。

  这里可以发现,第一个池子用300WETH仅换出374枚INV,而第二个池子用200WETH却兑换出了1,372枚INV,可以明显看到第一个池子里(INV-WETH)的INV价格已明显被拉高。

  本次攻击者能成功盗取Inverse Finance 1,475万美元的资产,其核心漏洞在于价格预言机虽然取了TWAP价格,但是采取的窗口只是相邻两个数值。

  这里我们先简单科普一下TWAP (Time Weighted Average Price) 。TWAP Oracles是一种去中心化预言机,通过时间加权平均价格的方式来消除闪电贷等攻击方式对价格预言机的操纵,从而增加攻击者操纵价格的成本。

  在本次攻击中,Keep3r TWAP价格在14,506,358块上链,攻击者需要在下一块使用该价格,就可以利用操纵的价格贷出超值资产。具体如下,预言机合约「0x39b1」:

  #4-6:为获取TWAP价格,该数值为操纵后的,在操纵价格交易块高14,506,358上链。

  #10-12:攻击交易发生在块高14,506,359,因此此处逻辑为获取操纵之前的价格。

  #17:此处计算实际是将两个相邻价格进行计算,使得操纵的TWAP价格发挥作用。

  我们在前文提到过,攻击者在交易哈希为「0x561e」中准备了241个批量账号,每个地址打入1.5 ETH作为手续费,并且这些账号在操纵价格交易(块高14,506,358)发生之前就开始发送攻击交易。

  从攻击合约交易历史可以看到,攻击交易在区块高度14,506,357就已经开始发送,操纵价格发生在下一块14,506,358,具体攻击交易发生在再下一块14,506,359。

  攻击者使用这些账号只是保证攻击交易能在操纵价格的下一块成交,从而使得操纵的价格可以发挥作用;但是并不能防止其他人(一般是MEV-bots)在监听到INV价格从0.106 ETH升高到5.966 ETH时进行套利(卖出INV将价格拉回正常数值)。

  我们之前计算过,攻击者在WETH-INV池子中,将INV价格从 0.106 WETH(约366美元)拉升至5.966 WETH(约20,583美元),而在DOLA-INV池子中,则是0.146 WETH(504美元),这意味着如果有MEV-bots从这个池子购入INV,然后卖出到WETH-INV池,是可以实现套利的,但实际情况是没有MEV-bots发起套利交易(我们在后文列举了一个相似攻击手法,但遭遇MEV-bots「截胡」的案例)。

  另一方面,操纵价格交易所在区块高度14,506,358只有199个交易,且Gas使用只有52.27%,所以241个账号发送交易的目的也不是填满区块以阻止其他交易。

  2022年1月26日有黑客以类似的手法攻击了借贷平台Rari的Index Coop Pool,但结果却是攻击失败。

  攻击者首先买入285 ETH 的BED(WETH、WBTC、DPI组成的合成资产),希望大幅抬高BEP价格影响Uniswap V3 TWAP预言机,再抵押提前准备的BED借出其他资产。

  由于BED在其他市场基本没有流动性,正常情况下这次攻击会成功。但攻击者忽略了BED本身属于合成资产,除了市场上的流动性外,还可以用对应等值的资产mint。

  于是在黑客发起攻击的的下一个区块,MEV-bots就发起了“反击”。MEV-bots通过购买WETH、WBTC、DPI直接mint出了4,915.91个BED并卖出,直接将价格拉回了正常水平。

  由于使用了TWAP预言机,单一区块的波动无法影响最终预言机价格。所以攻击者计划落空,最终亏损了68 ETH离场。

  数据显示,截至4月8日,MEV提取价值已经达到了6.08亿美元,其中99.4%来自套利。过去30日的MEV提取价值为740万美元。

  预言机作为DeFi生态重要的基础设施,其安全性是DeFi生态繁荣发展的保证,链上天眼认为,安全审计应审查预言机的价格算法、经济模型等。

  项目方在设计借贷池的时候,抵押借贷的经济模型,不仅要关注价格,还要关注流动性,流动性差会导致相应的链上资产价格易被操纵。在上线前应加强对预言机的针对性测试,上线后也需对预言机进行定期的安全检查。返回搜狐,查看更多

分享: