LIVE
★★★★☆閱讀時間 12 分鐘

【DEX 魔法】沒有掛單簿怎麼交易?一文看懂「自動做市商 (AMM)」與流動性池的數學之美

AMMDEXUniswap流動性池滑價無常損失MEV套利

上一講我們說到,DeFi 用智能合約消滅了銀行這個中間人,打造了一個 7 天 24 小時運作的無人金融世界。但我們留下了一個巨大的問題沒回答:

傳統交易所(如台灣證交所、納斯達克)之所以能運作,是因為有「掛單簿(Order Book)」——有人掛買單、有人掛賣單,系統幫你撮合。那在 DeFi 這個沒有管理員的世界裡,如果沒有人掛賣單,你怎麼買得到幣?

為了解決這個看似無解的問題,2018 年,一個名叫 Uniswap 的協議橫空出世。它捨棄了人類幾百年來的「買賣方撮合」邏輯,提出了一個創新的替代方案:不要找賣家了,我們來跟一個「池子」做交易。

廣場上的神秘大水池:流動性池

想像村莊廣場上,建了一個透明的巨大水池。這個水池被從中隔開,左邊裝滿了蘋果(ETH),右邊裝滿了美金(USDT)。這個水池就是所謂的 「流動性池(Liquidity Pool)」

今天如果你想用美金買蘋果,你不需要在廣場上大喊「誰要賣蘋果給我」。你只需要走到水池邊,把你的美金丟進右邊的池子裡,然後左邊的池子就會自動吐出對應數量的蘋果給你。

整個過程沒有對手盤、沒有媒人、沒有掛單簿。你面對的,就是這堆被鎖在智能合約裡的資產。只要池子裡還有水(有幣),交易就能成功並瞬間完成。

流動性池概念圖
圖一:流動性池概念圖

硬核原理解析:那個決定價格的恆定乘積公式

你一定會問一個最致命的問題:「水池怎麼知道一顆蘋果現在該賣多少錢?」

這就是 自動做市商(AMM, Automated Market Maker) 的靈魂所在。智能合約裡寫死了一條連國中生都看得懂的數學公式:

x×y=kx \times y = k

  • xx = 池子裡蘋果(ETH)的總數量
  • yy = 池子裡美鈔(USDT)的總數量
  • kk = 一個永遠不變的固定常數

這條公式就是整個 DEX 的定價大腦。它的邏輯非常簡單粗暴:「物以稀為貴」

當你把大量美金(yy)丟進池子,拿走大量蘋果(xx)時,池子裡的蘋果變少了。為了讓乘積 kk 保持不變,剩下的蘋果「單價」就必須自動調高。你買得越多,蘋果在池子裡就越稀缺,系統算給你的價格就越貴。

反之,如果你把蘋果丟進去換美金,蘋果變多了,蘋果的價格就會自動下跌。

價格不是由任何人「喊」出來的,而是由池子裡兩種資產的「比例」自動計算出來的。

用數字跑一遍:親手感受公式的威力

光看公式可能還是抽象,我們直接用真實數字算一次。

假設一個 ETH/USDT 的流動性池,目前裡面有:

  • xx = 100 ETH
  • yy = 200,000 USDT
  • kk = 100 × 200,000 = 20,000,000
  • 此時 ETH 的隱含價格 = 200,000 ÷ 100 = 2,000 USDT/ETH

情境:你想用 USDT 買入 10 個 ETH

買完之後,池子裡的 ETH 會從 100 變成 90。為了讓 kk 保持 20,000,000 不變:

  • 新的 yy = 20,000,000 ÷ 90 ≈ 222,222 USDT
  • 你丟進去的 USDT = 222,222 - 200,000 = 22,222 USDT
  • 你的實際成交均價 = 22,222 ÷ 10 = 2,222 USDT/ETH
預計收益與實際收益的滑價
圖二:預計收益與實際收益的滑價

看到了嗎?市場隱含價格是 2,000,但你因為一次買太多(佔了池子 10%),實際付出了 2,222——多付了超過 11%。這就是為什麼在 DEX 上,你的交易量相對於池子越大,被「懲罰」得越重。

想親手玩玩看這個公式?你可以在 Uniswap 上隨便輸入一個大額交易金額,系統會即時顯示「Price Impact(價格衝擊)」的百分比——這就是公式在告訴你:你這筆交易會把池子的平衡推偏多少。


AZAlpha 實戰視角:大戶最怕的「滑價」與無孔不入的套利機器人

在 AZAlpha 撰寫量化交易策略時,我們看待 DEX 的角度跟一般散戶完全不同。這條 x×y=kx \times y = k 的公式,衍生出了鏈上交易最殘酷的兩個實戰現象。

現象一:滑價(Slippage)的懲罰

剛才的數字範例已經很直觀了。如果你只是拿 100 美金去池子裡換 ETH,池子總量很大,價格幾乎不變,你拿到的接近市價。但如果你是擁有千萬美金的「巨鯨大戶」,你一口氣把池子裡 30% 的 ETH 買走,最後幾顆 ETH 的價格可能是天價。

這種「預期價格」與「實際成交價格」的落差,就叫做滑價(Slippage)

