AMM 自動做市商原理:x*y=k 的數學之美

DeFi 與鏈上生態
更新於2026-11-09
2,491

AMM(Automated Market Maker,自動做市商)是一種不依賴傳統訂單簿的鏈上交易機制,使用者直接與流動性池進行代幣兌換。最經典的 AMM 模型就是 x*y=k 恆定乘積公式,它透過池中兩種資產的數量變化自動調整價格,讓買賣雙方不需要彼此匹配也能完成交易。

一、AMM 到底是什麼?

傳統中心化交易所通常採用訂單簿模式。

例如 ETH 當前市場價格為 3,000 USDT,使用者想買入 ETH,需要市場中存在願意以相應價格賣出 ETH 的訂單。交易所撮合系統負責尋找買賣雙方,並完成訂單匹配。

AMM 的邏輯完全不同。

它不會要求使用者先找到一個對應的賣家,而是把兩種資產存入一個流動性池(Liquidity Pool)。使用者交易時,實際上是在和這個池子進行交換。

例如一個 ETH/USDC 流動性池裡同時存在 ETH 和 USDC:

ETH + USDC → Liquidity Pool → Trader Swap

使用者用 USDC 買 ETH,池中的 USDC 增加、ETH 減少;使用者賣 ETH,則相反。

價格並不是由某個交易員手動設定,而是根據池子的資產數量和 AMM 公式自動變化。

這就是自動做市商的核心。

而 Uniswap 正是 AMM 最具代表性的應用之一。如果想進一步了解 AMM 最重要的實際應用,可以繼續閱讀 Uniswap 深度解析:DEX 王者的進化之路。

二、x*y=k 是什麼意思?

理解經典 AMM,最重要的公式就是:

x × y = k

其中:

  • x = 流動性池中 Token A 的數量

  • y = 流動性池中 Token B 的數量

  • k = 恆定乘積

例如,一個 ETH/USDC 池中有:

  • 10 ETH

  • 30,000 USDC

那麼:

10 × 30,000 = 300,000

因此:

k = 300,000

當使用者買入 ETH 後,池中的 ETH 數量減少,而 USDC 數量增加。交易完成後,兩種資產的新數量需要滿足相應的恆定乘積關係。

這就是 AMM 自動調整價格的基礎。

需要注意的是,實際交易還會涉及手續費,因此嚴格的鏈上計算並不是簡單地把輸入數量直接代入 x*y=k。經典 Uniswap v2 模型會先考慮交易手續費,再計算使用者能夠得到多少 Token。

飛書文件 - 圖片

三、AMM 是怎麼透過數學公式自動定價的?

AMM 最有意思的地方就在這裡:

它不需要有人告訴池子「ETH 現在應該賣多少錢」,池子的資產比例本身就會形成價格。

繼續使用前面的例子。

池子裡:

10 ETH + 30,000 USDC

那麼交易前的簡單池內價格可以理解為:

30,000 ÷ 10 = 3,000 USDC/ETH

假設有人使用 USDC 買 ETH,池中的 ETH 數量下降。

如果交易後池中只剩下 9 ETH,那麼為了維持:

x × y = 300,000

USDC 數量就需要達到:

300,000 ÷ 9 ≈ 33,333 USDC

也就是說,隨著 ETH 被買走,池中 ETH 越來越少,而 USDC 越來越多,ETH 的池內價格就會不斷升高。

反過來,如果大量使用者賣 ETH,池中的 ETH 增多、USDC 減少,ETH 的池內價格則會下降。

因此可以把 AMM 的價格變化簡單理解為:

買得越多 → Token 在池中越稀缺 → 池內價格上升

賣得越多 → Token 在池中越充足 → 池內價格下降

這也是 AMM 與固定價格兌換最大的區別。

四、用一個實際例子看懂 x*y=k

假設有一個完全由兩種資產組成的模擬池:

  • 10 ETH

  • 30,000 USDC

  • k = 300,000

現在使用者想使用 3,000 USDC 買 ETH。

為了便於理解,先忽略手續費。

交易之後,池中的 USDC 變成:

30,000 + 3,000 = 33,000 USDC

根據:

x × 33,000 = 300,000

得到:

x ≈ 9.09 ETH

原來池裡有 10 ETH,因此使用者大約得到:

10 - 9.09 = 0.91 ETH

