闪电贷攻击频发 黑客「空手套」DeFi
半个月内,发生在defi协议上的闪电贷攻击一起接着一起,闪电贷成了黑客借来生「金蛋」的鸡。
进入11月,Value DeFi、起源协议Origin Protocol、Akropolis和Cheese Bank都遭到了闪电贷攻击,总损失额超过1000万美元。
Value DeFi的前身是被称为「五姨夫」的YFV,它的损失超过540万美元,这还是黑客「归还」了200万美元后的结果。颇有戏剧性的是,在被攻击前一天,该团队曾公开表示Value是最安全的DeFi项目,随后便被黑客「光顾」。
成都链安解释,「闪电贷攻击」指利用闪电贷和其他漏洞结合后,进行套利和操纵价格等攻击。「闪电贷本身不是漏洞,不过作恶者可以利用它,以极低的成本撬动巨量资金,在多个协议间进行价格操纵或套利。」
区块链开发者小岛美奈子认为,黑客能轻易操纵价格的原因是DeFi协议没有采用安全的预言机策略,即当预言机传达数据失真时,攻击便极易发生。另有行业人士点出本质,DeFi协议在实现本身的功能时,采用单一市场价格反馈的设计极其危险。
「因为是新的事物,很多项目在设计时并未充分考虑到这方面风险。」成都链安提示,项目方在业务逻辑设计时,应当考虑这类极端情况,必要时应找专业的审计机构审计。
4天内两DeFi协议遭「闪电贷攻击」
11月17日,起源协议Origin Protocol的稳定币OUSD遭闪电贷攻击,价格最低跌至0.13美元。此次攻击使得Origin Protocol共计损失了225万美元的DAI和100万美元的ETH。
就在这起安全事故的3天前,DeFi协议Value DeFi也被黑客「光顾」,里面也涉及到闪电贷这一工具。
11月14日23点36分, Value DeFi 的 MultiStables机枪池遭受黑客攻击,损失将近740 万美金的 DAI。此前,Value DeFi曾在社交平台宣布自己是最安全的DeFi,结果立马被打脸。黑客在完成攻击后还返还了200万美元,并以「do you really know flashloan(闪电贷)」的提问发出嘲讽。
Value DeFi的MultiStables机枪池正常页面
闪电贷似乎成了黑客近来最得心应手的工具。今年以来,多起DeFi的安全事故都被安全机构指出利用了「闪电贷攻击」,受害项目方包括bZx、Balaner、Havest、Akropolis、Cheese Bank等,以及最近的Value DeFi和Origin Protocol。
「开发者还没有了解以太坊的特性,」区块链开发者小岛美奈子认为,频频发生闪电贷攻击是因为项目开发者对此缺乏了解。
闪电贷是什么?利用它的攻击到底是怎么发生的?
Jeff是区块链安全公司 PeckShied 硅谷研发中心负责人,他对蜂巢财经介绍,区块链上的闪电贷是一种「不需要抵押就可以借贷」的贷款方式,但贷方必须在同一区块内还贷,否则这个交易就会失败。所以闪电贷对借款平台来说基本是零成本、零风险。而黑客就可以利用这样的贷款方式,以很小的成本借出大笔资金,然后用这笔资金去造成一些数字资产的价格波动,再从中渔利。
根据安全机构的梳理,我们可以清楚地从Value DeFi的这起攻击中,看到闪电贷攻击的运作方式。
当晚,黑客先通过 Aave 的闪电贷功能借来8万枚 ETH,紧接着通过UniswapV2上的闪电贷借来 1.16亿枚 DAI。借来大把钱后,黑客开始在Curve和Value DeFi上操纵价格进行套利。
选择这两个协议,黑客是利用了它们之间的关联——Curve上有USDC的兑换池,要想在Value DeFi合成资产3CRV,也需要用到USDC。
在Curve上,黑客主要是用闪电贷借来的钱抬高USDC的价格,一度让这个美元稳定币脱锚上涨至1.788美元。而在Value DeFi上,黑客将一部分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万美元。
简单来说,整个过程中,闪电贷本身正常运行,但黑客先后利用Aave、UniswapV2的闪电贷功能借出一大笔钱,再通过Curve操纵USDC的价格,影响Value DeFi的功能,铸币套利。
预言机策略失当是风险源头
从Value DeFi的失窃案例看,它被攻击主要是由于预言机出了问题。实际上,被攻击时只是Curve上的USDC价格出现了短暂偏差,其他市场的USDC价格并没变。但由于Value DeFi采用的是Curve现货价格作为预言机,才导致了套利空间的出现。
小岛美奈子认为,防范闪电贷攻击,需要协议开发者使用安全的预言机(Oracle)策略。但怎样才算得上是安全的预言机策略?这正是目前开发者需要持续探索的难题。
由于闪电贷攻击频频发生,这个功能被一些人贴上了黑标签。有人认为,闪电贷是危险的工具;还有人觉得,它只是让协议的漏洞更早暴露出来,对协议的安全提升有益。
Chainlink 的CMO Adelyn Zhou便是带着发展的眼光来看待闪电贷的两面性。他认为,闪电贷的新奇之处在于,它可以让世界上任何一个人短暂地成为资金充裕的交易者,当然,这也让这个人具备了突然操纵市场的可能性。但本质上,「闪电贷攻击」这个词并没有抓住问题的全部。闪电贷本身不是漏洞,它只是揭示了DeFi存在已久的系统性风险。
Adelyn Zhou与小岛美奈子的观点一致,即闪电贷攻击往往只是对价格预言机的攻击,「DeFi生态系统中真正的系统性风险是围绕着中心化的Oracle,而不是闪电贷。」因此,Adelyn Zhou认为,「闪电贷攻击」这种说法分散了关注点,一些拥有数亿美元TVL(锁仓量)的DeFi协议仍然依赖于单一交易所的价格反馈Oracle,这才是导致价格容易被操纵的根源。
这其实与一些中心化交易所合约市场被操纵的情况类似。
去年5月,Bitstamp交易所BTC现货价格闪崩,导致合约交易平台Bitmex短时爆仓2万个比特币,时值1.5亿美元。这是因为,Bitmex的BTC合约指数成分中采用了Bitstamp的BTC现货价格,且权重达50%。而在OKEx的合约指数成分中,采用了4个以上的交易所现货价格,且权重分散,因此受到的影响较小。
这或许能给予DeFi开发者们一些启示——要在价格预言机这一源头上下功夫,才能避免因预言机传达失真数据而带来的价格操纵风险。
Jeff则提供了另一种预防方案,他介绍,根据闪电贷的特性,借贷和取款都要在一个区块内完成,所以对DeFi协议开发方来说,更稳妥的设计是不允许在同一个区块内存款和取款,这样试图利用闪电贷的黑客便无计可施。
作为一种新的、不存在于传统金融世界的借贷模式,闪电贷通过区块链被创造,颇有创新意义,但它不应成为黑客的帮凶。DeFi协议开发者理应在频频发生的「闪电贷攻击」中吸取教训。成都链安提示,项目方在业务逻辑设计时,应当考虑这类极端情况。如果对此不了解,应找专业的审计机构进行审计和研究,防范各种可能的风险。
Scan QR code with WeChat