【23年5月末】投資ポジション&運用実績を公開中!詳細はこちら!

【完全版】Uniswap V3のインパーマネントロスとは?仕組みを解説

この記事から分かること
  • UniswapV3の流動性提供の仕組み
  • UniswapV3の変動損失の仕組み
  • UniswapV3の変動損失金額のイメージ
  • UniswapV3でお勧めのマイニング戦略
この記事を書いた人
  • Core30経理職
  • 米国公認会計士(ワシントン州)
  • 2021年上期の仮想通貨バブル期にアルトコイン投資とBCGに夢中になりクリプトの世界へ
  • 現在は強気相場が予想される2024年の半減期に向けてビットコインをコツコツ積み立てる堅実スタイル
  • 仮想通貨投資は500万円以上、NFTは50点以上保有、BCGは20作以上プレイ。一番やさしく丁寧なクリプト情報を発信しています

UniswapV3は2021年5月5日にスタートした分散型取引所Uniswap(ユニスワップ)のV2の次の仕組みです。

多くの分散型取引所で同じ仕組みが導入されており、例えば2023年4月4日にPancakeswapがUniswapV3をベースとしたPancakeswapV3をスタートしました。

V3の流動性を提供して利息を稼ぐ流動性マイニングでは、事前に価格帯を設定して流動性を提供する点が特徴的です。

結論、インパーマネントロスの発生額は従来のV2と比べて大きくなっています。

流動性を提供する価格帯が狭ければ狭いほど大きく、V2と比べると次のイラストのような倍率でインパーマネントロスが発生します。(BTC&USDTの流動性提供の例)

nについては記事後半で解説
ぱんだ

レンジを狭くするとV2と比べて10倍以上のインパーマネントロスが発生しちゃうんだね・・・!

さとう

本記事を最後まで読むと、UniswapV3のインパーマネントロス発生の仕組みと注意点、それを踏まえたオススメの投資戦略が分かります!

こちらの記事で従来のV2のインパーマネントロスの仕組みについて解説しています。

本記事は以下のリサーチ記事とUniswapV3のホワイトペーパー&開発仕様書を参考に作成しています。

Uniswap V3 Development Book

Uniswap V3 Whitepaper

Impermanent Loss in Uniswap V3

目次

UniswapV3の流動性提供の仕組みの概要

UniswapV3の流動性マイニングは従来のUniswapV2とは異なる5つの特徴があります。

Uniswap V3の基本的な仕様は理解してる!インパーマネントロスだけ知りたい!という方は、こちらからインパーマネントロスの解説までジャンプできます。

①Uniswap V3では価格帯を決めて提供

Uniswap V3ではステーキング(流動性マイニング)を行うときに、価格帯を決める必要があります。

従来のUniswap V2時の通常の流動性マイニングでは、仮想通貨のペアを等価でただ提供するだけでした。

価格帯を決める必要はなく、全ての価格帯で横に薄く流動性を提供していたようなイメージです。

ぱんだ

大量に提供していた人は厚めに提供され、少額で提供していた人は薄めに提供してる感じだね!

Uniswap V3で価格帯(価格レンジ)を決めて提供するというのは次のようなイラストのイメージです。

https://uniswap.org/whitepaper-v3.pdf(青字は追記)

価格を狭く設定すればするほど、細く長い流動性が提供され、現在価格が価格レンジに入っている時だけあなたの流動性は利用されます。

Uniswap V3の実際の流動性提供画面で、次のようなデータが表示されますが、これはみんなが価格帯を自由に決めて流動性を提供した積み上げ結果です。

さとう

基本的には現在価格付近に流動性は集中しており、現在価格付近は山が高くなっています。

このような流動性提供の仕方をUniswap V3では集中流動性(Concentrated Liquidity)と呼びます。

ぱんだ

でも何でこんな仕組みにしてるの・・・?

Uniswap V3では「資本効率性(Capital Efficiency)」が重要視されているからです。

提供されている流動性ができるだけ無駄なく利用されるように仕組みになっており、少額の流動性提供でも多くのスワップ手数料を報酬として貰えるようになっています。