使用者支付 3,000 USDC,得到約 0.91 ETH。

因此這筆交易的平均成交價格約為:

3,000 ÷ 0.91 ≈ 3,297 USDC/ETH

注意,交易開始前池內價格是 3,000 USDC/ETH,但使用者實際平均成交價格已經達到約 3,297 USDC/ETH。

這就是 AMM 中非常重要的概念:

交易本身會改變池子的價格。

而且交易規模越大,相對於池子流動性越大,價格影響通常越明顯。Uniswap 官方也明確將這種由交易規模相對於流動性深度造成的變化定義為 Price Impact。

以上計算為便於理解的假設示例,不代表任何實際市場報價。

五、為什麼流動性越深,大額交易通常越容易成交?

把 AMM 想像成一個水池。

一個小水池裡只有 10 ETH 和 30,000 USDC,如果有人突然拿 10,000 USDC 去買 ETH,對池子的影響會非常明顯。

但如果另一個池子裡有:

1,000 ETH + 3,000,000 USDC

同樣交易 10,000 USDC,佔整個池子的比例就非常小,價格受到的影響通常也會小很多。

所以 AMM 中存在一個非常重要的關係:

流動性越深 → 相同交易規模造成的價格影響通常越小

流動性越淺 → 相同交易規模造成的價格影響通常越大

這也是為什麼專業交易者不會只看某個 Token 的「當前價格」,還會關注對應交易池的流動性深度。

六、AMM 中的價格為什麼會不斷變化?

因為每一筆交易都會改變池子的資產比例。

假設:

10 ETH + 30,000 USDC

有人買走 ETH 後:

ETH ↓

USDC ↑

池子的 ETH/USDC 比例發生變化,新的價格也隨之產生。

如果連續很多使用者都買 ETH:

ETH ↓↓↓

USDC ↑↑↑

那麼 ETH 的池內價格就會持續上漲。

反過來,如果大量使用者賣 ETH:

ETH ↑↑↑

USDC ↓↓↓

ETH 的池內價格就會持續下降。

因此 AMM 並不存在一個永遠固定的價格。

更準確地說:

價格是池子狀態的即時結果。

這也是 AMM 與傳統固定報價系統之間的重要區別。

七、為什麼 AMM 的價格可以和外部市場不一樣?

這是很多新手第一次接觸 AMM 時容易產生的疑問。

假設某個 Token 在外部市場的價格是 100 USDT,但某個 AMM 池因為交易行為變化,池內隱含價格暫時變成了 103 USDT。

這種價格差異通常不會一直保持。

如果套利者發現:

DEX:103 USDT

其他市場:100 USDT

就可能在價格較低的市場買入,再在價格較高的市場賣出。

大量套利交易會改變 AMM 池中的資產比例,使池內價格逐漸向其他市場價格靠攏。

因此:

套利交易並不是 AMM 的異常現象,而是鏈上市場價格發現機制的重要組成部分。

當然,實際套利是否值得執行,還要考慮 Gas、交易手續費、滑點以及交易規模等成本。

八、AMM 的手續費從哪裡來?

AMM 不僅需要解決「怎麼交易」,還需要解決一個問題:

為什麼有人願意把自己的資產放進流動性池?

答案之一就是交易手續費。

流動性提供者,也就是 LP(Liquidity Provider),向池子提供資產,讓其他使用者可以進行交易。

每當交易發生,協議會按照對應池子的規則收取 Swap Fee,其中一部分或全部按照規則歸屬於活躍流動性提供者。不同 Uniswap 版本和具體池子的費率機制並不完全相同。

以經典 Uniswap v2 為例,其池子的基礎 Swap Fee 為 0.30%。當前協議費用機制已經發生變化,因此不能簡單地把「0.30% 全部都是 LP 收入」當作今天所有 v2 池的實際分配方式。

因此,理解 AMM 收益時應該區分:

交易者支付手續費

↓

協議按照規則處理手續費

↓

符合條件的 LP 獲得相應部分

手續費收入越高,並不意味著 LP 就一定盈利,因為 LP 同時承擔價格波動等風險。

九、為什麼提供流動性可能產生無常損失?

這是 AMM 中最容易被忽略的問題之一。

假設你向 ETH/USDC 池提供:

1 ETH + 3,000 USDC

