Skip to content
所有期權指南
DEX 兌換執行機制11 分鐘閱讀

DEX 兌換:價格影響、滑點與 MEV

了解流動性池深度如何影響預期價格影響、最低收取量如何限制待處理兌換,以及為何較寬的滑點容忍度可能容許較差的成交結果。

本指南內容價格影響、滑點和容忍度回答不同問題

簡短摘要

DEX 報價可因兩個原因而改變:兌換本身推動池內價格,或其他交易在你的交易執行前改變價格。價格影響描述第一種情況;滑點則是報價與最終成交之間的變化。滑點容忍度設定結果的界線,並不承諾更好的價格。

價格影響、滑點和容忍度回答不同問題

當你的指示相對可用流動性較大,並直接推動池內價格時,就會產生價格影響。較貼近實際的報價已計入這種影響:在較淺的池中,大額指示的平均成交價通常較小額指示差。滑點是建立報價時的預期收取量與交易執行時結果之間的差異。等待期間的其他兌換、市場變動、延誤或路線變更都可能改變結果。

滑點容忍度是兌換必須符合的條件。對於輸入量固定的兌換,通常會設定最低收取量;如執行結果低於該數量,合約可能會回復交易。這個設定不會消除已計入報價的價格影響,也不代表實際會出現多少滑點。Uniswap 有關價格影響與價格滑點的說明也會區分兩者。不同介面可能採用不同計算方法或標籤。

為甚麼 AMM 報價會隨指示規模增加而轉差

訂單簿交易所會撮合买賣雙方在不同價格掛出的指示。恆定乘積自動做市商則根據池內代幣儲備計算兌換。在簡化的雙代幣模型中,x × y = k。買入其中一種代幣越多,該代幣就有越多數量流出池外,另一種代幣則流入,因此兌換比例會在交易期間改變。相對可用深度而言,指示越大,平均成交價就越差。

這只是模型,並非所有 DEX 的通用規則。Uniswap 開發文件介紹 v2 的恆定乘積結構,並將它與 v3、v4 按價格區間集中流動性的設計區分;後兩者亦可能採用 hooks 或不同費用規則。報價也可能合併多個池或交易平台。應比較這個指示規模和路線下的預期收取量,而非圖表的最新價格或池內總鎖倉價值。可參閱 Uniswap v2 兌換文件了解相關機制。

沒有文字的插圖:硬幣流入藍色池子,另一枚硬幣沿獨立路徑流出。
概念圖示:一種代幣進入共享池儲備,另一種代幣流出;圖中沒有價格、儲備數量、費用或即時報價。

計算例子:以 10,000 USDC 兌換淺池中的資產

假設一個虛構的池有 100 ETH 和 200,000 USDC,沒有兌換費用或外部價格變動,並按恆定乘積曲線運作。初始比例是 200,000 ÷ 100 = 每 ETH 2,000 USDC。輸入 10,000 USDC 後,池內 USDC 儲備變成 210,000。為維持乘積不變,ETH 儲備降至 20,000,000 ÷ 210,000,即約 95.238095 ETH。交易者收到約 4.761905 ETH。

按初始比例,10,000 USDC 原本可買入 5 ETH。相差的 0.238095 ETH 約佔沒有價格影響時可收取數量的 4.76%。平均成交價為 10,000 ÷ 4.761905 = 每 ETH 2,100 USDC,比兌換前的比例高 5%。交易後池內的邊際價格為 210,000 ÷ 95.238095 = 每 ETH 2,205 USDC。與無影響數量的差距、平均成交價,以及新的邊際價格,是不同的比較方式。實際報價還會計入費用和路線的流動性形狀。這是虛構計算例子,並非市場預測。

把池費與曲線影響分開計算

保留相同的假設儲備,並按一種特定收費方式假設輸入金額收取 0.30% 費用。定積報價採用的有效輸入為 10,000 × (1 − 0.003) = 9,970 USDC,因此輸出為 100 × 9,970 ÷ (200,000 + 9,970),約 4.748297 ETH。與同一曲線上不計費用時的 4.761905 ETH 相比,少約 0.013607 ETH。相對於初始比例下的 5 ETH,總差額約為 0.251703 ETH。若把免手續費的曲線結果作為中間步驟,約 0.238095 ETH 歸因於曲線影響,另有 0.013607 ETH 歸因於費用調整;這種拆分視乎比較基準而定。

0.30% 是示例假設,並非所有 DEX 通用的費率。這種輸入調整遵循 Uniswap v2 的 getAmountOut 程式庫所用的費用計算方式。不過,合約儲備仍會記錄全部輸入;公式中以 9,970 USDC 作為有效輸入,不代表只有這個數額進入池內。其他池可能採用不同費率、不同計費基準,或合併多項費用。多跳路線可能在每個池收費,另外還有介面費及網絡成本。請查看實際路線和費用明細,不要把這個百分比套用到所有兌換。

最低收取量是界線,不是報價結果

假設同一輸入量的路線報價為 4.7619 ETH,而介面設定了 1% 容忍度。最低收取量約為 4.7143 ETH:4.7619 × (1 − 0.01)。收到 4.72 ETH 符合界線;收到 4.70 ETH 則低於門檻,路線的保護條件可能會令交易回復。報價仍然是 4.7619 ETH。最低量只是已提交交易願意接受的最差結果。

較窄的界線可能會令可行交易失敗,例如網絡繁忙時價格變動,或報價已過時。較寬的界線則會在交易被拒絕前容許較差的成交。Uniswap 開發文件將最低輸出描述為保護條件,但實際參數和失敗方式取決於路由器或產品。交易已納入區塊後再回復,仍可能產生網絡費用,視乎區塊鏈和交易流程而定。不要只為消除錯誤提示就調高容忍度;先檢查報價、代幣、路線、費用或網絡狀況有否改變。

