導語
本文為QuarkChain 創始人兼CEO 週期博士為其擔任顧問的項目提供的一套提高資金率的原理設計。目的在於分享DeFi 設計思想並同更多DeFi 愛好者進行交流,週期博士( qizhou@quarkchain.org )首先從對Uniswap 的資金利用公式出發,分析了Uniswap 採用的提高單個交易對資金利用率的方法,然後在這個基礎上設計了更多(大於等於三)個幣種構建集合資金池的流動性原始方案,並分析了這種方式能夠帶來的優點如更高的資金利用率,更低的Gas和更高的LP 回報。歡迎就本文的模型設計同周期博士進行交流。
Uniswap V2 的簡要回顧
Uniswap V2 是最受歡迎和最成功的DEX,以交易對形式,通過曲線對成對資產進行定價並進行兌換,其原理如下:
其中x 和y 是池中資產的餘額。給定Δx,為了將Δx 交換為Δy,Uniswap V2 將執行以下計算
這樣兌換後仍然滿足xy = k 不變量,價格為
Uniswap V2 的一個很大的特點是無需授權-任何人都能夠通過提供代幣創建一個兩種資產的交易對。例如,通過在池中提供x = 1 ETH 和y = 3000 USDT,LP 可以創建一個交易對,ETH 最初定價為3000 USDT/ETH。
儘管Uniswap V2 獲得了廣泛採用,但Uniswap V2 的關鍵問題是其資金效率低,因為流動性分佈在價格[0, +∞] 上。這意味著如果兩種資產的價格集中在一個相對較小的範圍內(例如穩定幣兌換),池中沉澱大部分資產並沒有參與兌換,從而導致高滑點和LP 較低的手續費收益。
將流動性集中的Uniswap V3
Uniswap V3 通過一種稱為集中流動性的技術改善了低資金效率問題,該技術使用以下曲線:
其中兌換的實際價格在[p_a, p_b] 範圍,p_a < p_b。如果設置p_a = 0 和p_b = +∞,V2 本質上是V3 的特例。
在提供流動性時,Uniswap V3 會向LP 詢問流動性的價格範圍(見下圖)。
這允許LP 將流動性集中在目標價格範圍內,從而實現更高的資金效率。
以穩定幣兌換(USDC/USDT)為例,從下圖中,95% 的流動性集中在價格區間[0.999, 1.001],實現了比Uniswap V2 約2000 倍的資金效率。由於流動性集中,兌換USDC/USDT 的滑點遠低於V2,因此對於池中提供的相同數量的資產,相比V2 LP 可以收到更多的手續費獎勵。
由於流動性集中,Uniswap V3 的TVL 增長非常順利,3 個月左右達到2.5B。
集中多資產的流動性
Uniswap V3 只為一對資產提供集中流動性。那麼一個自然的問題是:
「如果在一個資金池中集合多個資產會怎麼樣?」
通過集中更多資產的流動性,我們可以實現更高的資金效率,因為資產可以共享一個池中的流動性而不是各自的流動性。相比之下,在V3 中,由於直接兌換的流動性不足,兌換可能會被路由到多個交易對。例如,交換TUSD -> BUSD 可能會被路由到TUSD -> USDT -> BUSD,這意味著交易者將支付更多的費用,滑點也隨之提高。
所以核心問題是
「多資產流動性集中的曲線應該是怎樣的?」
遺憾的是,答案並不簡單,而是更為複雜。
讓我們從從集中流動性能夠獲益最多的穩定幣兌換開始。假設兩個穩定幣的價格在[p, 1/p] 之間(例如,p = 0.999),我們可以將V3 曲線簡化為
其中[p, 1/p] = [p_a, p_b]。簡化曲線的好處是它有點對稱。首先,讓我們先添加第三個穩定幣交易對,得到以下等式
請注意,三個資產的方程與兩個資產方程相比有一些細微變化:
● 等號右邊是L³ 而不是L²
● 等號左側我們使用p 的立方根,而不是使用p 的平方根。
依靠這個等式,我們有一個關鍵結果:
命題1.給定池中任意數量的資產,{x,y,z},通過上圖曲線交換任意兩個代幣的價格會在[p,1/p] 的範圍內
示例:
三個幣種均勻分佈的情況
● 3 個穩定幣,取小數點後6 位
● x, y, z = [1000,000e6, 1000,000e6, 1000,000e6],即每個資產在池中各有1M
● p = 0.999,即價格區間為[0.999, 1.001]
由於三項相等,我們有:
L = x / (1 — ∛0.999) = 2998.99977x
請注意,與xy = k 曲線(其中L = x)相比,我們的資金效率約為2000 倍。
用10,000e6 (比如10k 美元)的代幣0 (T0) 交換代幣1 (T1) 將返回9999.96e6 T1 @ 0.999996 T0/T1。作為比較,xy=k 曲線將返回9375e6 T1 @ 0.9375 T0/T1,其滑點要高得多。
極度不平衡的情況
● 3 個穩定幣,仍取小數點後6 位
● x, y, z = [0, 0, 1000,000e6],即每個資產在池中各有1M
● p = 0.999,即價格區間為[0.999, 1.001]
由於礦池只有一個資產T2,我們預計T2 的價格將接近極限價格,即0.999,那麼其餘資產的價格(T0/T1)與T2 的對應價格應為1.001。
按照曲線,我們可以求解L = 999.333z。因此,將10,000e6 T0 交換為T2 將返回10009.90e6 T2 @ 1.00099 T0/T2,幾乎與極限價格(1/0.999)相同。
當前狀態
我們正準備部署一個使用Solidity 的新穩定幣交換算法,它預計有如下幾個特點:
● 可以高精度定點求解
● n = 3 個資產(可以擴展到更多)
● 可調整的價格範圍[p, 1/p]
● Uniswap V2 風格的界面(挖礦/ 燒毀/ 兌換)
● 優化Gas 成本
一旦算法的實現得到很好的驗證,我們將使用它作為下一個Smoothy.finance (SMTY) 的候選版本——我作為顧問的下一代同一資產穩定幣兌換協議項目。
未來發展
在集合資產的集中流動性領域,可以進一步發展幾個有趣的話題:
● 更多資產{x_0, x_1,...,x_n},曲線看起來像
● 多個價格區間。例如,假設我們有p_0 < p_1 (例如,p_0 = 0.99,p_1 = 0.999),LP 可以選擇其流動性的價格範圍之一。因此,該算法將聯合求解以下方程以進行兌換。
● 不同資產的不同價格範圍,其中的等式可能看起來像
結束語
集合資產的流動性是DEX 中最熱門的話題之一,因為它具有以下好處:
● 更高的資金效率
● 降低滑點
● 更多LP 收益
Uniswap V3 是第一個為成對資產提供集中流動性的DEX。對於穩定幣兌換,資金效率可以提升至2000 倍。
我們也設計出了一個可以集中超過三個資產的流動性池:
● 在多種資產之間共享流動性
● 非常適合穩定幣兌換
● 可以成為同一資產穩定幣互換市場中的競爭性產品(相對於Curve)
● 用Solidity 編寫的智能合約
如有關於這套設計的任何疑問,歡迎同我( qizhou@quarkchain.org )交流。