Automated Market Maker (AMM) 是在去中心化金融 (DeFi) 領域中一個常見且重要的代幣交換機制。AMM 池子內通常有兩種以上的代幣,並透過固定的定價公式與池子內代幣的數量來自動調整交易的報價,而把代幣存進池子內的角色被稱為流動性提供者 Liquidity Provider (LP),LP 所獲得的報酬則來自於 AMM 池子產生的交易手續費。
而作爲一名流動性提供者,其中之一個首要關心的議題就是,要如何衡量 AMM Pool 的投資報酬?AMM Pool 是如何收取交易費用的?交易手續費從哪裡來,又會到哪裡去。如果你還是一名 Builder 的話,你可能還關心 AMM 作為一個 DeFi 的基礎元件,這種機制是否可以永續運作下去呢?
這篇文章我將梳理三種不同看待交易費收入的觀點,以及比較這些不同觀點下所計算出來的投資報酬,試著回答在這三種觀點下 AMM 收入產生差異的原因。
我不會去說服你哪種方式才是對的,哪種是錯誤的,而身為一名投資人,抱持著一種以上的觀點是必要,不然你就會感到茫然。讓我們看看這篇 Reddit 上的討論:Is being a LP actually profitable in 2024?,截至 2024 年 11 月總共有 161 個 upvote、165 則 comment,而這篇的發文者也不只在一個版上發相同的文章,在 2024 年仍有有人對流動性提供者是否有利可圖抱持疑問,並獲得廣泛的回響,顯然成爲一個能獲利的流動性提供者有多麽不容易。
這篇文章受到 EthCC[7] 一場演講的啟發,這篇文章中的部分內容會來自於這場演講的東西,並延伸其觀點,建議大家可以先去看看哦。
https://ethcc.io/archives/fixing-objectively-bad-models-in-lp-performance-evaluations
為了讓接下來的內容更容易被理解與展現每個觀點的差異,讓我們用一個假想的例子來說明,假設有一個代幣叫 UNI ,它目前的價格是 5 USDC,我們創建了一個用恆定乘積公式報價的 AMM 池子,並在其中存進了 10 UNI 與 50 USDC,在這個池子中,我們把 UNI 當作是 Base token,而 USDC 是 Quote token,接著有一連串的交易按照順序發生,分別是
讓我們一起思考看看這個 AMM 池子最終產生了多少投資報酬吧。
P.S. 這裡的“買入”與“賣出”是以流動性提供者的視角來看,如果是流動性提供者買入 1 UNI ,那也就是交易者賣出 1 UNI ,反之亦然。
P.S. 如果現實世界中也有一個代幣叫 UNI,並且價格也剛好在 5 USDC 附近,那一定是一個巧合~
首先,我們考慮一下沒有收取任何費用的情況,來作為比較的對照組。
根據如下的恆定乘績公式,K 是一個常數,x₀ 為 base token 的初始數量,y₀ 為 quote token 的初始數量。
移項一下,我們可以得到報價公式
上述的交易按照順序執行的結果為
| UNI balance | USDC balance | K | UNI change | USDC change | Effective price |
|-------------|--------------|-----|------------|-------------|-----------------|
| 10 | 50 | 500 | 1 | -4.545455 | 4.545455 |
| 11 | 45.454545 | 500 | -1 | 4.545455 | 4.545455 |
| 10 | 50 | 500 | -1 | -5.555556 | 5.555556 |
| 9 | 55.555556 | 500 | 1 | 5.555556 | 5.555556 |
| 10 | 50 | 500 | 10 | -25.000000 | 4.545455 |
| 20 | 25 | 500 | -1 | 1.315789 | 1.315789 |
我們可以觀察到以下幾件事情:
如果 AMM 池子沒有投資報酬收入,那也就沒有人會有任何動機想成為流動性提供者,該代幣在 DeFi 市場中也就無法建立起流動性。
因此如果我們想讓 AMM 能夠持續運作,就必須要為流動性提供者提供額外的投資收入來吸引代幣持有人成為流動性提供者,一個直觀的想法是在每一筆交易上抽取一小部分的交易費用作為收入,這也是大多數 DEX 的收入模式,其中以 Uniswap v2 最為代表,Uniswap v2 實際的收費方式則是在池子收款的代幣上先抽取一小部分作為交易費用,然後將剩下的部分用上述的報價公式來兌換代幣,因此接下來我們以 Uniswap v2 為例,並以三種不同的觀點來衡量這個收入模式的績效表現。
讓我們開始在每一筆的交易上都收取一部分的交易抽成 (δ, 0 < δ < 1),因此每一筆交易的費用為
而兌換代幣的公式會是
我們將交易抽成設為 0.3% (δ = 0.003) ,將上述例子中的交易按照順序執行,得到的結果為
| UNI balance | USDC balance | K | UNI change | USDC change | Effective price | Fee |
|-------------|--------------|------------|------------|-------------|-----------------|---------------|
| 10 | 50 | 500 | 1 | -4.531818 | 4.531818 | 0.003 UNI |
| 11 | 45.468182 | 500.150000 | -1 | 4.560500 | 4.560500 | 0.013681 USDC |
| 10 | 50.028681 | 500.286815 | -1 | 5.575469 | 5.575469 | 0.016726 USDC |
| 9 | 55.604150 | 500.437353 | 1 | -5.543734 | 5.543734 | 0.003 UNI |
| 10 | 50.060417 | 500.604165 | 10 | -24.955118 | 2.495512 | 0.03 UNI |
| 20 | 25.105299 | 502.105978 | -1 | 1.325307 | 1.325307 | 0.003976 USDC |
總結一下最終的結果:
而與不收取交易費的情況 (Perspective 0) 相較,我們可以觀察到:
而在仔細觀察池子那個各代幣的餘額變化後,我們將會發現一個有趣的現象,以第一筆交易為例,我們認為收取了 0.003 UNI 的交易費用,但是在與不收取手續費的情況相較,池子內的 UNI 餘額其實並沒有任何不同,反倒是 USDC 的餘額多了 0.013637,那池子的收入究竟是 0.003 UNI 還是 0.013637 USDC 呢?或是手續費收入其實是一場幻覺呢?
不管收入究竟是 0.003 UNI 還是 0.013637 USDC ,可以假定有部分代幣收入進入池子內,因此池子的流動性在交易後的確比交易前更多了,可以從 K 值的增加來應證這點。
我們可以將流動性 (L) 定義為
將上述例子中的交易按照順序執行,流動性變化的結果為:
| UNI balance | USDC balance | Liquidity | UNI change | USDC change |
|-------------|--------------|-----------|------------|-------------|
| 10 | 50 | 22.360679 | 1 | -4.531818 |
| 11 | 45.468182 | 22.364033 | -1 | 4.560500 |
| 10 | 50.028681 | 22.367092 | -1 | 5.575469 |
| 9 | 55.604150 | 22.370457 | 1 | -5.543734 |
| 10 | 50.060417 | 22.374185 | 10 | -24.955118 |
| 20 | 25.105299 | 22.407721 | -1 | 1.325307 |
| 19 | 26.430606 | 22.409406 | 0 | 0 |
我們可以發現:
Liquidity ROI 看似是一個公正的指標,可以用來解釋 AMM 池子的投資報酬,但是含義是相當抽象的,它意味著把價值 50:50 的 UNI 和 USDC 存入池子內,在經過一連串的交易後,還是可以領出價值 50:50 的 UNI 和 USDC ,但這不表示 UNI 的數量或是 USDC 的數量就會變得比一開始更多了。也就是說,這個觀點迴避了收入來源的問題,並且相信流動性的增加等於投資報酬。
顯然,以上兩種觀點都無法明確說明 AMM 池子的收入來源,當無法正確的理解一項投資的收入模式,也就無法正確的計算與衡量投資報酬。
為了回答在此機制下 AMM 池子的收入來自何處,讓我們先拋開手續費的概念,直接觀察池子內代幣餘額與現貨價格的變化,並以此來計算看看池子內資產的總價值與投資報酬率 (ROI)。
以 Quote token 結算,池子總價值計算公式為
以 Base token 結算,池子總價值計算公式為
將上述例子中的交易按照順序執行,池子資產總價值的變化結果為:
| UNI balance | USDC balance | Total value in UNI | Total value in USDC | UNI change | USDC change | Effective price |
|-------------|--------------|--------------------|---------------------|------------|-------------|-----------------|
| 10 | 50 | 20 | 100 | 1 | -4.531818 | 4.531818 |
| 11 | 45.468182 | 22 | 90.936364 | -1 | 4.560500 | 4.560500 |
| 10 | 50.028681 | 20 | 100.057362 | -1 | 5.575469 | 5.575469 |
| 9 | 55.604150 | 18 | 111.2083 | 1 | -5.543734 | 5.543734 |
| 10 | 50.060417 | 20 | 100.120834 | 10 | -24.955118 | 2.495512 |
| 20 | 25.105299 | 40 | 50.210598 | -1 | 1.325307 | 1.325307 |
| 19 | 26.430606 | 38 | 52.861212 | 0 | 0 | 0 |
總結一下最終的結果:
現在讓我們以 quote token 計價來看看每一筆交易都發生了什麼事情。
在此一觀點下,我們可以得到到以下結論:
既然交易費用並不存在,那之前引入被稱為交易抽成的參數 (δ) 究竟對報價公式產生了什麼影響呢?
讓我們看看含有 δ 報價公式,整理一下前面的方程式
計算 Marginal price (Spot price)
各別對 x 從 x 到 $x + Δx 積分,和對 y 從 y 到 y + Δy 積分,可以得到以下方程式 (bonding curve)
對以上方程式作圖,看看報價曲線發生了哪些變化
我們可以發現以下幾點:
現在讓我們回頭看看之前對於 AMM 實際收入所提出來的疑問。
池子在買入 1 顆 UNI 後,所產生的手續費收入究竟是 0.003 UNI 還是 0.013637 USDC 呢?或是手續費收入其實是一場幻覺呢?
在這三種觀點下,我們將分別得到三種不同的答案。
第一種觀點根據產品規格與定義,手續費收入會是 0.003 UNI。
第二種觀點從流動性的角度去觀察,在每一筆交易後,流動性都會些微地成長,而流動性成長的來源正好是因為 USDC 的餘額多了 0.013637 ,這或許可以間接地被解釋為一種收入。
第三種觀點剖析了池內代幣餘額變化的過程,發現所謂的手續費收入並不存在於這個過程中, 由於引入 δ 參數,使得 AMM 採用的訂價曲線 (bonding curve) 從 K = X * Y 變成了 K = X ^ ( 1 — δ) * Y 和 K = X * Y ^ ( 1 — δ),這僅僅只造成了報價上的變化。因此當池子買入 1 UNI 所花費的 USDC 應該被視爲一種成本,只有當這顆 UNI 被賣出時,才會產生收入,有可能賺錢,也有可能賠錢。
哪一種觀點對你來說更為合理呢?
第一種手續費收入的詮釋是最為常見的,Uniswap Explore上統計的費用收入與各個 DEX 網頁上顯示的 APY 也都是類似的計算方式。第二種流動性成長的觀點雖然實際上沒有人用這種方式來評估,但是它也是相對直觀,與第一種觀點互補,這讓決大多數的加密貨幣投資人相信 AMM 是一種具有生產性的資產。
第三種觀點與前兩種觀點是截然不同的,這種觀點似乎有點違反常理,但是當你仔細想想卻十分合理,相信很多流動性提供者們在贖回代幣後,會將兩種代幣換算成美元價值,以此來計算 ROI ,而不是用手續費收入來計算 ROI,大多數的時候將會發現你的 ROI 與當初在網站上看到的 APY 有著頗大的差距。第三種觀點則能夠解釋會有這個差距的原因,因為手續費並不存在,倉位會賺錢還是賠錢只是這段時間內代幣交易的結果。
這篇文章中分析了三種觀點來衡量 AMM 池子績效表現,並且將它們都與無收費的情況進行對比,嘗試解釋 AMM 池子的收入模式,收入模式包含了收費來源與收費方式。我們總共得到 7 種 ROI 的計算方式,在我們的例子中,這 7 種 ROI 分別是:
由於我們比較的先決條件都是同一個 AMM 池子、一樣的代幣對、一樣的初始狀態、一樣交易過程和一樣報價數學模型,對交易原來說他們成交價格也沒有任何不同,因此造成這些 ROI 有如此差異的原因來自於流動性提供者的主觀因素,包括
當我們試著把 AMM 理解為被動的交易策略,就會發現作為一名流動性提供者所掌握用以制訂策略的參數與工具是相當不足的,這會讓流動性提供者在 DEX 市場中處於非常劣勢的位置,而可能未來被動的流動性提供者的數量與投資額將會越來越少或是會有越來越多的流動性提供者從被動投資轉變成更加主動。
盤點一下目前市場上幾個流動性提供者所能操作的主流做法:
雖然最近這一年 AMM 似乎沒有明顯進展,但是現存的 AMM 的機制仍然並不完美,除了改進報價公式之外,AMM 應該還有很多需要改進的地方,我試圖在最後提供幾個方向,期待未來有更多有趣的 AMM 出現。
三種衡量 AMM 收入表現的觀點 was originally published in Taipei Ethereum Meetup on Medium, where people are continuing the conversation by highlighting and responding to this story.
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。