DeFi 基础: 流动性、池子、AMM、滑点

目录

  • [DeFi 基础: 流动性、池子、AMM、滑点](#DeFi 基础: 流动性、池子、AMM、滑点)
    • [1. 从一个最朴素的问题开始](#1. 从一个最朴素的问题开始)
    • [2. 流动性池 (Liquidity Pool)](#2. 流动性池 (Liquidity Pool))
    • [3. 自动做市商 (AMM)](#3. 自动做市商 (AMM))
      • [用例: 你想用 1,000 USDT 买 BNB](#用例: 你想用 1,000 USDT 买 BNB)
    • [4. 滑点 (Slippage)](#4. 滑点 (Slippage))
      • [4.1 价格冲击 (Price Impact)](#4.1 价格冲击 (Price Impact))
      • [4.2 滑点容忍度 (Slippage Tolerance)](#4.2 滑点容忍度 (Slippage Tolerance))
      • [4.3 真正的"滑点攻击": 三明治攻击 (Sandwich Attack)](#4.3 真正的"滑点攻击": 三明治攻击 (Sandwich Attack))
    • [5. 安全视角: AMM 出问题的几种常见姿态](#5. 安全视角: AMM 出问题的几种常见姿态)
    • [6. Uniswap V3: 集中流动性 (Concentrated Liquidity)](#6. Uniswap V3: 集中流动性 (Concentrated Liquidity))
      • [6.1 V2 的痛点: 资本效率低](#6.1 V2 的痛点: 资本效率低)
      • [6.2 V3 的核心改动: LP 自选价格区间](#6.2 V3 的核心改动: LP 自选价格区间)
      • [6.3 多档手续费 (Fee Tier)](#6.3 多档手续费 (Fee Tier))
      • [6.4 Tick --- 价格的离散化](#6.4 Tick — 价格的离散化)
      • [6.5 安全视角: V3 引入的新攻击面](#6.5 安全视角: V3 引入的新攻击面)
    • [7. Uniswap V4: Hooks 与 Singleton 架构](#7. Uniswap V4: Hooks 与 Singleton 架构)
      • [7.1 Singleton 架构 (单合约管理所有池子)](#7.1 Singleton 架构 (单合约管理所有池子))
      • [7.2 Hooks (可插拔的池子逻辑) ⭐ V4 核心](#7.2 Hooks (可插拔的池子逻辑) ⭐ V4 核心)
      • [7.3 Flash Accounting (闪电记账)](#7.3 Flash Accounting (闪电记账))
      • [7.4 原生 ETH + ERC-6909](#7.4 原生 ETH + ERC-6909)
      • [7.5 安全视角: Hook 是双刃剑](#7.5 安全视角: Hook 是双刃剑)
    • [8. 名词速查](#8. 名词速查)
    • [9. 进阶 (后续可以读)](#9. 进阶 (后续可以读))

DeFi 基础: 流动性、池子、AMM、滑点

面向新人的入门文章。读完应该能回答: 用户在 PancakeSwap / Uniswap 上 swap 一个 token,背后到底发生了什么?为什么会有滑点?为什么有时候买不到 / 卖不掉?


1. 从一个最朴素的问题开始

假设你在中心化交易所 (Binance) 想用 USDT 买 BNB。背后的逻辑是:

复制代码
你挂单 → 撮合引擎 → 找到一个愿意卖 BNB 的对手方 → 成交

这叫 Order Book (订单簿) 模式。需要有人挂买单、有人挂卖单,撮合引擎匹配。

复制代码
                   Order Book (BNB/USDT)

           价格 (USDT)        数量 (BNB)
        ┌──────────────────────────────────┐
        │   605                  20        │
        │   604                  15        │   卖单 Asks ↓
   ASK  │   603                  10  ←最低卖价
        ├──────────── 中间价 600.5 ─────────┤
   BID  │   600                  12  ←最高买价
        │   599                  18        │   买单 Bids ↑
        │   598                  25        │
        └──────────────────────────────────┘

   你想买 5 BNB ──→ 撮合引擎吃掉 603 这档的 5 BNB
                    成交价 = 603 USDT/BNB
                    (有现成对手方时滑点几乎为 0)

每一档都是真人挂的单。没有人挂卖单 = 你买不到;卖单稀疏 = 单子大就要一路吃上去 (这才是订单簿模式的"滑点")。

但在链上做订单簿很贵 (每次挂单/撤单都是一笔交易,gas 烧不起),也很慢。所以 DeFi 走了另一条路: 自动做市商 (AMM, Automated Market Maker)


2. 流动性池 (Liquidity Pool)

AMM 的核心是一个池子 (Pool): 一个智能合约,里面锁着两种 (或多种) token。

举例: BNB/USDT 池子里有

  • 100 BNB
  • 60,000 USDT

这两堆 token 不是凭空来的,是流动性提供者 (LP, Liquidity Provider) 存进去的。LP 把自己的 BNB + USDT 按当前比例存入合约,作为回报,每次有人在池子里 swap 都会付一笔手续费 (典型 0.3%),这笔手续费按比例分给所有 LP。

流动性 (Liquidity) 这个词在不同语境下意思略不同:

  • 池子的流动性 = 池子里锁仓的资产总额 (TVL)。池子越大,能承受的交易量越大。
  • token 的流动性 = 这个 token 在所有池子/交易所里的可交易深度。流动性差 = 稍微买卖一点价格就剧烈波动。

3. 自动做市商 (AMM)

AMM 的精髓: 用一个数学公式代替对手方 。最经典的是 Uniswap V2 的 恒定乘积公式:

复制代码
x * y = k
  • x = 池子里 token A 的数量
  • y = 池子里 token B 的数量
  • k = 常数 (在没有人加/撤流动性时不变)

回到上面的例子: 100 BNB * 60,000 USDT = 6,000,000k = 6,000,000

复制代码
         AMM 池子 (一个智能合约)              和订单簿对比:
       ┌──────────────────────────┐         ┌────────────────────┐
       │                          │         │ 订单簿:            │
       │     🟡  100   BNB        │         │   找对手方 ↔ 撮合  │
       │     💵  60,000 USDT      │         │   一档一档吃       │
       │                          │         │                    │
       │     k = x × y = 6,000,000│         │ AMM:               │
       │     当前价 = y/x = 600   │         │   没对手方         │
       │                          │         │   只有公式 + 池子  │
       └──────────────────────────┘         └────────────────────┘
              ▲     ▼
         存入        取出
              │     │
              用户 swap

恒定乘积曲线 (x*y=k): 坐标轴只是"池子里 BNB 的数量"和"池子里 USDT 的数量",两个量都≥0;真正反映价格的是这条曲线本身 。曲线是一条双曲线 ------ x 越大 y 越小,反之亦然 (因为 x×y 必须等于常数 6,000,000)。

每一笔 swap 都相当于把池子的状态沿着这条曲线移动到另一个点。具体方向:

操作 池子 BNB (x) 池子 USDT (y) 沿曲线方向
买 BNB (USDT → BNB) ↓ 减少 ↑ 增加 ↖ 左上
卖 BNB (BNB → USDT) ↑ 增加 ↓ 减少 ↘ 右下
复制代码
USDT (y, 池中 USDT 数量)
    │
120K┤●(50, 120K)         ← 极端: 已买走一半 BNB
    │ ╲
    │  ╲
 75K┤   ●(80, 75K)       ← 用 15,000 USDT 买走 20 BNB
    │    ╲                  实际单价 ≈ 750 USDT/BNB  (+25%)
    │     ╲             ↖ "买 BNB" 方向
 65K┤      ●(92.3, 65K)  ← 用 5,000 USDT 买走 7.7 BNB
    │       ╲              实际单价 ≈ 650 USDT/BNB  (+8.3%)
 61K┤        ●(98.4, 61K) ← 用 1,000 USDT 买走 1.64 BNB
    │         ╲            实际单价 ≈ 610 USDT/BNB  (+1.6%)
 60K┤          ★(100, 60K) ← 初始状态, 当前价 = y/x = 600
    │           ╲
 55K┤            ●(109, 55K) ← 卖 9 BNB 拿 5,000 USDT
    │             ╲           实际单价 ≈ 555 USDT/BNB  (-7.5%)
 50K┤              ●(120, 50K) ↘ "卖 BNB" 方向
    │               ╲___        实际单价 ≈ 500 USDT/BNB  (-17%)
    │                   ╲_____
    │                         ╲_________
    └─┬───┬───┬─┬──┬───┬────────────────── BNB (x, 池中 BNB 数量)
     50  80  92 100 109 120

  曲线上每一点都满足 x × y = 6,000,000。
  ★ 是初始状态。所有交易都是从某一点沿曲线滑到另一点。

关键观察 (价格冲击的本质):

你投入 池子 USDT 变化 池子 BNB 变化 你拿到 BNB 实际单价 vs 初始价
1,000 USDT 60K → 61K 100 → 98.36 1.64 610 +1.6%
5,000 USDT 60K → 65K 100 → 92.31 7.69 650 +8.3%
15,000 USDT 60K → 75K 100 → 80.00 20.00 750 +25%

→ 买得越多,沿曲线滑得越远 ,曲线在那一段的切线越陡 = 边际价格越贵。这就是"价格冲击"。

池子越大,曲线越"扁": 想象把整张图横向拉长 10 倍 (池子从 100 BNB 扩到 1,000 BNB),同样金额的交易在曲线上只滑动一小段,价格几乎不变。这是为什么深度好的池子滑点小。

用例: 你想用 1,000 USDT 买 BNB

交易后池子里 USDT 变成 60,000 + 1,000 = 61,000

为了维持 k = 6,000,000,BNB 必须变成 6,000,000 / 61,000 ≈ 98.36

所以你拿到的 BNB = 100 - 98.36 = 1.64 BNB

成交均价 = 1,000 / 1.64 ≈ 609.7 USDT/BNB

注意: 交易之前 的池子价格是 60,000 / 100 = 600 USDT/BNB,但你实际成交价是 609.7。这就引出了滑点。


4. 滑点 (Slippage)

滑点 = 你期望的价格 vs 实际成交价格的差。

滑点的来源有两类,用户经常混淆:

4.1 价格冲击 (Price Impact)

你这笔交易自己 导致池子比例变化,从而推高/压低价格。这是 AMM 公式决定的,和池子大小成反比:

池子规模 你买 1,000 USDT 的 BNB 实际单价 价格冲击
100 BNB / 60,000 USDT 1.64 BNB 609.7 USDT/BNB ~1.6%
1,000 BNB / 600,000 USDT 1.66 BNB 600.96 USDT/BNB ~0.16%
10,000 BNB / 6,000,000 USDT 1.667 BNB 600.10 USDT/BNB ~0.016%

池子越深,单笔交易的价格冲击越小。 这也是为什么大额交易在小池子里特别吃亏。

4.2 滑点容忍度 (Slippage Tolerance)

钱包里那个 "Slippage 0.5% / 1% / 自定义" 设置,指的是你愿意接受的最大偏差

下单时点 swap 到链上确认有时间差 (BSC ~3秒,以太坊 ~12秒),期间可能有别人交易让池子价格变了。如果实际价格偏离超过你设的容忍度,交易回滚(失败),但 gas 还是被扣。

复制代码
你点 swap 时预计:        1 BNB = 600 USDT
你设置的 slippage:        1%
能接受的最差成交价:        1 BNB = 606 USDT
链上确认时实际价:          1 BNB = 610 USDT  ← 超过容忍度,交易 revert

4.3 真正的"滑点攻击": 三明治攻击 (Sandwich Attack)

如果你设置的滑点容忍度太高 (比如 50%),机器人 (MEV bot) 看到你 pending 的交易,会:

  1. 抢跑 (front-run): 在你之前买入同一个 token,把价格推高。
  2. 你成交: 你以被推高的价格买入,损失被滑点容忍度允许。
  3. 尾随 (back-run): 机器人立刻卖出,套利落袋。

你的钱被夹走了。所以滑点不是设得越高越好 ------ 容忍度高 = 给机器人的攻击空间大。


5. 安全视角: AMM 出问题的几种常见姿态

理解上面的机制后,这些"用户卖不出去"的报案就好理解了:

现象 机制
买进去就跌很多 池子小 + 价格冲击。或者是貔貅币 (买入税重)。
卖不出去 (报错 / revert) 合约层面禁止卖 (honeypot),或卖出税 100%,或滑点容忍度不够。
能卖但只能拿到极少 卖出税重 (合约扣 90%+),或池子被抽干,深度极差。
价格突然归零 项目方 rug pull: 撤掉池子里所有的"另一边" (USDT/BNB),留你拿着无法兑现的 token。
池子深度 100 万但卖 10 美金都失败 池子是假的: LP token 被锁死、合约只允许特定地址卖、或者价格冲击限制 (anti-whale)。

做案件分析时常用的判断:

  • 看池子的 TVL创建时间: 几天前刚创建、TVL 几千美金的池子 = 高风险。
  • LP token 是否锁仓: 没锁 = 项目方随时可以撤池子跑路。
  • token 合约: 有没有 transfer 限制、黑名单、动态税率、owner 后门。
  • 该 token 的卖出交易: 如果一段时间内只有买没有卖 (或者卖的全失败),几乎可以确定是貔貅。

6. Uniswap V3: 集中流动性 (Concentrated Liquidity)

V2 (x*y=k) 是最经典的 AMM,但 2021 年 Uniswap V3 上线后,主流 DEX (Uniswap、PancakeSwap V3 等) 都迁移到了 V3 模型。V3 不是另一种 AMM,而是 V2 的"加强版"。

6.1 V2 的痛点: 资本效率低

V2 把 LP 的钱均匀铺(0, +∞) 整条价格曲线上。但 BNB/USDT 99% 的交易都发生在当前价 ±20% 这个窄区间,曲线两端 (BNB=10 美金 / BNB=5,000 美金) 那部分钱永远用不上

结果: TVL 1,000 万美金的池子,真正在当前价附近做市的可能只有几十万美金。

6.2 V3 的核心改动: LP 自选价格区间

LP 存入流动性时指定一个价格区间 [P_low, P_high],资金只在这个区间内做市,区间外不工作。

复制代码
V2: 流动性铺满整条曲线
   ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
   0      300     600      900    +∞
                  ↑ 当前价
   绝大部分资金在远离当前价的位置,浪费

V3: LP A 在 [550, 650] 提供流动性
                ▓▓▓▓▓▓▓▓▓▓
    LP B 在 [580, 620] 提供流动性
                  ░░░░░░
    LP C 在 [400, 800] 提供流动性 (宽区间)
        ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
   ──────────────────────────────────
   400  500   580 600 620   700  800
                  ↑ 当前价

   当前价附近: A + B + C 三层流动性叠加 → 深度极厚
   走到 500: 只剩 C → 深度变薄
   走出 [400,800]: 谁的流动性都不工作

对交易者: 同样 1,000 万 TVL 的 V3 池子,当前价附近的有效深度 (active liquidity) 可以是 V2 的 几十~几千倍 → 滑点显著降低。

对 LP:

  • ✅ 用更少资金赚同样手续费 (资本效率提升)
  • ❌ 价格走出区间 → 100% 变成单边资产,且不再赚手续费(相当于挂的限价单被吃掉了)
  • ❌ 需要主动管理: 区间偏离了就要重新调仓
  • ❌ LP 凭证不再是同质化 token,而是 NFT (每个区间唯一)

6.3 多档手续费 (Fee Tier)

V2 全池统一 0.3%。V3 同一对 token 可以同时存在多个池子,每个池子手续费不同:

Fee Tier 适用场景 典型对
0.01% 稳定币 ↔ 稳定币 USDC/USDT
0.05% 强相关对 ETH/stETH、USDC/USDT (在低波动期)
0.30% 主流币对 ETH/USDC、BNB/USDT
1.00% 长尾 / 高波动 / meme 新发 token

→ 同一对 token 可能存在 2~4 个 V3 池子,聚合器 (1inch / 0x / PancakeSwap router) 自动比价路由到最优。

6.4 Tick --- 价格的离散化

V3 把连续价格离散成一个个 tick ,相邻 tick 价格比为 1.0001 (差 0.01%)。LP 的区间永远落在一对 tick 上 (tickLower, tickUpper)。

链上看到 V3 swap 事件常见字段:

  • sqrtPriceX96: 当前价格的特殊表示 (sqrt(price) * 2^96)
  • tick: 当前所在 tick
  • liquidity: 当前 active 的总流动性 L (注意不是 TVL)

理解这些是看懂 V3 链上数据的前提。

6.5 安全视角: V3 引入的新攻击面

现象 机制
假深度池子 总 TVL 显示 1,000 万美金,但 99% 的流动性集中在远离当前价的区间。卖出时实际能成交的深度极浅,滑点暴击。只看 TVL 会被骗,要看 active liquidity (当前 tick 附近)。
JIT (Just-In-Time) 流动性 MEV bot 看到 mempool 里的大单 → 同一区块 加入巨量集中流动性 → 大单成交 (bot 吃走绝大部分手续费) → 立刻撤回。普通 LP 的手续费收益被稀释。
单边鬼池 / Rug 变种 项目方把流动性放在远离市场价的极窄区间,仪表板上 TVL 漂亮,实际当前价附近没货。等用户上钩后撤掉。识别: 看 tickLower/tickUpper 是否包含当前价。
LP NFT 钓鱼 V3 LP 头寸是 ERC-721,被钓鱼签 setApprovalForAll 给恶意合约 → 整个流动性头寸被转走,攻击者可以销毁 NFT 拿走里面的钱。攻击面和普通 NFT 钓鱼一样。
价格区间被穿透 极端行情把价格打出 LP 区间 → 该 LP 不再做市 → active liquidity 骤降 → 滑点放大 → 进一步推动价格 → 可能形成连锁踩踏。

做案件分析时的关键判断点 : V3 池子的"健康度"不能只看 TVL,必须查询当前 tick 附近的 active liquidity。Subgraph / 链上 slot0() + liquidity() + tick bitmap 才是真深度。


7. Uniswap V4: Hooks 与 Singleton 架构

V4 在 2025 年 1 月主网上线,是 Uniswap 自 V3 以来的最大重写。V3 解决"资本效率",V4 解决"可扩展性" ------ 它把 AMM 从一个固定产品 变成一个平台,开发者可以在不分叉合约的前提下定制池子行为。

V4 不是抛弃 V3,而是把 V3 的集中流动性当作默认实现,再开放定制接口。理解 V4 的几个核心改动:

7.1 Singleton 架构 (单合约管理所有池子)

V2/V3 每个 token 对的池子都是独立部署的合约。BSC 上有几十万个 PancakeSwap V3 池子 = 几十万个合约。

V4 改成: 全部池子都"住"在一个合约 PoolManager 里,每个池子只是一组状态 (PoolKey)。

维度 V2/V3 V4
部署一个新池子的 gas 一次完整合约部署 一次状态写入
新池子部署成本 ~5,000,000 gas ~低几个数量级
多跳路由 (A→B→C) 跨多个合约 call 单合约内部调用
链上索引/扫描 要枚举合约地址 要枚举 PoolKey

对安全分析的影响 : 监听 swap 事件的 topic / 合约地址逻辑要全部重写。看链上数据时,"哪个池子"不再用合约地址区分,而是看 PoolKey = (currency0, currency1, fee, tickSpacing, hook)

7.2 Hooks (可插拔的池子逻辑) ⭐ V4 核心

每个 V4 池子在创建时可以绑定一个 Hook 合约 。PoolManager 在 swap、加流动性、撤流动性等关键时刻回调 Hook,让它执行自定义逻辑。

复制代码
普通 V3 swap:
   user → PoolManager → 计算 → 转账 → 完事

V4 带 Hook 的 swap:
   user → PoolManager
            ├── beforeSwap()  → Hook 合约: "我可以改 swap 参数 / 收额外费 / 拒绝交易"
            ├── 计算 + 转账
            └── afterSwap()   → Hook 合约: "我可以记账 / 触发其他动作"

Hook 的回调点 (常用):

  • beforeInitialize / afterInitialize (创建池子)
  • beforeSwap / afterSwap
  • beforeAddLiquidity / afterAddLiquidity
  • beforeRemoveLiquidity / afterRemoveLiquidity
  • beforeDonate / afterDonate

Hook 能干什么 (合法用途):

  • 动态费率 (波动大时收高费、稳定时收低费)
  • 链上限价单 / TWAMM (按时间加权慢慢成交大单)
  • 自定义价格曲线 (绕过 V3 的 x*y=k,比如做稳定币池)
  • MEV 内化 (套利收益分给 LP 而不是 bot)
  • 链上预言机 (TWAP 价格)
  • KYC / 白名单池子

Hook 权限位 : Hook 实现哪些回调,是编码在 Hook 合约地址的低 14 位里的 (Uniswap 用 vanity address 来标记权限)。链上看到一个 hook 地址,就能知道它声明了哪些权限。

7.3 Flash Accounting (闪电记账)

V4 内部不再每一步都做真实转账,而是只记净变化,事务结束时一次性结算。

好处: 多步操作 (swap → 加流动性 → 再 swap) 的 gas 大幅降低,复杂策略变得可行。

副作用: "中间状态"可能短暂为负,外部合约不能假设余额恒为正。

7.4 原生 ETH + ERC-6909

  • V2/V3 必须把 ETH 包成 WETH 才能 swap,多花一笔 gas。V4 直接支持原生 ETH。
  • LP 头寸用 ERC-6909 (一种轻量级的多 token 标准) 记账,比 V3 的 NFT 更便宜,但仍然唯一对应一个区间。

7.5 安全视角: Hook 是双刃剑

V4 最大的安全变化: 每个池子的行为不再统一 ,由 Hook 合约决定。Hook 是任意智能合约,对它的信任程度直接决定池子是否安全。

攻击面 机制
恶意 Hook 抽水 Hook 在 afterSwap 里把成交结果转走或加征 99% 费率,用户把 token 投进去就出不来。等价于 V2/V3 时代的 honeypot,但藏在 Hook 里而不是 token 合约里。
可升级 Hook 后门 Hook 用 proxy 部署,初期无害骗到大量 LP / 交易量,后续升级成恶意逻辑直接 rug。必须确认 Hook 合约不可升级、无 owner 权限
Hook 重入 beforeSwap/afterSwap 让外部合约在敏感时刻被回调。V4 自己有重入保护,但 Hook 内部如果调用其他协议,可能被构造重入路径。
权限位与实际行为不匹配 Hook 地址低位声明的权限 vs 合约实际逻辑可能不一致 (虽然 PoolManager 会校验,但定制费率等"非回调"行为不在权限位里)。
Singleton 单点风险 PoolManager 一旦出问题,影响所有池子。但反过来也意味着审计资源能集中在一个合约上。
Hook 模仿钓鱼 攻击者部署一个看起来和知名 Hook (例如某 TWAMM 实现) 同名/同接口的合约,但内部逻辑不同。前端展示"使用 XX Hook" 可信不可信完全取决于合约地址,不是名字
Just-In-Time 进化版 Hook 可以让 MEV 策略更精细 (例如只对特定地址生效的临时流动性),普通 LP 收益被进一步压榨。

做案件分析时的关键判断点:

  • 看池子的 PoolKey.hooks 字段 → 是否为零地址 (0x0 = 无 hook,等价于纯 V3 行为)
  • 非零 hook → 必须读 Hook 合约源码 ,重点看:
    • 是否可升级 (是否 proxy)
    • owner / admin 权限
    • afterSwap 是否往外转账
    • 自定义费率上限
  • Hook 地址低 14 位 → 声明了哪些回调
  • 同一个 Hook 可能被多个池子复用 → 一个 Hook 漏洞可以波及一片池子

规则: 池子的安全 = token 合约的安全 × Hook 合约的安全 × PoolManager 的安全。V4 时代分析池子至少要看三个合约。


8. 名词速查

术语 一句话定义
AMM 用数学公式 (如 x*y=k) 代替订单簿撮合的去中心化做市机制。
流动性池 (Pool) 一个智能合约,里面锁着两种 token,用户在它上面 swap。
LP (流动性提供者) 把自己的两种 token 按比例存入池子的人,赚取手续费分成。
LP Token 你存入流动性后拿到的凭证,代表你在池子里的份额。
TVL Total Value Locked,池子里锁仓的总价值。
滑点 (Slippage) 期望成交价和实际成交价的差。
价格冲击 (Price Impact) 由于自己这笔交易导致池子比例变化产生的价格偏移。
滑点容忍度 钱包设置里你愿意接受的最大偏差,超过则交易回滚。
MEV / 三明治攻击 机器人在你交易前后插入抢跑+尾随交易牟利。
Rug Pull 项目方撤走池子里另一侧资产,导致 token 价格归零。
Honeypot (貔貅) 只能买不能卖的 token,合约层面或税率层面禁止卖出。
集中流动性 (Concentrated Liquidity) V3 引入: LP 可以把资金集中在指定价格区间,提升资本效率。
Tick V3 中价格的最小离散单位,相邻 tick 价差 0.01%。LP 区间由 tickLower/tickUpper 定义。
Active Liquidity V3 池子里当前价 tick 附近真正在做市的流动性,和总 TVL 不是一个概念。
Fee Tier V3 同一对 token 可以有多个不同手续费档的池子 (0.01% / 0.05% / 0.3% / 1%)。
JIT 流动性 Just-In-Time: MEV bot 在大单交易前后瞬间加入/撤回 V3 流动性,吃走手续费。
LP NFT V3 中流动性头寸的凭证 (ERC-721),每个区间唯一,可被 setApprovalForAll 钓鱼。
Hook (V4) 绑定到 V4 池子上的智能合约,PoolManager 在 swap / 加流动性等事件回调它,让它执行自定义逻辑。
PoolManager (V4) V4 的 Singleton 合约,所有池子的状态都存在它里面,每个池子由 PoolKey 标识。
PoolKey (V4) (currency0, currency1, fee, tickSpacing, hook) 五元组,唯一标识一个 V4 池子。
Flash Accounting (V4) V4 在事务内只记净变化、最后统一结算,省 gas 但中间余额可能短暂为负。
ERC-6909 (V4) V4 LP 头寸用的多 token 记账标准,比 ERC-721 NFT 更便宜。

9. 进阶 (后续可以读)

  • 稳定币池 (Curve / Stable Swap): 用不同的曲线公式,让两个价格接近的 token (USDT/USDC) 之间滑点极低。
  • 聚合器 (1inch / 0x / 1inch Fusion): 自动把一笔大单拆分到多个池子和多种 AMM,减少价格冲击。
  • 无常损失 (Impermanent Loss): LP 因为池子比例变化相对单纯持币产生的浮亏;V3/V4 集中流动性下放大成"集中无常损失"。
  • 常见 V4 Hook 类型: TWAMM (时间加权大单)、动态费率、链上限价单、MEV 内化 (流向 LP 的套利)、白名单/KYC 池。
  • Solana 上的 AMM: Raydium (V2 风格 + 订单簿混合)、Orca Whirlpool (V3 风格)。和 EVM AMM 思路类似但实现 (账户模型、并发) 完全不同。
  • Cosmos / Cetus / Aerodrome 等其他链 AMM: 各有微调,但底层都是 x*y=k 或集中流动性的变种。
相关推荐
多年小白2 小时前
【本周复盘】2026年5月11日-5月15日
人工智能·ai·金融·区块链
碳链价值7 小时前
比特币失宠
区块链
侃谈科技圈10 小时前
硬件确认与助记词备份正在成为钱包安全管理的重要环节
安全·区块链
mutourend15 小时前
Coinbase团队2026年Q1 量子计算与区块链 研报
区块链·量子计算·后量子密码学
栗子~~1 天前
Solidity 知识点速记整理 - (2026年) (1 - 40)
区块链
加密新世界1 天前
[GTokenTool一键发币平台]什么是蝴蝶K线-不死鸟协议?
区块链
日取其半万世不竭1 天前
Pixelfed 自建教程:开源去中心化图片社交平台
开源·去中心化·区块链
栗子~~2 天前
Solidity 知识点速记整理 - (2026年) (41 - 74)
区块链
mutourend3 天前
Algorand的State Proof(状态证明)
区块链