また、スワップ利用者はプライスインパクト(Price Impact)とスリッページ(Slippage)による損失を受けにくくなるというメリットがあります。

UniswapV3のスワップ利用者にとってのメリットや、V3の仮想通貨スワップのやり方はこちらの記事で詳しく解説しています。

②価格帯に該当してると手数料が貰える

Uniswap V3では、スワップが行われた時の仮想通貨の価格が、あなたが流動性を提供した価格帯に該当しているときのみ、あなたの流動性はスワップに利用され、スワップ手数料を報酬として貰えます。

従来のUniswap V2では、スワップ手数料は流動性提供者全体に報酬として配られていました。

一律でスワップ金額の0.25%がスワップ手数料になっていたので、それが提供した流動性の金額で全体に配布されているようなイメージです。

一方、UniswapV3ではあなたが流動性を提供した価格帯で行われた取引のみ、スワップ手数料を報酬として貰えます。

価格帯を決めて提供できるようになったことで、報酬面については次のようなメリット・デメリットが生まれました。

  • レンジを狭くすればするほど、大量にスワップ手数料を貰える
  • レンジを適切な範囲で広く設定すると、安定してそこそこスワップ手数料が貰える
  • レンジを狭くしすぎて価格帯から外れてしまうと、スワップ手数料が貰えない
  • レンジあまりにも広くし過ぎると、ほとんどスワップ手数料を貰えなくなってしまう

UniswapV3では「資本効率性(Capital Efficiency)」を重要視しているため、少ない流動性でもたくさん取引される(たくさん利用してもらえる)価格帯に流動性を提供できれば、大量のスワップ報酬を貰うことができます。

③スワップ手数料は流動性提供者が決定

スワップ手数料は次の4つの手数料から、流動性提供者が自由に選択できます。

  • 1%(マイナーなペアに最低)
  • 0.3%(ほとんどのペアに最低)
  • 0.05%(安定的なペアに最適)
  • 0.01%(非常に安定したペアに最適)

スワップを利用する側では、基本的に自分が有利に取引できる手数料の流動性プールが選択されるため、自動提案されたその流動性プール毎に標準とされている手数料を選択すれば問題ありません。

例えば、ステーブルコイン同士の流動性プールであれば、手数料は0.01%が推奨されます。(自動提案で設定される)

逆に、時価総額が小さい草コインが含まれるペアであれば手数料は1%が推奨されます。

このように設定される理由は、流動性提供者の利益が「手数料-インパーマネントロス」だからです。

ステーブルコインはインパーマネントロスが発生しないStableSwap AMMという仕組みが利用されているので、手数料をそこまで報酬として貰わなくても流動性提供者側は満足します。

逆に、草コインが含まれるペアはインパーマネントロスが大きくリスクが高いため、手数料を高く設定しベースの報酬量を底上げしておく必要がある訳です。

ぱんだ

確かにこの方が利用者にとっても流動性提供者にとっても満足度は高いね・・・!

④価格帯毎に異なる流動性のグラフ

Uniswap V2では流動性提供者全員で1つの流動性プールを構築しているイメージで、利用者側は1つの流動性に対してスワップを行っていました。

具体的には、次のようなXY=k(X,Yは流動性提供の枚数、kは流動性の追加や削除の際に決まる固定の値)のグラフに従って、流動性プールの中身や仮想通貨の価格は変化していました。

Understanding StableSwap (Curve) » Miguel Mota | Software Developer

XとYの定積(k)で決まる自動価格決定の仕組み(AMM)なので、Costant Product AMM(定積AMM)と呼ばれています。

Constant Product AMMの仕組みについてはこちらで詳しく解説しています

UniswapV3も各仮想通貨ペア毎に流動性プールは1つですが、価格帯毎に異なる流動性プールが大量に存在しているイメージにんります。

さとう

3人で流動性を提供している状況を例にイメージしてみましょう!

現在価格時点では、Aさんの流動性プールのみが価格レンジに入っていて機能しています。

ここでUSDTで全てのBTCが購入されると、赤①の位置まで移動し、この流動性は価格帯から外れて機能しなくなります。

