---
# System prepended metadata

title: Uniswap 工作原理、數學模型與生態機遇

---


# Uniswap 工作原理、數學模型與生態機遇
**主講：** Jeff Huang 
**分享會連結：** https://youtu.be/3XrqBAoHaPQ

---

##  講師背景：一個「非典型」開發者的 Web3 之路

*   **非科班出身：** 讀的是認知科學，做過金融碼農（IBM/JPMorgan），也去騰訊和字節跳動捲過遊戲業務。
*   **Web3 老兵：** 2018年就嘗試過 DAICO 創業（雖失敗），現在心態更像「半退休」，純粹因為喜歡跟年輕人一起學新東西。
*   **風格：** 自稱「視覺系動物」，比起枯燥的公式，更喜歡用圖形來理解流動性。

---

##  Uniswap V2：優雅的數學與懶人的哲學

V2 是理解 AMM 的基石。它是一個完美的 **Proof of Concept（概念驗證）**。

### 1. 核心直覺：蹺蹺板上的 $x \cdot y = k$
*   **視覺化理解：** 想像一條雙曲線。
*   **幾何視角（Iso-price line）：**
    *   想像從原點 $(0,0)$ 射出一條直線。這條線上的每一點，$y/x$（價格）都是一樣的。
    *   這條線會穿過無數條 $x \cdot y = k$ 的雙曲線。
    *   **重點：** $k$ 值越大，曲線離原點越遠，代表**流動性越深（Depth）**。添加流動性不會改變價格（$y/x$ 不變），但會把曲線往外推（$k$ 變大），讓價格更難被撼動。

### 2. 套利機制：價格是如何回歸的？
為什麼 Uniswap 價格會跟著幣安走？靠的是套利者。

**套利數學推導**
> **場景：** 池內 2 ETH, 6000 USDC ($k=12,000$, $P=3000$)。外部市場漲到 3200。
> **問題：** 套利者需要注入多少 USDC 才能把價格推到 3200？
>
> 1.  **建立方程組：**
>     *   目標價格：$y' / x' = 3200$
>     *   恆定乘積：$x' \cdot y' = 12,000$
> 2.  **消去法求解：**
>     *   將 $y' = 3200x'$ 代入乘積公式
>     *   $x' \cdot (3200x') = 12,000 \rightarrow x'^2 = 3.75$
>     *   $x' \approx 1.9365$ (目標 ETH 數量)
> 3.  **計算交易量：**
>     *   注入 USDC = $y' - y = (12,000 / 1.9365) - 6000 \approx 196.77$
>     *   買走 ETH = $x - x' = 2 - 1.9365 = 0.0635$
> *Jeff ：這就是 AMM 自動定價的本質，不需人工干預，數學自動平衡。*

### 3. V2 合約實作細節
*   **閃電貸邏輯（先給錢，再檢查）：**
    *   代碼流程：`transfer` (給幣) -> `callback` (執行用戶邏輯) -> `invariant check` (檢查 $k$ 值)。
    *   這意味著你可以在沒錢的情況下，先借錢去套利，獲利後再還款。
*   **手續費的代碼實現（997 vs 1000）：**
    *   V2 手續費是 0.3%。在 Solidity 中為了避免浮點數運算，公式寫成了：
    *   $(Balance0 \times 1000) \times (Balance1 \times 1000) \ge k \times (997)^2$
    *   這直接在餘額檢查階段扣除了手續費，開發者寫合約時需精確掌握這一點。

### 4. TWAP 預言機
*   **原理：** 不記當下價格（易被操縱），而是記錄**「價格 $\times$ 時間」的累計值**。
*   **計算：** $(累計值_{T2} - 累計值_{T1}) \div (T2 - T1)$。這相當於計算一段時間內的平均面積，極大節省了 Gas。

---

##  Uniswap V3：為了「資本效率」的極致優化

V3 的複雜度是指數級上升，核心是為了解決 V2 資金「睡覺」的問題。

### 1. 集中流動性 (CLMM) 與 $\sqrt{P}$
*   **概念：** 允許 LP 只在特定區間（如 2500-3500）提供流動性。視覺上從「平鋪的線」變成了「柱狀圖」。
*   **為什麼要用根號價格 ($\sqrt{P}$)？**
    *   並非炫技。在計算 $\Delta x$ 和 $\Delta y$ 時，使用 $\sqrt{P}$ 可以讓原本複雜的雙曲線運算變成**線性運算**，便於合約計算。

### 2. Tick (刻度) 與 Gas 優化
這是 V3 最核心的底層設計。

**Tick Bitmap 與 Tick Spacing**
> **問題：** 如果允許在任意價格點（如 1.000001, 1.000002...）添加流動性，交易時合約需要遍歷無數個點來尋找流動性，Gas 會直接爆炸。
> **解法 1：Tick Spacing (刻度間距)**
> *   不同的手續費等級對應不同的最小間距：
>     *   **0.01% (穩定幣)：** Spacing = 1 (價格貼得極近)
>     *   **0.3% (主流幣)：** Spacing = 60
>     *   **1% (波動幣)：** Spacing = 200 (間隔較寬)
> **解法 2：Tick Bitmap (位圖索引)**
> *   Uniswap 不使用迴圈遍歷，而是用 **Bitmap** (一個 `uint256` 記錄 256 個位置的狀態)。
> *   透過位運算 (Bitwise operations)，合約可以在 $O(1)$ 時間內直接「跳」到下一個有流動性的 Tick，這是 V3 節省 Gas 的關鍵魔法。

### 3. 手續費計算：Fee Growth Outside
Jeff 直言這是 V3 最難懂的邏輯。

*   **天才設計：** 系統只記錄「全局累計手續費」和每個 Tick 的「外側 (Outside) 手續費」。
*   **翻轉邏輯：** 當價格穿過一個 Tick 時，該 Tick 的 Outside 數值會翻轉 ($Global - Outside$)。
*   **初始化之謎：** 當一個新的 Tick 被激活時，它的 `FeeGrowthOutside` 初始值看似隨機，其實是根據當下的 `FeeGrowthGlobal` 設定的，目的是為了保證數學上的連續性，讓後續的減法運算不會出錯。

---

## 🔮 Uniswap V4：架構重構

1.  **Hooks (鉤子)：** 交易前後可插入自定義代碼（如鏈上限價單、動態手續費）。
2.  **Singleton (單例)：** 所有池子在一個合約內。多幣種跳轉（Multi-hop）不再需要真實轉帳，只需在賬本上加減（Flash Accounting），大幅降低 Gas。

---

## 💰 生態資源與「財富密碼」

Jeff 強烈建議開發者關注以下資源：

1.  **Uniswap Foundation Incubator：** 全免費、6-8 週的線上孵化器，Jeff 是導師。
2.  **DeFi Education Fund：**  這是一個由 Uniswap 資助的政治遊說組織，專門在美國進行 DeFi 政策教育與遊說，對關注合規賽道的人很重要。
3.  **Unichain Retro Grant：** 針對 Uniswap 新推出的 Unichain 生態的資助計劃。
4.  **黑客松 (Hackathons)：** 推薦 ETHGlobal，獎金豐厚。




---

> **總結：**
> 從 V2 的 $x \cdot y = k$ 幾何美學，到 V3 為了省 Gas 而發明的 Bitmap 和複雜費用算法，Uniswap 的進化史就是一部在**「資本效率」**與**「鏈上計算成本」**之間博弈的歷史。