從定價模型、滑點、無常損失、交易費等角度比較分析 Uniswap V3、Curve V2 和 Balancer V2。

撰文:Ricky Li、Siddharth Lalwani、 Hongxu Yan,就職於 Altonomy Ventures

自動做市商機制(AMM),以其常數級別的時間空間佔用的優勢,被許多去中心化交易所(DEX)採用,迄今爲止已有許多此類項目大獲成功。說到其中佼佼者,必須要提到 Uniswap、Balancer 和 Curve,它們都在近期推出了新的版本, 以針對流動性提供者所關注的各種問題和風險。 本文將會從多個方面對這三個協議的最新版本做出比較。

定價模型和不變式

參與到自動做市商機制中的人羣,包括兩種不同的角色:流動性提供者(LP)和交易者。流動性提供者向機槍池存入資金,而交易者用一種貨幣從池中換取另一種代幣。AMM 協議需要解決的第一個問題就是如何定價,以一個二幣池爲例,即如何用代幣 2(t2) 的數量表示代幣 1(t1) 的價格。

假設池中兩種貨幣的數量分別爲 R1 和 R2,在一筆交易中一個交易者想用Δ2 數量的 t2 來買Δ1 數量的 t1。我們可以用一個交易函數ψ來描述一個 AMM 協議,其必須滿足在交易前後函數值不變,不變式表示爲:

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2

根據這個等式,我們就可以由Δ1 推出Δ2 (或反之)。而這筆交易同時也會影響價格,因爲池中的代幣總量在交易之後改變了。實際上,因爲機槍池的交易價格和外部參考市場的價格有差距,所以套利者會不斷交易知道價差迴歸,AMM 正是利用這種機制來矯正池內的交易價格。每次交易的平均價格定義爲:

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2

當 dΔ1->0 時,我們可以計算得到邊際價格。 三種協議的邊際價格總結如下表

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2Table 1 邊際價格

Uniswap V3

Uniswap 的交易函數定義如下:

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2

由此可得不變式爲:

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2

推導出Δ2 的表達式爲:

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2

邊際價格爲:

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2

當 Δ1->0 時,

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2

在新版本 V3 中,由於在不同價格區間的流動性密度不同,需要對每個同一流動性密度的小區間單獨計算。當跨過區間邊界時,需要的下一個區間做類似計算。

Balancer V2

Balancer 的交易函數定義如下:

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2

由此可得不變式爲:

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2

推導出Δ2 的表達式爲:

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2

邊際價格爲:

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2

當 Δ1->0 時,

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2

權重ω1,ω2 也代表兩種代幣總市值的佔比,如果指定ω1=ω2=1/2,那麼該池就等價於 Uniswap 的池子。
特別的,Balancer 允許至多 8 種代幣的混合池,當代幣種類大於兩種時,其交易函數擴展爲:

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2

其他推導步驟也可類似地拓展到多幣的情形,推導步驟在此略過。

Curve V2

Curve 協議的交易函數是恆定和函數和恆定積函數的線性組合:

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2

類似的,我們可以推導出邊際價格,當 Δ1->0 時,

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2

價格影響和滑點

根據上一步得出的邊際價格公式,我們可以通過比較單次交易前後邊際價格的變化,來定義這次交易的價格影響。比較三種協議的價格影響,我們能得出以下結論:假定交易同等數量的代幣 1,設定ω1 越高的 Balancer 池,其價格影響越大,如果ω1>1/2,那麼價格影響大於相同交易在 Uniswap 池中的影響,反之亦然。而在平衡點附近(即價格偏移不嚴重) Curve V2 的價格影響最小。

在下面的例子中,我們比較四個不同池子的單次交易價格影響,假設初始池中代幣總量 R1=R2=10000:

  • 一個 Uniswap V3 池,初始價格爲 1
  • 一個 Balancer V2 池,ω1=0.4,ω2=0.6,初始價格爲 0.666
  • 一個 Balancer V2 池,ω1=0.6,ω2=0.4,初始價格爲 1.5
  • 一個 Curve V2 池,α=1,β=3,初始價格爲 1