今度はBさんの流動性が機能するようになり、赤②からスタートします。Bさんの流動性は最初BTCでしか供給されていません。さらにBTCが買われると赤③にどんどん移動していきます(同時にUSDTのポジションも増えていきます)。

Bさんの流動性が最初BTCしか供給されていないのは、2個目の流動性のスタート時点ではBTCしか必要ないからです。(資本効率性)

②に移った時点ではBさんの流動性プールにUSDTはありませんが、BTC売却でUSDTが必要な場合は、1個目のAさんの流動性が再び機能することになります。

このように、UniswapV3では価格が変化する毎に、スワップで利用される流動性のグラフが移り変わっていくようなイメージになります。

さとう

これは次の「⑤流動性は1:1の等価で提供する必要はない」に繋がる話です!

⑤流動性を1:1の等価で提供する必要はない

「④価格帯毎に異なる流動性のカーブ」に続くUniswapV3の特徴になります。

Uniswap V3では、流動性を提供するときに2つの仮想通貨を等価の1:1に設定する必要はありません。(工夫すれば等価で提供することもできます)

等価の1:1で流動性を提供したいときをイメージすると、次のように価格帯の下限と上限を設定します。

上の例の場合、下限価格/現在価格=現在価格/上限価格=0.81となるようにレンジを設定すると、現在価格が10,000USDT/BTCのときに10,000USDTと1BTCで流動性提供できます。

ぱんだ

下限までの余裕度合いと上限までの余裕度合いが比率で考えて同じくらいになるように、価格帯を設定するんだね!

さとう

ではなぜ基本的に等価で提供する必要がないのでしょうか。

④で例に挙げた3人が流動性プールに仮想通貨を提供している状態をもう一度イメージしてみましょう。

例えば、Bさんは提供する流動性の価格帯の下限を現在の価格よりも大きく設定しており、この場合は供給する流動性は全てBTCにしなければなりません。

さとう

これはUniswapV3が重要視している「資本効率性」の観点からすると、USDTが必要ないからです。

Bさんの流動性はAさんの流動性でBTCが全て買い尽くされた時にアクティブになりますが、この状態というのは流動性からBTCがなくなっており、さらにBTCを利用者に買わせてあげるにはBTCだけが必要だからです。

この時Aさんの流動性が機能しなくなり、USDTが機能していないですが、BTCが売られて価格が少しでも下がると今度はAさんの流動性が再度アクティブになり、USDTが流動性として機能するようになります。

このように、下限の価格が現在価格に近付けば近づくほど流動性として提供しなければならないUSDTの枚数は減り、逆に上限の価格が現在価格に近付けば近づくほど、必要になるBTCの枚数が減るという訳です。

ちなみに、実際には数千人・数万人が流動性を提供するため、各個人が設定する流動性の価格帯は重なり合っていきますが、重なり合っているところは、価格変化の動きが遅くなるイメージです。

UniswapV3のインパーマネントロスとは

次にUniswapV3のインパーマネントロスの仕組みについて見ていきましょう。

さとう

よく知られる従来のUniswap V2のインパーマネントロスについては、こちらの記事で詳しく解説しています!

UniswapV2と比べて変動損失は大きい

結論、UniswapV3のインパーマネントロスはUniswapV2と比べて大きくなっています。

提供する流動性の設定価格帯を狭くすればするほど、さらにインパーマネントロスは増えます。

従来のインパーマネントロスと比べて何倍のインパーマネントロスが発生するかは、次のイラストのようなイメージです。

uniswapv3-impermanent-loss-image
ぱんだ

レンジを狭くするとV2と比べて10倍以上のインパーマネントロスが発生しちゃうんだね・・・!

UniswapV3で価格帯を決めて流動性を提供する場合は、価格が変化しやすいペアであればあるほど提供する流動性の金額を小さくする必要があります。

しかし、狙った価格帯であなたの流動性がしっかり利用されれば、提供した流動性の金額が小さいてもスワップ手数料は報酬としてちゃんと貰えます。

さとう

