【6/28まで】Bybit登録&$100入金で6000円が貰える!詳細はこちら!

分散型取引所のPrice impact too high/Slippageとは?仕組みと対策

この記事から分かること

  • Price impact too highとは
  • Price impact too highの原因と対策
  • Slippage(スリッページ)とは
  • Slippage(スリッページ)の原因と対策
この記事を書いた人
  • 米国公認会計士ワシントン州
  • Core30経理職
  • 2021年上期の仮想通貨バブル期にアルトコイン投資とBCGに夢中になりクリプトの世界へ
  • 現在は強気相場が予想される2024年の半減期に向けてビットコイン&アルトコインを仕込み中
  • 仮想通貨投資は500万円以上、NFTは50点以上保有、BCGは20作以上プレイ。一番やさしい丁寧なクリプト情報を発信しています
  • 詳しい運営者情報はこちら

「Price impac(プライスインパクト)」とは、あなた自身の取引が市場価格にどのくらいの影響を与えるかを示す指標のことです。

プライスインパクト(Price impact)とは

「Slippage(スリッページ)」とは、あなたの取引が成立するまでに発生する、市場全体による価格変化のことを指します。

分散型取引所のスリッページとは?
さとう

多くの分散型取引所で採用されている仕組みなので、本記事を読むことで、分散型取引所のPrice ImpactとSlippageの仕組みと押さえておくべき注意点が分かります。

この記事は以下の公式文献を参考に作成しています。

本記事でご紹介している内容では、分散型取引所UniswapのV2の「Price Impact」と「Slippage」の概要・仕組みとなります。

関連記事
目次

Price impact too highは大きい取引で発生

「Price impact too high」とは、分散型取引所の流動性プール内の仮想通貨の枚数に対してあなたの取引量が大きいため、価格が大きく変わってしまい取引すべきではない状態になっていることを指します。

コインチェックやバイナンスといった中央集権取引所(CEX)で例えると、出されている売り注文が少ないにも関わらず、あなたが大量に買い注文を出したため、価格が大きく上がるようなイメージです。

価格影響が大きいと表示価格で取引不可

分散型取引所は、スワップが画面で表示されている価格で必ずしも取引できるとは限りません。

さとう

その1つの要因がPrice Impact(プライスインパクト、価格影響)です。何故Price Impactが発生するのか解説していきます。

分散型取引所で購入する仮想通貨の価格は、板取引のように人間が出した注文価格によって決まっている訳ではありません。

流動性プールの中の仮想通貨枚数の単純な割り算で機械的に価格は決まります。(これをAMM, Automated Market Makersと呼びます)

そして、それぞれの流動性プール毎に仮想通貨の価格は決まっています。

liquidty-pool-price

あなたの取引によって流動性プール内の仮想通貨の枚数が変わることで、この流動性プールの価格も変わります。

流動性プール内のそれぞれの仮想通貨の枚数をX,Yとすると、あなたのスワップによってXとYは次の式に従って変化するようにプログラムされています。

\(XY=k\)

kの値は流動性プールに提供されている仮想通貨の枚数の掛け算で、新しく流動性プールに追加で仮想通貨が提供されるまで変わりません。(スワップでも変わらず、流動性プールに提供された/解除された時のみ再計算)

XとYの掛け算であるkで流動性プール内の仮想通貨の枚数の変化の仕方が決まるので、Constant Product AMMと呼ばれることがあります。(直訳すると定積AMM)

さとう

具体的な例を挙げてイメージしてみます。

分散型取引所に次のような流動性プールがありました。

  • USDT=40,000枚(USDTの流動性枚数をX)
  • BTC=2枚(BTCの流動性枚数をY)
  • AMM:XY=80,000

ビットコインの価格は1枚20,000USDTになります。(40,000÷2)

kである80,000の値はずっと変わりません。(実際には流動性が追加で提供されたり解除されたりすると変わりますが、今回の例では追加で提供しないので変わりません。)

あなたはこの流動性プールで、10,000USDTを使ってビットコインを購入しました。

ぱんだ

