AMM、DeFi の原理、自動化マーケットメーカーは、従来の取引所のマーケットメーカーと比べて、買い手と売り手の価格を完全に機械が決定するという点で異なります。
マーケットメーカーの役割は、特定の市場に流動性を提供することです。マーケットメーカーは、指定されたマーケットメーカーアレンジメント(通常は資産の発行者が費用を負担)や取引手数料のキャッシュバック(通常は取引所が支払う)およびマーケットメーカーからのスプレッド収入(Dex の手数料)を通じて収益を上げます。
AMM の原理#
実際、AMM は次の関数だけで説明できます。
これは反比例関数です。
流動性の影響#
恒久的な乗算アルゴリズムは、流動性プールに流動性を追加または削除しない限り、取引が行われる場合にのみ k 値が変化しないことを指します。
k 値に影響を与えるいくつかの状況
-
取引手数料が k 値に影響を与える
たとえば、Uniswap の取引には 0.3%の手数料がかかり、取引後に手数料が流動性プールに追加されます。
-
流動性の追加が k 値に影響を与える
現在、資金プールに xETH/yUSDT がある場合、K=x*y です。今、誰かが流動性を追加し、dx 個の ETH と dy 個の USDT を追加し、dx/dy=x/y となるようにします。
Uniswap のデフォルト設定を使用する場合、流動性を追加するときにまず ETH の数量を入力し、Uniswap が必要な USDT の数量を自動的に計算します。このデフォルトの計算は dx/dy=x/y を維持するものです。
ただし、流動性を追加した後、流動性プールの資金は次のようになります:(x+dx) ETH/(y+dy) USDT。この時点で、(x+dx)(y+dy)>x*y。したがって、流動性の追加により K 値が増加します。
同様に、流動性を減らすと K 値が減少します。
-
寄付が k 値に影響を与える
流動性を追加する際に、dx/dy=x/y の比率で追加するのではなく、直接契約アドレスに dx>0、dy=0 を転送することもできます。これも K 値を変更します。
このようなことはよく起こります。一部の人々は誤って ETH を Uniswap の流動性プール契約アドレスに送金し、寄付行為を行い、元の流動性プールの所有者にコインを無駄に送ります。
K 値比率に従わない流動性の追加行為は、Uniswap では寄付と呼ばれます。
ただし、このような寄付行為は、他の人が搾取することができるように設計されています。たとえば、誰かが dx>0、dy=0 を入金する場合、別の人が K 値比率に従った dy を入金し、流動性を追加する操作を実行することで、dx を寄付から奪うことができます。これはかなり複雑であり、詳細はわかりません。
K 値比率に従わない任意の流動性は寄付を生み出します。たとえば、dx/dy>x/y の場合、最初に (dx-ddx)/dy=x/y の流動性を追加し、ユーザーに対応する量の LP トークンを返します。その後、ddx は寄付となります。
また、同じブロック内で、流動性の追加と売買の両方の取引が行われる場合、K 値はより複雑に変化します。
IDO#
pancakeswap を例にとると、手数料の計算は無視します
BSC チェーンで $SHEEP という名前のトークンを発行し、SHEEP/BNB をトレードペアとして流動性プールに追加しました。5000SHEEP と 100BNB をプールに追加し、この時点で私の SHEEP の IDO 価格が確定しました。
BNB/USDT=500 と仮定すると、
- SHEEP/BNB=0.02
- SHEEP/USDT=10
つまり、1 つの SHEEP は 10U です。
公式に基づいて、k=500000 で曲線を描きます。傾きが一定ではないため、取引ごとにトークンの価格に影響を与えます。
この場合、私のトークンは分散型ストレージサービスを購入するためのものです。そのため、需要がある人々が SHEEP を購入しようとします。このシナリオでは、次の 3 つの役割が存在します。
- 流動性プロバイダ(A)
- 実際にストレージサービスを購入する人(B)
- アービトラージャー / トレーダー(C)
pancakeswap は流動性を提供する人に手数料を報酬として与えます(したがって、流動性を提供する人がいない心配はありません)。計算式は次のとおりです。
取引量 * 0.3% * 提供した流動性の割合
この時、A は私のプロジェクトに大きな可能性を見出し、多くの人々が取引に参加すると予想し、少しの流動性を提供することにしました。したがって、彼はプールに 500 個の SHEEP と 10 個の BNB を追加しました(500 個の SHEEP はエアドロップで入手したものと仮定します。ここでは元のプールと同等の 2 つの通貨を提供する必要があります)。その結果、A はプールの流動性の約 9%を占めています(後続の大口が参入する場合、この割合はますます小さくなります)。(流動性プロバイダの場合を除外するため、原理は同じです)
B は中央集権型のストレージサービスを信頼せず、私のプロジェクトを試してみたいと考えています。したがって、彼は 500 個の SHEEP を購入しました。k が変わらないため、x=4500 ならば y=500000/4500=111.1 です。したがって、彼は 500 個の SHEEP を購入するために 11.1 個の BNB を支払う必要があります。この時点で、プールには 4500 個の SHEEP と 111.1 個の BNB があります。
- SHEEP/BNB=0.024689
- SHEEP/USDT=12.34
つまり、SHEEP の価格が上昇しました。この時、C は価格が上昇したことに気付き、エアドロップで入手した 500 個の SHEEP を売却します。すると、プールは元の状態に戻ります。
理解しておかなければならないのは、この取引が曲線上で動的なプロセスであるということです。一度に多くのトークンを購入するほど、より多くの費用がかかります。通常、アービトラージャーは一度に大口注文を出しません。
交換価格の計算方法#
取引前の DAI と ETH の数量をそれぞれ X と Y とし、取引後の数量を X' と Y' とします。すると、取引は X*Y=k=X'*Y' のルールに従います。k は一定です。
したがって、いくつの DAI でいくつの ETH を取得できるかを計算します。
公式に基づいて、実際の取引価格は∂に比例します(∂は支払った DAI がプール内の DAI の割合を意味し、0<∂)。つまり、取引量が大きいほど、∂が大きくなり、価格と支払い通貨の割合が一次関数的に増加します。∂=△x/X
取引後の市場価格の計算方法#
市場価格= プール内の DAI の数量 / プール内の ETH の数量(P 市場 = X/Y)。市場数量が無限大に近づくと、交換価格は X/Y に無限に近づきます。
交換価格= 支払った DAI の数量 / 受け取った ETH の数量(P 交換 =△x /△y)
ユーザーの取引によってプール内の DAI と ETH の数量が変化するため、取引前と取引後の市場価格は変化します。言い換えれば、取引者は市場価格を変えることになります。取引後の市場価格の計算式:
以下の式に基づいて
購入後の ETH の市場価格は
最終的な計算式
インペリマネントロス#
基本的には、流動性を提供した後、トークン価格の上昇による収益は、トークンを完全に保有する場合よりも低くなります。
参考文献
スリッページ#
スリッページとは、注文時に取引価格と実際の取引価格に差がある取引現象を指します。
Uniswap#
v3 のバージョンは多くの改良が行われているようです。ホワイトペーパーを参照してください。
2022 年の DeFi#
DeFi ブームはすでに 1 年経ちましたが、私は追いつくことができませんでした。逃したとは言えませんが、年間 7000%の年率は日常的ではないし、リスクも大きいです。私は損をする機会を逃したとしか言えません。2022 年、DeFi は大きな注目を集めることはないでしょう。ただの金融ツールです(すでに分散型金融デリバティブが存在していますが)。DeFi プラットフォームトークンは常に流動性プロバイダーから大量の売り圧を受けます。特に DYDX を経験した後、私はもはやマーケットメーカートークンを購入するつもりはありません。2022 年は Web3 が本当に機能する年であり、基礎建設から始まる年になるでしょう。