UniswapV3が重要視している「資産効率性(Capital)」とはこういうことなので、それに従って流動性を提供しましょう!

ここから、UniswapV3でインパーマネントロス(変動損失)が従来と比べて大きくなる理由について解説していきます。

上に挙げた従来のインパーマネントロスより何倍のインパーマネントロスが発生するかについての算出過程もこちらで解説していきます。

さとう

分散型取引所の基本的な仕組みにとても詳しくなれる内容なので、気になる方は是非最後までご覧ください!

解説①:UniswapV2の簡単なおさらい

まずは簡単にUniswapV2の流動性の基本的な考え方をおさらいします。

UniswapV2では次の式で流動性の枚数や仮想通貨の価格が変化していました。

\(xy=k\)

Understanding StableSwap (Curve) » Miguel Mota | Software Developer
ぱんだ

流動性を提供するときにkが決まって、xとyの枚数はこれに従って変化していくんだよね!

解説②:UniswapV3の流動性提供の式

UniswapV3では次の式をベースに考えていきます。

\(xy=L^2\)

さとう

このままではUniswapV2と同じになってしまうので、UniswapV3の特徴を表現するために、このグラフにちょっとした調整を行っていきます。

UniswapV3の流動性は価格レンジを設定し、上限または下限に達すると片方の流動性しか提供する必要がないことが大きな特徴でした。(資産効率性のため)

この特徴をグラフに反映させましょう。

話をイメージしやすくするために、今回提供する流動性の枚数はBTC(x)&USDT(y)で考えます。ビットコインの流動性提供枚数がx、ステーブルコインUSDTの流動性提供枚数がyです。

ビットコインの価格をPとすると、Pは次のように表せます。

\(P=\frac{y}{x}\)

このとき、xとyはそれぞれLとPを使って次のように表せます。

①:\(xy=L^2\)

②:\(y=Px\)

上記の2式より、\(x=\frac{L}{\sqrt{P}}\)

①:\(xy=L^2\)

②:\(y=Px\)

上記の2式より、\(y=L\sqrt{P}\)

UniswapV3の流動性は価格レンジを設定し、上限または下限に達すると片方の流動性しか提供する必要がないことが特徴でしたが、これは次のようなグラフです。

  • \(xy=L^2\)のグラフを-x方向に\(\frac{L}{\sqrt{Pb}}\)だけ平行移動する
  • \(xy=L^2\)のグラフを-y方向に\(L\sqrt{Pa}\)だけ平行移動する

Pbは上限設定した価格、Paは下限設定した価格です。

平行移動させたグラフとその式が次の通りです。

ぱんだ

平行移動のとき符号の向きは逆になるんだよね!

\((x+\frac{L}{\sqrt{Pb}})(y+L\sqrt{Pa})=L^2\)

ビットコインの価格が上限になったときにx(BTCの枚数)がゼロになるグラフというのは、\(xy=L^2\)を\(\frac{L}{\sqrt{Pb}}\)分だけ平行移動したグラフのことです。

そして、ビットコインの価格が下限になったときにy(USDTの枚数)がゼロになるグラフというのは、さらに\(xy=L^2\)を\(L\sqrt{Pa}\)分だけ平行移動したグラフのことです。

さとう

だからこのようなグラフになる訳ですね。

ここで別にもう一つ次の式が成り立つことの証明をしておきます。(後で活躍します)

\(\Delta y=L・\Delta\sqrt{P}\)

\(\Delta x=L・\Delta\frac{1}{\sqrt{P}}\)

証明方法
さとう

ここの証明でUniswapV3の面白い仕組みが分かります!

先程平行移動して作ったグラフは、あなたが流動性として提供しているxとyの枚数を決めるための専用のグラフです。

これをあなたにとってのリアルカーブ(Real Curve)としましょう。

平行移動する前のグラフは、対照的にバーチャルカーブ(Virtual Curve)としましょう。

今回証明する式の面白いポイントは、Real CurveとVirtual Curveで定義される値が混在しているということです。

Δyはあなたが提供しようとしているUSDTの枚数なので、Real Curveで決定されます。

