Cointime

扫码下载App
iOS & Android

闪电贷攻击的风险与预防

作者:Roman Palamarchuk 编译:CoinTime 237


闪电贷已成为去中心化金融(DeFi)生态系统中越来越受欢迎的功能,它为个人和企业提供了无需抵押即可快速获得大量资本的途径。使用闪电贷,借款人可以在单个交易块结束时立即将资金归还给借贷平台。

然而,这些贷款的便捷性也导致闪电贷攻击增加,这是一种恶意行为,黑客可以利用闪电贷提供的临时流动性操纵价格或窃取资金。这些攻击对个人和DeFi平台都会造成灾难性后果,导致数百万美元的损失。

在本文中,我们将探讨与闪电贷攻击相关的风险,并提供开发人员和企业家可以采取的可操作步骤,以保护自己和其用户。我们将研究闪电贷攻击的真实案例,并讨论如何通过改进安全措施和最佳实践来防止这些攻击。

闪电贷攻击如何进行?

闪电贷攻击依靠闪电贷提供的临时流动性来操纵加密货币的价格,利用DeFi智能合约的漏洞或从协议中窃取资金。

要执行闪电贷攻击,攻击者通常会按照以下三个步骤进行:

1. 借款:攻击者从一个DeFi平台获得闪电贷,并在不提供任何抵押品的情况下借出大量加密货币。

2. 操纵:使用借来的资金,攻击者操纵目标加密货币的价格或利用DeFi智能合约中的漏洞。

3. 偿还:攻击者通常会在同一交易块内偿还闪电贷,并将借来的资金归还给借贷平台。

闪电贷攻击成功的关键是能够在同一交易块内偿还贷款。这使得攻击者能够利用临时流动性而无需提供任何抵押品,就使得借贷平台难以防范这些类型的攻击。

简单的闪电贷示例

假设攻击者想要利用DeFi智能合约中的漏洞来窃取资金。攻击者首先从借贷平台获得了1000 ETH(约价值180万美元),以闪电贷的方式进行借款。然后,攻击者使用500 ETH购买一种在一个交易所被低估,而在另一个交易所被高估的加密货币。

例如,假设加密货币XYZ在交易所A上被低估,以1 ETH = 10 XYZ的价格交易,在交易所B上被高估,以1 ETH = 12 XYZ的价格交易。攻击者使用500 ETH在交易所A上购买了5000个被低估的XYZ,然后立即在交易所B上以高估的价格卖出这5000个XYZ,获得600个ETH。

现在,攻击者拥有了1100个ETH:原始的500个ETH加上套利交易的600个ETH利润。攻击者偿还了1000个ETH的闪电贷款,加上任何费用和利息,并保留了剩下的100个ETH利润。

这是闪电贷套利攻击的一个例子。这种攻击利用不同交易所之间的价格差异来产生利润。套利本身并不具有恶意性;许多交易者使用闪电贷进行合法目的。但是,当用来通过加剧DeFi智能合约中的漏洞来窃取协议中的资金时,就变得具有恶意性。

闪电贷攻击类型

现实中的闪电贷攻击可能采取许多不同的形式,具体取决于所使用的特定漏洞或操纵策略。

1、价格操纵:攻击者可以利用闪电贷款通过人为膨胀或压低其价值来操纵加密货币的价格。这可能会导致基于操纵价格下单的交易者遭受重大损失。

2、套利:攻击者可以利用闪电贷来执行套利交易,利用分离的去中心化交易所(DEX)之间的价格差异。虽然这种攻击本身并不一定具有恶意性,但它仍可能导致合法交易者遭受损失。

3、智能合约漏洞:攻击者可以利用闪电贷来利用DeFi智能合约中的漏洞,例如重入漏洞或整数溢出错误。这可以使他们窃取协议中的资金或执行其他攻击。

需要强调的是,在大多数情况下,闪电贷本身不是漏洞。但是攻击者利用它们快速获取大量资金,可能会对系统造成重大影响。

闪电贷攻击的真实案例

Euler Finance: 1.97亿美元 (2023年3月)

这是最近且规模最大的黑客攻击之一,黑客利用平台内部计算率的错误进行攻击。

漏洞解释: Euler Finance平台用户使用两种主要类型的代币进行借贷:eToken(代表抵押品)和dToken(代表债务)。黑客利用平台 eToken 函数的一个漏洞,导致被借资产转换为抵押资产时出现错误。黑客涉及了两个主要的链上实体:一个前置机器人和他们的私人钱包。他们获得了 Tornado Cash 的初始资金,用于支付Gas费和创建必要的合约。

攻击解释: 黑客从 DeFi 协议 Aave 中借取了约3000万美元的 DAI 作为闪电贷。他们将2000万美元的 DAI 存入Euler Finance平台,并获得类似金额的 eDAI 代币。通过利用平台的借贷能力,黑客借入了原始存放数量的10倍。他们使用剩余的1000万美元的 DAI 来偿还部分债务,并继续借款,直到闪电贷关闭。

