導入
流動性提供時に提供したLPトークンを構成する各基礎トークンのボリュームが、如何に決定できるのかを考察します。
前提
AMMおよびUniswapの最低限の知識を前提としています。
詳しくない方は以下を先に参考ください。
また、現時点では最低限自身の備忘録としてまとめていますので、将来的には諸々追記していく予定です。
準備
【3部作】これであなたもUniswapV2チョットデキル【中編】:君が主役だ!LPトークンスペシャル!!で記載しましたが、
流動性解除時、各基礎トークンは以下のようにamount
のボリュームが引き出せます。
\text{amount}_0 = \text{balance}_0 \times \frac{\text{liquidity}}{\text{\_totalSupply}}
\text{amount}_1 = \text{balance}_1 \times \frac{\text{liquidity}}{\text{\_totalSupply}}
\text{balance0} \approx \text{\_reserve0} \text{balance1} \approx \text{\_reserve1}なので、
\text{amount0}_{\text{out}} = \text{\_reserve0} \times \frac{\text{liquidity}}{\text{\_totalSupply}}
\text{amount1}_{\text{out}} = \text{\_reserve1} \times \frac{\text{liquidity}}{\text{\_totalSupply}}
これを今回の仕様に合わせて整理して、以下とします。
Sx_t = x_t \times \frac{l_t}{\text{totalSupply}_t}
Sy_t = y_t \times \frac{l_t}{\text{totalSupply}_t}
本題
仮定
時間0において、UniswapV2の任意のペアに、
あなたが提供した(保有する)流動性l_0の内訳を(Sx_0, Sy_0)とします。
この時、UniswapV2のモデルは以下のように表すことにします。
さらに、その後、多くのユーザーによる流動性の出し入れやスワップにより、
プールの状態は
に変化したと仮定します。
このときのあなたが保有する
流動性l_0の時間tでの内訳を(Sx_t, Sy_t)とした場合の算出方法を考察します。
流動性提供時のボリュームの算出
では、最低限の準備が整いましたので、
流動性提供時に提供したLPトークンを構成する各基礎トークンのボリュームが、
どのように計算できるかを考察していきましょう。
既知情報
時間0においての以下のデータ
プールの各基礎トークンリザーブ:x_0y_0
プールのLPトークン供給総量:\text{totalSupply}_0
あなたのLPトークン保有量:l_0
あなたのLPトークンを構成する各基礎トークン量:Sx_0Sy_0
この条件より以下も既知
スポット価格:P_0
k値:k_0
時間tにおいての以下のデータ(あなたのLPトークン保有量は変化しないとします)
プールの各基礎トークンリザーブ:x_ty_t
LPトークン供給総量:\text{totalSupply}_t
あなたのLPトークン保有量:l_0
この条件より以下も既知
スポット価格:P_t
k値:k_t
算出
Uniswapのモデルでは、LPトークンの保有量はプール全体のリザーブに対するシェアを表します。
具体的には、あなたのプールにおけるシェアは以下で計算されます。
時間0におけるシェア
\text{シェア}_0 = \frac{l_0}{\text{totalSupply}_0}
時間tにおけるシェア
\text{シェア}_t = \frac{l_0}{\text{totalSupply}_t}
時間tにおいて、あなたのLPトークン保有量l_0は変化しませんが、
プールのLPトークン供給総量\text{totalSupply}_tやリザーブx_ty_tは変化しています。
そのため、あなたの新しいシェアを使って基礎トークン量を計算できます。
時間tにおけるあなたの基礎トークン量
Sx_t = x_t \times \text{シェア}_t = x_t \times \frac{l_0}{\text{totalSupply}_t}
Sy_t = y_t \times \text{シェア}_t = y_t \times \frac{l_0}{\text{totalSupply}_t}
時間tにおけるあなたの基礎トークン量差分
\Delta{Sx} = x_t \times \frac{l_0}{\text{totalSupply}_t} - x_0 \times \frac{l_0}{\text{totalSupply}_0}
\Delta{Sy} = y_t \times \frac{l_0}{\text{totalSupply}_t} - y_0 \times \frac{l_0}{\text{totalSupply}_0}
Discussion