Lは平行移動する前の\(xy=L^2\)で定義したので、Virtual Curve上で決定されて固定です。

あなたは流動性を等価で提供する必要はないので、ΔPはReal Curve上で定義される値ではなく、Virtual Curve上で得られる値であることが分かります。(言い換えると、あなたが提供する流動性の枚数をVirutal Curve上に戻すと現在価格を表す)

つまり、あなたが提供する流動性の変化Δyは、Virtual Curve上のPの変化ΔPで求まるということです。(Lは固定)

証明の過程も載せておきます。

\(\Delta Y=L・\Delta\sqrt{P}\)

\(\sqrt{xy}=\frac{y_{1}-y_{0}}{\sqrt{P_{1}}-\sqrt{P_{0}}}\)

\(\sqrt{xy}(\sqrt{P_{1}}-\sqrt{P_{0}})=y_{1}-y_{0}\)

\(\sqrt{xy}(\sqrt{\frac{y_{1}}{x_{1}}}-\sqrt{\frac{y_{0}}{x_{0}}})=y_{1}-y_{0}\)

Virtual Curve上では、\(\sqrt{x_{1}y_{1}}=\sqrt{x_{0}y_{0}}=\sqrt{xy}=L\)のため、

\(\sqrt{\frac{x_{1}y_{1}y_{1}}{x_{1}}}-\sqrt{\frac{x_{0}y_{0}y_{0}}{x_{0}}}=y_{1}-y_{0}\)

\(\sqrt{y_{1}^2}-\sqrt{y_{0}^2}=y_{1}-y_{0}\)

\(y_{1}-y_{0}=y_{1}-y_{0}\)

Δxについても同様です。

さとう

証明した式は後で使うので、少しの間忘れていても大丈夫です!

ここまでの式を使って、以下の条件で10,000USDTを流動性として提供したときのBTCの提供枚数を求めてみましょう。

  • 提供しようとしている流動性:BTC&USDT
  • 現在のBTCの価格:10,000USDT/BTC
  • 流動性の上限価格:14,400USDT/BTC
  • 流動性の下限価格:8,100USDT/BTC
  • 提供するUSDTの枚数:10,000USDT
  • 提供するBTCの枚数:?
ぱんだ

UniswapV2では現在価格と同じ1BTCを等価で提供するけど、V3では違うんだよね・・・!どうやって計算するんだろう?

Real Curveの式のyに10,000を入れれば良さそうですが、Lが分からないので計算できません。

\((x+\frac{L}{\sqrt{Pb}})(y+L\sqrt{Pa})=L^2\)

ここでちょっと忘れていた次の証明済みの式を思い出してみましょう。

\(\Delta y=L・\Delta\sqrt{P}\)

\(\Delta x=L・\Delta\frac{1}{\sqrt{P}}\)

ぱんだ

そっか!流動性の変化を表すReal Curve上のxとyの変化は、Virual Curve上のPの変化とLで表せることが証明できたんだよね!

例えば、yの式の方に着目すると、今回追加する流動性ΔyはLとΔPで示せるということです。

さとう

このΔyの式に当てはまるΔPは簡単に求めることができます。

今回追加する流動性Δy分は仮に全て買われると(ETHが売られる)、現在の流動性を表す地点がcだとすると、aまで移動してくることになります。

これは、Virual Curveのグラフで考えると、現在価格(Pc)から下限価格(Pa)まで移動していることにもなります。(資本効率性の観点から、価格Paまで行ったときにyは必要なくなるというUniswapV3の流動性の定義をしっかり表している)

つまり、Δyに対応するΔPは、\(Pc-Pa\)であるという訳です。

同じように考えると、Δxに対応するΔPは、\(\frac{1}{\sqrt{Pc}}-\frac{1}{\sqrt{Pb}}\)となります。

証明した式のΔPにそれぞれを当てはめると、次のようになります。

\(\Delta x=L(\frac{1}{\sqrt{Pc}}-\frac{1}{\sqrt{Pb}})\)

\(\Delta y=L(\sqrt{Pc}-\sqrt{Pa})\)

例題の値を当てはめると、次のようになります。

