频遭攻击,金融乐高(DeFi)为何如此脆弱
对于黑客攻击,在币圈待久了的朋友都不会陌生,因为隔三差五就会有一次。时间长了,大家习以为常,但其后的深层次原因,以及对DeFi产业的影响并没有给予足够的重视。把这个问题搞明白,对于投资者做决策有一定帮助。因为只有真正了解了这个问题性质,当安全事件发生时,可以依据攻击发生的原因,对其产生的影响作出正确判断。
这里回顾一下近期发生的攻击事件,探讨其中的原因、过程。
1、10月26 日,DeFi 项目Harvest Finance遭到黑客攻击,造成了约 2400 万美元的损失。这次黑客对Curve Y池进行攻击,使Curve稳定币的价格比正常水平超出387.9%,在很短时间内多次重复套利。受此此次黑客事件冲击,Harvest 代币FARM的价格在短时间内暴跌65%。
此次攻击集中在USDT和USDC。在Harvest上,这二者是使用了相同策略的稳定币。USDC和USDT存款人可以自动从Curve Finance平台的挖矿中获得回报。
Curve是主要做稳定币交易的交易所。用户在上面进行稳定币交易的费用、滑点比较低,也可以通过提供流动性来获得稳定收益。这些流动性提供者获得在Curve上进行交易的其他用户支付的交易费用,加上CRV治理代币奖励。Harvest的策略是从Curve交易费用中获取收入,再出售CRV代币获利,同时用Harvest自己的FARM代币奖励用户。这三部分是回报给Harvest储户的,这也是能吸引到很多用户的原因。
与其他DeFi一样,Curve根据流动性池份额支付收益。如果用户拥有资金池的10%,可以得到10%的收益。然而,随着价格的变化及存款和取款,每用户的份额在不断变化。这意味着Curve和Harvest都需要Curve的实时价格确定收益的分配。每当有用户存款或取款时,Harvest还需要查看价格,以确保正确计算用户资金入池时获得的份额,以及他们取款时退回的份额。
因此,如果能找到操纵Curve价格的方法,他们就能得到更多的存款池份额,取款时失去较小的池份额,其结果是从其他用户那里挣到了钱。这种攻击的基本思想是在存款时抬高存款资产的价格,然后在取款前压低价格,用户的池份额在价格变化时也保持不变。
袭击者并不需要有很多钱来完成攻击,因为有“闪电贷”,这名袭击者用10 个以太币来支付GAS费,却卷走了2400万美元。
根据Harvest的报告,黑客运用闪电贷来发动攻击的过程是这样:
a.先分别办理1830万USDT和5000万USDC的闪电贷款。
b.Curve上用1720万USDT购买USDC,推高Curve上USDC的价格。
c.将5000万USDC存入Harvest,由于USDC价格上涨,获得5150万份额(称为fUSDC)。
d. 在Curve上将USDC兑换USDT,让价格回落。
e.按现行汇率,将5150万fUSDC换算成5060万USDC.。
f.攻击者在4分钟内对USDC池重复了17次操作,然后对USDT池在3分钟进行了13次操作。
2、11月6日Cheese Bank受到黑客攻击,攻击者窃取了价值 330 万美元的USDC 、USDT和DAI稳定币。
攻击者首先从DYDX 协议中获得21000 ETH 的闪电贷。然后,攻击者通过 UNIswapV2 平台将50 ETH交换107000个CHEESE。紧接着,在UniswapV2投入107000个CHEESE和78ETH提供流动性,获得UNI_V2 LP 代币。攻击者使用这些LP 代币通过CheeseBank获得数字币贷款。
攻击者随后用20000ETH购入288000个CHEESE,使UniswapV2的CHEESE价格显著地提高。价格上涨增加了UNI_V2 LP代币在CheeseBank的价值,这样就获得了更多的贷款。CheeseBank.使用流动性池中的WETH 来调整相应 LP 代币价值,攻击者就是利用了这个缺陷。在UniswapV2 上操纵-CHEESE-ETH池的价格让攻击者在Cheese Bank.上控制了USDC、USDT 和DAI价格。
攻击者完成整个交易后,在UniswapV2 上用288000个CHEESE代币交换 19.98 ETH。在这些交易结束时,攻击者赚取330万美元,最后用21000ETH 的用于偿还 dYDX 协议。
3、11月12日加密货币借贷平台Akropolis受到黑客借助"闪存贷"的攻击,黑客从该项目的资金池取走200万个DAI,价值约200万美元。
该项目在11月12日发布的一份声明中说:"在格林尼治标准时间14:36时,Akropolis稳定币资金池的APY出现差异,调查发现有200万美元的DAI已经被从yCurve和SUSD资金池取走。
攻击这件事让Akropolis自己也感到意外,因为这些合约已经做了两轮的独立审计。漏洞是重入攻击与dYDX闪存贷款相结合,而在两次审计中都没有发现被攻击的漏洞。
4、11月14 日,Value DeFi 协议遭到黑客攻击,导致超过 700 万美元的损失。
Value DeFi曾在社交平台宣布自己是最安全的DeFi。黑客在完成攻击后还返还了200万美元,并以“你们真的了解闪电贷吗?”的留言嘲讽。
攻击者利用价格预言机漏洞,操纵 Curve 资产池价格,窃取超量 3CRV兑换 DAI 后套利。当晚,黑客先通过 Aave 的闪电贷功能借来8万枚 ETH,紧接着通过UniswapV2上的闪电贷借来 1.16亿枚 DAI。借来钱后,黑客开始在Curve和ValueDeFi上操纵价格进行套利。
在Curve上,黑客主要是用闪电贷借来的钱抬高USDC的价格,一度让这个美元稳定币脱锚上涨至1.788美元。而在ValueDeFi上,黑客将一部分DAI存入该协议铸造出名为3CRV的合成资产。
Value DeFi中有3种合成资产,分别是3CRV、bCRV和cCRV,为了方便计价,该协议合约在铸币时会将bCRV、cCRV转换成3CRV 进行计价,转换途径需先将bCRV/cCRV换成USDC,再把USDC换成3CRV。
由于Value DeFi以Curve的价格作为预言机,而Curve上USDC的价格已经大幅上涨。因此,当攻击者发起3CRV提现时,合约会照常将bCRV、cCRV 转换成以3CRV计价,但此时USDC/3CRV的价格被操作拉高,导致用bCRV、cCRV 能兑换出更多的3CRV。黑客正是凭此完成了套利,在还完闪电贷后,套利740万美元。
5、 借助闪电贷不仅可以攻击数字资产,还有数字权利
上面的案件都是借助闪电贷获得巨额财富,而更奇葩的闪电贷安全事件也出现了。近期,MKR 基金会智能合约开发团队检测到一起发生在 MKRDAO 治理提案中的投票违规行为。社区的一次提案需要持有治理代币的用户投票,有人就利用闪电贷借出资产作为抵押品在借贷平台拿到大量的治理代币参与投票,投完票然后再还回去。这个事件完全出乎项目方的计划,人们也因此开始重新评估治理合约的安全性。
所有以上这些攻击都有闪电贷的影子,那么何谓闪电贷?为什么不禁止闪电贷?
事实上闪电贷被认为是 DeFi 最伟大的创新之一。闪电贷概念最早由 Marble 协议于 2018年提出,当时开发者的想法是通过智能化合约完成的无抵押零风险贷款。智能合约一次性处理交易,如果借款人不能偿还贷款,整个交易就会回滚,就像贷款根本没发生一样。
因为发放闪电贷对贷款方并没有风险,所以贷款方并不会取消该业务。对于借款发动攻击的黑客而言,如果攻击不成功,损失的是GAS费。因为不会损失更多的财富,也无需拥有大量的资金,他们发动此类攻击的代价并不高,这是他们愿意铤而走险的原因。
其实闪电贷并非发明用来作恶,人们将它的用途归纳为3类;
a、套利。闪电贷可以放大套利的利润,降低套利的成本;
b、抵押品转换。闪电贷的另一个用例是转换贷款抵押的币种;
c、清算贷款,在抵押物价值下跌时,凭借闪电贷清算债务,免得造成更大损失。
6、尽管以上攻击都包含了闪电贷款,但并不是所有的黑客攻击都和闪电贷有关。比如11月22日 Pickle Finance因漏洞被盗2000万美元。攻击者通过伪造jar窃取资金,攻击者部署了与原系统相同的“伪造jar ”,并在伪造jar和真正的cDAI jar之间交换了资金,偷走了价值2000万美元的存款。
从本质上说,Pickle Jar就是Yearny Vaults的分叉,这些Jar是由一个名为the Controller的合约控制的,该合约具有允许用户在Jar之间交换资产的功能。漏洞在于Pickle并没有设置白名单允许哪个Jar使用这个交换功能。黑客制造了一个假的Pickle Jar,并交换了原Jar中的资金,因为swapExactJarForJar没有检查“白名单”jar。
黑客攻击给用户带来直接的巨额损失,也让DeFi的声誉遭受损害。通过分析可以看出,区块链技术创新带来了巨大进步和无限可能。DeFi创业者出于竞争需要,将并不成熟的产品推向市场,让黑客有了可乘之机。在发生重大安全事件之后,整个行业就会推出新的措施完善安全机制,所谓魔高一尺道高一丈,以降低再遭攻击的可能。因为风险总是伴随着创新,就像互联网诞生之日起,就有各类安全事件发生,这并没有影响互联网的普及。从这一点看,相信DeFi能够克服这些前进中的问题,为用户不断带来耳目一新的产品和服务。
微信掃描關注公眾號,及時掌握新動向
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表比特範的觀點或立場
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表比特範的觀點或立場