AMM(Automated Market Maker,自動做市商)是一種不依賴傳統訂單簿的鏈上交易機制,使用者直接與流動性池進行代幣兌換。最經典的 AMM 模型就是 x*y=k 恆定乘積公式,它透過池中兩種資產的數量變化自動調整價格,讓買賣雙方不需要彼此匹配也能完成交易。
傳統中心化交易所通常採用訂單簿模式。
例如 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 王者的進化之路。
理解經典 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 最有意思的地方就在這裡:
它不需要有人告訴池子「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 與固定價格兌換最大的區別。
假設有一個完全由兩種資產組成的模擬池:
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 的「當前價格」,還會關注對應交易池的流動性深度。
因為每一筆交易都會改變池子的資產比例。
假設:
10 ETH + 30,000 USDC
有人買走 ETH 後:
ETH ↓
USDC ↑
池子的 ETH/USDC 比例發生變化,新的價格也隨之產生。
如果連續很多使用者都買 ETH:
ETH ↓↓↓
USDC ↑↑↑
那麼 ETH 的池內價格就會持續上漲。
反過來,如果大量使用者賣 ETH:
ETH ↑↑↑
USDC ↓↓↓
ETH 的池內價格就會持續下降。
因此 AMM 並不存在一個永遠固定的價格。
更準確地說:
價格是池子狀態的即時結果。
這也是 AMM 與傳統固定報價系統之間的重要區別。
這是很多新手第一次接觸 AMM 時容易產生的疑問。
假設某個 Token 在外部市場的價格是 100 USDT,但某個 AMM 池因為交易行為變化,池內隱含價格暫時變成了 103 USDT。
這種價格差異通常不會一直保持。
如果套利者發現:
DEX:103 USDT
其他市場:100 USDT
就可能在價格較低的市場買入,再在價格較高的市場賣出。
大量套利交易會改變 AMM 池中的資產比例,使池內價格逐漸向其他市場價格靠攏。
因此:
套利交易並不是 AMM 的異常現象,而是鏈上市場價格發現機制的重要組成部分。
當然,實際套利是否值得執行,還要考慮 Gas、交易手續費、滑點以及交易規模等成本。
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 與單純持有資產最大的區別之一。
很多文章會把 AMM 簡化成:
x*y=k
這個理解對於學習經典 AMM 非常重要,但如果把它直接套到今天所有 AMM 上,就不夠準確。
Uniswap v2 採用的是經典的恆定乘積模型,而 Uniswap v3 引入了集中流動性(Concentrated Liquidity)。
簡單來說:
v2:
流動性分佈在整個價格範圍
v3:
LP 可以把流動性集中到自己選擇的價格區間
例如,LP 可以選擇一個特定價格範圍,在這個範圍內提供更密集的流動性。
這樣做的好處是提高資本效率,讓相同規模的資金能夠在有效價格範圍內提供更深的流動性。
但代價也很明顯:
LP 需要管理價格區間。
如果市場價格離開 LP 設置的區間,該部分流動性可能不再處於活躍交易範圍,因此也不會繼續按照正常方式產生交易手續費,直到價格重新進入相應範圍。
所以,現代 AMM 已經從簡單的「把兩種 Token 放進池子」發展成更加複雜的流動性管理系統。
x*y=k 很重要,但它只是理解經典 AMM 的入口。
一個完整的 AMM 實際上至少包含:
Liquidity Pool
決定市場中有多少可交易資產。
Pricing Formula
決定資產如何根據池子狀態進行定價。
Swap Fee
決定交易者支付多少手續費,以及 LP 如何獲得收入。
Liquidity Provider
為交易提供流動性。
Arbitrage
幫助不同市場之間的價格重新趨於一致。
Smart Contract
負責按照預設規則執行交易。
因此,一次簡單的 AMM 交易實際上經歷的是:
使用者提交 Swap
↓
智能合約讀取 Pool 狀態
↓
根據定價機制計算輸出數量
↓
扣除相應費用
↓
更新池中資產比例
↓
形成新的池內價格
這套機制完全可以在鏈上自動執行,不需要傳統交易所人工撮合。

