流動性提供者的交易條件
想像一下。ETH 現價 2,000 美元。你把 1 ETH 與 2,000 USDC 存進一個 Uniswap 的 ETH/USDC 流動性池,成為一名流動性提供者(LP)。你的回報是:每個透過這個池子兌換的交易者都會付一筆小小的 交易手續費,而其中一部分歸你。一個月後你回來看,ETH 翻倍漲到 4,000 美元。你覺得自己發了——以美元計也確實是。但當你提領時,卻發現兩件怪事:你手上 不到 1 ETH 了,而且你的部位價值 比你當初把那 1 ETH 與 2,000 USDC 單純放在錢包裡還少。這道差距就是 無常損失,也是每個 LP 都必須搞懂的核心事實。
像 Uniswap v2 這樣的自動做市商(AMM)會把你的兩種代幣當作儲備持有,並用你在上一篇學到的恆定乘積公式 x · y = k 為每一筆兌換定價:`x` 是 ETH 儲備、`y` 是 USDC 儲備,而乘積 `k` 在大家交易的過程中必須保持不變。無常損失不是 bug、不是手續費,也不是被駭。只要 ETH 的價格一偏離你存入時的位置,它就直接從那一條方程式裡冒出來。
套利悄悄地替你的部位再平衡
機制是這樣的。池子根本不知道 ETH 在 Coinbase 上值多少。它的內部價格就只是儲備的比值 `y / x`(每顆 ETH 值多少 USDC)。當 ETH 在公開市場上漲、池子卻還用便宜的價格標價時,這個池子就成了一間打折商店:套利者會不斷從裡面買走 ETH,直到內部價格 `y/x` 被拉到與市場一致為止。這每一筆交易都會移走 ETH、加入 USDC。沒人會徵詢你同意——恆定乘積不變量會自動完成這件事,而且價格波動越大、那筆交易就越大(價格影響正是套利者付給池子的成本,也正是你所收取的手續費)。
我們可以精準算出儲備最後落在哪裡。把 `k = x·y` 固定,並要求新的內部價格等於市場價格 `P`,也就是 `y/x = P`。解這兩條方程式會得到一個漂亮的結果:`x = √(k / P)`、`y = √(k · P)`。因此當 `P` 上升時,`x`(你的 ETH)縮水,`y`(你的 USDC)變多。一名 AMM 的 LP 在結構上注定是在上漲時一路賣出、在崩跌時一路買進——恰恰是順勢交易者最不想要的。
實例:ETH 翻倍
我們放真實數字進去算。為了讓算術乾淨,假設你擁有整個池子(反正你的份額會被消掉)。你在 ETH 為 2,000 美元時存入 1 ETH + 2,000 USDC,於是儲備從 `x₀ = 1`、`y₀ = 2000` 開始,`k = 2000`。接著 ETH 翻倍漲到 4,000 美元。
# Impermanent loss for a constant-product (x*y = k) pool # r = new_price / old_price (price ratio of the volatile asset) P0, P1 = 2000, 4000 # ETH price doubles x0, y0 = 1.0, 2000.0 # initial reserves (LP owns the whole pool) k = x0 * y0 # = 2000 # Arbitrage rebalances the pool until its price y/x equals P1: x1 = sqrt(k / P1) # = 0.70711 ETH (you now hold LESS ETH) y1 = sqrt(k * P1) # = 2828.43 USDC (and MORE USDC) V_pool = x1 * P1 + y1 # = 5656.85 USDC <- value if you LP'd V_hold = x0 * P1 + y0 # = 6000.00 USDC <- value if you just held IL = V_pool / V_hold - 1 # = -0.0572 -> -5.72%
仔細看這個結果,因為誠實的詮釋很重要。你的存入價值是 4,000 美元(1×2,000 + 2,000)。身為 LP,你現在有 5,656.85 美元——*賺了 41%*。這是實實在在的獲利,沒人搶你。但一個什麼都不做、只抱著相同代幣的「沙發馬鈴薯」會有 6,000 美元——*賺了 50%*。你少賺的那 343 美元、也就是相對抱著的 −5.72%,就是無常損失。這是你在上漲途中,任由套利者替你再平衡部位所付出的代價。
公式與損失曲線
那個 −5.72% 並不是這組數字的巧合——它只取決於價格比值 `r = P₁ / P₀`。以下是推導,篇幅很短,值得親手算一次:
- 價格變動後的池子價值:`V_pool = x₁·P₁ + y₁ = √(k/P₁)·P₁ + √(k·P₁) = 2·√(k·P₁)`。
- 代入 `k = x₀·y₀` 與 `P₁ = r·P₀ = r·(y₀/x₀)`,得 `k·P₁ = r·y₀²`,於是 `V_pool = 2·y₀·√r`。
- 抱著的價值:`V_hold = x₀·P₁ + y₀ = r·y₀ + y₀ = y₀·(1 + r)`。
- 相除:IL(r) = V_pool / V_hold − 1 = 2·√r / (1 + r) − 1。池子大小 `y₀` 被消掉了——無常損失純粹是價格移動幅度的函數。
price ratio r IL = 2*sqrt(r)/(1+r) - 1 ---------------- ------------------------ 0.5 (-50%) -5.72% 1.0 ( flat ) 0.00% 1.25 (+25%) -0.62% 1.5 (+50%) -2.02% 2 (+100%) -5.72% 3 (+200%) -13.40% 4 (+300%) -20.00% 5 (+400%) -25.46% 10 (+900%) -42.50%
三個性質直接浮現。(1)IL 永遠不會是正的:因為 `(√r − 1)² ≥ 0` 展開即 `2√r ≤ 1 + r`,比值 `2√r/(1+r)` 永遠不超過 1,所以 LP 最好也只能在 `r = 1` 時打平抱著、否則就是更差。(2)它是對稱的——只有分歧的幅度有意義,方向無關。(3)它會加速:4 倍的波動損失 20%、10 倍的波動損失 42.5%。這正是為什麼穩定幣配對可以對它一笑置之,而一個漲 50 倍的代幣卻會讓它慘烈無比。
手續費對上無常損失:真正的賭注
無常損失只是帳本的一面。任何人之所以願意提供流動性,靠的是另一面:交易手續費。在 Uniswap v2 上,每一筆兌換都會把成交額的 0.30% 付給該池的 LP。你真正的損益是 `賺得的手續費 − 無常損失`。提供流動性能不能賺,正取決於累積手續費有沒有壓過分歧損失。
把它具體化。某段期間收到的手續費,大約是你部位的 `手續費率 × (成交量 / 池子價值)`。要在 0.30% 級距下抵銷我們「ETH 翻倍」例子裡那 5.72% 的 IL,你需要在同一段期間累積到大約 `5.72% / 0.30% ≈ 19 倍` 池子價值的成交量。這場賭注划不划算,取決於一場拔河:高成交量餵你手續費,高波動(大幅的價格變動)餵你 IL。實際上你是做空波動率——一個 LP 部位的行為,就像賣出了一個選擇權跨式組合。
究竟是誰把那些手續費交到你手上、又是誰造成 IL?這正是 LVR 背後那個犀利的洞見。修正池子過時價格的套利者是知情流量——他們只在市場已經變動時才出手,而他們的獲利恰恰是你的分歧損失。真正補償你的手續費,絕大部分來自不知情的流量:某個人來兌換,是因為他想要那個代幣,而不是因為他知道了什麼。一個好的 LP 池,是相對於其波動率擁有大量雜訊交易者成交量的池子;一個壞的池子,則是只朝單一方向移動的冷門代幣——在那裡,唯一的交易者就是把你榨乾的套利者。
「無常」其實是個誤稱——以及 LP 實際上怎麼做
到底為什麼叫「無常」?因為這條公式與路徑無關:它只取決於當下的價格比值 `r`。如果 ETH 來回繞一圈、又精準回到 2,000 美元,那麼 `r = 1`、IL 回到 0,損失就像從未發生般蒸發——你還白賺了手續費。這就是這個名字當初取來描述的樂觀情境。但靠它是個陷阱。你一旦在任何非進場價的價位提領,損失就被實現且永久化,而價格鮮少會回到一個精準的水位。請把無常損失當成真實、可預期的成本,而不是暫時的幻覺。
也別忘了開頭那個框架:IL 是相對於抱著那兩種代幣來衡量的,不是相對於你的現金成本。在牛市裡,你可以帶著一筆豐厚的美元獲利出場,卻同時「輸」給了無常損失。這不是恐慌的理由——而是提醒你在存入之前,要拿對的基準來比較。
那麼,一個專業的 LP 面對這個兩難,實際上會怎麼做?工具箱如下:
- 刻意挑選配對。相關或錨定的資產(穩定幣/穩定幣、ETH/stETH)讓 `r` 接近 1、IL 接近零;不相關的高波動配對則恰恰相反。
- 讓手續費級距匹配波動率。高波動配對只有在較高的費率級距(例如 1%)才划得來;穩定配對因為 IL 極小,靠 0.05% 就能存活。
- 運用集中流動性(下一篇)——把資金集中在某個價格區間,讓每一塊錢賺到多得多的手續費;代價是價格離開區間時 IL 被放大,以及需要主動管理。
- 對沖方向性曝險。有些 LP 會放空等量的 ETH(例如透過永續合約),讓部位在大致 delta 中性的同時賺取手續費,把「手續費對 IL」的賭注與價格方向隔離開來。