簡單理解 Curve V2 的運作原理,與 Uniswap V3 的流動性方案又有何不同?

ABMedia
分享
簡單理解 Curve V2 的運作原理,與 Uniswap V3 的流動性方案又有何不同?

Curve V2 版本的發佈極其低調,既沒有製作精美的介紹頁面,也沒有講解原理的視頻,甚至都沒有進行像樣的宣傳。整個的發布活動,便是在項目的官方網站放出了一版介紹V2 基本原理的白皮書。該版白皮書雖然只有區區5 頁,但其中卻充滿了讓普通用戶望而生畏的數學公式。所以,在正式介紹Curve V2 的意義之前,有必要先用最簡單易懂的語言,解析一下 Curve 是如何在V2 版本中,實現對非穩定幣交易對的支持的。

(本文經授權轉載自區塊律動,原文標題為《Curve V2方案解析:通用與定制化AMM之爭》,原文請見

白話解讀 Curve V2 基本原理

大家千萬不要一開始就被Curve 白皮書中的累加「∑」或累乘「Π」等數學符號所嚇倒,之所以Curve 的公式會變得如此復雜,並不是因為其算法有多麼玄妙。而是因為Curve 希望在一開始就能夠在底層邏輯上,原生的支持多幣種交易資金池,因此原本簡單易懂的二維恆定乘積公式xy=k,也就需要升維變成

這種看似複雜的多維恆定乘積形式。

因此,為了使讀者能夠更好地理解,我們在此重新將多維模型降低到更易理解的二維狀態(雙幣資金池)。那麼,在更簡單的二維模型裡,Curve V2 的價格曲線是什麼樣子呢?

上圖是摘自Curve V2 白皮書中的價格曲線。與Curve V1 中通過將xy=k 與x+y=k 兩個基本價格曲線按照一定權重比例進行擬合類似,Curve V2 的價格曲線也是由其他基本曲線擬合而成。簡單來講,就是曲線在交易價格附近更接近Curve V1 的曲線形狀(藍色),而在遠離交易價格的位置,則更加接近xy=k (左下方虛線)。以此構成了一個在交易價格附近更平滑,但在遠離交易價格範圍後弧度更大的一條價格曲線(橙色)。相比V1 版本中更接近於一條直線的價格曲線,V2 的曲線在遠端的弧度更大,以此增加對非穩定幣交易對的支持程度。

當然,如果Curve V2 僅僅是重新構造了一條固定形狀的價格曲線,自然也無法達到其在所有價格點動態聚合流動性的目標。Curve V2 最關鍵的改進,是在當價格偏離原聚合範圍時,可以對流動性進行自動再平衡(rebalance),重新構造一條適用於新價格的曲線。

此時需要解決的另一個問題是,系統該如何感知市場價格的變化,並在適當的時候進行再平衡操作呢?大多數同類項目會選擇直接接入外部預言機,但引入外部預言機也同時也會為系統引入新的外部風險,一旦預言機失效或被操縱,LP 的資金安全便很難得到保證。

Curve V2 為了徹底杜絕外部風險,改為依靠內部數據作為參考價格,官方將這種機制稱為EMA (exponentially moving average)預言機。讀者這裡同樣不需要去理解EMA 是什麼,只需要了解這個EMA 預言機提供的價格,是根據Curve 的歷史成交價以及最新的交易信息綜合計算出的一種參考價格就可以。這個參考價格有些類似於技術分析中的30 天均線,他會根據最新的成交價格進行動態調整,但在調整的同時也會保有一定的滯後性,以免在價格劇烈波動時過度頻繁地觸發再平衡機制。

有了內部預言機提供的參考價格,系統便有了進行再平衡的觸發依據。當EMA 預言機報出的價格偏離原始價格超過一定範圍後,協議便會自動對整條曲線的形狀進行調整,使得流動性重新聚合於最新的交易價格附近。

Curve V2 與Uniswap V3 的解決方案有哪些不同

早在Curve V2 剛剛發布的時候,便有評論認為Curve V2 版本將與Uniswap V3 展開直接競爭。畢竟兩者都提出了在全部價格區間聚合流動性的通用解決方案。可是如果仔細分析這兩個項目的具體實現方式,又會發現兩者間存在著明顯的區別。

區別一:如何決定在何處聚合流動性

在Curve V2 中做市,完全不需要LP 主動選擇流動性的聚合範圍。系統將會依據市場價格的變動,自動將LP 的流動性集中到交易價格的附近。而Uniswap V3 則需要LP 自己判斷市場的價格走勢,並自主選擇做市的價格區間。

區別二:LP 的頭寸是否同質

我們知道,由於每個 LP 的做市金額與範圍都不盡相同,Uniswap 在 V3 中使用NFT 來表示 LP 的做市頭寸。而在 Curve V2 中則完全沒有這個問題,每一個LP 在資金池中的流動性分佈是完全相同的,相互之間只有數量差異,因此依然可以使用同質的 ERC20 代幣表示 LP 的頭寸。這大大降低了其他協議與Curve 進行組合時候的困難程度。

區別三:如何對資金進行再平衡

我們常常說Uniswap 在升級到V3 版本後,被動的做市管理方案已經不再有效,LP 需要不斷主動判斷價格走勢並調整頭寸。而Curve V2 將再平衡的策略完全融入了協議層本身,用戶不再需要了解再平衡的基本原理,也不需在市場諸多代理方案中進行選擇,只需要考慮什麼時候存入,何時取出,剩下的全部交給Curve 的協議層自動執行。

區別四:交易手續費如何確定

在手續費的問題上,Uniswap 其實並沒有給出通用的解決方案。系統原生只提供了三個檔位的費率供LP 們選擇,每個檔位對應一個獨立的資金池,這不但限制了用戶的選擇範圍,還增加了流動性的割裂程度。

相對來說,Curve V2 依然採用了自動化解決方案,系統內置的手續費率範圍為0.04%-0.4%(此比例來源於社區討論,如有錯誤歡迎訂正)。當市場價格接近流動性聚合的中點時手續費最低,而在偏離時手續費會逐漸升高。整個過程完全自動完成,不需要LP 進行管理和干預。

經多以上對比,我們發現相比Curve V2 這種一站式解決方案,Uniswap V3 似乎顯得既複雜又難用。不但做市的幾乎所有關鍵參數都需要用戶自主選擇,還需要在後續做市過程中不斷進行再平衡。那麼同樣有著行業內頂尖開發團隊的兩個頭部DEX 項目,為什麼會針對同樣的需求,卻交出了差別如此之大的解決方案呢?

方法論之爭:做應用還是做生態

兩種截然不同的解決方案,顯然不是受制於開發團隊的技術能力,根本原因在於兩個團隊創始人對行業核心訴求的理解截然不同。

Uniswap V3 的核心思路,是通過開發一套可以模擬任何形狀價格曲線的通用解決方案,從根本上解決不斷產生的定制化AMM 分叉項目。因此開發團隊必須將各種關鍵參數的決定權留給市場,並通過成立開發者基金不斷扶持生態的發展。寄希望於市場能夠通過自由競爭,形成幾套成熟的主動做市管理方案,以解決不斷變化的市場需求。

承認個人與團隊的意志無法永遠正確,並將選擇權充分的開放給市場和社區,自己僅參與底層基礎架構的建設,是Uniswap 團隊的核心理念。

而Curve 團隊則反其道而行之,他們認為用戶的時間和注意力都是有限的,不應再使他們陷於復雜的選擇困境之中。開發團隊應當直接為用戶提供全套的最優解決方案,使用戶只需考慮何時存入資金,何時取回資金,其他的過程一律交給協議自動完成。

承認多數用戶不具備專業分析能力,作為更專業的行業精英有必要提供一攬子解決方案,盡量解決用戶可能遇到的一切障礙,是Curve V2 的核心理念。

是直接做一個功能強大的好產品,還是成為一個通用的底層架構並賦能生態發展,這是Curve 與Uniswap 兩個頂級團隊開發思路最重要的區別。兩種不同的方法論哪一個會最終通過市場的考驗,或許只有等待時間來給出答案。