Q.アプリ内トレードでBNBの枚数を増やすとGMTの数量が乖離するのはなぜですか?
A.
DEXの仕組み上、そうなる場合があります。
バグであったり、手数料を膨大に取っている訳ではありません。
https://scrapbox.io/files/63490250637d540021bb1c0e.png
画像はBNBチェーンのアプリ内トレードで、STEPNのDEXである「DOOAR」を利用したBNB⇒GMTのトレードですが、
BNBの枚数が10倍ずつ増やしても、GMTの枚数は10倍ずつ増えていません。
本来ならBNB1枚に対し、約432枚のGMTが交換できるなら、100倍の100枚であれば約43,200枚交換できるはずですが、半分近い約25,374枚となっています。
これを理解するにはDEXの仕組みをある程度理解する必要があります。
DEXとは?
仲介者や第三者に依存せずとも、スムーズなトレードが可能な分散型取引所のことです。
AMM(自動マーケットメイカー)という自動化されたトレードシステムを基盤に設計されています。
流動性プールに通貨がないとトレード出来ない
DEXは「流動性プール」というものが存在し、運営や利用者はこのプールへ通貨のペアを提供します。
※流動性の提供は、上記画像のトレードとは関係ないところで行われています。
そして、提供されたプールある通貨を利用者が交換しています。
つまり、上記画像のトレードは、DEXの流動性プールに預けられたGMTを自身の持つBNBと交換する際のレートを示しています。
なぜ枚数が乖離する?
プールの預けられている枚数に対し、交換する枚数が多い場合、レートが大きく変動するためです。
通貨を交換する際、交換する枚数と、プールに残っている数量に応じて通貨価格レートを再計算します。
つまり、プールに預けている数量が少なく、交換する通貨の量が多い場合、その通貨の価格レートは大きく変動します。
流動性プールに預けられているGMTの枚数に対して、1枚のBNBを交換する場合と100枚のBNBを交換する場合では価格レートへの影響が大きく変化することが分かります。
なお、これはSTEPNのDEX「DOOAR」の流動性プールの枚数が少ないからです。
(他にも理由はあるでしょうが割愛します)
https://scrapbox.io/files/63490707737e7700206b3ac0.png
※別日に取得したのと手数料などの違いから、アプリ内トレードと数量の誤差があります。
画像の通り、BNB1枚に対して約452枚のGMTが交換でき、100枚のBNBだったとしても、約44,420枚とDOOARを利用した場合に比べ、乖離が非常に少ないことが分かります。
これは、PancakeSwapの方が流動性プールに預けられている通貨の数量が多いためです。
従って、BNBの枚数を100枚を1,000枚、10,000枚と増やすと、DOOARと同じく枚数の乖離が発生します。プールに預けられている枚数が多くても、膨大な枚数のBNBを交換するとレートへの影響が発生するということです。
なお、価格レートの計算はDEX内部にあるため、計算式の詳細は明確ではありませんが、DEXの仕組みや計算例について、以下のリンクが参考になるでしょう。(なお、本ページも下記記事を参考に作成しました。)