\(\Delta x=L(\frac{1}{\sqrt{10000}}-\frac{1}{\sqrt{14400}})\)

\(10000=L(\sqrt{10000}-\sqrt{8100})\)

最初にLが1000であることが分かり、ビットコインの提供枚数(Δx)=1.6666…であることが分かります。

今回の例では、設定した価格帯の中で現在価格は下限価格に寄っているため、ビットコインの価格が上がったときに利用されやすい流動性の提供方法ということです。

ビットコインの価格が上がった時というのは、ビットコインの枚数が流動性から少なくなったときであり、UniswapV3の資本効率性の観点から考えると、よりビットコインを必要としている状況ということです。

従って、提供するビットコインの枚数はUniswapV2の時に計算される1BTCより多くなります。

UniswapV3のシミュレーションツールを使うと、同じようにBTCの提供枚数は1.666666と出力されることが分かります。

UniswapV3インパーマネントロスシミュレーションサイト

さとう

気になる方は是非突合してみて下さい!

もうちょっとだけ深堀り!①

ちなみに平行移動させたグラフ上のxとyからLを直接求めることはできません。

今回例に挙げたx=1.6666….とy=10,000からLは計算できないということです。

これは、Lは平行移動する前のグラフ(Virual Curve)で定義したときの値だからです。

x=1.6666….とy=10,000をそれぞれ\(\frac{L}{\sqrt{Pb}}\)、\(L\sqrt{Pa}\)分戻したXとYからLは計算され、流動性を提供したときに裏で計算されているので、本記事でLの具体的な値を意識する必要はありません。

解説③:インパーマネントロスの計算

UniswapV3の流動性提供の基本的な考え方が分かった所で、早速インパーマネントロスを計算していきましょう。

さとう

まずは先程の例題を元に、インパーマネントロスがどれくらい発生するか具体的に計算してみます!

流動性を提供した後の価格変化による自分の流動性プールの変化は、解説②で紹介した式に変化後の価格を入れるだけで簡単に計算されます。

例えば1BTCの価格が10,000USDTから12,000USDTになったときは次のように計算できます。(1.2倍)

\(\Delta x=L(\frac{1}{\sqrt{Pf}}-\frac{1}{\sqrt{Pb}})\)

\(\Delta y=L(\sqrt{Pf}-\sqrt{Pa})\)

Pf:将来価格(価格変化後)

\(\Delta x=1000(\frac{1}{\sqrt{12000}}-\frac{1}{\sqrt{14400}})\)

\(\Delta y=1000(\sqrt{12000}-\sqrt{8100})\)

x=0.79537…

y=19,544…

さとう

流動性を提供した時にLが1000であることが分かっているので、今回は簡単に計算できましたね。

合計金額は0.79537×12000+19544=29,088ドルとなりました。

流動性を提供していなかった場合は、1.66666×12000+10000=30,000ドルでした。

従ってインパーマネントロスの割合は912/30000=約3%ということになります。

価格が1.2倍になったときに発生するインパーマネントロスはUniswapV2では約0.4%だったので、7.5倍のインパーマネントロスが発生していることになります。

UniswapV3は価格レンジを設定する分、流動性の変化が従来の流動性と比べてずっと激しくなります。

設定した価格レンジが狭ければ狭いほどインパーマネントロスは大きくなり、広くすれば従来のV2のインパーマネントロスの発生の仕方に近づく訳です。

ぱんだ

じゃあどれくらいの価格レンジにすればいいのかな?なんとなくの目安が欲しいかも・・・?

さとう

ではV3のインパーマネントロスの発生傾向を一般化してみましょう!

発生するインパーマネントロスの割合は次の式で計算できます。

インパーマネントロス

\(=\frac{価格変化後の流動性金額-ガチホ時の金額}{ガチホ時の金額}\)

流動性を提供した時点の流動性金額の合計をV0、価格変化後の提供した流動性の金額をV1、流動性を提供していなかった場合の金額をVheldとします。

このときV0は現在価格Pを使って次のように表せます。

\begin{eqnarray} V_{ 0 }&=&y+xP\\ \end{eqnarray}