今ビットコインは1枚20,000USDTだから、10,000USDTを使って半分の0.5BTC分はこのスワップで買いたいよね・・・

この時、あなたのスワップによって流動性プール内のそれぞれの仮想通貨の枚数はXY=kに従って次のように変わります。

  • まず変化後のXをAMMの式に入れる:(40,000+10,000)Y=80,000
  • Yを計算する:Y=80,000÷50,000=1.6

あなたが10,000USDTを流動性プールに入れてスワップしようとすることでXは50,000になり、それに対応するようにYが定まることがポイントです。

Y=1.6になり、スワップ前に流動性プールの中に元々あったBTC2枚との差分0.4枚があなた受け取れるビットコインです。

さとう

現在価格だと0.5枚受け取れる計算でしたが、0.1枚減った0.4枚となっており、この減った0.1枚分がPrice Impactの影響となります。

プライスインパクト・Price impactの仕組み

このようにあなたのスワップによって、流動性プールの中の仮想通貨の枚数はXY=kに従って変わり、あなたが受け取れる仮想通貨の枚数は流動性プールの変化の差分になります。

今回はPrice Impactが発生しやすいように流動性プールの中の枚数を少なくしましたが、実際には流動性プールの中には沢山の仮想通貨が提供されていてPrice Impactはここまで激しく起きません。

特に今回例に挙げたビットコインとステーブルコインといった取引量が多い流動性プールでは、提供した側に発生する報酬の総量も多くなるので、多くの流動性が自然と集まります。

PancakeswapのBTCBとBUSDのプールは4270万ドルの流動性
さとう

今度は上の画像に挙げたような流動性の総量がとても大きい流動性プールをイメージしてみましょう。

  • USDT=20,000,000枚(USDTの流動性枚数をX)
  • BTC=1000枚(BTCの流動性枚数をY)
  • AMM:XY=20,000,000,000

ビットコインの価格は同じように1枚20,000USDTになります。(20,000,000÷1000)

kである20,000,000,000値はずっと変わりません。

あなたはこの流動性プールで10,000USDTを使ってビットコインを購入しました。

ぱんだ

今ビットコインは1枚20,000USDTだから、Price Impact抜きで考えると、半分の0.5枚分はこのスワップで買える計算になるね・・・

この時、流動性プール内のそれぞれの仮想通貨の枚数はXY=kに従って次のように変わります。

  • 変化後のXを式に入れる:(20.000,000+10,000)Y=20,000,000,000
  • Yを計算する:Y=20,000,000,000÷20,010,000=999.5002…

Yの値はほぼ999.5になり、スワップ前に流動性プールの中にあったBTC1000枚との差分0.5枚があなた受け取れるビットコインです。

ぱんだ

今度はほとんどPrice Impactが起きてない!

Price Impactが発生しなかった理由は、あなたの10,000USDTのスワップが流動性プールに対して十分に小さく、価格へ影響(Price Impact)を及ぼすことにならないからです。

このように、XYを掛けたkの大きさ(流動性プールの大きさ)でプール内の仮想通貨のスワップ効率に違いが出てくることが分かります。

流動性プールの大きさとPrice Impactの関係
  • XY=kが小さい(流動性プールが少ない):Price Impactが起きやすい
  • XY=kが大きい(流動性プールが大きい):Price Impactが起きにくい
さとう

下のグラフを見るとイメージがしやすいですね。XY=80000とXY=2000000の比較です。

プライスインパクト・Price impactの仕組み
もう少し深堀り①
さとう

このようにXY=kの値が大きいとき、Price Impactが起きにくいという結論を数学的に考えてみましょう。

先程と同じように以下の流動性プールをイメージしてみます。

  • USDT=20,000,000枚(USDTの流動性枚数をX)
  • BTC=1000枚(BTCの流動性枚数をY)
  • AMM:XY=20,000,000,000

このとき、あなたが10000USDTをBTCにスワップしようとしても、下のように変化はほとんどグラフ上では表現されません。

10000USDTという取引量が流動性プール全体に対して小さすぎるからです。

プライスインパクト・Price impactが発生する仕組み