兩種模式並不存在絕對的「誰更先進」。
AMM 的優勢是機制開放、自動化程度高,並且能夠讓使用者直接與鏈上流動性進行互動;訂單簿則能夠提供更精細的價格和訂單管理方式。
不同資產、不同市場環境下,兩種機制都有自己的適用場景。

實際上恰恰相反。
k 是恆定乘積,而 Token 的價格會隨著 x、y 的比例變化而變化。
AMM 只是一個市場。
不同 DEX、不同池子以及中心化交易平台之間都可能出現價格差異。
流動性深可以降低某些交易的價格影響,但並不能消除智能合約、價格波動、無常損失等風險。
LP 的最終結果需要同時考慮手續費收入和資產價格變化。
經典 Uniswap v2 使用恆定乘積模型,但現代 AMM 已經發展出集中流動性、穩定幣曲線、加權池等不同設計。
如果只是進行 Token Swap,可以先檢查以下幾個指標:
第一,看流動性。
池子越淺,大額交易產生明顯價格影響的可能性通常越高。
第二,看交易規模。
不要只看 Token 當前報價,還要看自己的交易金額佔池子流動性的比例。
第三,看 Price Impact。
如果一筆普通金額的交易已經產生非常高的 Price Impact,需要謹慎判斷池子深度是否足夠。
第四,看手續費。
不同 AMM、不同池子可能存在不同的手續費結構。
第五,看 Token 本身。
流動性池並不會自動保證 Token 是安全或有價值的。使用者仍然需要確認 Token 合約、項目來源以及交易限制。
第六,看最終交易條件。
交易提交前,需要確認預計獲得數量、最低獲得數量、Gas 和其他交易參數。
AMM 是 Automated Market Maker 的縮寫,即自動做市商。它透過智能合約和流動性池自動完成資產定價與交易,而不是依賴傳統訂單簿撮合。
因為當使用者從池子中取出一種 Token 時,需要向池子加入另一種 Token,使池子的恆定乘積關係得到滿足。隨著兩種 Token 數量發生變化,池內價格也會自動變化。
k 是恆定乘積模型中的不變量。在最基礎的模型中,x 和 y 分別代表池中兩種資產的數量,二者乘積形成 k。實際協議還需要結合手續費等規則進行計算。
因為交易本身會改變流動性池中的資產比例。當交易金額相對於池子深度較大時,對池內價格造成的影響通常也更明顯。
不一定。LP 雖然可以根據池子規則獲得交易手續費,但同時需要承擔資產價格變化、無常損失、智能合約以及流動性等風險。
是。Uniswap v3 仍然屬於 AMM,但相比經典 v2,它採用集中流動性機制,讓 LP 可以選擇具體價格範圍,因此資金使用方式更加靈活,也更加複雜。
AMM 最經典的數學表達式就是:
x × y = k
它用一個簡單的數學關係解決了一個複雜的問題:
沒有傳統訂單簿和人工撮合,鏈上使用者如何完成資產交易?
答案就是:
流動性池 + 定價公式 + 智能合約 + LP
使用者交易會改變池中的資產比例,資產比例變化又會改變價格;套利者進一步幫助不同市場之間的價格趨於一致;LP 則透過提供流動性獲得相應的手續費收入。
從 Uniswap v2 的經典恆定乘積模型,到 v3 的集中流動性,再到更新的 AMM 架構,AMM 已經從最初的簡單數學公式發展成複雜的鏈上交易基礎設施。
所以,真正理解 AMM,不應該只記住一句 「x*y=k」。
更重要的是理解完整關係:
流動性 → 定價 → 交易 → 價格影響 → 手續費 → 套利 → LP 收益與風險
掌握這條邏輯,才能真正看懂 DEX 中一筆交易為什麼會產生這樣的價格,也才能進一步理解 Uniswap 等主流 DEX 的運行機制。
風險提示: AMM 和 DeFi 相關操作可能涉及加密資產價格波動、流動性不足、智能合約漏洞、Token 合約風險、無常損失、交易執行偏差以及網絡費用等風險。本文僅用於區塊鏈技術和 DeFi 知識學習,不構成任何投資或交易建議。
以上計算為便於理解的假設示例,不代表任何實際市場報價。