此時 ETH = 3,000 USDC。

如果之後 ETH 大幅上漲,AMM 會透過交易自動調整池內 ETH 和 USDC 的比例。

當 ETH 價格不斷上漲時,套利者會持續買走池中的 ETH。

最終,你在池子裡的資產可能變成:

更少的 ETH + 更多的 USDC

也就是說,你提供流動性之後,資產組合會隨著市場價格變化自動發生調整。

如果此時把資產取出,再與「單純持有原始 ETH + USDC」的結果進行比較,就可能出現價值差異。

這就是無常損失(Impermanent Loss)。

因此:

LP 收到手續費 ≠ 一定獲得淨收益。

最終結果需要同時考慮:

手續費收入 + Token 價格變化 + 無常損失 + Gas 等成本

這也是 AMM 與單純持有資產最大的區別之一。

十、為什麼 Uniswap v3 不再是簡單的「整個池子都用 x*y=k」?

很多文章會把 AMM 簡化成:

x*y=k

這個理解對於學習經典 AMM 非常重要,但如果把它直接套到今天所有 AMM 上,就不夠準確。

Uniswap v2 採用的是經典的恆定乘積模型,而 Uniswap v3 引入了集中流動性(Concentrated Liquidity)。

簡單來說:

v2:

流動性分佈在整個價格範圍

v3:

LP 可以把流動性集中到自己選擇的價格區間

例如,LP 可以選擇一個特定價格範圍,在這個範圍內提供更密集的流動性。

這樣做的好處是提高資本效率,讓相同規模的資金能夠在有效價格範圍內提供更深的流動性。

但代價也很明顯:

LP 需要管理價格區間。

如果市場價格離開 LP 設置的區間,該部分流動性可能不再處於活躍交易範圍,因此也不會繼續按照正常方式產生交易手續費,直到價格重新進入相應範圍。

所以,現代 AMM 已經從簡單的「把兩種 Token 放進池子」發展成更加複雜的流動性管理系統。

十一、AMM 為什麼不僅僅是一條公式?

x*y=k 很重要,但它只是理解經典 AMM 的入口。

一個完整的 AMM 實際上至少包含:

Liquidity Pool

決定市場中有多少可交易資產。

Pricing Formula

決定資產如何根據池子狀態進行定價。

Swap Fee

決定交易者支付多少手續費,以及 LP 如何獲得收入。

Liquidity Provider

為交易提供流動性。

Arbitrage

幫助不同市場之間的價格重新趨於一致。

Smart Contract

負責按照預設規則執行交易。

因此,一次簡單的 AMM 交易實際上經歷的是:

使用者提交 Swap

↓

智能合約讀取 Pool 狀態

↓

根據定價機制計算輸出數量

↓

扣除相應費用

↓

更新池中資產比例

↓

形成新的池內價格

這套機制完全可以在鏈上自動執行,不需要傳統交易所人工撮合。

十二、AMM 與訂單簿模式有什麼區別?

文件內嵌表格

兩種模式並不存在絕對的「誰更先進」。

AMM 的優勢是機制開放、自動化程度高,並且能夠讓使用者直接與鏈上流動性進行互動;訂單簿則能夠提供更精細的價格和訂單管理方式。

不同資產、不同市場環境下,兩種機制都有自己的適用場景。

飛書文件 - 圖片

十三、新手理解 AMM 最容易犯的 5 個錯誤

1. 認為 x*y=k 就代表價格永遠不變

實際上恰恰相反。

k 是恆定乘積,而 Token 的價格會隨著 x、y 的比例變化而變化。

2. 認為池子裡的價格就是整個市場的真實價格

AMM 只是一個市場。

不同 DEX、不同池子以及中心化交易平台之間都可能出現價格差異。

3. 認為流動性越多就一定沒有風險

流動性深可以降低某些交易的價格影響,但並不能消除智能合約、價格波動、無常損失等風險。

4. 認為 LP 收手續費就一定賺錢

LP 的最終結果需要同時考慮手續費收入和資產價格變化。

5. 認為所有 AMM 都使用完全相同的 x*y=k

經典 Uniswap v2 使用恆定乘積模型,但現代 AMM 已經發展出集中流動性、穩定幣曲線、加權池等不同設計。

十四、普通使用者如何判斷一個 AMM 池是否值得交易?

