68 lines
2.3 KiB
Markdown
68 lines
2.3 KiB
Markdown
---
|
||
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 Attack(Euler 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]]
|