StableSwap 跟一般 AMM(例如 Uniswap 的恆定乘積公式)根本上有什麼不同?
一般 AMM 假設兩種資產的相對價格會隨供需大幅波動,這個假設對 ETH/USDC 這類波動資產配對是合理的,因為市場需要靠價格劇烈反應來完成價格發現。但穩定幣配對(如 USDC/USDT)理論上兩者永遠都該值 1 美元,用同一套「假設價格會大幅波動」的公式去處理,等於在一個不該有價格發現需求的市場裡,硬是製造出不必要的滑點成本。
StableSwap 的根本不同在於它針對「資產應該同價」這個特性做了數學上的優化——在資產比例接近平衡時採用幾乎平坦的定價曲線,讓大額交易幾乎不影響價格,只有在資產真正偏離錨定、進入不安全區間時才切回類似恆定乘積的行為。這不是「Curve 比較厲害」的模糊說法,而是針對穩定幣這個特定資產類別,選擇了跟一般 AMM 完全不同的數學公式。
為什麼會有人專門去發明 StableSwap 這套演算法,而不是直接沿用 Uniswap 現成的公式?
穩定幣交易在 DeFi 裡的體量極大——光是 Curve 3pool 這一個池子的日交易量就能達到 5000 萬到 2 億美元規模,如果每一筆大額穩定幣互換都要承受恆定乘積公式帶來的高滑點,對機構、市場做市商、以及需要頻繁調倉的協議來說,會是一筆持續且龐大的隱形成本。用一般 AMM 處理穩定幣兌換,本質上是在一個「不該有太大波動」的市場裡,強迫交易者為「可能的波動」預先付費。
StableSwap 存在的核心理由,就是把這筆本不必要的成本去掉——透過辨識出「穩定幣理論上該同價」這個特性,用數學方式把交易曲線在關鍵區間「拉平」,讓大額交易只需要承擔真實存在的風險(也就是資產真的脫錨的可能性),而不必為市場正常運作時根本不存在的波動風險買單。這也是為什麼 Curve 能在穩定幣兌換這個垂直領域,長期維持遠高於一般 DEX 的市占率與交易量。
放大係數(A)具體怎麼運作?池子失衡的時候會發生什麼事?
放大係數 A 決定了 StableSwap 定價曲線在「中間平坦區」的寬度:A 值越高(例如 3pool 目前採用的 2000),曲線在資產比例接近平衡時就越接近一條水平線,代表更大金額的交易也不太會影響價格;A 值越低,曲線就越接近恆定乘積公式的形狀,滑點會更早開始上升。這個參數不是固定不變的,而是由 Curve 的治理機制(DAO 投票)決定,過去甚至出現過「要不要把 3pool 的 A 值從 2000 拉高到 5000」的治理提案,最後因為擔心脫錨時風險被放大而未通過。
當池子真的失衡——例如某個資產的比例大幅偏離原本設計的平衡點——StableSwap 會自動離開那個平坦區間,開始表現得更像恆定乘積公式,滑點隨之放大,這時候套利者會湧入買進被低估的那一種資產、賣出被高估的資產,直到池子重新回到接近平衡的狀態。這個機制本身沒有問題,但如果失衡的原因不是暫時性的市場波動,而是某個資產真的失去了背後的儲備支撐(例如發行商出現清償力危機),套利買盤可能無法把價格拉回,滑點會持續放大而不是收斂。
如果我只是一般用戶,偶爾需要在不同穩定幣之間轉換,這篇文章對我實際操作有什麼具體幫助?
第一個實際幫助是選擇正確的交易路徑:如果你要換的是穩定幣對穩定幣(USDT↔USDC、USDC↔DAI 這類),優先選擇路由到 Curve 這類 StableSwap 池子的介面,多數聚合器(1inch、Matcha、CoW Swap)會自動判斷並選擇最優路徑,你不需要自己手動比較,但知道背後的原理能幫你在看到報價異常時多一分警覺。第二個實際幫助是判讀警訊:如果你在做一筆穩定幣互換時,介面顯示的滑點忽然遠高於平常(例如平常 0.01% 突然跳到 1% 以上),這通常不是單純的網路壅塞或流動性不足,而是市場已經開始對某個資產的脫錨風險定價——這時候先暫停交易、確認一下新聞或社群動態,會比硬著頭皮吃下高滑點成本更划算。
第三個幫助是理解「省下的錢從哪來」:對於經常需要處理大額穩定幣轉換的人(例如企業財務、頻繁在不同鏈或不同穩定幣之間調倉的用戶),選對交易路徑能省下的滑點成本,在單筆百萬美元等級的交易裡可以達到千美元以上的差距,長期累積下來是實際可觀的節省,而不只是理論上的差異。
在 Uniswap 上把 100 萬美元的 USDC 換成 ETH,價格衝擊可能吃掉你 0.1%–0.3% 的價值;但同樣 100 萬美元,把 USDC 換成 USDT,透過 Curve 這類專門為穩定幣設計的交易所,價格衝擊通常只有 0.01% 左右,差距超過十倍。這不是巧合,也不是 Curve 比較「厲害」這麼簡單的說法——背後是一套叫做 StableSwap 的數學設計,專門利用穩定幣「理論上應該都等於 1 美元」這個特性,換來一般 AMM 做不到的低滑點。
大多數去中心化交易所(例如 Uniswap)採用的是「恆定乘積公式」:x × y = k。這套公式的假設是兩種資產的相對價格會隨供需大幅波動——這對 ETH/USDC 這種波動資產配對很合理,但拿來處理 USDC/USDT 這種「理論上永遠等值」的配對,就是殺雞用牛刀,而且刀法還不對。因為恆定乘積公式在資產比例稍微失衡時,價格就會劇烈偏移,導致大額交易的滑點遠高於實際需要承擔的風險。
Curve 的 StableSwap 演算法把兩種公式混在一起用:資產比例接近平衡(也就是兩邊都接近各占一半、都接近 1 美元)時,採用「恆定總和公式」(x + y = D),這個公式在中間區段幾乎是一條平的直線,代表大額交易幾乎不會影響價格;只有當池子失衡到一定程度、偏離安全範圍時,才切換回接近恆定乘積的行為,讓演算法在資產真的偏離錨定時依然能運作、不會被掏空。中間銜接兩套公式的關鍵參數叫做「放大係數」(Amplification Coefficient,通常寫作 A),主流的 3pool(USDC/USDT/DAI)目前採用 A=2000 這個數值,讓中間那段「幾乎平坦」的區間拉得更長,能夠承受更大金額的交易而不明顯偏離 1 美元。
把同樣一筆 100 萬美元的 USDC 換成 USDT,放進不同交易所比較會看到明顯差距:Curve 3pool 的滑點約落在 0.008%,換算下來大概是 80 美元;Uniswap V3 的一般池子滑點約 0.127%,換算下來超過 1200 美元;如果落到流動性更淺的 SushiSwap 一類池子,滑點甚至可能超過 0.3%,換算超過 3000 美元。差距的來源不是手續費結構不同,而是演算法本身「知不知道」這兩個資產應該要維持在同一個價位。
StableSwap 的效率建立在一個前提上:池子裡的資產真的維持著接近 1 美元的價值。一旦某個資產真的脫錨——例如 2023 年 3 月矽谷銀行事件期間,USDC 一度在部分交易所跌到 0.88 美元附近——StableSwap 的放大係數就無法再壓住價格偏移,演算法會自動切回接近恆定乘積的行為,讓滑點大幅放大,這時候池子裡的資產配置也會迅速失衡,因為套利者會湧入買進被低估的那一邊。換句話說,StableSwap 的低滑點不是「保證」,而是建立在「資產維持錨定」這個假設之上的優化——這個假設平時成立,但危機時刻正是它最脆弱的時候。
如果你經常需要在不同穩定幣之間轉換(例如把 USDT 換成 USDC 以配合某個服務或交易所),選擇路由到 Curve 這類 StableSwap 池子的交易介面(多數聚合器如 1inch、Matcha 會自動判斷),能省下的滑點成本在大額交易時相當可觀。但同樣重要的是反過來理解:如果你看到某個穩定幣兌換池子突然出現異常大的滑點,這往往是市場在提前反映脫錨風險的訊號,而不是單純的「流動性不足」——這時候與其急著在原池子裡完成交易吸收高滑點成本,不如先確認一下背後是不是有更根本的信心問題。