--- 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]]