Uniswap
概述
Uniswap 是以太坊上最成功的去中心化交易所(DEX)之一,它通过创新的自动做市商(AMM)机制彻底改变了加密货币交易的方式。Uniswap 由 Hayden Adams 于 2018 年创建,最初是一个简单的概念验证项目,基于以太坊创始人 Vitalik Buterin 提出的自动做市商概念。
版本演进
Uniswap 从 v1 到 v4 经历了多次重大升级,每个版本都带来了重要的创新和改进:
Uniswap v1 (2018 年 11 月)
Uniswap v1 是第一个实现自动做市商(AMM)机制的 DEX,它引入了以下关键特性:
- 恒定乘积公式:使用\(x \cdot y = k\)公式,其中\(x\)和\(y\)是交易对中两种资产的储备量,\(k\)是一个常数。
- ETH 作为基础资产:每个交易对都必须包含 ETH 作为基础资产。
- 简单的流动性提供机制:流动性提供者(LP)需要提供等值的两种资产。
- 0.3%的交易费用:所有交易费用都分配给流动性提供者。
v1 的主要局限性是只能与 ETH 创建交易对,这限制了其灵活性和流动性。
Uniswap v2 (2020 年 5 月)
Uniswap v2 解决了 v1 的许多局限性,引入了以下创新:
- 任意 ERC20 代币对:支持创建任意 ERC20 代币之间的交易对,不再需要 ETH 作为基础资产。
- 价格预言机:引入了强化的价格预言机,通过在每个区块开始时累积价格数据,使其他合约能够估算任意时间间隔内的时间加权平均价格(TWAP)。
- 闪电兑换:允许用户在同一笔交易中先接收资产,使用它们,然后再支付或归还,为套利和复杂交易策略提供便利。
- 协议费用:引入了可选的 0.05%协议费用,可以发送到指定的地址。
v2 的智能合约架构包括:
- 工厂合约:负责创建和管理交易对合约。
- 交易对合约:存储流动性提供者的资金,执行交易逻辑。
- 路由器合约:提供用户友好的接口,计算交易或存款金额,并将资金转移到交易对合约。
Uniswap v3 (2021 年 5 月)
Uniswap v3 带来了革命性的改进,大幅提高了资本效率:
- 集中流动性:允许流动性提供者将资金集中在特定价格范围内,而不是均匀分布在整个价格曲线上。
- 多费率等级:引入了多个费率等级(0.05%、0.30%和 1%),允许 LP 根据资产对的波动性选择适当的费率。
- 改进的价格预言机:进一步改进了价格预言机,使其更加精确和高效。
- 非 ERC20 代币支持:增加了对非 ERC20 代币的支持,如 ETH 和 WETH。
v3 的核心创新是集中流动性,它通过以下方式实现:
- LP 可以选择提供流动性的价格范围。
- 流动性只在选定的价格范围内有效。
- 当价格超出范围时,流动性会转换为单一资产,直到价格回到范围内。
这种机制大大提高了资本效率,使 LP 能够获得更高的费用收入,但也增加了无常损失的风险。
Uniswap v4 (2023 年 6 月)
Uniswap v4 是最新版本,引入了多项突破性创新:
- 钩子(Hooks):允许开发者在流动性池的生命周期中的特定点执行自定义代码,为 AMM 提供了前所未有的可扩展性。
- 单例池(Singleton Pool):所有池都存储在一个合约中,而不是每个交易对一个合约,这大大降低了部署和交互成本。
- 动态费用:支持基于市场条件的动态费用调整。
- 改进的闪电贷:提供了更灵活和高效的闪电贷机制。
- 自定义 AMM 曲线:允许创建自定义的 AMM 曲线,而不仅限于恒定乘积公式。
v4 的钩子系统是其最显著的创新,它允许在以下关键时刻执行自定义逻辑:
- 初始化池
- 添加/移除流动性
- 交易前/后
- 闪电贷前/后
这种灵活性使开发者能够创建各种创新的 AMM 变体,如:
- 基于时间的费用调整
- 基于交易量的费用调整
- 自动再平衡池
- 与外部预言机集成的池
技术实现
自动做市商(AMM)模型
Uniswap 的核心是自动做市商模型,它通过数学公式自动确定交易价格,而不是依赖订单簿匹配。不同版本使用了不同的公式:
- v1 和 v2:使用恒定乘积公式 \(x \cdot y = k\)
- v3:使用改进的恒定乘积公式,支持集中流动性
- v4:支持自定义 AMM 曲线,包括恒定乘积、恒定和、恒定平均值等
流动性提供机制
不同版本的流动性提供机制有所不同:
- v1 和 v2:LP 提供等值的两种资产,获得代表池中份额的 LP 代币
- v3:LP 提供不等值的资产,并指定价格范围,获得代表特定价格范围内份额的 NFT
- v4:支持更灵活的流动性提供机制,可以通过钩子实现各种创新
无常损失
无常损失是指当 LP 提供流动性后,由于资产价格变化导致的潜在损失。不同版本的无常损失风险不同:
- v1 和 v2:LP 在整个价格范围内面临无常损失风险
- v3:LP 可以通过集中流动性减少无常损失风险,但也可能面临更高的风险
- v4:通过钩子系统,可以创建减少无常损失的创新机制
经济模型
交易费用
不同版本的交易费用模型有所不同:
- v1:固定 0.3%的交易费用,全部归 LP 所有
- v2:固定 0.3%的交易费用,其中 0.25%归 LP 所有,0.05%可能归协议所有
- v3:多个费率等级(0.05%、0.30%和 1%),LP 可以根据资产对的波动性选择适当的费率
- v4:支持动态费用,可以通过钩子实现基于市场条件的费用调整
治理
Uniswap 的治理由 UNI 代币持有者控制,他们可以投票决定协议的未来发展方向,包括:
- 协议费用开关
- 费用接收地址
- 协议升级
- 资金分配
生态系统
Uniswap 已经发展成为一个庞大的生态系统,包括:
- Uniswap 界面:用户友好的 Web 界面,用于与 Uniswap 协议交互
- Uniswap SDK:开发者工具包,用于构建与 Uniswap 交互的应用程序
- Uniswap 治理:UNI 代币持有者可以参与协议治理
- Uniswap Labs:开发 Uniswap 协议的公司
- Uniswap 基金会:支持 Uniswap 协议发展的非营利组织
参考资料
- Uniswap v2 白皮书
- Uniswap v3 白皮书
- Uniswap v4 白皮书
- Uniswap 官方文档
- Uniswap GitHub 仓库