• 【超完整懶人包】認識比特幣!原理與應用全面解析|動區新手村
  • Account
  • Account
  • BlockTempo Beginner – 動區新手村
  • Change Password
  • Forgot Password?
  • Home 3
  • Login
  • Login
  • Logout
  • Members
  • Password Reset
  • Register
  • Register
  • Reset Password
  • User
  • 不只加密貨幣,談談那些你不知道的區塊鏈應用|動區新手村
  • 動區動趨 BlockTempo – 最有影響力的區塊鏈新聞媒體 (比特幣, 加密貨幣)
  • 所有文章
  • 最完整的「區塊鏈入門懶人包」|動區新手村
  • 服務條款 (Terms of Use)
  • 關於 BlockTempo
  • 隱私政策政策頁面 / Privacy Policy
動區動趨-最具影響力的區塊鏈新聞媒體
  • 所有文章
  • 搶先看
  • 🔥動區專題
  • 🔥Tempo 30 Award
  • 加密貨幣市場
    • 市場分析
    • 交易所
    • 投資分析
    • 創投
    • RootData
  • 區塊鏈商業應用
    • 金融市場
    • 銀行
    • 錢包
    • 支付
    • defi
    • 區塊鏈平台
    • 挖礦
    • 供應鏈
    • 遊戲
    • dApps
  • 技術
    • 比特幣
    • 以太坊
    • 分散式帳本技術
    • 其他幣別
    • 數據報告
      • 私人機構報告
      • 評級報告
  • 法規
    • 央行
    • 管制
    • 犯罪
    • 稅務
  • 區塊鏈新手教學
  • 人物專訪
    • 獨立觀點
  • 懶人包
    • 比特幣概念入門
    • 從零開始認識區塊鏈
    • 區塊鏈應用
  • 登入
No Result
View All Result
  • 所有文章
  • 搶先看
  • 🔥動區專題
  • 🔥Tempo 30 Award
  • 加密貨幣市場
    • 市場分析
    • 交易所
    • 投資分析
    • 創投
    • RootData
  • 區塊鏈商業應用
    • 金融市場
    • 銀行
    • 錢包
    • 支付
    • defi
    • 區塊鏈平台
    • 挖礦
    • 供應鏈
    • 遊戲
    • dApps
  • 技術
    • 比特幣
    • 以太坊
    • 分散式帳本技術
    • 其他幣別
    • 數據報告
      • 私人機構報告
      • 評級報告
  • 法規
    • 央行
    • 管制
    • 犯罪
    • 稅務
  • 區塊鏈新手教學
  • 人物專訪
    • 獨立觀點
  • 懶人包
    • 比特幣概念入門
    • 從零開始認識區塊鏈
    • 區塊鏈應用
  • 登入
No Result
View All Result
動區動趨-最具影響力的區塊鏈新聞媒體
No Result
View All Result
Home 區塊鏈商業應用 defi

詳解Curve和Uniswap的數學巧合,是怎麼擦身走上不同道路?

BuidlerDAO by BuidlerDAO
2023-11-08
in defi, 區塊鏈商業應用
A A
詳解Curve和Uniswap的數學巧合,是怎麼擦身走上不同道路?
209
SHARES
分享至Facebook分享至Twitter

本文將從起點梳理 Curve V1 和 Uniswap V3 的構造思考過程,兩者在構造過程中數學意義上的擦肩而過,以及是如何地又分道揚鑣通往不同的終點。本文源自 @observerdq 的 X 研究長文,由 BuidlerDAO 整理。
(前情提要:Curve穩定幣機制》一文了解 LLAMMA 具體是如何工作的? )
(背景補充:Uniswap V4 結合 UniswapX 能打造最好的DEX交易體驗? )

本文目錄

  • 1. Curve V1 公式構建的思維路徑
  • 2. Uniswap V3 公式構建的思維路徑
  • 3. 奇妙的擦肩而過 – 兩種思維路徑的交點
  • 4. 分道揚鑣 – 兩種思維路徑的不同終點
    • 4.1 Curve V1:進一步的動態漸變揉合
    • 4.2 Uni V3:放棄大一統單一公式,自由組合分段函式
  • 5. 結語

 

