この記事では知らないと損するDeFiの必須知識「インパーマネントロス」について解説します。
記事の内容
- インパーマネントロスとは?
- インパーマネントロスが起こる仕組み
- インパーマネントロスを具体例で解説
数式などが出てくるので少し難しいかもしれませんが、記事を読んでもらえればインパーマネントロスについて十分理解でき、他の人よりも1歩先の知識を得られるはずです。
なお本記事は下記の英語記事を参考に書いています。気になる方は原文もどうぞ。
>> https://pintail.medium.com/uniswap-a-good-deal-for-liquidity-providers-104c0b6816f2
それでは早速内容を見ていきましょう。
インパーマネントロスとは?
インパーマントロスはPancakeSwapなどのDEX(分散取引所)で流動性提供して収入を得ようとした際に、何もせずに2つの通貨をホールドしていた場合よりも利益が少なくなってしまう損失のことです。
発生する仕組みは後で述べますが、結論から言うと損失は下記の通りとなります。
仮想通貨の価格変動 | ホールドしてた場合に対する損失 |
1.25倍 | 0.6% |
1.5倍 | 2.0% |
1.75倍 | 3.8% |
2倍 | 5.7% |
3倍 | 13.4% |
4倍 | 20.0% |
5倍 | 25.5% |
表を見ていただければわかるように仮想通貨の価格変動が大きくなればなるほど損失は大きくなります。一方で通貨価値が元の価値のままであれば損失は発生しません。
インパーマネントロスを英語にすると「Impermanent loss」になります。Impermanentは「非永続的な、ずっと続かない」という意味があるので、仮想通貨の価値が元に戻れば損失は発生しない。ということになります。
インパーマネントロスが発生する仕組み
ここからはインパーマネントロスが発生する仕組みを数式で解説します。
まず基本的PancakeSwapやuniswapなどのAMM(自動マーケットメーカー)では以下の式で取引が成り立っています。
X × Y = K(定数)
例えば1ETHと100円が入っているプールだと、
1ETH × 100円 = 100
という関係が常に成立するように取引が行われます。逆にいうと流動性提供するときは1ETHと当価値の通貨をプールには入れておかなければいけません。
原文記事では上記の関係を
eth_liquidity_pool × token_liquidity_pool = constant_product
と表現しています。
また、ETHの価格は下記の式で表すことができます。
eth_price = token_liquidity_pool / eth_liquidity_pool
単純に1ethが100円だったら、ETH価格 = 100円 / 1eth で計算できますよね。
上の2つの式を連立すると
eth_liquidity_pool =sqrt( constant_product / eth_price )
token_liquidity_pool = sqrt (constant_product × eth_price)
となります。
上記式を利用して、
- 「流動性を提供した時」
- 「流動性を提供してから通貨価格が変わった時」
の2点の価格比率を計算することによって、以下の式でインパーマネントロスが計算できます。
impermanent_loss = 2 × sqrt (price_ratio) / (1+price_ratio) - 1
※式の導出は少し難しいので割愛します。
上の損失をプロットすると下記のような図になります。
参照: https://pintail.medium.com/uniswap-a-good-deal-for-liquidity-providers-104c0b6816f2
見てもらえればわかるように、横軸の価格の変動が大きくなると、インパーマネントロスが大きくなります。逆に100%で価格変動がないときはロスがありません。
インパーマントロスを具体例で解説
抽象的な数式だけだと少しイメージつきにくいと思うので、インパーマネントロスについて具体例で見て理解を深めてみましょう。
話を簡単にするために1ETH = 100円とし、100ETH:10000円のプールに1%分流動性提供していたとしましょう。プールの中身は
X(100ETH) × Y(10000円) = K(1000000)
となるようにAMMで自動的に調整されます。
時間が経って1ETH = 200円になったとします。Kは一定なのでプールの中身は
eth_liquidity_pool(70.7ETH) =sqrt( constant_product(1000000) / eth_price(200円) )
token_liquidity_pool(14142.1円) = sqrt (constant_product(100000) × eth_price(200円))
と変化します。
ちなみに70.7ETH×14142.1円=1000000なのでKの値は一定であることがわかります。
この時点で流動性提供を解除したとして、流動性を提供していなかった場合と比較してみます。
流動性提供していなかった場合
1ETH = 200円と元の100円を持っていることになりますから、200円+100円で手元には300円残ることになります。
流動性提供していた場合
(70.7ETH × 200円 + 14142円) × 1%(流動性提供分) = 282.8円が手元に残ります。
流動性を提供していなかった場合と比べると、
300円 - 278.8円 = 17.2円
損をしていることがわかります。
17.2円 / 300円 = 5.7%なので冒頭の表に記載した通り、価格変動が2倍になると5.7%損をしていることがわかります。
流動性提供しているときは手数料収入が入るので、手数料収入とインパーマネントロスを常に比較しながらDeFi運用をしていきましょう。
まとめ
この記事ではDeFiの基礎知識であるインパーマネントロスについて解説しました。最後におさらいしましょう。
インパーマネントロスとは?
EX(分散取引所)で流動性提供して収入を得ようとした際に、何もせずに2つの通貨をホールドしていた場合よりも利益が少なくなってしまう損失のこと。損失は下記の通りとなります。
仮想通貨の価格変動 | ホールドしてた場合に対する損失 |
1.25倍 | 0.6% |
1.5倍 | 2.0% |
1.75倍 | 3.8% |
2倍 | 5.7% |
3倍 | 13.4% |
4倍 | 20.0% |
5倍 | 25.5% |
インパーマントロスが起こる仕組み
AMMで価格が自動で調整されることによって発生します。損失を導出する式は下記の通りです。
impermanent_loss = 2 × sqrt (price_ratio) / (1+price_ratio) - 1
本記事は以上です。少し難しかったかもしれませんが理解できた方は他の人より1歩先の知識を得られたはずです。
少しづつ勉強して理解を深めていきましょう。