header-langage
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe
掃碼下載APP
Partnered With:

深入對比Uniswap V3、Curve V2與DODO底層算法、流動性分佈與市場表現

閱讀本文需 32 分鐘
Uniswap V3、Curve V2和DODO分別採用了不同的方式實現了流動性的集中,提高了LP的資金效率。
原文標題:《深入對比 Uni V3,CurveV2,DODO 做市算法——集中流動性帶來的效率提升》
原文來源:DODO Research


引言


DEX 發展中,算法的迭代和做市形式的變化是一個主線。從恆定價格和恆定乘積做市到各種集中流動性算法,DEX 的底層做市算法效率越來越高。大浪淘沙下,採用集中流動性方案的 DEX 表現位居市場前列,Uni V3,Curve V2,DODO 是其中的佼佼者。三者分別採用了不同的方式實現了流動性的集中,提高了 LP 的資金效率,並在市場上取得了巨大成功。本文將從多個維度剖析底層做市算法,深入比較三家交易平台底層算法的數據表現,對比三家交易平台的整體市場表現。


集中流動性


有效率,才有經濟。 ——本傑明


恆定乘積做市公式:x*y=k,被視為 DeFi 領域的突破性創新。它開創了資金池模式的交易形式實現了鏈上交易,但恆定乘積的 AMM 做市曲線也有無法避免的效率問題。


Uniswap(Uni)早期版本採用了恆定乘積做市公式。從圖中可以看出,其流動性均勻地分佈在曲線上,Token價格的理論波動範圍在 0 到無窮,而市場上Token價格變動範圍集中在一個小的區間內。因此,價格波動外的流動性並沒有真正提供到市場上,這就造成了效率損失。這種情況下,滑點、市場深度、無常損失都會受到負面影響。


來源:Curve Whitepaper


集中流動性就是以某種方式改變做市曲線上的流動性分佈,將流動性集中在市場交易最頻繁的區間,提高做市資金的效率。廣義上講,任何調控做市曲線,以改變資金池流動性分佈的嘗試都可以稱之為集中流動性。 Uni V3,Curve V2,DODO 都是典型的集中流動性的 DEX,但底層算法的明顯差異也使各自有了不同的差異點。集中流動性的解決方案不單一,本質都是在盡可能改進資金利用效率,滿足Token交易的市場需求和做市需求。


 三種做市曲線(從左至右分別是 Uni V3,Curve V2,DODO)

Uni V3,Curve V2,DODO——三種集中流動性的做市曲線


Uni V3


範圍掛單和槓桿流動性


Uni V3 提出的範圍掛單(Range Order)允許用戶在特定的價格區間提供流動性,即把做市資金集中在特定的價格區間,而整個池子的流動性分佈就是所有曲線的加和。 LP 提供的是槓桿化的流動性,因為 LP 的資金只在其選定的價格區間起作用。若在區間內,做市資金賺取手續費的效率成倍提升;若在區間外,做市資金便失效。


多個範圍掛單示意圖(來源:《Uniswap V3: Liquidity providing 101》by MellowProtocol)


由此可見,Uni V3 集中流動性的方式是提供了槓桿流動性的機制,通過 LP 的主觀行為將流動性集中在市場價格附近,即 LP 會主觀預測價格運行的範圍。市場價格波動時,LP 將會主動調整自己的做市範圍,大量的調整行為會導致整體流動性分佈的改變,從統計上看最終將會集中在市場價格附近。整體效率得到了提升,但用戶之間的效率改變則取決於用戶具體的掛單行為。


 USDC / ETH 0.3% Pool 流動性分佈(來源:Uniswap 官網)


設計分析和優劣勢


Uni V3 的設計目的是提高 LP 資金效率,LP 可以根據自己的判斷提供流動性的範圍可自由選擇,進行定制化做市。這一設計雖然在整體上提高了 LP 的做市效率,但是 LP 們的收益不均衡,且增加額外的決策成本。 LP 做市的主動性更強,但這一定程度上與 DEX 惰性做市的初衷相悖。大部分散戶並沒有預測市場的能力,反而會因為槓桿流動性面臨更高的無常損失的風險。這一設計也催生出了 JIT(Just In Time)攻擊的現象,做市操作變得更加複雜。


優勢


靈活度高,可以自定義做市的價格區間,自己控制資金效率。市場流動性分佈是所有 LP 的範圍掛單形成的,是主觀形成的,更貼近於市場行為。資金效率的上限高。


劣勢


LP 收益依賴於 LP 對市場的判斷能力,增加了 LP 的決策成本,導致 LP 收益不均衡,並且存在 JIT 攻擊的情況。提升效率的同時提升了風險,高槓桿流動性將面臨更高的無常損失。