2019 年 Curve V1 在構造 AMM 公式時,推演過程中有一個中間形態的公式,而這個公式和一年多後 Uniswap V3 的基礎公式恰恰有著相同的結構(前者是後者的一種特殊形態)。

完全不同的思考路徑,出現了數學上的交點,妙哉。

本文將從起點梳理 Curve V1 和 Uniswap V3 的構造思考過程,兩者在構造過程中數學意義上的擦肩而過,以及是如何地又分道揚鑣通向不同的終點。

一圖總覽

1. Curve V1 公式構建的思維路徑

2018 年底 Uniswap 的 xy = k 橫空出世,是為一次正規化革命。但在穩定幣交易對的場景下,缺陷顯著。Michael 抓住了此切入點,於 19 年底推出了全新 AMM Curve V1 。

新 AMM 公式構造過程的基礎之一仍然是 xy = k。後續將統一按照 Curve V1 白皮書的引數代號,寫為如下公式。

穩定幣交易對的價格多數時候只在 1:1 附近很小的區間浮動,只在 1:1 單一價格點提供流動性的公式便是 x+y = D,這是構造過程的另一基礎。

Michael 希望將兩個基礎公式揉合起來,又或者說在 xy = (D/2)² 的基礎之上,引入一些 x+y =D 的特性。

於是把兩個基礎公式「雜交」加到了一起,得到了一個揉合公式。

其中 x+y=D 的部分,配上了一個 A 引數,且額外在等號兩側都乘上了 D。乘以 D 的原因,是為了讓 A 引數去維度化(不論池子內是兩代幣、三代幣亦或更多,同樣的 A 值有同樣的效力),這裡不展開,也並非本次討論的重點。

重點在 A 引數。先說明一下,Curve V1 白皮書在揉合公式內使用的是希臘字母 Chi(長得很像 x ),而並非 A。為了書寫方便和閱讀體驗,我改用了 A ,並不會影響論述。

A 引數的作用,或許可以用黑灰白的色條來類比理解,90% 灰就很像黑了,而 10% 灰就更接近白。A 引數決定了最終的公式產物更像 x+y=D,還是更像 xy=(D/2)²。

從極限 A 的數值,可以更好理解這個揉合的過程。A = 0,揉合公式就變成了 xy=(D/2)²。A = 無窮大,揉合公式就變成了 x+y=D。於是 A 在其中,就是一種中間態,A 越大,就越像 x+y=D。這種揉合,通過圖形可以更加直觀地感受,有興趣可在 desmos² 中玩耍 A。

關於 Curve V1,講到這裡先停住,請大致記住這個揉合公式。然後我們接下去看一下 Uniswap V3 的情況。

2. Uniswap V3 公式構建的思維路徑

Uni V1/V2 的 xy = k 稱霸江湖後,因「流動性均勻地分佈在 0 至無窮大完整的價格域上」所帶來的不足之處日漸顯露,Curve V1 的推出更是直接精準地切走了穩定幣交易對這一重要的市場。

在設計 V3 時,Uniswap 團隊首先想構造出只在有限連續價格區間內提供流動性的公式,他們構造的起點仍然是 xy=k 。

想像一下,如果想實現一個效果,在 [Pa, Pb] 價格區間內(比如 [0.99, 1.01] 或是 [1500, 1700]),這個公式對交易的支援就和 Uni V1/V2 的 xy = k 一模一樣,但當價格超出 [Pa, Pb],就不再提供流動性了。

這種效果對應的公式如下:

若用圖來呈現,會十分清晰,就是把 xy=k 向左下方平移了一些位置。具體要移多少,由 Pa、Pb 決定。

這個公式實現的效果是,所有流動性都集中在 [Pa, Pb] 內,LP 存入一定數量的 X_token 和 Y_token,在 [Pa, Pb] 價格區間內提供了一些流動性。單就這個區域性的流動性效果,若要讓 Uni V2 的 LP 來達成,則需要 LP 去存入更多的 X_token 和 Y_token;多的程度取決於 Pa、Pb,可能需要多很多。

這個平移公式是 Uni V3 進一步構造的基礎公式,Uni V3 暫講到這。

延伸閱讀:iZUMi 創新 DL-AMM 自動做市商模型:基於 UniSwap V3 的改進