结论:由于攻击,Euler Finance在 DAI、wBTC、stETH 和 USDC 中损失了约1.97亿美元的加密货币。Euler Finance的原生代币 EUL 也经历了超过45%的下降。

PS:攻击发生后不久,黑客将资金归还给了平台。

Cream Finance: 1.3亿美元 (2021年10月)

2021年10月,Cream Finance遭遇史上最大的 DeFi 黑客攻击之一,损失超过1.3亿美元。

漏洞解释: 此次攻击利用的漏洞与 CREAM 的 yUSDVault 相关。攻击者的目标是铸造大量 crYUSD 代币,并利用储藏库中的漏洞使这些股份的估值翻倍。

攻击解释: 在攻击期间,两个账户从 MakerDAO 和 AAVE 中借出闪电贷款。MakerDAO 中的 DAI 存入 Curve 的 yPool 中,创建 yDAI,用于铸造 yUSD。AAVE 中的 ETH 作为抵押品,借入更多的 yUSD。第二个地址向第一个地址转移了价值约5亿美元的 yUSDVault 代币。

重复执行此过程多次,第一个地址积累了大约150亿美元的 crYUSD,并且在 yUSDVault 中积累了大约5亿美元。攻击者赎回了5亿美元的 yUSDVault 代币以获取更多的 yUSD,将 yUSDVault 的总供应量减少到约800万美元。随后,攻击者向 yUSDVault 存入约800万美元的 yUSD,有效地使其总价值翻倍。

通过对 yUSDVault 代币实施的 PriceOracleProxy 确定其价值,该代币的总价值被除以 yUSDVault 代币的总供应量。通过将 yUSDVault 总供应量减少到约800万美元并将约800万美元的 yUSD 存入储藏库中,攻击者实际上将 yUSDVault 股份(crYUSD)的估值翻倍。

结论:第一个攻击地址拥有约150亿美元的 crYUSD,而储藏库现在将其估值为约300亿美元。攻击者使用20亿美元和之前提取的5亿美元来偿还他们的闪电贷。剩余的10亿美元的 crYUSD 允许攻击者从Cream Finance的可用资产中提取13亿美元。

bZx: 100万美元 (2021年11月)

这次黑客攻击非常复杂,涉及两种不同的攻击方式。在针对第一个漏洞后,黑客迅速采用了另一种方法执行第二次攻击。

漏洞解释: 第一次攻击中的核心漏洞是 bZx 对于价格确定性的单一 Oracle 的依赖,导致黑客利用闪电贷款来操纵抵押物池。在第二次攻击中,漏洞是 bZx 使用 Uniswap 现货价格作为 Oracle,该价格被操纵以增加抵押品的价值。

攻击解释: 在第一次攻击中,黑客通过闪电贷借取了1000万美元的 ETH,并使用它来操纵抵押品池,同时以5倍的杠杆空头持有 ETH-wBTC 交易对,导致大幅滑点。在第二次攻击中,黑客使用闪电贷将 Uniswap Synthetix USD 价格上涨到2美元,然后将 sUSD 存入 bZx 作为抵押品,比他们本应被允许借入的更多数量 ETH。

结论: 这些对 bZx 的攻击揭示了平台的漏洞,特别是对单一 Oracle 的依赖和其抵押物池易受操纵。这些攻击导致超过98.5万美元的损失,强调了需要强大的安全措施以及使用多个受信任的 Oracle 进行价格确定性的重要性。

如何预防闪电贷攻击?

考虑到前面的案例,我们可以列出保护自己免受闪电贷款攻击的关键方法清单:

1、使用再入防护来防止意外的合同调用。使用适当的访问控制机制,例如 OpenZeppelin 的 Ownable,限制关键功能的使用。使用经过充分测试的库和框架,例如 OpenZeppelin 用于合同开发。

2、由于这些攻击源自外部智能合约,因此有必要验证允许使用闪电贷功能的地址。确保外部合同调用是真实且安全的,并限制互动仅限于受信任的合同。

3、彻底的第三方智能合约审计和验证始终是有价值的安全措施。进行全面的测试以识别潜在漏洞,并与知名的审计公司合作审查您的合同。

4、利用各种 Oracle 获取最精确和安全的价格信息,考虑某些 Oracle 可能会受到攻击。实施时间加权平均价格机制(TWAP)以最小化与价格操纵相关的风险。

5、定期审查并了解 DeFi 的安全最佳实践和漏洞报告。

最后的想法

闪电贷攻击对 DeFi 协议构成重大威胁,因为它们可以让攻击者利用智能合约中的漏洞,从而获取巨额资金。尽管 DeFi 协议在过去几年中已经取得了长足的进步,但这些攻击证明了 DeFi 仍然存在严重的安全风险。