等待期間會出現報價沒有包含的變化

從簽署到納入區塊期間,其他兌換可能會改變池內儲備。套利交易可能令池價接近其他市場價格;市場快速變動亦可能令舊報價失去參考價值。你的指示不變,但最後收取量仍可能改變。部分區塊鏈上,較高的 gas 出價可能影響交易優先次序,但不保證執行時間或價格。期限可以拒絕等待過久的交易,卻不能保留舊報價。

應將報價時的估算與最終交易紀錄分開看。價格影響是指示對路線流動性的預期影響。報價建立後的額外變化,則是按介面採用的參考值計算的執行滑點。有些介面會將兩者合併成同一提示,或採用另一比較基準。如要事後核對,請在簽署前記下報價、時間、路線和最低收取量。

較寬界線可能被 sandwich MEV 利用

Sandwich 是最大可提取價值(MEV)的一種形式。搜尋者發現一筆待處理兌換後,會先提交交易,將池價推向對用戶不利的方向;然後讓用戶的兌換執行,再反向交易以平倉。用戶收到的數量可以高於已提交的最低量,但成交價仍可能比原先報價差。嚴格的輸出下限可以令部分不利成交回復,但無法阻止所有交易排序策略或一般市場變動。

Ethereum.org 的 MEV 指南介紹 sandwich 的排序方式,以及受影響用戶為何會得到較差成交結果。MEV 不全是攻擊:套利可能令池價接近其他市場,而 sandwich 則可能損害用戶的成交價格。Flashbots Protect 等私人交易路線會說明自己的保護方式和條件。其涵蓋範圍取決於區塊鏈和服務供應商,不保證特定價格,亦會增加對另一交易路徑的依賴。使用前應查看目前支援的網絡和條件。

費用、代幣行為和路線都會改變整體結果

收到的代幣數量並不等於兌換的總成本。請分開查看池費用、可能存在的介面費用、網絡成本、報價已包含的價格影響、執行滑點,以及代幣本身的轉帳或買賣費用。有些代幣的轉帳行為並不標準;兌換可能失敗,或轉移的數量與一般 ERC-20 假設不同。代幣授權可能是另一筆交易,並產生獨立網絡費用。

路線聚合器可能將兌換拆分到多個池,或使用中間代幣來提高報價輸出。這可以降低某條路線的價格影響,但也可能增加合約呼叫、費用或代幣特有風險。報價不保證在所有平台都能取得最佳成交。比較確切輸入量、預期輸出、最低收取量、池路徑、費用明細、網絡及期限。另可參閱[代幣授權指南](/zh-HK/learn/crypto-token-approvals-and-allowances-explained)、[以太坊 Gas 費用指南](/zh-HK/learn/ethereum-gas-fees-base-fee-priority-fee-gas-limit-explained)及[跨鏈橋與包裝代幣指南](/zh-HK/learn/crypto-bridges-wrapped-tokens-finality-risks-explained)。

簽署前檢查報價,執行後核對交易紀錄

簽署前,請核對網絡和代幣合約地址、輸入量、路線和池深度、顯示的價格影響、預期輸出和最低收取量、滑點設定、期限、池費用、介面費用、網絡費用,以及代幣警告。如果輸出看來異常偏低,可用較小的假設輸入量或另一條路線作比較。如果交易失敗,請先查明原因再重新提交。失敗的嘗試仍可能按區塊鏈和流程產生網絡費用。

交易完成後,將紀錄中的實際代幣數量與報價和最低收取量比較,並記下路線、費用、網絡成本和時間。不要把最低收取量當成預期輸出,也不要以為交易成功便代表已避免所有不利成交。本文計算使用的是沒有費用的恆定乘積池。集中流動性、多跳路線、代幣稅、預言機價格和各區塊鏈的交易排序,都可能令結果不同。

區分固定輸入和固定輸出的保護條件

在前面的例子中,輸入固定為 10,000 USDC,並為收到的 ETH 設定最低量。輸入不變;如果結果低於界線,執行可能會被拒絕。固定輸出兌換則先指定想收到的 ETH 數量,所需 USDC 可能高於估算,因此通常會設定最高輸入量。Uniswap 開發文件將固定輸入時的最低輸出量,與固定輸出時的最高輸入量分為不同保護條件。

因此,畫面顯示 1% 並不代表每筆兌換都保護同一數量。請檢查固定的是輸入還是輸出、下限或上限以哪種代幣為基準,以及聚合器有否將路線和費用計入報價。最低收取量是以代幣單位表示的條件,不是美元價值保證。如果收到的代幣價格同時下跌,即使兌換達到最低量,美元價值仍會改變。交易完成不代表報價價格獲得保證。

常見問題

Q1價格影響和滑點是同一回事嗎?

不是。價格影響源自你的指示相對池流動性的大小。滑點則是按介面採用的基準計算,報價與最終執行之間的差異。

Q2設定 1% 滑點是否代表我會損失 1%?

不是。這通常是相對報價設定的執行界線。結果可能更好、兌換可能回復,或成交接近容許下限。

Q3收窄容忍度可以阻止 sandwich 攻擊嗎?

它可以收窄交易會接受的結果範圍,但不能消除 MEV 或一般市場變動。私人路線也有自己的涵蓋範圍和限制。

資料來源與延伸閱讀

回報問題

我們會準備一封包含本文連結的電郵。寄出後,Mark 才會收到你的回報

快速檢查

讀完指南後,用 3 道題檢查一下

問題 1 / 3

問題 01

AMM 兌換中的價格影響量度甚麼?

選擇答案即可查看解釋

期權術語表