解説②より、xは\(x=L(\frac{1}{\sqrt{P}}-\frac{1}{\sqrt{Pb}})\)、yは\(y=L(\sqrt{P}-\sqrt{Pa})\)なので、V0はさらに次のように表すことができます。

\begin{eqnarray} V_{ 0 }&=&y+xP\\ &=&L(\sqrt{P}-\sqrt{Pa})+LP(\frac{1}{\sqrt{P}}-\frac{1}{\sqrt{Pb}})\\ &=&L(\sqrt{P}-\sqrt{Pa})+LP(\frac{1}{\sqrt{P}}-\frac{1}{\sqrt{Pb}})\\ &=&L(\sqrt{P}-\sqrt{Pa})+L(\sqrt{P}-\frac{P}{\sqrt{Pb}})\\ &=&2L\sqrt{P}-L(\sqrt{Pa}-\frac{P}{\sqrt{Pb}}) \end{eqnarray}

V0の式はL・P・Pa・Pbの4つで構成されている式であり、P以外の3つは流動性を提供するときに決まった値で固定です。

つまり、Pを将来価格に置き換えるだけでV0の式はV1の式になります。

将来価格を現在価格Pをk倍したPkとしたとき、V1は次の通りです。

\begin{eqnarray} V_{ 1 }=2L\sqrt{Pk}-L(\sqrt{Pa}-\frac{Pk}{\sqrt{Pb}}) \end{eqnarray}

VheldはPkを使って次のように表せます。

\begin{eqnarray} V_{ held }&=&y+xPk\\ &=&L(\sqrt{P}-\sqrt{Pa})+LPk(\frac{1}{\sqrt{Pk}}-\frac{1}{\sqrt{Pb}})\\ &=&L\sqrt{P}(1+k)-L(\sqrt{Pa}+\frac{Pk}{\sqrt{Pb}})\\ \end{eqnarray}

UniswapV3のインパーマネントロスの割合をILa,b(k)とすると、次のように表せます。

\begin{eqnarray} IL_{ a,b }(k)&=&\frac{V_{ 1 }-V_{ held }}{V_{ held }}\\ &=&\frac{2L\sqrt{Pk}-L\sqrt{P}(1+k)}{L\sqrt{P}(1+k)-L(\sqrt{Pa}+\frac{Pk}{\sqrt{Pb}})}\\ &=&\frac{2\sqrt{k}-1-k}{1+k-\sqrt{\frac{Pa}{P}}-k\sqrt{\frac{P}{Pb}}} \end{eqnarray}

UniswapV2のインパーマネントロスの割合をIL(k)すると、IL(k)は\(\frac{2\sqrt{k}-1-k}{1+k}\)で表すことができるので、この値でILa,b(k)の計算結果を無理やり括ると次のようになります。

\begin{eqnarray} IL_{ a,b }(k)&=&IL(k)・\Bigg(\frac{1}{1-\frac{\sqrt{\frac{Pa}{P}}+k\sqrt{\frac{P}{Pb}}}{1+k}}\Bigg) \end{eqnarray}

現在価格P、レンジ下限Pa、レンジ上限Pbを入れて将来価格が何倍になったかを表すkを入れると、UniswapV3のインパーマネントロスがUniswapV2のインパーマネントロスに対して何倍か分かる式が完成しました。

さとう

これだけではまだイメージしづらいので、もっとシチュエーションを限定して、UniswapV3のインパーマネントロスのイメージを掴みます。

本記事では価格レンジが上限と下限で比率で考えて等間隔になっている時のインパーマネントロスを想定してみます。(実際のUniswapV3の流動性提供の戦略としても妥当なもの)

まず、次の2つの式を満たすようなnを決めます。

\begin{eqnarray} \frac{Pa}{P}=\frac{1}{n}、 \frac{P}{Pb}=\frac{1}{n} \end{eqnarray}
ぱんだ

等間隔(比率)で価格レンジが広くなると、nも大きくなるんだね!

例えば次のような価格レンジを想定した場合、n=1.23…(1/n=0.81)となり、提供する流動性は等価になります。