所以,我們在監測鏈上大戶動向時,會特別關注他們如何「拆單」——把一筆大交易拆成很多小交易,分散在不同的池子或不同的時間點執行,來降低滑價的衝擊。你在 Etherscan 上看到巨鯨的連續小額交易,很可能就是在做這件事。

現象二:套利機器人的無情搬磚

水池是瞎子,它根本不知道外面真實世界的 ETH 賣多少錢。如果 幣安(中心化交易所)上的 ETH 因為某個突發新聞暴漲到 2,500 USDT,但 DEX 水池裡的 ETH 還停在 2,000 USDT,會發生什麼事?

市場上無數的量化套利機器人會在一毫秒內嗅到這個價差。它們會瘋狂湧入 DEX,用 2,000 買走水池裡的 ETH,然後瞬間轉到幣安用 2,500 賣掉,無風險套利。在這個瘋狂買入的過程中,水池裡的 ETH 變少,價格就會沿著公式一路上升,直到跟幣安的 2,500 完全平齊為止。

套利校準流程圖
圖三:套利校準流程圖

這就是為什麼 DEX 能夠永遠精準貼近全球市場價格的原因——因為有成千上萬的套利者,在為了利潤自動幫忙「校準」價格。

延伸概念:MEV——黑暗森林裡的隱形掠食者

這些套利機器人的故事,其實只是冰山一角。在以太坊的世界裡,有一群更高階的玩家——他們不只是看到價差才行動,而是能在你的交易被確認之前,搶先插入自己的交易。

這種行為被稱為 MEV(Maximal Extractable Value,最大可提取價值)。簡單來說,就是「在區塊鏈上排隊插隊的特權」。驗證者或機器人可以看到你即將執行的大額交易,搶在你前面買入(把價格推高),等你的交易以更高的價格成交後,他們再賣出獲利。這招叫做「三明治攻擊(Sandwich Attack)」——你的交易被夾在他們的買和賣之間,你多付的錢就是他們的利潤。

我們會在第 13 講《黑暗森林生存法則》中教你如何保護自己不被三明治攻擊。

新手常見迷思

Q1:水池裡那幾千萬、甚至幾十億美金的資產,到底是誰放進去的?

這些錢不是 Uniswap 老闆的,而是全網的用戶(包含你我)湊起來放進去的。這些願意把自己的幣鎖進水池裡的人,被稱為 「流動性提供者(LP, Liquidity Provider)」

Q2:大家為什麼這麼好心,要把自己的錢放在水池裡讓別人交易?

因為天下沒有白吃的午餐。當你在 DEX 進行交易時,智能合約會向你收取一筆手續費(例如 Uniswap V3 的標準池是 0.3%)。在傳統交易所,這筆手續費是被公司賺走了;但在 DEX 裡,這筆手續費會按比例分發給那些提供資金的 LP。你放進水池的資金佔比越大,你分到的手續費就越多。

Q3:聽起來當 LP 放錢進去就能賺手續費,有什麼風險?

天下沒有白吃的午餐。當 LP 是有風險的,而且這個風險有一個專門的名字叫做 「無常損失(Impermanent Loss)」

當你把兩種幣放進池子後,如果其中一種幣的價格相對另一種大幅上漲或下跌,公式會自動幫你「賣掉漲的、買入跌的」來維持池子的平衡。當你把錢提領出來時,你可能會發現,你持有的資產總價值比你當初「什麼都不做,單純持有」還要少。

這是當 LP 最大的隱形成本,也是很多新手在 DeFi 裡虧錢的首要原因。我們在第 11 講會用完整的數字範例和圖表,帶你徹底搞懂無常損失的數學原理和規避策略。在看完第 11 講之前,請不要急著把大額資金丟進流動性池。

結語與下一步

到這裡,你已經跨越了 DeFi 世界裡最高的一道認知門檻。你懂了如何不需要媒人、不需要掛單簿,僅靠一條簡單的數學公式與一個大水池,就能完成千億美金級別的資產互換。

但是,如果你手上有 10 顆以太坊(ETH),你非常看好它未來的漲幅,死都不想賣(不想丟進水池換掉);可是你這個月又急需一筆現金來付房租,難道只能忍痛割愛嗎?

傳統金融裡,你可以拿房子去銀行抵押借出台幣。在沒有銀行的 Web3 世界,我們能不能拿手上的加密貨幣去抵押借錢?

本講關鍵詞彙表

術語英文簡述
掛單簿Order Book傳統交易所用來撮合買賣雙方的機制
流動性池Liquidity Pool鎖定在智能合約中、供交易者兌換的資產池
自動做市商AMM (Automated Market Maker)用數學公式自動定價的去中心化交易機制
恆定乘積公式Constant Product Formulax × y = k,AMM 的核心定價公式
滑價Slippage預期成交價格與實際成交價格之間的差距
流動性提供者LP (Liquidity Provider)將資產存入流動性池以賺取手續費的用戶
無常損失Impermanent LossLP 因池中資產價格變動而產生的潛在虧損
最大可提取價值MEV (Maximal Extractable Value)驗證者或機器人透過交易排序獲取的額外利潤
三明治攻擊Sandwich Attack在目標交易前後插入交易以獲利的 MEV 攻擊手法