Curve V2


自動調整價格曲線


Curve V2 是 Curve 針對非穩定資產設計的,核心思想跟 Curve 的 StableSwap 沒有區別,讓我們回顧一下 Curve 提出的 StableSwap。


Curve 第一代算法非常簡潔,是恆定乘積和恆定價格兩種做市曲線的加權求和。這使得曲線在固定價格附近的曲率變小,在固定價格上實現流動性的集中。穩定幣的交易中,價格集中在 1 附近,Curve 通過這種方式實現了在 1 附近的流動性集中,從而提升了資金效率。


來源:Curve Whitepaper


Curve V2 針對非穩定資產,也是用恆定乘積和恆定價格兩種做市曲線進行加權求和得出新的做市曲線,只不過這個曲線會動態調整。上一代算法只能在固定價格附近集中流動性,而這一代算法會根據內部預言機動態調整這個價格以及集中流動性的程度。 Curve V2 定義了 K 值,這是一個動態調整的參數,這個參數決定了曲線的形狀。 K 值越大,曲率越小,曲線越接近於恆定價格曲線,流動性越集中。


來源:Curve Whitepaper


Curve V2 會根據內部預言機來計算 D 值,該參數將決定錨定價格,也即流動性集中的價格。 Curve V2 算法是通過混合恆定乘積和恆定價格曲線來集中流動性,不斷更新兩個曲線的權重,內部預言機來決定流動性集中的錨定價格,通過不斷更新這個價格,來實現流動性集中在盤口價格附近。


來源:Curve Whitepaper


設計分析和優劣勢


Curve V2 的設計是比較簡潔的,通過混合恆定乘積和恆定價格曲線來集中流動性,內部預言機決定錨定價格。在 Curve V2 的這種設計模式下,內部預言機價格的改變是通過用戶的交易行為來實現的,當大量的交易行為使得價格發生較大程度偏離時,內部預言機更新價格,流動性分佈發生改變。


優勢


通過獨創的做市曲線降低交易價格附近的滑點,保證市場深度,且做市函數適用於各種Token。內部預言機動態調整錨定價格,以確保在市場價格附近交易。動態調整交易手續費,離價格平衡點越遠,手續費越高,從而在市場價格附近提供更優的價格。


劣勢


內部預言機價格調整依賴於用戶交易行為,具有一定的滯後性,無法提前調整流動性分佈。曲線求解無顯式形式,需用數值方法求解(牛頓法),計算開銷較大,且有一定的誤差。


DODO


做市商報價調整曲線


DODO 通過獨創的 PMM 算法提供流動性,PMM 算法引入了參考價格,做市商通過自主報價,將流動性集中在市場價格附近。與基於 AMM 的做市算法不同,PMM 算法的價格計算基於外部價格和庫存兩個因素。當外部價格發生變化時,Token的兌換比例會直接發生變化,用戶與池子交易的時候,庫存發生變化,價格也會發生變化。因此,PMM 算法決定的Token價格取決於外部價格和用戶交易行為,使得 DODO 可以提前調整流動性分佈,始終將流動性保持在外部價格附近。



PMM 算法的具體形式如下,其中,參數 i 是外部價格,由做市商報價提供,k 是控制流動性集中程度的參數,k 越小,流動性越集中,B、Q 是Token 的庫存,該公式描述的是邊際價格隨著庫存變動和外部價格變動的關係。



DODO 提供了靈活的建池方案,參數可以由用戶自行設置,非常靈活。


設計分析和優劣勢


從設計上來看,DODO 實際上參考了 CEX 的流動性分佈。外部價格由做市商報價提供,預言機提供的外部價格實際上就是用戶在 CEX 交易形成的市場價格。目前 CEX 的流動性依舊主導市場,根據外部價格調整流動性極大提升了做市效率。


優勢


通過獨創的 PMM 算法做市,引入外部價格,流動性錨定在市場價附近,提供低滑點的交易價格。資金效率高,在同等資金下可以支持更大的交易量。流動性分佈調整速度快,使得 DODO 的流動性可以快速地跟市場同步。


劣勢


依賴於外部價格,有做市商報價偏離的風險,且外部價格代表了市場上的高流動性,並非是 DODO 內部的流動性。錨定池中 k 值是設定值,沒有動態調整機制。


做市曲線對比——以 ETH 交易池為例


數據處理


對不同 DEX 的交易池進行對比,由於做市算法各不相同,有很大的難度,比如數據源問題,比較分析問題以及如何確定一個比較的標準。


基於此,本文數據分析進行如下處理:


選取 Uni V3 以太坊主網的 USDC/WETH 0.05% 池子,Curve 以太坊主網的 USDT/WBTC/WETH 3crypto 池子,DODO Polygon 上的 USDC/WETH 做市商池子作為樣本,這三個樣本池均為 WETH 對穩定幣的交易對。直接查詢智能合約數據,得到底層參數,根據各交易平台的做市曲線計算出流動性分佈。流動性數據范圍從 2022 年 1 月 1 日,到 2022 年 8 月 16 日,數據間隔為一小時。交易量和 TVL 數據范圍從 2022 年 6 月 16 日,到 2022 年 8 月 16 日。所有數據採樣均同步時間戳,同步區塊高度。所有數據可視化部分,為視覺效果的統一,均進行歸一化處理。出於計算處理的需要,總流動性分佈採用 ETH 價格在 100 到 10000 區間內的流動性。在選定時間跨度內的流動性分佈變化,2% 代表的是在市場價格正負 2% 的價格區間內的流動性佔總流動性的比例,6%,10% 同理。


流動性分佈數據表現——流動性真的集中了嗎?


Uni V3


對於 Uni V3 的 USDC/WETH 0.05% 池子來說,流動性整體集中的程度較高,波動較大,且在不同的市場環境下有所不同,在某些情況下,市場價格和擁有最高流動性的價格之間會發生較大偏離。


流動性分佈均值


 Uni V3 USDC/WETH 0.05% Pool 流動性分佈隨時間變化(數據來源:Ethereum)


從圖中可以看出,Uni V3 的 0.05% WETH/USDC 池子的流動性在大部分時間的流動性集中度較高,10% 以內的流動性平均佔總流動性的比例高達 40%,基本上實現了集中流動性。總體來看,在相當長的時間跨度內,Uni V3 的 WETH 0.05% 池子的流動性集中程度保持了較高的水平,實現了 V3 的設計目的。



數據顯示,在市場波動較大時,該池子的流動性分佈會發生較大變化,市場價格附近的流動性集中程度迅速降低。例如,5 月 6 號到 5 月 13 號,6 月 10 號到 6 月 19 號,伴隨著 ETH 價格的劇烈下降,該池子的流動性分佈迅速調整,大量的用戶行為導致市場價格附近的流動性集中程度大幅下降,用戶紛紛把做市範圍調整到市場價格以外,10% 以內的流動性降低到 10% 以下。因此,在市場價格劇烈波動時,由於 Uni V3 的機制設計,用戶會預判市場,提前撤走流動性,使得流動性集中程度下降。


Uni V3 USDC/WETH 0.05% Pool 市場價格與最高流動性價格偏離情況(數據來源:Ethereum)


上圖是流動性最高的 tick 價格與市場價格的對比情況,觀察流動性最高的 tick 範圍與市場交易價格範圍的偏離程度,可以看出,Uni V3 在大多數時候,流動性最高的 tick 價格與市場交易價格是較為貼合的,但在某些時候會發生較大的偏離。


Curve V2


Curve V2 的 USDT/WBTC/WETH 池子,即 3crypto 池子的流動性分佈集中程度較高,波動性較低。市場價格和擁有最高流動性的價格之間在大部分時間會有一定的偏離,但最大不超過 1%。用戶交易行為本身會導致內部預言機價格調整,而動態模擬 Curve V2 的變化較為複雜,且鏈下計算環境和鏈上計算環境存在差異,因此本文並沒有考慮 Curve V2 的動態變化,低價格範圍的流動性分佈更具參考性。


流動性分佈均值


Curve 3crypto Pool 流動性分佈隨時間變化(數據來源:Ethereum)


從圖中可以看出,Curve V2 的 USDT/WBTC/WETH 池子的流動性分佈的波動較小,且呈現價格範圍越大波動越高的特徵,流動性集中在市場價格附近的程度較高。 Curve V2 的特殊的波動性特徵是由其算法決定的,由於 Curve 的曲線會動態調整,更大的價格範圍受到的影響越大。與 DODO 的算法類似,由於預言機價格會發生調整,當用戶交易行為使得價格偏離時,Curve V2 的內部預言機本身就發生了調整,所以 6%,10% 價格範圍的流動性並不代表在實際交易中的市場深度。


Curve 3crypto Pool 市場價格與最高流動性價格偏離情況(數據來源:Ethereum)


可以看出,Curve 的內部預言機價格與市場價格還是存在一定的偏離的,雖然偏離程度較小,但是大多數情況下都會有些許偏離,這說明了 Curve 內部預言機的價格調整存在一定的時滯。這是算法本身的特性帶來的,由於 Curve 會在用戶交易使得價格偏離某個臨界值時更新預言機價格,因此會存在一定的時滯,不過 Curve 的價格偏離程度較小。


