ErfanZohrabi/DeFi_Attacks
GitHub: ErfanZohrabi/DeFi_Attacks
一站式DeFi安全研究框架,基于181起真实攻击事件的统计分析、闪电贷与清算级联模拟及防御机制量化评估。
Stars: 0 | Forks: 0
# ⚡ 利用闪电贷进行的 DeFi 攻击的系统性研究与模拟
## 📋 目录
- [概述](#overview)
- [主要发现](#key-findings)
- [项目结构](#project-structure)
- [组件](#components)
- [快速开始](#getting-started)
- [结果摘要](#results-summary)
- [防御机制](#defense-mechanisms)
- [技术栈](#tech-stack)
- [参考资料](#references)
## 概述
去中心化金融 利用区块链系统的独特属性引入了一类新型的金融攻击:原子可组合性、无抵押闪电贷 以及链上治理。本项目基于总计损失超过 **7500 万美元** 的 181 起真实事件,对这些攻击进行了全面的研究级研究。
该项目涵盖了完整的研究流程:
- **攻击分类** —— 跨越 8 个类别的 DeFi 攻击向量的结构化分类,分析资金需求、原子性、协议依赖性和经济影响。
- **数据集生成与分析** —— 基于 SoK DeFi 攻击研究数据库忠实地建模的合成数据集,对攻击频率、经济损失、攻击者 ROI、利用链复杂性和时间趋势进行统计分析。
- **闪电贷攻击模拟** —— 在不同资金规模下对闪电贷利用进行经济建模,演示盈利能力阈值和最佳攻击规模。
- **清算风险建模** —— 级联模拟,展示在抵押不足的借贷协议中,最初的 10% 价格下跌如何通过反馈循环放大为 42% 以上的市场崩盘。
- **防御机制评估** —— 对六种安全控制措施的定量评估(TWAP 预言机、熔断器、治理时间锁、流动性上限、多预言机聚合、重入保护)。
- **智能合约模拟** —— 基于 Hardhat 的 Solidity 环境,在本地分叉中重现 bZx 风格的闪电贷攻击、价格预言机操纵和级联清算。
整个分析流程作为一个独立的 Jupyter notebook (`DeFi_Attacks_Complete_Project.ipynb`) 提供,旨在 Google Colab 中运行,无需任何设置。
## 主要发现
| 指标 | 数值 |
|---|---|
| 分析的事件总数 | 181 |
| 追踪到的总损失 | $75,000,000 |
| 最常见的攻击类型 | 价格预言机操纵 (19.3%) |
| 闪电贷攻击 prevalence | 占所有攻击的 27.1% |
| 攻击者平均 ROI | 2,074% |
| 闪电贷攻击 ROI | 5,743% (非闪电贷为 712%) |
| 原子交易率 | 55.2% |
| 资金追回率 | 14.9% |
| 级联放大效应 | 10% 价格下跌 → 42% 总跌幅 |
| 平均利用链长度 | 2.6 个协议 (闪电贷攻击为 5.5 个) |
| 平均检测时间 | 12.9 小时 |
## 项目结构
```
defi-attacks-project/
├── DeFi_Attacks_Complete_Project.ipynb # 📓 All-in-one Colab notebook
│
├── data/
│ ├── generate_dataset.py # Dataset generator (181 incidents)
│ └── defi_attacks_dataset.csv # Generated attack data
│
├── analysis/
│ ├── dataset_analysis.py # Statistical analysis engine
│ ├── visualizations.py # Chart generation (7 charts)
│ └── liquidation_risk_model.py # Cascade risk modeling
│
├── simulations/
│ ├── contracts/
│ │ └── FlashLoanAttack.sol # Solidity attack simulation
│ ├── test/
│ │ └── FlashLoanAttack.test.js # Hardhat test scenarios
│ ├── hardhat.config.js
│ └── package.json
│
├── docs/
│ ├── attack_taxonomy.md # Full attack classification
│ ├── results.md # Detailed research findings
│ └── GUIDE.md # Installation & usage guide
│
└── visualizations/ # Generated output charts
├── 01_attack_frequency.png
├── 02_temporal_trends.png
├── 03_loss_distribution.png
├── 04_roi_analysis.png
├── 05_complexity_analysis.png
├── 06_correlation_heatmap.png
└── 07_flash_loan_analysis.png
```
## 组件
### 1. 📊 攻击分类 (`docs/attack_taxonomy.md`)
8 个 DeFi 攻击类别的结构化分类 —— 闪电贷、价格预言机操纵、治理、清算利用、重入、MEV、智能合约逻辑错误和访问控制违规 —— 每个类别都通过技术复杂性、资金需求、检测难度和真实事件案例进行描述。
### 2. 🧮 数据集分析 (`analysis/dataset_analysis.py`)
一个运行七个分析模块的 Python 类 (`DeFiAttackAnalyzer`):
- 按类型和年份划分的攻击频率
- 经济损失细分(平均值、中位数、最大值、按协议)
- 攻击者 ROI 分析(整体和按攻击类别)
- 协议漏洞相关性(交叉表和排名)
- 时间趋势分析(月度、季度、随时间推移的复杂度)
- K-means 聚类为 4 个攻击模式组
- 极端损失/ROI/链长事件的异常检测
### 3. 📈 可视化 (`analysis/visualizations.py`)
七张出版级质量的图表,涵盖攻击频率分布、时间趋势、经济影响、ROI 比较、复杂性热力图、特征相关性以及专门的闪电贷深度剖析。
### 4. ⚡ 闪电贷模拟 (`simulations/`)
Hardhat 测试环境,模拟五种资金规模($10K–$1M)下的闪电贷攻击,演示扣除费用后持续约 10% 的净 ROI。还包括价格操纵模拟,显示在 10,000 ETH 的 DEX 池中进行 5,000 ETH 交换会产生 33% 的价格影响,在单个区块中产生 $50,000+ 的套利。
### 5. 📉 清算风险模型 (`analysis/liquidation_risk_model.py`)
对 1,000 个抵押率在 1.5x–3.0x 之间的合成头寸进行级联模拟:
- **10% 价格下跌** → 42% 总跌幅 (4.2x 放大)
- **20% 价格下跌** → 59% 总跌幅
- **35% 价格下跌** → 65% 总跌幅 (完全清算)
- 表明 Gas 成本(约 $50)导致低于 $1,000 债务的“僵尸头寸”无人清算
### 6. 📓 完整 Notebook (`DeFi_Attacks_Complete_Project.ipynb`)
一个独立的 notebook,端到端运行上述所有内容,包含内联可视化、格式化表格和最终执行摘要报告。预计运行时间:在 Google Colab 上需 3–5 分钟。
## 快速开始
### 选项 A:Google Colab(推荐)
1. 在 [Google Colab](https://colab.research.google.com) 中打开 `DeFi_Attacks_Complete_Project.ipynb`
2. 点击 **Runtime → Run all**
3. 所有输出、图表和报告均内联呈现 —— 无需配置
### 选项 B:本地 Python 环境
```
# 克隆 repository
git clone https://github.com/your-username/defi-attacks-project.git
cd defi-attacks-project
# 安装 Python dependencies
pip install pandas numpy matplotlib seaborn scikit-learn scipy plotly
# 生成 dataset
python data/generate_dataset.py
# 运行 analysis
python analysis/dataset_analysis.py
# 生成 visualizations
python analysis/visualizations.py
# 运行 liquidation risk model
python analysis/liquidation_risk_model.py
```
### 选项 C:智能合约模拟(可选)
需要 Node.js 16+:
```
cd simulations
npm install
npx hardhat compile
npx hardhat test
```
## 结果摘要
### 攻击聚类 (K-Means, k=4)
| 聚类 | 数量 | 平均损失 | 闪电贷使用率 | 平均链长 | 特征 |
|---|---|---|---|---|---|
| 0 – 常见利用 | 142 | $245K | 12.7% | ~2 | 标准合约漏洞 |
| 1 – 超级攻击 | 3 | $11.7M | 0% | ~3 | 高资本、复杂 |
| 2 – 投机性 | 5 | $130K | 低 | ~2 | 临时漏洞利用 |
| 3 – 闪电贷攻击 | 31 | $139K | 100% | 5.5 | 复杂的多协议链 |
### 闪电贷攻击盈利能力
| 闪电贷金额 | 预计利润 | 净 ROI |
|---|---|---|
| $10,000 | $800–$1,200 | ~10% |
| $100,000 | $9,500–$12,000 | ~10% |
| $500,000 | $49,500–$60,000 | ~10% |
| $1,000,000 | $99,500–$120,000 | ~10% |
ROI 保持一致 —— 闪电贷的关键优势不在于利润率,而在于完全消除了资金需求。
## 防御机制
| 机制 | 有效性 | 最适用场景 |
|---|---|---|
| TWAP 预言机 | ⭐⭐⭐⭐⭐ | 所有协议 |
| 抗闪电贷治理 | ⭐⭐⭐⭐⭐ | DAO 治理 |
| 重入保护 | ⭐⭐⭐⭐⭐ | 所有合约 |
| 多预言机聚合 | ⭐⭐⭐⭐ | 高价值协议 |
| 熔断器 | ⭐⭐⭐⭐ | Stablecoins / 衍生品 |
| 流动性上限 | ⭐⭐⭐ | 早期阶段协议 |
## 技术栈
| 工具 | 用途 |
|---|---|
| Python 3.8+ | 核心分析语言 |
| Pandas / NumPy | 数据处理与统计 |
| Matplotlib / Seaborn / Plotly | 可视化 |
| scikit-learn | 聚类、异常检测 |
| SciPy | 统计检验 |
| Solidity | 智能合约模拟 |
| Hardhat | 本地区块链测试环境 |
| Ethers.js | 合约交互 |
| OpenZeppelin | 安全合约库 |
## 参考资料
1. [SoK: DeFi Attacks Dataset](https://github.com/Research-Imperium/SoKDeFiAttacks)
2. [Attacking the DeFi Ecosystem with Flash Loans for Fun and Profit](https://arxiv.org/abs/2003.03810) — arXiv:2003.03810
3. [An Empirical Study of DeFi Liquidations](https://arxiv.org/pdf/2106.06389.pdf) — arXiv:2106.06389
4. 真实事件数据库:181 个案例 (2018–2022)
## 许可证
MIT License
## 作者
MSc Thesis Research Project — DeFi Security
完成时间:2026 年 2 月
# DeFi_Attacks
一个端到端的研究项目,通过统计分析、经济建模、闪电贷模拟和清算级联风险评估,分析了 181 个真实世界的 DeFi 利用案例(2018–2022)—— 作为 DeFi 安全方向的 MSc 论文开发。
标签:CISA项目, DeFi 安全, Hardhat, NoSQL, Python, SoK 研究, Solidity, T1083, T1110, T1190, 代码示例, 以太坊, 价格预言机操纵, 区块链安全, 去中心化金融, 套利攻击, 攻击分类学, 数据分析, 无后门, 智能合约漏洞, 清算风险, 硕士学位论文, 经济模型仿真, 逆向工具, 金融安全研究, 闪电贷攻击, 防御机制