iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0

Uniswap V3

V3版本不是更新而是獨立於V1和V2

以往CPMM可以提供無限的流動性,但其實幣的價格波動不是每個很大,因此藉由提高資金利用率,以降低滑點,做法添加虛擬流動性以填充xy=k

在池子對限定價格上限及下限a = Pl和b = Pu,而在這個區間實際會用到的只有Xreal跟Yreal,而這時會添加Xv跟Yv來填充,來使得池子流動性增加,以此降低滑點,因此需要求出須填充多少Xv跟Yv

求Xv跟Yv

假設:
https://chart.googleapis.com/chart?cht=tx&chl=XY%20%3D%20L%5E2%3Dk
https://chart.googleapis.com/chart?cht=tx&chl=%7BX%5Cover%20Y%7D%3DP
在b點 Xr=0,可得出Xv
https://chart.googleapis.com/chart?cht=tx&chl=X%3DXv%2B0%3DL%5Csqrt%7BPb%7D
在a點 Yr=0,可得出Yv
https://chart.googleapis.com/chart?cht=tx&chl=Y%3DYv%2B0%3D%7BL%5Cover%20%5Csqrt%20%7BPa%7D%7D
最後可以得到公式
https://chart.googleapis.com/chart?cht=tx&chl=(Xr%2BL%5Csqrt%7BPb%7D)(Yr%2B%7BL%5Cover%20%5Csqrt%20%7BPa%7D%7D)%20%3D%20L%5E2%3Dk
把要限制的價格跟流動性寫入就可以呈現出上面的公式

ex:

假設b=(50,2) c=(100:1) a=(200:0.5)

則可以得出限制價格Pb=25 Pa=400

依照原先公式 xy=100時

新的公式得出(Xr+50)(Yr+0.5)=100

原先在價格c 時需投入(100:1)

新的公式則是有了Xv跟Yv,所以計算後只需投入(50:0.5)就可以提供和原先一樣的量

原先在價格b 時需投入(50:2)

新的公式則是有了Xv跟Yv,所以計算後只需投入(0:1.5)就可以提供和原先一樣的量

原先在價格a 時需投入(200:0.5)

新的公式則是有了Xv跟Yv,所以計算後只需投入(150:0)就可以提供和原先一樣的量

而多出了如果再投入池子則可以使k 增加,滑點自然就降低。

超出價格區間

若在超出價格區間時,只需添加單一邊的數量即可

(Xr+50)(Yr+0.5)=100

如超過b則只需添加y的數量,不一定按照價格比例投入,會由未使用的Xv來匹配,價格d(25,4)時,假設添加了(0,3.5),此時k變成了200,流動性就會出現變化。

如超過a則只需添加x的數量,不一定按照價格比例投入,會由未使用的Yv來匹配價格e(400,0.25)時,假設添加了(350,0),此時k變成了200,流動性就會出現變化。

V3無常損失

根據上面的公式可以推出計算無常損失的公式,不過以下以例子來做解釋,想計算可以收尋無常損失計算機。

前提:根據上面假設繼續,從c ⇒ a 在c投入(100:1)

V2版本

投入(100,1) xy=400 得出L=20 流動性為400 a價格時1ETH = 400DAI

如果沒有投入的話會有100個DAIx1+1個ETHx400 = 500DAI

投入了則剩下200個DAIx1+0.5ETHx400 = 400DAI

無常損失為 100DAI

V3版本

透過公式可以算出L,帶入Xreal=100 Yreal=1 Pb=25 Pa=400

一樣投入(100,1) 得出L=20 流動性為400 a價格時1ETH = 400DAI

有L就可以算出Xv=100 和 Yv=1

在c時量是(200:2) a時量是(400:1)

全部減去Xv和Yv就是剩餘的量

c時(200-100,2-1)⇒(100:1) : a時(400-100,1-1)⇒(300:0)

如果沒有投入的話會有100個DAIx1+1個ETHx400 = 500DAI

最後剩餘的價值是300個DAIx1+0個ETHx400 = 300DAI

無常損失為 200DAI

總結

由以上推導可以看出其實價格滑動時,無常損失並未影響Xv和Yv,損失會轉嫁到Xreal和Yreal上,也就是流動性提供者,因此V3版本的無常損失才會變大。


上一篇
DEX & Defi ep.2
下一篇
DEX & Defi ep.4
系列文
Web3新手初探筆記32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言