Add files via upload
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
### 在 DeFi 项目中建立了各种各样的经济模型,怎样才能找出可能存在的漏洞
|
||||
|
||||
**1. 深入理解协议设计**
|
||||
|
||||
在审计代码之前,首先要**彻底理解协议的白皮书和经济模型**。你需要问自己一些核心问题:
|
||||
|
||||
- **激励机制**:协议如何激励用户参与?例如,流动性挖矿的奖励是如何计算和分配的?这些激励是否可持续?
|
||||
- **惩罚机制**:当用户行为不符合协议预期时(例如,借贷逾期、清算失败),如何进行惩罚?惩罚是否足够威慑?
|
||||
- **资产关系**:协议中的各种资产(例如,原生代币、LP Token、抵押品)之间是如何互相影响的?它们的价格波动会如何影响彼此的价值?
|
||||
|
||||
仅仅看代码是不够的,很多漏洞是**设计上的缺陷**,而不是简单的编程错误
|
||||
|
||||
**2. 识别常见的经济模型攻击模式**
|
||||
|
||||
以下是一些 DeFi 经济模型中常见的攻击手法,你需要特别关注:
|
||||
|
||||
**a. 闪电贷攻击**
|
||||
|
||||
这是目前最常见且最具破坏力的 DeFi 攻击方式。闪电贷允许攻击者在单笔交易中借入巨额资金,而无需任何抵押。攻击者利用这笔资金,通过操纵价格、进行套利或清算,来攻击协议
|
||||
|
||||
**审计方向:**
|
||||
|
||||
- **价格预言机(Price Oracle)**:检查项目是否依赖单一或不稳定的价格预言机。如果价格来源容易被操纵(例如,只从一个 DEX 获取),那么它就可能成为攻击的弱点
|
||||
- **交易顺序依赖(MEV)**:检查是否存在利用交易顺序进行套利或攻击的可能性
|
||||
- **清算机制**:如果清算依赖于链上预言机,攻击者可能会在清算时机到来前,通过闪电贷操纵价格,导致清算失败或以不公平的价格进行清算
|
||||
|
||||
**b. 预言机操纵**
|
||||
|
||||
如果协议使用链上数据源作为价格预言机(例如,从 Uniswap 获取),攻击者可以利用闪电贷注入大量资金,暂时性地抬高或压低价格,从而实现套利或攻击
|
||||
|
||||
**审计方向:**
|
||||
|
||||
- **价格来源**:优先使用去中心化、多源聚合的预言机,例如 **Chainlink**
|
||||
- **时间加权平均价(TWAP)**:检查是否使用了 TWAP 等机制来平滑价格波动,降低被闪电贷瞬间操纵的风险
|
||||
|
||||
**c. 抵押品操纵**
|
||||
|
||||
一些借贷协议允许用户使用项目自身的治理代币作为抵押品。如果代币价格下跌,可能导致抵押品价值不足。更糟糕的是,攻击者可能会通过做空或其他方式,故意压低代币价格来清算其他用户的头寸
|
||||
|
||||
**审计方向:**
|
||||
|
||||
- **抵押品类型**:检查是否允许使用高波动性或流动性差的资产作为抵押品
|
||||
- **清算阈值**:清算阈值(Liquidation Threshold)的设置是否合理?是否存在“死亡螺旋”的风险,即代币价格下跌导致大量清算,清算又进一步压低价格?
|
||||
|
||||
**d. 无限制铸币**
|
||||
|
||||
如果协议代币的铸造没有受到严格限制,攻击者可能会通过某种方式(例如,利用代码漏洞或经济模型中的套利机会)无限铸造代币,导致代币供应量剧增,价值归零
|
||||
|
||||
**审计方向:**
|
||||
|
||||
- **铸币函数**:重点审计所有 `mint`、`create` 或类似的代币生成函数
|
||||
- **权限控制**:谁有权调用这些铸币函数?是否有多重签名或时间锁来保护?
|
||||
|
||||
**3. 系统化的审计流程**
|
||||
|
||||
要找到这些漏洞,需要一个结构化的审计流程:
|
||||
|
||||
1. **代码审计**:使用自动化工具(如 Slither、Mythril)进行初步扫描,然后进行手动代码审查,特别关注 `transfer`、`call` 等外部调用
|
||||
2. **经济模型模拟**:建立一个模型,模拟不同市场条件(例如,价格剧烈波动、流动性枯竭)和攻击场景下的协议行为
|
||||
3. **单元测试与模糊测试**:编写大量的测试用例,涵盖所有可能的极端情况和用户行为。使用模糊测试工具(Fuzzing)输入异常数据,观察合约行为
|
||||
4. **激励机制博弈分析**:将自己置于“攻击者”的角色,思考如何利用协议的激励机制来获取不正当收益。例如,能否通过一个闪电贷,先进行套利,再归还贷款?
|
||||
|
||||
总而言之,审计一个 DeFi 项目的经济模型漏洞,远比单纯的代码审计复杂。它需要对**区块链机制、智能合约、博弈论和金融市场**有深刻的理解
|
||||
Reference in New Issue
Block a user