拡大すると、下のグラフのようにほとんど直線になっており(右に10000動かすと下に0.5動く直線)、0.5BTC分をスワップで受け取れることが分かります。(Price Impactはほぼなし)

プライスインパクト・Price impactが発生する仕組み

このように、流動性プールが十分大きい場合に少量のスワップを行っても、XとYの動きはグラフ上ではとても小さくなることが分かります。

そして、取引量が流動性プールに対して十分に小さい場合、スワップによる流動性プール内の仮想通貨の枚数の変化の仕方は、現在の流動性プールを表す点の接線の傾きと同じになります。

XY=kのグラフの接線の傾きは、以下のようにXY=kを微分することで求められます。

\(XY=k\)

\(Y=k/X\)

\(Y=kX^{-1}\)

\(Y’=-kX^{-2}\)

\(Y’=-k/X^2\)

さとう

今回の例では傾きが-1/20000になりますね。この傾きの動き方は現在の流動性プールの価格と同じです。つまり、流動性プールに対して取引量が小さいとき、現在の価格で取引ができることを意味します(Price Impactが発生しない)。

ぱんだ

なるほど!だから表示価格のまま取引ができたんだね。

プライスインパクト・Price impactが発生する仕組み

ちなみに、このAMMの計算過程で「価格」の考え方は実は一切出てきませんでした。

使った考え方は流動性プールの枚数とXY=kだけです。

しかし、XY=kを使うことで需要が増えると価格が上がって取引しづらくなり、供給が増えると価格が下がって取引しやすくなる「需要と供給の法則」をしっかり表せていることが分かります。

流動性プール(供給)に対してあなたの取引(需要)が大きいと、Price Impactが発生する仕組みになっているからです。

ぱんだ

XY=kっていうシンプルな式で需要と供給の法則が表現されているのはすごいね!

Price Impactが大きく、スワップした時に大きく損をしてしまう時「Price impact too high」と表示されてスワップが制限されるようになっています。

プライスインパクトが大きすぎるとスワップできなくなる

流動性プールが枯渇しないようにし、利用者が大きく損することを防ぐ目的です。

もう少し深堀り②

本記事で紹介したXY=kですが、実はステーブルコイン同士のスワップでは例外的なルールを設けている分散型取引所がほとんどです。(USDTとUSDT、USDTとBUSDなど)

どのステーブルコインもドルや日本円といった法定通貨に連動しているため、分散型取引所だけXY=kに従ってステーブルコイン同士の流動性プールでPrice Impactが発生することはなるべく避けたいからです。

ぱんだ

確かにステーブルコイン同士だったらPrice Impactなしでまったく同じ枚数同士でスワップしたいね・・・でもどうすればいいの?

この場合、StableSwap AMMという別のルールが使われます。

StableSwap AMMでは著しく流動性プール内の枚数に変化が起きない限り、同じ枚数同士でスワップされるようになるAMMです。

さとう

流動性プールに対してそこそこ大きい取引でもPrice Impactが発生しないように工夫しているということですね。

こちらの記事でStableSwap AMMについて解説しているので、気になる方は是非ご覧ください。

次にPrice Impactを気を付ける必要がある2つのケースとその対策方法を見ていきましょう。

要注意ケース①:流動性プールが少ない

流動性プールの中の仮想通貨が少ない場合、Price Impactが発生しやすいので注意しましょう。

マイナー仮想通貨は流動性プールの中身が少ないことが多いです。

Price Impactを抑える方法は、次の3つです。

  • 流動性が多い他の分散型取引所を見つける
  • 他の流動性プールと組み合わせてスワップ
  • 板が厚い中央集権取引所を探す

普段使いする分散型取引所の流動性だけ偶然少ない可能性もあるため、他の取引所の流動性プールを確認し、多い方を利用したり、組み合わせたりすることでPrice Impactを抑えることができます。

さとう

例えば、Dexscreenerと呼ばれるツールを利用すると、全分散型取引所の流動性を一覧で表示し、どこの取引所の流動性が一番多いか確認できます。

Liquidity=流動性の総額

