Skip to content

DeFi 主要协议

本文档深入分析 DeFi 主要协议的技术实现,包括 Swap(Uniswap V2/V3、Curve、Balancer)、Lending(Compound、Aave)、Vault(Lido、Yearn)等。


一、概述

DeFi 主要协议分类(能够产生收益的协议):

类型代表协议
SwapUniswap, Curve, Balancer
LendingAave, Compound
VaultLido, Yearn

二、Swap 协议

2.1 Uniswap V2

Uniswap 本质是自动化做市商(AMM),使用恒定乘积公式确定交易汇率。

核心公式x * y = k

流动性

  • 首次提供流动性:LP = √(amount0 × amount1) - MINIMUM_LIQUIDITY
  • 后续提供流动性:LP = min(amount0 × totalSupply / reserve0, amount1 × totalSupply / reserve1)

MINIMUM_LIQUIDITY 的作用:防止早期流动性参与者刻意抬高流动性单价(首次铸币攻击)。

优缺点

  • ✅ 无需许可的流动性,无外部依赖
  • ❌ 滑点损失,无常损失

2.2 Uniswap V3

V3 核心改进:集中流动性,提高资金利用率。

Tick 和 TickSpacing

  • 将连续价格范围分割为离散价格点
  • 等比价格数列,公比 1.0001:price = 1.0001^tick
  • TickSpacing 决定最小 AMM 范围,每个桶内遵循 x * y = k

手续费等级:0.05%、0.30%、1%

2.3 V2 vs V3 对比

特性V2V3
流动性分布均匀分散在 (0, ∞)集中在指定区间
资金利用率较低较高
价格操纵难度高(需大量资金)低(流动性集中)
手续费计算简单直观与区间位置相关

V2 操纵价格 X 倍需要 √X - 1 倍的 Token;V3 由于流动性分布不均,操纵成本低得多。

2.4 Curve

Curve 采用混合 AMM,结合恒定和与恒定乘积:

曲线特性
恒定积(紫色)任何价格都有流动性,但滑点高
恒定和(红色)低滑点,但容易被抽干流动性
Curve(蓝色)介于两者之间,在宽范围内低滑点
  • A 放大因子:决定函数与常积函数的相似程度
  • D 常量:池里所有币在同一价格时的数量和
  • 利用 DeFi 可组合性提高资本效率(如 cDAI 参与流动性)

2.5 Balancer

Balancer 的可定制性更强:

特性UniswapBalancer
资产数量2最多 8
资产占比50/50可配置任意比例
手续费率固定 0.3%可设置
管理权限有管理员权限

引入协议金库资产管理器,降低 Gas 消耗。

2.6 Swap 小结

  • 无许可流动性,不同协议通过改变公式降低滑点、提高资金利用率
  • 协议改进另一方面降低 Gas
  • 滑点保护是最重要的安全问题(防止夹子攻击/三明治攻击)

三、Lending 协议

3.1 核心概念

  • 超额抵押:抵押 100U 价值资产只能借出 80U
  • 存款人收益来源于借款人支付的利息
  • 如果平台资金都被借出,存款人无法取出

3.2 Compound

cToken 模型:用户存入 Token 获得 cToken,cToken:Token 的兑换率持续增长。

exchangeRate = totalToken / totalShare
// exchangeRate 持续增加 → 用户赎回时获得更多 Token

利率模型:带拐点的可变利率模型

  • 拐点前:线性增长
  • 拐点后:指数级增长
  • 目的:当资金利用率过高时,高借款利率抑制借款需求,高存款利率吸引更多存款

CompV3 新特性

  • 资产分池,每个池独立指定抵押物类型
  • 相同类型抵押物可提高抵押系数,提高资金利用率

COMP 治理

  • 基于 ERC-20 的治理代币,1:1 投票
  • 治理三模块:COMP Token + GovernorAlpha + Timelock
  • 无需锁仓即可投票(通过 checkpoints 记录区块票数)

3.3 Aave

aToken 模型:与底层资产 1:1 锚定。

solidity
function balanceOf(address user) public view returns (uint256) {
    return super.balanceOf(user).rayMul(
        _pool.getReserveNormalizedIncome(_underlyingAsset)
    );
}

内部通过 记账数量 × 兑换比例 计算实际余额。

借款模式

  • 使用 Debt Token 标记债务(StableDebtToken / VariableDebtToken)
  • 稳定利率和浮动利率可相互转换
  • 无期限借款,随时部分/全部还款

Aave V3 新特性

特性说明
E-Mode相同类型资产分组,提高抵押系数至 98%
隔离模式新资产隔离使用,限制债务上限
风险管理存款/借款设置限额

四、Vault 协议

4.1 Lido(流动性质押)

流动性质押解决方案(LST):存入 ETH,1:1 获得 stETH。

graph LR
    A["用户存入 ETH"] --> B["质押池 Vault"]
    B --> C["Operator Node<br/>按 32 ETH 分配"]
    C --> D["ETH POS 质押"]
    E["Oracle 更新"] --> B
  • 降低参与门槛(不需要 32 ETH)
  • 释放流动性(stETH 可参与其他 DeFi)
  • Lido 质押份额约占以太坊总质押量的 31%

4.2 Yearn

用户存入资产获取 yvToken,项目方通过众多策略合约投资其他平台。

  • 自动复利投资
  • 通过 Vault 统一账户获取更高收益
  • 批量操作降低 Gas 成本
  • 资金完全托管,需信任项目方

五、总结

类型特点风险
Swap最广泛,无流动性问题无常损失、滑点
Lending收益稳定,相对安全资金利用率不高,流动性枯竭
Vault收益更高,降低操作门槛完全托管,信任项目方
graph LR
    subgraph "收益与风险"
        A["Lending<br/>低收益 低风险"] --> B["Vault<br/>中收益 中风险"]
        B --> C["Swap LP<br/>高收益 高风险"]
    end