3. 奇妙的擦肩而過 – 兩種思維路徑的交點

將第 1 節中 Curve V1 的揉合公式做一些變換:

再和第 2 節中 Uni V3 的平移公式放在一起觀察,會發現兩者很像:

若再對 Uni V3 平移公式內的 Pa 和 Pb 做一些限定,令 Pb=1/Pa,也就是限定價格區間為類似 [0.5, 2] 或 [0.01, 100] 這樣的區間,滿足在 1:1 價格點兩側倍數意義上的對稱。

做了這個限定之後,可以說兩個公式就是完全一樣了:

兩個公式裡有著不同的引數表達,可以很輕鬆地推匯出兩組引數的關係。我們不妨以 Curve V1 揉合公式的引數 A 和 D 為 基礎,計算出 L 和 Pa,如下所示:

這些引數的意義和兩個協議各自構造的思維路徑有關,我們結合兩組引數的關係,再簡要地回顧一下兩種構造過程。

簡化起見,假設一個穩定幣交易對的池子,初始價格是 1:1。Curve V1 揉合公式中的 D 代表了初始 LP 投入了兩種穩定幣各 D/2 的數量。A 則代表了這個揉合公式趨近 x+y=D 的程度。

來到 Uni 這一側,我們再虛擬出一個 Uni V2 的穩定幣交易對池子,滿足以下公式:

也就是初始價 1:1 的 話,初始 LP 需投入兩種穩定幣各 D (2A+1)/2 這麼多的數量。

這時有一個 Uni V3 池子,希望實現的效果是,只在以下價格區間內提供流動性:

且在這個區間內的流動性效果就如同剛剛虛擬出的 Uni V2 池子那般。滿足這個效果的 Uni V3 池子所對應的公式恰恰就和前述的 Curve V1 揉合公式一模一樣了。

簡要概括的話,Curve V1 通過揉合所實現的效果,恰恰就相當於先虛擬出一個代幣儲備量大很多(多了 2A 倍)的 Uni V2 池子,然後在 [(2A/(2A+1))², ((2A+1)/2A)²] 價格區間實現了和這個 Uni V2 池子完全相同的流動性效果。

4. 分道揚鑣 – 兩種思維路徑的不同終點

Curve V1 揉合公式就是 Uni V3 平移公式的一個特殊形態。事實上,若在 Curve V1 揉合公式內再引入一個引數,x+y 的部分調整為 x+py,兩者就完全等價了,這裡不多展開。

Curve V1 在揉合公式的基礎上,Uni V3 在平移公式的基礎上,順著各自原本的思維路徑,繼續前行,分道揚鑣。

4.1 Curve V1:進一步的動態漸變揉合

Curve V1 揉合公式存在一個缺陷,只在有限價格區間內提供流動性,Michael 需要的是一個全價格區間都有流動性的公式。(至於為什麼有這個需求?或許全價格區間都有流動性是很自然的、更加完整健全的狀態,比如在對外提供 Oracle 的意義上。)

我們可以這麼來理解他進一步構造的思路:讓這個揉合的程度動態化。之前的揉合公式裡的 A 是一個常數,代表了統一的揉合程度。現在進一步地,當 x 偏離 D/2 越多(即 x 越小或越大時),或者說價格偏離 1:1 越多,讓揉合的程度更加偏向 xy = (D/2)²,x 或價格偏離到極限狀態時,就變成了單純的 xy=(D/2)²,這樣就實現了全價格區間都有流動性。

Michael 把 A 變成了 Axy/(D/2)²

這就可以實現上面所講的動態漸變效果。構造方式當然不僅限於這一種,我有種感覺 Michael 在這一步構造過程裡,並沒有對不同的動態漸變實現方式的差異做很深入的對比研究,或許只要能方便地實現全價格流動性就點到為止了。

終於,我們得到了 Curve V1 的最終形態公式如下:

4.2 Uni V3:放棄大一統單一公式,自由組合分段函式

Uni V3 平移公式最核心的內涵在於 [Pa, Pb] 這個價格區間。以這個平移公式作為基礎,很自然地,Uni V3 走向了一個方向;不同價格區間的流動性可以不同(如果不同價格區間的流動性相同,那就又回到 Uni V2 了)。

