仮想通貨

【DeFi】流動性の基礎知識!DEXとの関係性・Price impact too high・スリッページ・フロントランについて徹底解説

今回の記事では、流動性について解説していきたいと思います。

流動性はDEXのAMMに必要な知識になります。Defiの中でDEXはかなり重要なポイントであることは、前回の記事(DEXの基礎知識)で紹介していますので、わからない場合は先にそちらの把握をした上で今回の解説を見ていただくとより重要性が分かると思います。

流動性を理解することで、トークン価格が何で決まっているか動きを理解することができます。それに加えて、エラー内容の意味とその解決方法が分かります。よりDEXについて理解を深めたい方は、是非最後まで読んでみてください。

流動性とは?DEXとの関係性

DEXの記事でお伝えしたように、ユーザーが取引できる場所がDEXになります。
通貨と通貨のペア流動性といい、そのペアを提供してもらう事でユーザーはトレードが可能になります。

ユーザーが2BTCをスワップした場合、120,000USDTが返ってきます。これが可能な理由は、BTC-USDTの流動性を提供してくれるユーザーがいた為スワップが可能になります。

もし、流動性提供者がいなかった場合。『Insufficient Liquidity』という表示がでます。

この表記が出た場合、流動性が無いことが分かるのでトレードができない事になります。

Swapの流れ

スワップは3つの流れになります。
BSCSCANなどで、トランザクションcheckが可能のため是非一度確認してみて欲しいです。

  1. 送金(Transfer):ユーザー▶DEX・Router
  2. 送金(Transfer):DEX▶ユーザー
  3. Sync(同期)▶トークン比率からレートを計算する

※Transferすると中のトークンの数量が変わり、このタイミングでSyncを行うことでトークンの交換レートが調整されます。

Sync(同期)の詳細

送金処理が終わった後、Syncを行った際にレートが調整されます。ここが重要なポイントです。

例:1BTC=60,000USDT。現状100BTCと6,000,000USDTの流動性プールがあるとします。

10BTC入れて600,000USDT出すというユーザーが来た場合。
中のUSDTとBTCの数が変動する為110BTCと5,400,000USDTになります。

この後、Syncというレート調整が行われます。

そのため、1BTC ≒ 49090USDTというレートになります。
※各自計算して頂ければと思います。

プライスインパクト(Price Impact)・『Price impact too high』

『Price impact too high』というエラーメッセージに関連する内容です。

【左側のユーザーの場合】

現状100BTC:6,000,000USDT分の流動性プールがあるとします。

総量の2%に当たるのでこの場合は、スワップが可能になります。

【右のユーザーの場合】

現状5BTC:300,00USDT分の流動性プールがあります。

そこに先程と同じ2BTC交換したいとすると、総量の40%に当たるのでレートの変動が大きくなります。この場合は、スワップは不可能になります。

これが『Price impact too high』になります。

引用元:https://vomtom.at/how-to-use-uniswap-v2-as-a-developer/

これは実際の例の画像ですが、Price impactが19.94%でできません。
※実際のUniswapの表示になります。

スリッページ(Slippage)・フロントラン

スワップ注文を入れてからのレートのズレをスリッページ(Slippage)と言います。

DEXアグリゲーターなどは「フロントラン防止機能」などをメリットとして提示していますが、その「フロントラン」という用語を理解する上で重要な概念です。

自分がSwapする際にレートが提示された後に自分より先に他の誰かがSwapするとレートが変動します。
『その際のズレを何%まで許容するか?』のことがスリッページとなります。

DEXのSwapページから「Slippage tolerance」という項目で実際に設定できることが多いです。

Slippage tolerance(スリッページ許容範囲)を高く設定すると『Your transaction may be frontrun』(フロントランになるかも)という表示がでます。

ここで分かることは、「スリッページを上げるとフロントランになりやすい」ということです。
では、フロントランとは何なのでしょうか。

上の画像の通り10BTCを交換したいというユーザー(Aさん)がいたとします。

Aさんは10BTC→600,000USDTのSwapを行う予定ですが、このトランザクションを感知して自分がこの人の前に割り込みできるとしたらと考えて見てください。

  1. Aさんより先に1BTC売って、Aさんのスワップ後に1BTC買い戻すとします。
  2. Aさんが10BTCを売るため、プールのBTC価格が下がります。
  3. なのでAさんより先にBTCを売り、Aさんのスワップ後に買い戻しをすると差益がでます。

これを、フロントランと言います。これはスリッページ許容範囲がある程度大きい場合に成り立ちます。

逆にこの時Aさんのスリッページ許容範囲が低く設定されていると、自分がスワップをしたことでレートが変動するため、Aさんがスワップ注文を入れた瞬間と実際のレートでスリッページ許容範囲を超えてしまい、Aさんのトランザクションが実行されません。

Aさんのトランザクションが実行されないということは、ただ自分が1BTC売って買っただけになります。すると差益はでません。

一番効率よくトレードするには

DEXによって流動性プールやレートが違います。それを一番良いところとマッチングしてトレードしてくれるのが、DEXアグリゲーターと言います。今回はその中の、1inchを説明に用いています。

※最近1inchがウォレットを出したので、スマホでも簡単にスワップが可能になり利用しやすいと思います。

1inchの詳しい利用法方や解説については、上記を参考してください。

まとめ

  1. 流動性が低いとSyncした時、レートが変動しやすい。
  2. 流動性が薄いと『Price impact too high』になり、一気にスワップができない。
  3. スリッページを大きくするとフロントランのリスクがある。
  4. DEXアグリゲーターを使うと深く考えなくてもスワップが可能になる。


今回の記事で流動性というものが、DEXがの中で重要な概念であることを理解できたと思います。そのためDEXアグリゲーターに関しては、普段から利用することを個人的にはおすすめします。

ABOUT ME
みかん
みかん
みかん(3mikan)です。 トークン/DEX開発経験があり、主に仮想通貨・DeFiについて情報発信しています! お仕事のご依頼やご相談はテレグラムの個人DMから、ご質問がある場合にはテレグラムのグループにてお願いします。