死磕Uniswap V3 系列文章

深入剖析Uniswap V3的核心机制与实现原理

系列概述

本系列共7篇文章,从基础概念到高级主题,全面解析Uniswap V3的设计与实现。

flowchart LR
    subgraph 基础篇
        A1[01-概述与集中流动性]
        A2[02-Tick机制与价格数学]
    end

    subgraph 核心篇
        B1[03-架构与合约设计]
        B2[04-交换机制深度解析]
        B3[05-流动性管理与头寸]
    end

    subgraph 进阶篇
        C1[06-费用系统与预言机]
        C2[07-MEV与套利策略]
    end

    基础篇 --> 核心篇 --> 进阶篇

文章目录

序号标题核心内容难度
01概述与集中流动性AMM演进、集中流动性原理⭐⭐
02Tick机制与价格数学Tick设计、价格转换算法⭐⭐⭐
03架构与合约设计Factory、Pool合约结构⭐⭐⭐
04交换机制深度解析swap函数、价格发现⭐⭐⭐⭐
05流动性管理与头寸Position、mint/burn⭐⭐⭐⭐
06费用系统与预言机费用分配、TWAP⭐⭐⭐⭐
07MEV与套利策略JIT、三明治攻击⭐⭐⭐⭐⭐

学习路径

入门读者

如果你是DeFi新手,建议按顺序阅读:

  1. 第一篇:了解AMM的基本概念和V3的核心创新
  2. 第二篇:理解Tick机制如何实现集中流动性
  3. 第三篇:认识V3的合约架构

中级读者

如果你已有DeFi开发经验:

  1. 重点阅读第四、五篇,深入理解swap和流动性管理
  2. 结合官方源码进行学习

高级读者

如果你想深入研究:

  1. 深入第六篇的费用机制和预言机设计
  2. 研究第七篇的MEV策略,考虑实际应用

核心概念速查

数学公式

价格定义:      price = 1.0001^tick
集中流动性:    (x + L/√Pb) × (y + L×√Pa) = L²
代币数量:      Δx = L × (1/√Pa - 1/√Pb)
                Δy = L × (√Pb - √Pa)

关键数据结构

结构用途位置
Slot0打包存储池子核心状态Pool合约
Position.Info流动性头寸信息Position库
Tick.InfoTick级别的流动性和费用数据Tick库
Observation预言机历史数据点Oracle库

核心函数

函数功能合约
swap()代币交换UniswapV3Pool
mint()添加流动性UniswapV3Pool
burn()移除流动性UniswapV3Pool
collect()收取费用UniswapV3Pool
observe()查询预言机UniswapV3Pool

配套资源

官方资源

学习工具

测试网络

  • Goerli测试网
  • Sepolia测试网
  • 本地Foundry/Hardhat环境

阅读建议

  1. 动手实践:每篇文章的代码示例都可以在测试网验证
  2. 对照源码:建议同时阅读官方合约源码
  3. 画图理解:复杂概念建议自己画图梳理
  4. 循序渐进:不要跳过基础篇直接看进阶内容

更新日志

  • 2024-01:系列文章完成

反馈与交流

如有问题或建议,欢迎通过Issue讨论。


Happy Learning! 🚀