不動産ブロックチェーンの情報ハブ
【図解】DeFi の基礎!DEX における AMM と流動性プールの仕組みを5分で解説!

【図解】DeFi の基礎!DEX における AMM と流動性プールの仕組みを5分で解説!

Fumiya
Fumiya
Entry - 初級2022年1月14日 00時00分

DEX(Decentralized EXchange)とは、日本における暗号資産交換業者など特定の事業者が管理する中央集権型の取引所(Centralized EXchange: CEX)とは異なり、主にEthereumブロックチェーンのスマートコントラクトにより構築されたP2Pのトークン取引所のことです。管理者がいないため、ウォレットや秘密鍵をユーザー自身が管理することになります。では、DEX ではどのような仕組みでトークンの取引が行われ、どのように為替レートが決められているのでしょうか。今回は DEX という言葉自体は知っているけれどもその仕組みについてはあまり理解していない...という方に向けて、そのコアとなる仕組みである流動性プール、そして AMM について解説していきます。

オーダーブックとその問題

これまで、暗号資産に関わらず株式などの金融資産の取引をしたことがある方は、このような表を見たことがあるのではないでしょうか。

オーダーブックとは、このように特定の資産に対する売買注文を価格ごとに整理したリストのことです。買い注文と売り注文を照らし合わせて、価格と量がマッチした注文について取引が行われるというものです。これをブロックチェーン上で行うには2つの問題があります。

  • オーダーブックとのやりとりには、それぞれガス手数料が必要となるため、トレードの実行にコストがかかる。
  • 毎日大量の取引が行われるが、現状ほとんどのブロックチェーンは、大量かつ高速な取引に必要なスループットを処理できない。
  • AMM、流動性プールとは

    このような問題を解決するのが AMM (Automated Market Makers)です。AMM では、トークンのペアがあらかじめ流動性プール(Liquidity Pool)に用意されており、トークンの交換を希望する人は、自分が保有するトークンを流動性プールに加え、流動性プールに蓄積されたトークンを引き出すことにより、トークンの交換を行います。例えば、USDT と BTC のペアが入っている流動性プールに、USDTを加えることで、ペアの相手である BTC を得られます。オーダーブック形式では、価格と数量を指定して注文を出していましたが、AMM では、42万 USDTを入れれば、10 BTCを引き出せるといったように、価格は事前に決められている数式(アルゴリズム)によって自動で決定され、取引が実行されます。また、オーダーブックでは十分な量の買い注文と売り注文がなければ取引が成立しないため、マイナーなトークンの交換がしづらいという課題がありましたが、流動性プールではあらかじめトークンのペアが準備されていることにより、いつでも取引が可能になります。

    Uniswap の流動性プールの仕組み

    それでは、具体的なイメージを持って頂くために、AMM形式の代表的なDEXとして Uniswap を例に、ETH を UNI に交換する時どのようなことが起こっているかを見ていきましょう!

    まず、Uniswap の UNI と ETH のペアのプールのページを見てみましょう。左下に "Pooled Toknes" と書かれている箇所がありますが、ここに記されているのがこの流動性プールに入っているそれぞれのトークンの数量です。

    プールの中に入っている2種類のトークンは同じ価値だけ入っています。そのため、1 UNIあたりのETH建て価格は ETHの数量 ÷ UNIの数量 で求めることができます。

    ETH を UNI に交換したい時には、この流動性プールにETHを送ると、UNI がもらうことができます。では、1 ETHを送ると、いくらのUNIがもらえるのでしょうか?ここで重要なのは、流動性プールでは、それぞれのトークンの数量の積(k)が常に一定に保たれる ようになっているということです。この UNI-ETH の流動性プールでは、定数kは UNI の数量 1,544,730 × ETH の数量 7,738 = 11,953,120,740 となっています。UNI、ETHの数量が変わっても、このkの値は常に一定となります。

    このプールに 1ETH を送ると、プール内の ETH の数量は 7,738 から 7,739 に変動します。これに合わせて、k が変わらないように UNI の数量が決定されるので、プール内の UNIの数量は k ÷ 7,739 = 1,544,530 に変動します。

    元々あった1,544,730 UNI が、プールに1 ETHが加えられたことで 1,544,530 UNI になったので、減少した200 UNI が 1 ETHを加えた人に払い出されます。

    つまり、1 ETH を 200UNI に交換したことになります。このようにして為替レートは自動で決定されますが、もちろん Binance など他の取引所とは価格が乖離します。しかし、アービトラージを狙うトレードにより、すぐに他取引所と同じ価格に戻ります。

    流動性プロバイダーへの報酬

    この流動性プールには、誰でも2つのトークンを同額ずつプールに追加して流動性を提供することができます。流動性の提供者は、流動性プロバイダー(Liquidity Provider)と呼ばれ、トレーダーから支払われる交換手数料の分配を受ける権利を得られます。

    例えば、100 UNI と 0.5 ETHのペアを流動性プールに加えたとします。UNIかETHの数量を入力すれば、もう片方の数量は自動で計算されます。

    そうすると、流動性プールに入っているETHの数量は7739から7739.5に増え、全体の0.0065%の流動性を加えたことになります。先ほどの 1 ETH を UNI に交換する例では手数料を考慮していませんでしたが、実際には Uniswap では 1 ETHとは別に交換手数料 として 0.03% を支払わなければいけません。つまり、0.0003 ETH が手数料として支払われますが、この手数料が流動性プロバイダーに流動性の提供比率に応じて分配されます。

    流動性プールの問題点とUniswap v3

    Uniswap は2022年1月現在、$3.98BのTVLを誇り最も大きなシェアを誇るDEXとなっています。しかし、流動性プールでは、実際に取引に使われる流動性よりも大量の資金をプールに入れておく必要があり、資本の非効率性が問題視されるようになりました。そんな流動性プールの課題を解決するためにUniswap v3のアップデートが2021年5月に実施されました。Uniswap v3 では、Concentrated Liquidity (流動性提供の範囲指定)という機能が加わりました。流動性プロバイダーが、流動性を提供したい価格範囲を指定できる機能です。

    例えば、上記のように1 UNI あたり0.00249ETH から0.00997 ETH の間だけ自分の資金を提供するといった指定をしてプールに流動性を追加することができます。範囲を0から∞に指定して、全価格帯に資金を投入すれば、これまでと同じような流動性提供の仕方も可能です。価格帯を狭めることで、ユーザーは少ない資本で効率的な流動性提供をすることができます。

    ここでは割愛させて頂きますが、その他にも様々な機能が追加されているので、詳しく知りたい方は是非調べてみてください。

    総論

    今回は、DEX を構成している基本的な仕組みである流動性プールとAMMについて解説しました。A×B = k というシンプルな式で価格決定の自動化を実現しているのが面白い点です。複雑なことをしているようで、知ってみると意外と簡単な仕組みであることが分かります。流動性プールという概念無しに現在のDeFiのエコシステムは決して存在しません。ぜひそれぞれのDeFiプロジェクトでどのようにこれらが活用されているかチェックしてみてください。

    Read Next