例えば、本記事で例に挙げたビットコインとUSDTの場合、ほぼ全ての分散型取引所で流動性プールがあります。

Price Impactが発生してしまった場合、他の流動性プールも確認してみましょう。

要注意ケース②:あなたの取引が大きい

あなた個人の取引量が多い場合もPrice Impactが発生しやすいので注意しましょう。

Price Impactを抑える方法はこちらも同様です。

  • 流動性が多い他の分散型取引所を見つける
  • 他の流動性プールと組み合わせてスワップ
  • 板が厚い中央集権取引所を探す

Slippageは取引実行までの時間差で発生

「Slippage(スリッページ)」とは、あなたの取引が成立するまでに発生する、市場全体による価格変化のことを指します。

スワップが実行されるまで価格は動く

あなたが注文を出してから実際にスワップ取引が実行されるまでには、時間があります。

サーバーを経由する時間やブロックチェーンで実際に処理されるまでの時間です。その間に取引によって価格が変化した場合、変化後の価格であなたの取引は処理されます。

この価格変化のことを「Slippage(スリッページ)」と呼びます。

スリッページは許容するパーセンテージを事前に設定することができ、許容パーセンテージを超えるスリッページが発生した場合、取引が自動でキャンセルされる仕組みになっています。

さとう

キャンセルされた場合でもガス代は発生してしまうので、設定には注意が必要になります。

オススメの許容スリッページ設定とは

結論、次の2パターンで分けて許容スリッページを設定し、キャンセルされた場合都度調整するのがオススメです。

  • BTC&USDTやETH&USDCといった流動性が安定しているプール:0.5%前後
  • マイナーな仮想通貨で流動性が少ないプール:5%前後

スリッページは流動性プールが少なく、取引量が多い場合に発生しやすいです。

さとう

イメージしやすい例は仮想通貨を稼げるNFTゲーム・ブロックチェーンゲームです。

NFTゲーム・ブロックチェーンゲームで遊んで稼く独自の仮想通貨となっており、分散型取引所の流動性プールで他の仮想通貨にスワップする必要があります。

大きなプロジェクトではないことも多く、最初に流動性プールが運営や投資家から十分に用意されていないケースがあります。

この状態で仮想通貨の売り買いが流動性プールで発生すると、大きく流動性プールが変動し、スリッページが発生しやすくなります。

従って、NFTゲーム・ブロックチェーンゲーム発行の仮想通貨は5%~10%の許容スリッページで設定しないとスワップが成功しないことが多いです。

スワップがキャンセルされたら焦らずに設定した許容スリッページを見直すようにしましょう。

スリッページ(Slippage)の設定方法

スリッページ設定のメリット/デメリット

許容スリッページ設定のメリット・デメリットは次の通りです。

許容スリッページを高く設定する
  • 取引が成功しやすい
  • ガス代の無駄払いが減る
  • 不利な価格でスワップされる可能性がある
許容スリッページを低く設定する
  • 取引が失敗しやすい
  • ガス代の無駄に発生する
  • 適切なスワップ価格で取引しやすい

Price ImpactとSlippageの違い

Price ImpactとSlippageの違いは、分散型取引所Uniswapの公式記事でも取り上げられています。

Price Impact and Price Slippage are two common terms used to describe the outcome of a change in price when swapping cryptocurrency.

It is important to note that these terms do not mean the same thing.

Price impact is the change in token price caused by your own trade, while price slippage is the change in token price caused by the total movement of the market.

UNISWAP HELP CENTER「Price Impact vs Price Slippage」

Price ImpactとSlippageは同じ意味を持つ訳ではなく、Price Impactはあなた自身の取引によって引き起こされるトークン価格の変化を指し、Slippageは市場全体の現在の動きによって引き起こされるトークン価格の変化である旨が書かれています。

Slippageがあなた自身の取引を含む市場全体の取引による価格変化の影響を指す一方、Price Impactはあなたのみの取引による価格変化を指す点がポイントです。

この記事は以下のUniswapの公式文献を参考に作成しました。

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

コメント

コメントする

目次