この2つの式をILa,b(k)の式に代入すると面白い式が得られます。

\begin{eqnarray} IL_{ a,b }(k)&=&IL(k)・\Bigg(\frac{1}{1-\frac{\sqrt{\frac{Pa}{P}}+k\sqrt{\frac{P}{Pb}}}{1+k}}\Bigg)\\ &=&IL(k)・\Bigg(\frac{1}{1-\frac{\sqrt{\frac{1}{n}}+k\sqrt{\frac{1}{n}}}{1+k}}\Bigg)\\ &=&IL(k)・\Bigg(\frac{1}{1-\frac{(1+k)\sqrt\frac{1}{n}}{1+k}}\Bigg)\\ &=&IL(k)・\frac{1}{1-\frac{1}{\sqrt{n}}} \end{eqnarray}

この式より、等間隔(比率)で価格レンジを設定したとき、UniswapV3がUniswapV2のインパーマネントロスと比べて何倍大きいかはその価格レンジの広さを表すnによって示せることが分かりました。

\(f(n)=\frac{1}{1-\frac{1}{\sqrt{n}}}\)(n>1)のグラフとnの値毎の倍率のテーブルは次のようになります。

nの値ILの発生倍率(V2比)
n=1.211.5倍
n=1.55.4倍
n=2.03.4倍
n=4.02.0倍

UniswapV2のインパーマネントロスの早見表を下に載せておきます。

さとう

V3の発生倍率を掛け合わせることで大体のイメージできますね。

UniswapV2 インパーマネントロス早見表
  • 1.25倍の価格変動 = 0.6%の損失
  • 1.50倍の価格変動 = 2.0%の損失
  • 1.75倍の価格変動 = 3.8%の損失
  • 2倍の価格変動 = 5.7%の損失
  • 3倍の価格変動 = 13.4%の損失
  • 4倍の価格変動 = 20.0%の損失
  • 5倍の価格変動 = 25.5%の損失
さとう

nが2以上になるような価格レンジを取れば、インパーマネントロスはUniswapV2の3倍程度で収まりますね。価格変化が1.5倍なら6%インパーマネントロスが発生するということです。

あとはAPRと見比べて、リスクに見合う流動性提供になるか検討しましょう。

目安となる価格レンジの幅とインパーマネントロスがUniswapV2の何倍になるかの図も載せておきます。

uniswapv3-impermanent-loss-image

まとめ:価格帯の幅でリスクを予測しよう

結論、UniswapV3のインパーマネントロス(変動損失)はUniswapV2と比べると大きくなります。

従来のUniswapV2の流動性提供では価格全体に流動性を置いていたのに対し、UniswapV3では事前に価格帯を決めてから流動性を提供するからです。

ぱんだ

インパーマネントロスの発生が決めた価格帯で集中するイメージだね!

価格帯を狭くすればするほど、インパーマネントロスの発生は従来のV2と比べて大きくなります。

仮に価格帯を等間隔(比率)に設定して流動性を提供した場合、従来のインパーマネントロスと比べてV3で何倍のインパーマネントロスが発生するかは次の通りです。

レンジ間隔nとインパーマネントロスの倍率(UniswapV2比)の関係は次のグラフとテーブルのようになります。

nの値ILの発生倍率(V2比)
n=1.211.5倍
n=1.55.4倍
n=2.03.4倍
n=4.02.0倍

UniswapV3が重要視しているのは「資本効率性(Capital Efficiency)」で、提供する流動性を少なくして効率よくスワップ手数料を得ることが前提になっています。

インパーマネントロスが増えてしまっているように見えますが、提供する流動性をその分しっかり減らして、リスクを抑えるようにしましょう。

UniswapV3のインパーマネントロスシミュレーションはこちらのサイトが便利です。

https://www.poption.exchange/tools/il/

本記事は以下のリサーチ記事とUniswapV3のホワイトペーパー&開発仕様書を参考に作成しました。

Uniswap V3 Development Book

Uniswap V3 Whitepaper

Impermanent Loss in Uniswap V3

さとう

V2のインパーマネントロスは下の記事で詳しく解説しています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次