Uniswap

Uniswap v2 白皮書:“自上次收取費用以來計算的總費用”的公式是如何得出的?

  • March 25, 2022

在此處輸入圖像描述

上面這個截圖來自uniswap v2白皮書page5,這個方程是怎麼推導出來的?

(為了使問題更易於搜尋,這裡是文本形式的引用)

可以通過測量自上次收取費用以來 k 的平方根(即 x * y 的平方根)的增長來計算收取的總費用。這個公式為您提供了 t₁ 和 t2 之間的累積費用佔 t2 時池中流動性的百分比:

k1kt1, k2 @ t2。

k1 的平方根是使用者最後一次收取費用時的池大小。

k2 的平方根現在是池的大小。

一個除以另一個給你百分比增長。

1 - 百分比增長只是反轉它。

所以:

如果

// @t1
x1 = 5    // (5 ABC tokens in pool)
y1 = 5    // (5 XYZ tokens in pool)
k1 = x1 * y1 // (so, 25)

// @t2
x2 = 20
y2 = 20
k2 = x2 * y2 // (so, 400)

sqrk1 = sqrt(k1) == 5
sqrk2 = sqrt(k2) == 20

sqrk1 / sqrk2 == .25

// f1,2 == 
1 - .25 == .75 == 75%

因此,在 t2 時,累積費用(即您作為流動性提供者的收益)佔池中流動性的百分比為 75%,因為

  • k 的原始 sqrt 是 5
  • k 的最終 sqrt 是 20,
  • 5 是 20 的 25%
  • 所以 5 -> 20 增加了 75%

因此,如果您在 t1 投入 5 ABC 和 5 XYZ,然後您取出 20 ABC 和 20 XYZ @ t2,您從 t1 到 t2 獲得了 75% 的費用。

(這是“費用”,因為這就是導致您在池中所佔份額增加的原因;添加到池中的其他使用者在這裡不相關/不考慮。假設這些 x & y & k 值是流動性提供者特定的,或者在這種情況下,1 個流動性提供者提供了所有的 x & y @ t1,x & y @ t2 的增加都來自掉期獲得的費用,而新的比率反映了套利的集體結果。 )

方便的是,我們還可以看到我們投入了 10 個 token,取出了 40 個 token,5 -> 40 增加了 75%。那麼,為什麼這個方程有ksquare root?好吧,在我們上面的例子中,x 和 y 具有相同的值——它們在開始和結束時以 1:1 的比例進行交易。在這個等式中,這讓我們基本上將它們視為蘋果:蘋果——儘管如此,這很不尋常,而且在現實世界中幾乎從未如此。

*有趣的是將此場景與另一種場景進行比較,其中x2 = 10& y2 = 40。*在這種情況下,k將是相同的。

在這種情況下,我們投入 10 個代幣,取出 50 個代幣,10 -> 50 是 80% 的收益。然而k(x=20 * y=20)(x=10 * y=40)我們的增長實際上是 75% 還是 80% 相同?

這就是為什麼k這麼酷的單位的部分原因,以及為什麼這個使用 k 的方程存在。它非常優雅地捕捉令牌值本身的潛在變化。我們現在有更多的 y,但 y 的值下降了。我們在 x 中增加的較少,但 x 的值上升了。通過 k,我們使用 x 和 y 作為彼此價值的相對指標。

引用自:https://ethereum.stackexchange.com/questions/123710