DEX 兌換:價格衝擊、滑價與 MEV
了解流動性池深度如何影響預期價格衝擊、最低收取量如何限制等待中的兌換,以及為何較寬的滑價容忍度可能容許較差的成交結果。
本指南內容價格衝擊、滑價和容忍度回答不同問題
簡短摘要
DEX 報價可能因兩個原因而改變:兌換本身推動池內價格,或其他交易在你的交易執行前改變價格。價格衝擊描述第一種情況;滑價則是報價與最終成交之間的變化。滑價容忍度設定的是結果界線,並不承諾更好的價格。
價格衝擊、滑價和容忍度回答不同問題
為什麼 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-TW/learn/crypto-token-approvals-and-allowances-explained)、[以太坊 Gas 費用指南](/zh-TW/learn/ethereum-gas-fees-base-fee-priority-fee-gas-limit-explained)及[跨鏈橋與包裝代幣指南](/zh-TW/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 道題檢查一下
問題 01
AMM 兌換中的價格衝擊衡量甚麼?
選擇答案即可查看解釋