DODO


DODO 的 USDC/WETH 池子的流動性分佈集中程度最高,這是因為 DODO 做市商一般將 K 值設定的非常小,並且高頻率更新參考價格,從而將流動性集中。由於 DODO 做市商報價頻率較高,市場價格和擁有最高流動性的價格之間保持高度錨定。


流動性分佈均值


DODO USDC/WETH Pool 流動性分佈隨時間變化(數據來源:Polygon)


從圖中可以看出,DODO 的 USDC/WETH 池子的流動性分佈的波動較大,流動性集中在市場價格附近的程度非常高。從數據上來看,總體來看,DODO 的做市商最低會將 K 值設定到 0.01,從而實現流動性的高度集中。不過做市商在市場行情極端波動時會迅速調整 K 值,調整流動性分佈,由於 PMM 算法給做市商提供了非常靈活的調整空間,因此流動性分佈的調整非常靈活,總體上來說流動性集中程度比較高。


DODO USDC/WETH Pool 市場價格與最高流動性價格偏離情況(數據來源:Polygon)


由於 DODO 的 PMM 算法通過做市商做市,提供報價,引入外部價格,從而使該池子的市場價格和擁有最高流動性的價格之間保持高度錨定。同時,對於 PMM 算法來說,擁有最高流動性的價格即為做市商提供的外部價格,因此,上圖也說明了外部價格和市場價格相差不大,這說明並不會出現用戶大規模交易使得市場價格大幅偏離做市商報價的情況,也即 DODO 的做市商價格調整能及時跟上市場變化。


交易數據表現——資本效率差異幾何?


本文獲取了三個樣本池的交易量和 TVL 數據,採用 Volume/TVL 作為資本效率的代理指標,該指標衡量了每單位 TVL 能帶來的交易量是多少,反映了資金的做市效率。


由於三個樣本池之間的交易量和 TVL 絕對值相差較大,我們直接比較資本效率。


樣本池資本效率對比(數據來源:Ethereum,Polygon)


從樣本池的表現來看,DODO USDC/WETH 的資本效率高於 Uniswap USDC/WETH 池子的資本效率,高於 Curve 3crypto 池子的資本效率,這跟對應的流動性分佈表現是一致的。 DODO 的做市商池子有專業做市商提供報價,資本效率很高;Uniswap 的 USDC/WETH 池子是其交易量前幾名的池子,流動性充足。對於 ETH 這種流動性較高的資產,Uni V3 的設計結構也能很好地集中流動性,提升資本效率。 DODO 的算法對於價值穩定的資產有更好的效果,比如穩定幣交易對。


市場表現分析


上文通過選擇 WETH 與穩定幣交易對的樣本池對不同的算法設計進行了對比分析,接下來我們對 Uniswap,Curve 和 DODO 的整體的市場表現進行對比。


交易量對比


各交易所交易量變化對比(數據來源:Coingecko)


從交易量來看,Uni V3 的交易量絕對規模超過 Curve 和 DODO。 DODO 增速度快,7 月中旬之後,其交易量持續領先 Curve。由於穩定幣行情的波動,Curve 在 5、6 月份的交易量跳漲。


TVL 對比


各交易所 TVL 變化對比(數據來源:Defillamma)


Curve 的總鎖定價值很高,但在穩定幣行情出現波動後,急速下降,不足峰值一半。 Uni 的 TVL 總量較大,波動性不高,並且在較差的市場行情下保持了穩定。相對而言,DODO 的 TVL 較低,且穩定幣佔很高的比例。


資本效率對比


各交易所資本效率變化對比(數據來源:Coingecko,Defillamma)


從圖中可以看出,整體資本效率最高的是 DODO,其次是 Uniswap,最低的是 Curve。 DODO 領先的資本效率主要是因為其穩定幣交易對和專業做市商做市。 DODO 穩定幣交易對的交易量佔比很高,且 PMM 算法為穩定幣交易對設置 k 值為 0.01,穩定幣交易對在市場價格附近的流動性集中程度很高,從而有更好的資本效率。 Uniswap Lab 的團隊在 Dunecon 中也提到了 DODO 在穩定幣交易上的優勢。


原文鏈接


歡迎加入律動 BlockBeats 官方社群:

Telegram 訂閱群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方帳號:https://twitter.com/BlockBeatsAsia

举报 糾錯/舉報
選擇文庫
新增文庫
取消
完成
新增文庫
僅自己可見
公開
保存
糾錯/舉報
提交