在這個大方向上,仍然有不同的設計分叉。一條分叉路,可以由協議定死一個不同價格區間的流動性分配規則,LP 們仍然是同質的,其實 Curve V1 可以看作是這一種型別(價格區間極限小)。

另一條分叉路,所有的決定權全部讓渡給 LP 們,LP 們各自獨立的決策共同決定了最終流動性在不同價格區間的分配方式。

Uni V3 選擇了後者,這個選擇極為關鍵,這讓整個市場博弈的元素極大地豐富了起來,價格判斷、波動率判斷、運氣成分等等都捲入了進來,使得流動性市場離充分競爭市場更近了一步。

從數學角度看 Uni V3 的進一步構造,乍一看,像是一種非常規的分段函式。不同的價格區間,對應著不同的 L 值,相應地就是不同的公式,比如以下一個極簡的示例:

事實上,以上可以轉化為標準的分段函式,即以 x 來定義子域,子函式為 y 和 x 的一個公式,本文不展開。

5. 結語

Curve V1 於 2019 年底推出,彼時其主要目的就是更好地支援穩定幣交易對、填補該市場空白。或許正是這決定了 Michael 的思維路徑,重點是以 1:1 價格點對稱的結構,並且流動性相對聚攏在 1:1 價格點附近。當 Michael 將 x+y=D 和 xy = (D/2)² 雜交推匯出了揉合公式時,在我看來最核心、最具開創性的工作已經完成,因為這個揉合公式已經滿足了上述的對稱、聚攏的特徵。而將揉合公式進一步改造成支援全價格區間流動性的公式,對 Michael 而言,或許只是略施小計,收尾工作而已。

Uni V3 更晚才推出,2021 年 3 月白皮書釋出。Uni 團隊已經看到了 Curve V1 的足夠長時間的執行情況。一群極聰明的人,回擊 Curve 的方法自然要升維。Uni 團隊直接打破了一個大前提,LP 們不再「大鍋飯」,可以不再統一地按照每個池子的單一固定公式去提供流動性。

Uni V3 在 Uni V1/V2 xy=k 的基礎上,構造出了只在特定價格區間提供流動性的一個基礎公式(即上文所說的平移公式)。Uni V3 要打破 LP「大鍋飯」的大前提,於是賦予了 LP 們以自由,自由地決定在什麼樣的價格區間(或是數個區間)提供流動性。LP 們每個個體獨立自由地決策,彙總到每個池子層面,也會形成一個公式(分段函式),只是這個公式的形狀是動態變化的,絕非之前的 AMM 的那種固定形狀模式(部分 AMM 可通過治理調整形狀,如 Curve V1 調整 A 引數)。

這種設計,不僅僅解決 Uni V2 在穩定幣交易對場景下的資金效率低的問題(回擊 Curve V1 ),更是在所有的交易對場景,引入了更加充分的競爭,提升了市場整體的資金效率水平。

從歷史背景、根本出發點的差異梳理了一遍之後,再來看我最初所感嘆的 Curve V1 揉合公式和 Uni V3 平移公式的相似性,又似乎不過是個不值一提的簡單數學巧合罷了。

📍相關報導📍

Uniswap壟斷陰影下,1inch如何在DEX保持創新?

Uniswap v4的Hook,「截斷式預言機」如何改變 DeFi?

瑞士銀行Fiat24提案Uniswap「簽帳VISA卡」遭無情拒絕!DAO質疑蹭流量

Tags: AMMCurveUniswap數學公式


關於我們

動區動趨

為您帶來最即時最全面
區塊鏈世界脈動剖析
之動感新聞站

訂閱我們的最新消息

動區精選-為您整理一週間的國際動態

戰略夥伴

Foresight Ventures Foresight News

主題分類

  • 關於 BlockTempo

動區動趨 BlockTempo © All Rights Reserved.

No Result
View All Result
  • 所有文章
  • 搶先看
  • 市場脈動
  • 商業應用
  • 區塊鏈新手教學
  • 區塊鏈技術
  • 數據洞察
  • 政府法規
  • RootData
  • 登入

動區動趨 BlockTempo © All Rights Reserved.