为了保护自己免受闪电贷攻击,用户和开发人员需要采取适当的安全措施和最佳实践,例如使用再入防护、访问控制机制、经过充分测试的库和框架以及第三方智能合约审计和验证。

此外,定期审查和了解 DeFi 的安全最佳实践和漏洞报告也是非常重要的。虽然没有绝对安全的系统,但采取适当的措施可以最大限度地减少攻击成功的可能性,并帮助保护用户和协议的资产安全。

评论

所有评论

推荐阅读

  • BTC跌破75000美元

    行情显示,BTC跌破75000美元,现报74988美元,24小时跌幅达到3.19%,行情波动较大,请做好风险控制。

  • Michael Saylor:Strategy 或在2026 年前出售部分比特币

    据Strategy董事长Michael Saylor 表示,公司不太可能完全不卖出比特币,或将在2026年底前出售部分BTC,并动态管理美元现金储备,以实现每股比特币数量最大化目标。截至目前,Strategy持有约84.38万枚BTC,总价值约650亿美元,平均买入成本约为7.57万美元。当前比特币价格约为7.6万美元,接近其整体持仓成本线。

  • 知情人士:美筹备对伊朗发动新一轮军事打击 但仍未最终决定

    5月23日讯,据知情人士透露,尽管外交努力仍在持续,特朗普政府当日仍在筹备对伊朗发动新一轮军事打击。截至当日下午,关于是否发动打击尚未有最终决定。特朗普在社交媒体发文称,受“与政府事务相关的特殊情况��影响,他将无法出席本周末儿子小唐纳德·特朗普的婚礼。他此前原计划在“阵亡将士纪念日”周末前往其位于新泽西州的私人高尔夫球场度假,但现已决定返回白宫。据多位消息人士透露,鉴于可能发生军事打击,美国军方和情报界的部分人员已取消了原定的“阵亡将士纪念日”周末休假计划。国防和情报官员已开始更新美国海外军事基地的紧急召回名册。与此同时,驻扎在中东的部分美军部队正分批轮换撤离战区。(央视新闻)

  • 新任美联储主席沃什:将领导一个以改革为导向的美联储

    5月23日,第17任美联储主席沃什于周五在白宫宣誓就职。沃什表示: “美联储的使命是促进物价稳定和充分就业。”他说,“当以智慧和清晰的思路、独立和坚定的决心去追求这些目标时,通胀可以降低,经济增长可以更强劲,实际到手工资可以更高,美国可以更加繁荣,而且同样重要的是,美国在世界上的地位也会更加稳固。”他补充说:“为了完成这项使命,我将领导一个以改革为导向的美联储,从过去的成功和错误中吸取教训,既要摆脱静态的框架和模式,又要坚持明确的诚信和绩效���准。”

  • 美国新版战略比特币储备法案取消“100万枚BTC”购买目标,已持有BTC拟锁定20年

    5月23日,美国众议院提出新版两党法案《American Reserve Modernization Act of 2026》(ARMA),拟将美国政府持有的比特币纳入战略储备,并要求至少锁定 20 年。与此前提出的 BITCOIN Act 不同,新法案不再要求美国政府购买 100 万枚 BTC,而是主要将通过刑事和民事没收等方式已持有或未来获得的比特币纳入储备。 同时,法案还将设立独立的数字资产库存,用于管理联邦政府持有的非比特币加密资产。根据草案,进入战略储备的比特币在 20 年内不得出售、交换、拍卖、抵押或以其他方式处置。锁定期结束后,财政部长可建议在任意两年内出售最多 10% 的储备资产。法案还要求政府按季度公开储备证明,并对比特币持仓进行第三方审计。支持者认为,美国不应出售战略性数字资产,而应将其作为现代化国家储备体系的一部分长期持有。

  • 美SEC推迟开放代币化股票交易

    5月23日,据彭博社,由于面临监管担忧及外界反对,美国 SEC 已推迟允许代币化股票交易的相关计划。报道称,SEC 目前正重新评估相关风险及市场影响。

  • BTC跌破76000美元

    行情显示,BTC跌破76000美元,现报75997.97美元,24小时跌幅达到2.28%,行情波动较大,请做好风险控制。

  • 交易员已完全预期到2026年底美联储将加息25个基点

    5月22日,市场定价显示,交易员已完全预期到2026年底美联储将加息25个基点。消息面上,美联储理事沃勒表示,美联储不应再释放降息信号,短时间内应按兵不动。

  • 现货黄金、纽约期金双双失守4500美元

    5月22日,现货黄金、纽约期金双双失守4500美元/盎司,日内跌0.94%。交易员完全定价美联储截至2026年底将加息25个基点。