四個池子的價格影響曲線如下圖所示:

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2Figure 1 價格影響曲線

明顯的,對於交易相同數量 Δ1 的代幣 1,對價格的影響排序如下:Balancer V2 w1=0.6 > Uniswap V3 > Balancer V2 w1=0.4 > Curve V2。

對於 Curve 來說,因爲其在一定範圍內價格影響最小,所以最適合穩定幣的交易對。根據以往 AMM 協議的經驗,價格影響曲線的形狀往往和流動性提供者的收益相關。距上圖所示,因爲 Curve 的價格影響曲線最平緩,導致滑點較低,從而使交易者在這個區間中更頻繁地(或更大量)交易,最終流動性提供者賺取了更多的交易手續費。

無常損失

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2Table 2 無常損失

對於 Uniswap V3 來說,來自單一提供者的流動性是被放置在某一封閉區間上的,當一種代幣的價格下降時,LP 對該種代幣的風險敞口逐漸增大,直到價格來到區間邊界。此時,該 LP 只有對該種代幣的風險敞口,對另一種代幣的敞口爲 0,若價格繼續往同方向移動,則敞口維持不變。

對於 Balancer V2 和 Curve V2 來說,流動性是對整個價格區間提供的,所以敞口會在整個區間上逐漸變化,不會到達最大 / 最小值。

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2Figure 2 Balancer 池在不同權重配置下的相對價格變化對無常損失影響

對於 Balancer 協議來說,代幣 1 的權重ω1 越小,相同價格波動下的無常損失越小,這是符合直覺的,因爲 LP 持有代幣 1 的量變小了。

出金與入金

對於想要參與這三種協議的流動性提供者來說,它們對於出金和入金的規則比較起來並沒有絕對的優劣,不過根據個人的資產類別和風險偏好,每個協議都有更適合的情形:

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2Table 3 出金與入金

對於 Uniswap V3 來說,入金時存入兩種代幣的配比由兩點因素決定(1)區間的兩個邊界 (2)當前交易價格。 簡單來說,如果當前交易價格等於兩個邊界價格的幾何平均數的話,LP 需存入 50:50 等量的兩種代幣。若當前價格更偏向一側,那麼 LP 需要存入的代幣中,更便宜的那種代幣佔據更高的比重。若當前價格在區間之外,LP 只需提供更便宜的一種代幣即可。

具體計算方法如下:

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2

當出金時,兩種代幣的本金提取量可做類似計算。已賺取的手續費部分,以交易發生時的代幣類型收取並提取。
對於 Balancer V2,LP 入金時總是需要提供池中所有種類的代幣,其配比決定與該池的權重設置

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2

對於 Curve,當入金時,LP 可以按任意比例存入代幣,或僅存入單一種類的代幣。但是,若存入比例和當前池內的代幣總量比例不符合,LP 將承受一定程度的損失(或獎勵)。因爲當 LP 獲取 LP 代幣時,獲得的量由以下公式計算:

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2

其中 D 是在平衡點時池內代幣總量,在流動性增加前其值爲 D0,在流動性增加後其值變爲 D1。但是,(假設投入相同數量的代幣)當池內代幣比例離平衡點越遠,D 值會相對越小,導致 LP 得到的 LP 代幣量較少,即產生了損失。相反的,若投入的代幣使得池內代幣比例趨向於迴歸平衡點,那麼 LP 將得到更多的 LP 代幣,即獲得了獎勵。

流動性聚集

就流動性聚集來說,Uniswap V3 給予了 LP 最大程度的靈活性,LP 們可以根據自己的意願聚合出任意形式的流動性分佈曲線。相較之下,Balancer 和 Curve 以更多的固定參數設定代替了這種靈活性。

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2Table 4 流動性聚集方式

Uniswap V3 允許每個 LP 設置任意的流動性範圍,以期望總體流動性聚集在一個最活躍的區間。但是,理論上,根據每個 LP 的自主決定,流動性可以被塑造成任意分佈。

