DeFi(Decentralized Finance)是区块链最成功的应用领域之一,它使用智能合约重建了传统金融体系的核心功能:交易、借贷、衍生品、资产管理。本文将深入解析 DEX 的 AMM 数学原理、借贷协议的风险模型以及闪电贷的创新机制。
一、DEX 与自动做市商(AMM)
传统订单簿 vs AMM
| 特性 | 中心化交易所(订单簿) | DEX(AMM) |
|---|---|---|
| 流动性来源 | 做市商挂单 | 流动性提供者(LP)资金池 |
| 交易对手 | 买方 ↔ 卖方 | 交易者 ↔ 资金池 |
| 价格发现 | 买卖订单撮合 | 数学公式自动定价 |
| MEV 风险 | 低(中心化撮合) | 高(公开内存池) |
恒定乘积公式(Uniswap v2)
$$ x \times y = k $$
其中:
- $x$ = 资金池中 Token A 的储备量
- $y$ = 资金池中 Token B 的储备量
- $k$ = 常数(仅在添加/移除流动性时变化)
初始池:100 ETH + 200,000 USDC
常数 k = 100 × 200,000 = 20,000,000
用户想用 1 ETH 换 USDC:
新 x' = 100 + 1 = 101
新 y' = k / x' = 20,000,000 / 101 = 198,019.80
获得 USDC = 200,000 - 198,019.80 = 1,980.20
实际价格 = 1,980.20 USDC/ETH(含 0.3% 手续费)
滑点与价格影响
大额交易会导致显著的价格滑移:
$$ \text{滑点} = \frac{\Delta x}{x + \Delta x} \times 100% $$
| 交易规模(占池比例) | 有效价格影响 |
|---|---|
| 0.1% | ~0.1% |
| 1% | ~1% |
| 5% | ~5.3% |
| 10% | ~11.1% |
⚠️ 大额交易应拆分多笔或使用聚合器(1inch、Matcha)跨多池路由。
无常损失(Impermanent Loss)
LP 面临的核心风险:当两种代币价格比率变化时,相对于单纯持有(HODL)会产生损失。
$$ IL = \frac{2\sqrt{p}}{1 + p} - 1 $$
其中 $p$ 为价格比率变化(新价格 / 初始价格)。
| 价格变化倍数 | 无常损失 |
|---|---|
| 1.25x | 0.6% |
| 1.5x | 2.0% |
| 2x | 5.7% |
| 5x | 25.5% |
💡 只有当价格波动恢复到初始比率时,“损失"才会消失,因此称为"无常”。但若价格持续偏离,损失将变为永久。
二、Uniswap v3:集中流动性与资本效率
v2 的问题:资金利用率低
在 v2 的 $x \times y = k$ 模型中,流动性均匀分布在 $(0, \infty)$ 价格区间。绝大多数时间在远离当前价格的区域闲置。
v3 的核心创新
Uniswap v3 流动性区间示意:
价格
▲
│ ╭──────╮
│ ╱ 活跃 ╲ ← LP 在此区间提供流动性
│ ╱ 流动性 ╲
│ ╱ ╲
├╱──────────────╲───
│ ╲
│ ╲ ← 此区间无流动性(资本闲置)
│
└──────────────────►
价格区间 [a, b]
LP 可以自定义价格区间 $[P_a, P_b]$,仅在该区间内有效。这带来了:
- 资本效率提升:最高可达 4000x
- 多费率层级:0.05%(稳定币)、0.3%(主流币对)、1%(长尾资产)
- LP 头寸变为 NFT(可转让、可组合)
集中流动性的数学
v3 在每个区间内采用与 v2 相同的恒定乘积公式,但通过虚拟储备量实现:
$$ (x + L/\sqrt{P_b}) \times (y + L\sqrt{P_a}) = L^2 $$
其中 $L$ 为流动性单位,$P_a$、$P_b$ 为价格区间边界。
三、借贷协议:Aave 与 Compound
资金池模型
┌─────────────────────────────────────────┐
│ Aave 资金池 │
│ │
│ 存款方 池 借款方 │
│ ETH ──► ┌─────────┐ ──► ETH + 利息 │
│ USDC ──► │ 智能合约 │ ──► USDC + 利息│
│ WBTC ──► └─────────┘ ──► WBTC + 利息 │
│ (超额抵押) │
│ 获得 aToken 需支付利息 │
│ (生息代币) │
└─────────────────────────────────────────┘
超额抵押与清算机制
用户必须存入价值高于借款的抵押品:
$$ \text{健康因子} = \frac{\sum (\text{抵押品价值} \times \text{清算阈值})}{\text{总借款价值}} $$
- 健康因子 > 1:安全
- 健康因子 < 1:可被清算
清算流程:
- 抵押品价格下跌导致健康因子 < 1
- 清算-bot 触发
liquidationCall() - 清算人偿还部分债务,获得抵押品 + 5-10% 清算奖励
利率模型
借贷利率根据资金利用率 $U$ 动态调整:
$$ U = \frac{\text{已借出}}{\text{总存款}} $$
利率曲线:
利率 ▲
│ ╱
│ ╱
│ ╱ ← 高利用率时利率快速上涨
│ ╱
│ ╱
│ ╱ U_optimal
│ ╱
│ ╱
│ ╱
│╱
└─────────────────► 利用率 U
0% 100%
| 利用率 | 借款利率(示例) | 目的 |
|---|---|---|
| 0% | 0% | 吸引存款 |
| 50% | 4% | 均衡状态 |
| 90% | 15% | 鼓励还款 |
| 95%+ | 50%+ | 紧急抑制借款 |
四、闪电贷(Flash Loan)
零抵押借款的魔法
闪电贷允许用户在同一个交易原子内借款并偿还,无需抵押品。如果最终未还清,整个交易回滚。
闪电贷交易结构(原子操作):
[ 开始交易 ]
│
▼
[ 借入 10,000 ETH ]
│
▼
[ 外部操作 ]
├─ 在 DEX A 用 ETH 买 Token
├─ 在 DEX B 用 Token 卖 ETH(套利)
├─ 或:清算 Aave 头寸获取奖励
└─ ...任何操作...
│
▼
[ 偿还 10,000 ETH + 0.09% 手续费 ]
│
▼
[ 结束交易 ] ← 全部成功或全部回滚
闪电贷手续费
| 平台 | 手续费 | 单笔最大额度 |
|---|---|---|
| Aave v3 | 0.09% | 单个池的全部流动性 |
| Balancer | 0% | 单个池的全部流动性 |
| Uniswap v3 | 0 (通过闪电互换) | N/A |
| dYdX | 2 Wei(极小) | 2 倍保证金池余额 |
闪电贷攻击与防御
闪电贷放大了攻击者的资本能力:
- 价格预言机操纵:借入大量资金在 DEX 上操纵价格 → 在借贷协议中获利
- 治理攻击:借入大量治理代币 → 通过恶意提案 → 获利并还款
防御措施:
- 使用 Chainlink 等去中心化预言机(抗操纵)
- TWAP(时间加权平均价格)替代即时价格
- 治理代币的锁仓机制(veToken)
- 闪电贷锁:在同一交易内禁止某些关键操作
五、Yield Farming 与流动性挖矿
基本原理
用户提供流动性获得三重收益:
- 交易手续费分成(AMM 池)
- 借贷利息(借贷协议)
- 平台代币奖励(如 UNI、AAVE、CRV)
收益计算
总年化收益 (APY) =
手续费 APY + 代币激励 APY + 借贷利息 APY
实际收益 = APY - 无常损失 - Gas 成本 - 合约风险
风险警示
| 风险 | 描述 |
|---|---|
| 无常损失 | 币价偏离导致 LP 价值低于 HODL |
| 智能合约漏洞 | 协议被黑客攻击(历史损失超 $30 亿) |
| 治理风险 | 代币持有者可修改协议参数 |
| 流动性风险 | 池子深度不足导致大额滑点 |
| 预言机操纵 | 价格源被攻击导致错误清算 |
六、本章小结
DeFi 协议通过数学公式和博弈设计,在没有中心化中介的情况下实现了交易、借贷等核心金融功能。AMM 的恒定乘积公式虽然简单,却支撑了数百亿美元的交易量;Aave 的超额抵押和清算机制保障了借贷协议的安全;闪电贷则展示了"原子性"如何创造全新的金融原语。参与 DeFi 时,必须充分理解无常损失、清算机制和智能合约风险,将安全性置于收益之上。
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。