如果只是進行 Token Swap,可以先檢查以下幾個指標:

第一,看流動性。

池子越淺,大額交易產生明顯價格影響的可能性通常越高。

第二,看交易規模。

不要只看 Token 當前報價,還要看自己的交易金額佔池子流動性的比例。

第三,看 Price Impact。

如果一筆普通金額的交易已經產生非常高的 Price Impact,需要謹慎判斷池子深度是否足夠。

第四,看手續費。

不同 AMM、不同池子可能存在不同的手續費結構。

第五,看 Token 本身。

流動性池並不會自動保證 Token 是安全或有價值的。使用者仍然需要確認 Token 合約、項目來源以及交易限制。

第六,看最終交易條件。

交易提交前,需要確認預計獲得數量、最低獲得數量、Gas 和其他交易參數。

FAQ:AMM 常見問題

AMM 是什麼意思?

AMM 是 Automated Market Maker 的縮寫,即自動做市商。它透過智能合約和流動性池自動完成資產定價與交易,而不是依賴傳統訂單簿撮合。

x*y=k 為什麼能用來交易?

因為當使用者從池子中取出一種 Token 時,需要向池子加入另一種 Token,使池子的恆定乘積關係得到滿足。隨著兩種 Token 數量發生變化,池內價格也會自動變化。

AMM 中的 k 是什麼意思?

k 是恆定乘積模型中的不變量。在最基礎的模型中,x 和 y 分別代表池中兩種資產的數量,二者乘積形成 k。實際協議還需要結合手續費等規則進行計算。

為什麼交易金額越大,滑點或價格影響可能越高?

因為交易本身會改變流動性池中的資產比例。當交易金額相對於池子深度較大時,對池內價格造成的影響通常也更明顯。

提供 AMM 流動性一定能賺錢嗎?

不一定。LP 雖然可以根據池子規則獲得交易手續費,但同時需要承擔資產價格變化、無常損失、智能合約以及流動性等風險。

Uniswap v3 還是 AMM 嗎?

是。Uniswap v3 仍然屬於 AMM,但相比經典 v2,它採用集中流動性機制,讓 LP 可以選擇具體價格範圍,因此資金使用方式更加靈活,也更加複雜。

總結:x*y=k 是理解 AMM 的起點,而不是終點

AMM 最經典的數學表達式就是:

x × y = k

它用一個簡單的數學關係解決了一個複雜的問題:

沒有傳統訂單簿和人工撮合,鏈上使用者如何完成資產交易?

答案就是:

流動性池 + 定價公式 + 智能合約 + LP

使用者交易會改變池中的資產比例,資產比例變化又會改變價格;套利者進一步幫助不同市場之間的價格趨於一致;LP 則透過提供流動性獲得相應的手續費收入。

從 Uniswap v2 的經典恆定乘積模型,到 v3 的集中流動性,再到更新的 AMM 架構,AMM 已經從最初的簡單數學公式發展成複雜的鏈上交易基礎設施。

所以,真正理解 AMM,不應該只記住一句 「x*y=k」。

更重要的是理解完整關係:

流動性 → 定價 → 交易 → 價格影響 → 手續費 → 套利 → LP 收益與風險

掌握這條邏輯,才能真正看懂 DEX 中一筆交易為什麼會產生這樣的價格,也才能進一步理解 Uniswap 等主流 DEX 的運行機制。

風險提示: AMM 和 DeFi 相關操作可能涉及加密資產價格波動、流動性不足、智能合約漏洞、Token 合約風險、無常損失、交易執行偏差以及網絡費用等風險。本文僅用於區塊鏈技術和 DeFi 知識學習,不構成任何投資或交易建議。

以上計算為便於理解的假設示例,不代表任何實際市場報價。

目錄

推薦閱讀

看更多
鏈上遊戲資產:為什麼你的遊戲道具應該上鏈
鏈上遊戲資產:為什麼你的遊戲道具應該上鏈
DeFi 與鏈上生態
NFT 版稅與創作者經濟:藝術家如何靠 NFT 謀生
NFT 版稅與創作者經濟:藝術家如何靠 NFT 謀生
DeFi 與鏈上生態
比特幣生態新敘事:Ordinals、BRC-20、Runes
比特幣生態新敘事:Ordinals、BRC-20、Runes
DeFi 與鏈上生態