舉例來說,一個和 Uniswap V2 等效的流動性分佈入下圖所示:

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2Figure 3 流動性分佈 Uniswap V2

這表示,若所有的 LP 都將流動性區間設置爲最大可能區間,那麼 Uniswap V3 池將會同 V2 等效。

以下是一個和 Curve 近似的流動性分佈,所有的流動性都聚集在平衡點附近的一個狹小區間內

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2Figure 4 流動性分佈 Curve

然而,上圖僅僅是 Curve V3 的近似,其實際要更復雜。隨着市場條件變化,最活躍價格區間偏離原平衡點太多時,Curve V3 會根據內置 Orcale 來重新調整平衡點和價格曲線。

以下是一個等效於 Balancer V2 的流動性分佈,其聚集於更大權重的代幣價格更低的一側

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2Figure 5 流動性分佈 Balancer V2

然而,以上都不是實際觀察到的 Uniswap V3 池常見流動性分佈,常見的分佈更類似於以下:

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2Figure 6 實際觀察到的流動性分佈 Uniswap V3

交易費用

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2Table 5 交易費用

Uniswap V3

每個交易對有三個費用梯度的池子供 LP 選擇:0.05%,0.3%,1%。直觀上看,LP 更偏向於高費用池,但當高費用池的交易活躍度遠低於低費用池時,LP 就不得不參與低費用池。交易者更偏向低費用池,但當低費用池的流動性過於稀薄而滑點過高時,交易者就會被迫從高費用池中交易。

根據實際觀察,對於穩定幣交易對來說,0.05% 費用的池子最活躍。對於其他交易對,當市場波動率高時,高費用池變得更活躍,當波動率低時,低費用池更活躍。

Balancer V2

Balancer 協議收取兩種費用:(1)交易手續費,以交易額的一定百分比對交易者收取 (2)出金費用,當 LP 從協議中出金時按提取額度收取

交易手續費可設置爲 0.05% 到 1% 之間,由池子創建者設置初始值,並由協議根據多因子來動態調整,因子包括:波動率,交易額,無常損失,流動性總量,流動性挖礦獎勵,等等。

出金手續費可由協議設置,但迄今爲止未採用。

Curve V2

費用可設置爲 0.04% 到 0.4% 之間,可根據目前池內代幣比例做動態調整,當前比例距離平衡點越遠,費用率越低:

多維度解析頭部 AMM:Uniswap V3、Curve V2 與 Balancer V2

結論

通過多方面的比較,可以看出每個協議都採取的不同的方法來契合 LP 和交易者們的多方面不同需要。

Uniswap V3 給予了 LP 最大的靈活性,幾乎所有參數都可以由 LP 自主決定,而團隊並沒有額外加入更多輔助特性,以保持協議的簡單化。而 LP 則需要管理自己的各種風險。

Curve 歷史上曾專注於穩定幣交易對,此新版本 V2 致力於擴展所涵蓋代幣的種類。不同於穩定幣,非穩定幣交易對的市場中價可能會偏移到新的活躍區間,所以此協議可根據內置 Oracle 的喂價調整流動性聚集範圍,而無需 LP 自己重部署流動性區間。此種設計對個人投資者更加友好,但限制了開發更復雜的定製化做市策略的可能性。

Balancer V2 在同一流動性池中容納了多於兩種的代幣,並且賦予不同的權重,這滿足了一部分 LP 差別對待不同種代幣風險敞口的需求。通過增加一側風險波動的方式,來降低另一側的風險。

引用文獻

[1] G. Angeris, A. Evans, T. Chitra; When does the tail wag the dog? Curvature and market making, 2020.

[2] Hayden Adams, Noah Zinsmeister, Moody Salem, River Keefer, and Dan Robinson. Uniswap v3 Core. (2021).

[3] Michael Egorov, Curve Finance (Swiss Stake GmbH). Automatic market-making with dynamic peg (2021)

[4] Fernando Martinelli, Nikolai Mushegian. Balancer Whitepaper (2019)