Files
nexus/wiki/concepts/Flash-Loan-Attack.md
2026-05-03 05:42:12 +08:00

68 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "Flash Loan Attack闪电贷攻击"
type: concept
tags: [blockchain, security, defi, flash-loan, attack]
sources: [blockchain-security-auditor]
last_updated: 2026-05-30
---
## Aliases
- Flash Loan Attack
- 闪电贷攻击
- Flash Loan Exploit
## Definition
闪电贷攻击Flash Loan Attack是 DeFi 领域最具破坏力的大规模攻击手段。攻击者在**单笔交易内**借用大量资金(无需抵押),利用这些临时资金操纵市场状态、执行套利或攻击协议,然后在交易结束时归还本金。攻击成本仅为 gas 费用,风险为零。
## Attack Pattern
```
T0: 攻击合约从 Aave/Uniswap 闪电贷 100M DAI
T1: 用借来的 DAI 操纵目标协议的预言机价格
T2: 以操纵后的价格执行有利交易(借款/清算/套利)
T3: 归还闪电贷本金 + 手续费
T4: 剩余利润归攻击者所有
```
## Common Variants
### Oracle Manipulation via Flash Loan
- 通过闪电贷操纵 AMM 储备金,人为扭曲现货价格
- 以虚高抵押率借贷后直接清算协议
- Uniswap V2 现货价格最易操纵V3 TWAP 和 Chainlink 更安全
### Donate-to-Reserves AttackEuler Finance 模式)
- 通过闪电贷操纵内部账户账簿的资产净值
- 在单笔交易内完成 donate → 触发健康度检查 → 清算套利
### Governance Attack via Flash Loan
- 闪电贷借入大量治理代币
- 在快照前买入、投票、快照后卖出
- 2022 年 Rari Capital 被此方式攻击
## Key Characteristics
- **零成本**:借款无需抵押,只付 gas 费
- **单笔交易**:所有操作必须在同一区块内完成
- **EVM 原子性**:交易全成功或全回滚
## Audit Focus
1. 在闪电贷场景下,协议状态是否可以被操纵?
2. 价格/余额/股份计算是否依赖可被操纵的输入?
3. 是否存在仅在极端条件下才成立的"不变性"
4. 闪电贷还款前后的状态一致性是否被验证?
## Defense
- 使用 TWAP 而非现货价格
- 使用 Chainlink 等抗操纵的链下预言机
- 设置最小时间窗口2-3 区块)后才允许清算
- 不变性验证Flash Loan 前后的不变性必须成立)
## Connections
- [[Oracle Manipulation]] ← 主要载体 ← [[Flash Loan Attack]]
- [[Blockchain-Security-Auditor]] ← analyzes ← [[Flash Loan Attack]]
- [[Euler-Finance]] ← victim ← [[Flash Loan Attack]]