DeFi (UniSwapへの流動性提供) の「インパーマネントロス」を数学的に評価する(その②)

スポンサーリンク

方程式を解いてみましょう

前回の記事では、UniSwapに代表されるDEXへの流動性提供の簡単な仕組みと、それによって発生するインパーマネントロスの概要について説明しました。今回は、もうちょっと深く掘り下げていくことにします。

参考:DeFi (UniSwapへの流動性提供) の「インパーマネントロス」を数学的に評価する(その①)

小難しいことを書いていきますが、やっていることは中学生の数学レベルです。順に紐解いていきましょう。

前提の再確認と、方程式化

前回の記事の最後に、2つの重要なポイントを改めて振り返ってみましょう。

  • 流動性提供しているTOKEN-1総量とTOKEN-2総量は等価である
  • 流動性提供者が提供したTOKEN-1とTOKEN-2の積は、取引の前後でも変動しない

これです。これを使って、方程式を立てていくことにしましょう。

まずは、流動性を提供する通貨ペアです。これを「TOKEN-X」と「TOKEN-Y」として、それぞれ価格Px, Pyおよび流動性低提供時の枚数Nx, Nyを、それぞれ下記の通り定義します。

$$(TOKEN-Xの価格) = P_x$$

$$(TOKEN-Xの枚数)=N_x$$

$$(TOKEN-Yの価格) = P_y$$

$$ (TOKEN-Yの枚数)=N_y$$

流動性提供後、TOKEN-Yの価値が変動し、TOKEN-Xとの相対比でα倍に変動したとします。そうすると、それぞれ保有枚数が変動することになります。それぞれ、ダッシュを付けて変動後の状況を整理すると・・・

$$(TOKEN-Xの価格(変動後)) = P_x$$

$$(TOKEN-Xの枚数(変動後))=N_x’$$

$$(TOKEN-Yの価格(変動後)) = αP_y$$

$$(TOKEN-Yの枚数(変動後))=N_y’$$

xの価格は変わらない前提です。枚数だけ変動します。これを表でまとめると、以下のとおりです。

トークン 流動性提供時 価格変動後
価格 枚数 時価総額 価格 枚数 時価総額
TOKEN-X Px Nx Px・Nx Px Nx’ Px・Nx’
TOKEN-Y Py Ny Py・Ny αPy Ny’ αPy・Ny’

ここまでは簡単ですね。ここで、前提条件を元に方程式を立ててみます。

<流動性提供しているTOKEN-1総量(時価総額)とTOKEN-2総量は等価である>

これを式にすると、以下の通りとなります。

$$P_xN_x = P_yN_y ・・・①$$

$$P_xN_x’ = \alpha P_yN_y’ ・・・②$$

<流動性提供者が提供したTOKEN-1とTOKEN-2の積は、取引の前後でも変動しない>

これを式にすると、以下の通りとなります。

$$N_x \times N_y = N_x’ \times \alpha N_y’ = M ・・・③$$

後で使うのと、この値は一切変動しないため、Mという定数で置き換えました。では、これを解いていきましょう。

$$N_x = {P_yN_y \above 1pt P_x} ・・・①より$$

$$= {P_y \times M \above 1pt {N_x \times P_x} } ・・・③より$$

移項して・・・

$$N_x^2 = M \cdot {P_y \above 1pt P_x}$$

ゆえに、以下が成立します。

$$ N_x = \sqrt{M \cdot {P_y \above 1pt P_x}} ・・・④$$

ここに③を適用すると、以下も導出されます。

$$ N_y = \sqrt{M \cdot {P_x \above 1pt P_y}} ・・・⑤$$

同じように、価格変動後の枚数も求めていきましょう。

$$N_x’ = {\alpha P_y \cdot  N_y’ \above 1pt P_x} ・・・②より$$

$$= {\alpha P_y \cdot M \above 1pt {N_x’ \times P_x} } ・・・③より$$

移項して・・・

$$N_x’^2 = \alpha M \cdot {P_y \above 1pt P_x}$$

ゆえに、以下が成立します。

$$ N_x’ = \sqrt{\alpha M \cdot {P_y \above 1pt P_x}} ・・・⑥$$

ここに③を適用すると、以下も導出されます。

$$ N_y’ = \sqrt{\alpha M \cdot {P_x \above 1pt P_y}} ・・・⑦$$

時価総額の変動を求める

それでは、これらを使って、時価総額の変動を求めていきましょう。

時価総額は(価格)×(枚数)で定義できるため、以下の通りとなります。

$$(流動性提供時の時価総額)=P_xN_x + P_yN_y$$

$$=P_x \cdot \sqrt{M \cdot {P_y \above 1pt P_x}} + P_y \cdot \sqrt{M \cdot {P_x \above 1pt P_y}} ・・・④⑤より$$

$$=2 \sqrt{P_x P_y M}$$

同様に、価格変動後の時価総額を求めてみましょう。

$$(価格変動後の時価総額)=P_x’N_x’ + \alpha P_yN_y’$$

$$=P_x \cdot \sqrt{\alpha M \cdot {P_y \above 1pt P_x}} + P_y \cdot \sqrt{\alpha M \cdot {P_x \above 1pt P_y}} ・・・④⑤より$$

$$=2 \sqrt{\alpha P_x P_y M}$$

わかりやすくするため、以下の通り、定数Sで置き換えます。

$$S =  (P_x P_y M)^2 = (P_x N_x P_y N_y)^2$$

すると、流動性提供時と価格変動後の時価総額は、以下の通り変動したことになりますね。

$$(価格変動前)= 2S, (価格変動後)=2\sqrt{\alpha}S$$

対して、TOKEN-XとTOKEN-Yをそのまま保有していた場合はどうなるでしょうか。これも計算で簡単に出せますね。

$$(価格変動前)= 2S, $$

$$(価格変動後)= P_x N_x + \alpha P_y N_y$$

$$\sqrt{M \cdot P_x P_y} + \alpha \cdot \sqrt{M \cdot P_x P_y}$$

$$=(1 + \alpha) S$$

ようやくここまで来ましたね。つまり、この違いがインパーマネントロスになるわけです。

$$流動性提供した場合: 2S → 2\sqrt{\alpha}S$$

$$流動性提供しない場合:2S → (1 + \alpha) S$$

ようやくここまで来ました・・・。またまた記事がくそ長くなってきたので、次の記事に渡したいと思います。

※次の記事:DeFi (UniSwapへの流動性提供) の「インパーマネントロス」を数学的に評価する(その③)

では。