自動做市商不會接受買家和賣家的報價。它使用一個公式(最常見的是 Uniswap 開發者文件中的恆定乘積公式 x*y=k)根據兩個代幣的資金池來定價交易。資金池的儲備比率在交易前設定價格,但由於交易本身會改變該比率,因此實際成交價格通常比最初報價更差,除非交易規模相對於資金池極小。
池子和公式正在進行的操作
根據 Uniswap 博客,流動性池是一個智能合約,持有兩種代幣的儲備,例如 ETH 和 USDC,任何人都可以直接與之交易。流動性提供者存入等值的兩種代幣以啟動池子,並設定常數 k 的初始值,k 為兩種儲備數量的乘積,如 Uniswap 博客所述。從此之後,每次交換都必須保持 x 乘以 y 等於同一個 k。Uniswap 開發者文檔將 k 描述為一個不變量,必須在每次交易後保持不變或增加。由於兩種儲備餘額必須持續相乘得到相同的數值,從池中取出一種代幣意味著另一種代幣必須上升以作補償,而這種比例的變化正是推動價格變動的原因。
計算算術:從 10 ETH / 20,000 USDC 的流動性池中購買 1 ETH
Uniswap 博客提供了一個示例。從 10 ETH 和 20,000 USDC 的流動性池開始。常數為 10 乘以 20,000,即 200,000。在此起始點,該流動性池暗示的即期價格為 1 ETH 兌換 2,000 USDC。
現在,一名交易者購買了 1 ETH。該池的 ETH 儲備降至 9。為保持常數為 200,000,USDC 儲備必須上升至 200,000 除以 9,即約 22,222.22 USDC,根據 Uniswap 博客自己的計算。因此,該交易者投入了 22,222.22 減去 20,000,即 2,222.22 USDC,以換取這 1 ETH。他們購買 ETH 的實際價格為 2,222.22 USDC——而非交易前池子報出的 2,000 USDC。
這個差距,2,222.22 USDC 對比 2,000 USDC 的初始報價,被稱為滑點。它不是費用,也不是故障;而是公式正在準確執行其設計功能,根據資產儲備的變化重新定價池子。Uniswap 博客指出,相對於池子規模而言,較大的交易會導致更大的滑點,而深度更深的池子則能在相同交易下產生較小的價格波動。Uniswap 的開發者文檔也提出了同樣的觀點,將此效應描述為價格影響:相對於池子深度而言,較大的交易會使價格移動更多,而較小的交易則更接近當前即期價格執行。
Uniswap 博客也以更簡單的零售方式解釋了同一機制:用戶以 100 美元的 USDC 交換 ETH 時,會透過常數乘積公式即時計算匯率,智能合約在單一交易中收取 USDC 並返還 ETH,同時重新平衡資金池。
當簡單公式不再適用時
上述的 x*y=k 算術描述了一個類似 Uniswap v2 的池子,其中流動性分佈在整個可能的價格範圍內。Uniswap 的開發者文檔指出,在 v3 和 v4 中,該公式僅適用於流動性提供者所選擇的價格範圍內——這種設計稱為集中式流動性。在 v3 中,提供者在該範圍內的持倉透過一個名為 NonfungiblePositionManager 的合約以 ERC-721 非同質化代幣表示;在 v4 中,根據同一份文檔,持倉則透過 PositionManager 使用 ERC-6909 進行內部會計追蹤。實際影響是,兩個交易相同交易對、但在不同 Uniswap 版本上或由其提供者選擇不同流動性範圍的池子,即使都符合常數乘積公式,也不會因相同的交易而產生相同的價格變動幅度。
Uniswap 和 Balancer 都屬於 2020 年由 Guillermo Angeris 和 Tarun Chitra 的論文所稱的「常數函數做市商」(CFMMs)這一更廣泛的類別——這是一種自動化做市商,其定價規則是池中儲備金的某種固定函數,其中 x*y=k 就是一個例子。該論文同時指出,並非所有資產對都應使用該特定曲線定價。穩定幣的價格與約 $1 挂鉤,但在其周圍窄幅波動,因此在接近掛鉤點時,使用較平坦的曲線能更有效定價,使交易手續費在價格接近 $1 時保持低水平,並隨著價格偏離而上升——該論文將此方法歸功於 Curve 的 StableSwap 設計。其基本理念與 Uniswap 相同——儲備金與不變量設定價格——但曲線的形狀,以及交易者需進行的算術運算,則有所不同。
這個市場有多大
Angeris 和 Chitra 於 2020 年 3 月發表的論文,對當時所描述的 DeFi 生態系統提供了一些數據。該論文指出,當時的 DEX 所鎖定的數碼資產約為 1 億美元,每日交易額有時超過 1,000 萬美元。論文中一項源自 DeFi Pulse 數據、日期為 2020 年 2 月 12 日的數據顯示,CFMM 合約持有的資產為 1.297 億美元,而基於 LMSR 的預測市場掛單者(如 Augur 和 Gnosis)則僅持有 72.1 萬美元。同一篇論文提到,Uniswap 是透過以太坊基金會提供的 10 萬美元補助金建立的,相比之下,0x 在首次代幣發行中籌集了 2,400 萬美元,Bancor 則籌集了 1.53 億美元;並指出,截至論文撰寫時,Uniswap 所持有的流動性約為這兩家競爭對手總和的五至十倍。這些數據描述的是本頁面撰寫前五年的情況,僅作為歷史性說明,用以展現一個設計簡單的 AMM 如何迅速超越資金更雄厚、結構更複雜的替代方案——它們並未反映這些協議當前的規模。
此頁面未告知您的內容
本頁根據可用的證據中唯一一個具體數值範例,解釋了 Uniswap v2 式池的常數乘積公式。由於所參考的資料來源均未提供針對 Uniswap v3 或 v4 的集中流動性數學,或 Curve 所使用的 StableSwap 曲線的編號範例——僅描述了它們的差異——因此本頁未深入探討這些內容。
上述 10 ETH / 20,000 USDC 的範例是免手續費的。Uniswap 的開發者文件指出,交換費用由資金池和協議版本設定,且當透過治理啟用時,可能會收取協議費用,但這裡使用的任何來源均未說明任何特定資金池的實際費率,因此上述計算出的 2,222.22 USDC 執行價格,在實際收取手續費的資金池中會略高一些。
Uniswap 博客警告稱,雖然未提供具體數字,但交易者的最終成交價可能與螢幕上顯示的初始報價略有偏移,尤其是在流動性較低或活動急增時。本文所引用的任何資料來源均未解釋如三明治交易等技術如何與實際交易中的此類價差互動,僅有此一般性警告。
最後,2020 年關於鎖定總價值和 ICO 筹資的數據,僅為市場歷史中某一點的快照,其中 TVL 比較的日期為 2020 年 2 月 12 日,籌資比較則以論文 2020 年 3 月的出版時間為準。這些數據不應被視為 Uniswap、0x、Bancor 或更廣泛的 DeFi 市場的當前數據。
來源
上述每項事實均來自以下其中一份報告。當它們存在分歧時,文章已明確指出。



