CurveFinance作为Vyper语言的使用者,其多个稳定币池遭到攻击并损失了约2500万美元。7月30日,智能合约编程语言Vyper的部分版本被发现存在严重漏洞,包括CurveFinance在内的重要项目因此遭受了攻击,损失数千万美元,此次攻击事件为智能合约的安全性敲响了警钟。本次漏洞源于Vyper语言版本0.2.15至0.3.0之间的重入锁机制失效。对于区块链项目来说,重入锁功能失效问题可能会导致合约的执行流程被打断或者产生不可预期的结果,从而影响整个系统的稳定性。
CurveFinance在推特发表声明称,使用Vyper0.2.15编写的多个稳定币池(alETH/msETH/pETH)遭到了攻击。事件发生后,CurveFinance作为Vyper语言的使用者,其多个稳定币池遭到攻击并损失了约2500万美元。CRV代币价格也在各交易所遭遇闪崩,最小跌至0.08美元。
重入锁防御失效
(相关资料图)
北京时间7月30日,Vyper团队在推特上披露,其智能合约编译器的最新版本(0.2.15、0.2.16和0.3.0)没有正确实现防止重入攻击的保护措施,导致了多个使用Vyper编写的DeFi(去中心化金融)项目的重入锁防御失效。Vyper团队在推特上发表的公告中强烈建议,所有使用了这些受影响版本的项目应立即与他们取得联系,以获取及时的技术支持和解决方案。
Curve是以太坊DeFi生态系统中心的稳定币交易所,专注于稳定币和其他低波动性资产的交易。据悉,Vyper是一种用于支持Curve系统某些部分的编程语言。目前,该平台上的几个稳定币池已经被黑客攻击并盗走了资金。
重入攻击(ReentrancyAttack)是智能合约领域的一个常见漏洞。它指的是合约函数可以在一个函数执行过程中,被同一合约的其他函数再次调用。如果合约逻辑不严密,就可能被利用进行重复提取资金等恶意操作。
举例来说,假设有一个智能合约提供了存款和取款的功能。取款函数的逻辑是先将用户的余额减去取款金额,然后将取款金额转给用户。如果用户是一个恶意合约,它可以在接收到转账时,再次调用取款函数,因为此时合约还没有更新用户的余额,所以可以重复取款。这样就可以将银行合约中的资金全部转走。
据悉,Curve运营着232个不同的池,其团队成员mimaklas在Discord上宣布,只有使用Vyper0.2.15、0.2.16和0.3.0版本的池存在风险,其他池子是安全的。Curve的部分流动性池使用了Vyper编写的智能合约,因此受到了该漏洞的影响。据估计,Curve的CRV/ETH池被盗走了价值约2500万美元的资金。此外,Alchemix(alETH发行方)、JPEG"d(pETH发行方)、Metronome(msETH发行方)等其他使用Curve池机制的DeFi项目也遭到了类似的攻击。mimaklas表示,“所有受影响的池已经被抽空或白帽黑客攻击,团队正在与受影响的团队评估情况。”
值得一提的是,并非所有的攻击者都是恶意的。部分白帽黑客和MEVBot(最大可提取价值机器人)将盗取的资金返还给了受影响的项目,以减轻他们的损失。例如,CRV/ETH池被攻击后,一个MEV机器人部署者向Curve部署者返还了价值约539万美元的2879.54ETH。另一个MEV机器人部署者也向Alchemix返还了价值约1000万美元的ETH。
据区块链技术安全公司派盾(PeckShield)统计,此次重入攻击事件已造成约5200万美元的损失。其中,Curve的CRV/ETH池被盗走了价值约2500万美元的资金,Alchemix(alETH发行方)、JPEG"d(pETH发行方)、Metronome(msETH发行方)等其他使用Curve池机制的DeFi项目也遭到了类似的攻击,损失了价值约2700万美元。
CRV代币暴跌
这些攻击引发了社区对CurveDAO的CRV代币价格波动和清算风险的担忧。CRV是Curve平台上的治理和奖励代币。事件发生后,CRV在去中心化交易所上一度暴跌了86%,从4.5美元跌至0.6美元。然而,在链上数据显示,攻击者还没有开始出售他们盗取的价值约450万美元的CRV,因此价格可能还会进一步下跌。
极端情况之下,由于CRV的链上流动性储备未能有效承接集中抛压,今晨CRV在多个DEX上的交易价格均出现了剧烈波动,其中,在3:05至3:15期间,Uniswap(基于以太坊的去中心化交易协议)上CRV/WETH交易对的瞬时价格几乎归零,最低一度跌至0.08美元左右。
幸运的是,这一极端瞬时价格并没有被Chainlink预言机所报出,作为当前业内最常用的预言机服务,Chainlink在3:05至3:15时段所报出的最低价格为0.59美元。这一操作有效地避免了大规模的清算潮,阻止了CRV币价格进一步暴跌,使DeFi生态免于陷入深渊。此前,Chainlink预言机由于采用了CEXs+DEXs的加权报价机制引发争议,但在这个特殊时刻,它发挥了制动器的作用,保护了DeFi生态中大量使用CRV币作为抵押品或流动性资产的用户和项目,帮助整个行业避免了更大的灾难。
这次事件也引起了人们对Curve创始人迈克尔·埃戈罗夫(MichaelEgorov)巨额借贷行为的再一次关注。埃戈罗夫在Aave、Fraxlend、Abracadabra和InverseFinance等顶级借贷协议上,使用了价值超过1亿美元的CRV代币作为抵押物,借入了大量的稳定币。如果CRV的价格跌破清算线,埃戈罗夫的仓位将被清算,这将对Aave和其他借贷协议造成巨大的坏账损失,因为CRV的链上流动性不足以清算埃戈罗夫的仓位。据悉,埃戈罗夫在事件发生后,迅速偿还了部分债务,并增加了抵押物,将他在DeFi借贷平台Aave上的清算线降低到了$0.37。
目前,为了防止CRV的价格波动导致的连锁清算,DeFi借贷平台Aave和其他协议已经暂停了CRV的借款功能,并提高了借贷费用。
Vyper创建于2017年,与Solidity一样,都是一种面向智能合约的编程语言,可编译为以太坊虚拟机(EVM)的字节代码,运行在EVM上。
Vyper的编译器使用Python进行编写,是一种基于Python且兼容EVM的编程语言,具有强类型、小型编译器代码和高效的字节码生成的特点,这也使其成为想要进入Web3的Python开发人员的最佳选择之一。
目前的Vyper也是仅次于Solidity的第二大兼容EVM的智能合约编程语言。从采用率角度,在目前的DeFi开发格局中(TVL占比维度),Solidity以94.71%的市场份额占据绝对垄断地位,而Vyper以3.04%的市场份额位列第二名。
这次Vyper语言漏洞导致的安全事件,无疑给开发者选择编程语言带来了警示。本次事件突显了Vyper在防范重入攻击方面的漏洞,这也给该语言的发展带来了打击。虽然Vyper具有Python语法的易用性,但安全隐患的存在可能会使很多开发者三思。
(本文来自澎湃新闻,更多原创资讯请下载“澎湃新闻”APP)
关键词: