DEXの基盤となるAMM
現在ブロックチェーン上には無数のDEX(分散型取引所)が構築されており、ユーザー数も日々増加しています。多くのDEXは、AMM(自動マーケットメイカー)という自動化されたトレードシステムを基盤に設計されており、これにより仲介者や第三者に依存せずとも、スムーズなトレードが可能になっています。
非常に画期的である一方で、このAMMの仕組みや概念が、多くのトレーダーが慣れ親しんでいるCEX(中央集権型取引所)のオーダーブック方式とは大きく異なっているために、新規参入を躊躇してしまい、DEXでのトレードや利益創出の機会を失っている投資家が多くいることも事実です。
本記事では、DEXの理解に不可欠なAMMの基本的仕組みから、そのメリットからリスクに至るまで、詳細に解説していきます。
1. 基本概要
1-1 AMMとは
AMM(Automated Market Maker)とは、日本語では「自動マーケットメイカー」とも表され、一定の既定ルールに従い、自動でのマーケットメイクを可能にするシステムを指しています。マーケットメイカーとは、市場でのトレードが円滑に進むように流動性を提供する市場参加者のことであり、AMMでは、この役割を自動化およびシステム化することにより、仲介者や第三者に頼らずとも、自律的に市場に流動性が提供される環境が作り出されています。
DeFi分野では、しばしばDEXに組み入れられているプロトコルですが、AMMの概念自体は真新しいものではなく、90年代には既に金融市場に存在していました。
多くのDEXがAMMを基盤としているため、「DEX=AMM」と誤解されがちですが、DEXおよびAMMは別物です。DEXは分散型の取引所全般を指しており、AMMはあくまでDEXが任意で採用しているプロトコルの一種に過ぎず、AMM型でなくとも分散型の取引所である限り、DEXと呼ばれます(例:Serum)。
AMMを採用しているDEX一例
関連:初心者でもわかるUniswap完全ガイド|Kyber network寄稿
1-2 オーダーブックとAMM発展の背景
従来の株式市場やCEXは、基本的にオーダーブックというシステムを基盤に設計されています。オーダーブック式の取引所は、いわば売り手と買い手の需給をマッチさせるマッチメイカーのような場所です。「0.1ETHを50万円で売りたい」と思っている人は、取引所を通じて「0.1ETHを50万円で買いたい」と思っている人を探します。
しかし、自分がどれだけ「0.1ETHを50万円で売りたい」と思っていたとしても、そのレートで購入を希望している人がいなければ、そのトレードは成立しません。そのためオーダーブック式の取引所が機能するには、多数の市場参加者や高い流動性が不可欠となってきます。
流動性とは、ある資産の売買しやすさを表しています。交換したいと思った時に、スムーズかつ迅速に売買できる資産は「流動性が高い」と表されます。反対に買い手がいなかったり、希望するレートで売買しづらい資産は「流動性が低い」と言われます。
今でこそ参加者が増え、ある程度の流動性が確保されるようになったDEXですが、DEXの開発が始まった2017〜18年頃は、開発の主舞台であったイーサリアムにさえ十分な流動性および参加者が存在しておらず、オーダーブック型の取引所をブロックチェーン上で稼働させるのは、非常に困難でした。それに加え、指値提示など頻繁なトランザクションを要するオーダーブック型のAMMは、処理能力に限界があるイーサリアムとの相性が良くありませんでした。
また、専門的なマーケットメイカー等の仲介者の参加が望ましく、上場する資産数に限りがある前提で設計されている中央集権型のオーダーブック取引所は、分散型かつパーミッションレスな参加が可能であり、誰でもトークンを作成できるDeFi環境には不向きな仕組みでした。
関連:DeFi(分散型金融)とは|初心者でもわかるメリット・デメリット、重要点を徹底解説
そこで開発されたのが、流動性が少なくとも機能でき、ウォレットさえあれば誰でも参加可能なAMM型のDEXです。AMM型DEXは、DeFiプロジェクト「Bancor」により開発され、その後UniswapによりDeFi領域全体に広まっていきました。現在では、DEXの大多数がAMM型となっており、そのバリエーションも増えてきています。
2. AMMの仕組み
DEXにおけるAMMの仕組みは、プロトコルごとに多少は異なっていますが、基本的な構造はどのプロトコルでも同じです。
2-1 流動性プール相手のトレード
AMMとオーダーブックの相違点の一つが、AMM型DEXでは、売り手および買い手同士がトレードを行っているオーダーブック型取引所とは異なり、トレーダーは流動性プールを相手にトレードを行っているという点です。
流動性プール(Liquidity Pool)とは、資産(流動性)が貯められているスマートコントラクトのことです。お金がたくさん貯められている貯金箱や金庫のようなものだと考えてみてください。このプールには、あらかじめ二種以上のトークン(プロトコルによりトークンの種類数は異なる)が預けられており、トレーダーは、このプールに自分が売りたいトークンを入れ、このプールから自分が欲しいトークンを取っていきます。
例えば、ETH/DAIのプールがあったとします。このプールには、あらかじめETHもDAIも両方用意されています。持っているETHをDAIに交換したい場合、このプールの中に自分のETHを入れ、代わりに相当数のDAIをプールから貰います。これでトレードが完了です。
このようにしてトレーダーは、対人ではなく流動性プールというスマートコントラクトを相手に、トレードを実行しています。しかし実際にトレードする際は、手動でいちいちETHを入れてDAIを貰うなど操作する必要はありません。多くのDEXでは、UIを介すことにより、ワンクリックでこの動作を完了できます。
2-2 数式に基づくレート決定
トレードにおけるレート決定方法も、AMMとオーダーブックでは大きく異なっています。オーダーブック型の取引所では、基本的に市場参加者が提示しているレートで取引が実行されます。「1ETH=¥500万」のレートが提示されており、それに合意するのであれば、そのトレードのレートは「1ETH=¥500万」に決定されます。
一方でAMMでは、あらかじめ決定されている数式に従ってレートが決定されます。DEX外部での市場価格は関係ありません。このレート決定の数式はプロトコルにより様々ですが、本記事では最も広く知られているUniswap V2の「x*y=k(等生産量曲線;Constant Product Formula)」に即して説明していきます。
Uniswapの数式
Uniswap V2やUniswapのフォークプロダクトでは、プール内にある各トークンの総数によりレートが決定されており、その数式は「x*y=k(kは定数)」という二次曲線の式で表されます。Uniswapの全流動性プールには、2種類の異なるトークン(例:ETH/DAI)がペアになって預けられていますが、x、yおよびkは、それぞれ以下を指しています。
前述のETH/DAIプールの例に即してみると、xはプール内のETHの総数を、yはDAIの総数を表しています。そしてkは定数なので、ETHの総数とDAIの総数の積は、常に一定であるということを意味しています。
もう少し具体的に見てみます。例として、ETH/DAIプールの定数kが100,000だと仮定します。要するに、このプールに預けられているETHの数と、このプールに預けられているDAIの数を掛け算すると、必ず100,000になるということです。例えば、このkが100,000のプールに1ETHが預けられている場合、必然的にプール内のDAIの総数(=y)は、100,000(k)÷1(x)で100,000DAIとなります。つまりこの時点のこのプールには、1個のETHと100,000個のDAIが預けられていることになります。
同様にこのプールに10ETHがあった場合は、y=100,000(k)÷10(x)=10,000DAIとなり、プール内に10個のETHおよび10,000個のDAIが存在しているということになります。
次に、レート計算のためにもう一歩踏み込んで考えてみます。この10個のETHおよび10,000個のDAIは、見方を変えると、プールの中のETH:DAIの比率が、10:10,000=1:1,000、つまり1ETHあたり1,000DAIがプールの中にあるとも考えられます。そしてこの1ETH:1,000DAIの比率が、このプールのこの時点におけるトレードのレートになります。要するに、1ETHを1,000DAIに、2ETHなら2,000DAIに、3ETHなら3,000DAIに交換できるということです。
前述のようにAMM型DEXにおけるトレードでは、流動性プールが相手で、トレードの際は流動性プールに自身のトークンを預け入れ、流動性プールからもう一方のトークンを受け取っているため、xおよびyの値は常に変化し続けています。xおよびyの値が変わるということは、トレードのレートが変わるということを意味しています。
前述の1ETH:1,000DAIの例において、ETHのレートが良かったので、多くの人がETHをDAIに交換した、すなわちプール内のETHの量が増加し、DAIの量が減少したとします。仮にx(=プール内のETHの総数)が100ETHまで増えたとすると、y(=プール内のDAIの総数)は、100,000(k)÷100(x)で100DAIとなります。この時、100ETHあたり100DAI、つまり1ETHあたり1DAIのレートになるので、ETHの売り手から見れば、1ETHあたり1,000DAIでトレード可能だった一つ前の例より、レートが悪くなることになります。
このようにAMM型のDEXでは、プール内のトークン数の比率によりレートが決定され、この比率が変化するにつれレートも常に変動しています。
(注:本記事では複雑性を排除するために、手数料を考慮せずに解説しています。また同じ理由から、例に挙げた具体的な数字や比率は、必ずしも実際にDEXで利用されているものではありません。)
関連:AMM(自動マーケットメーカー)が価格に与える影響とは|Deribitアナリスト分析
3. 流動性の提供と報酬
先ほど「トレーダーは流動性(トークン)が貯められている流動性プールを相手にトレードする」と言いましたが、「自動」マーケットメイカーとはいえ、流動性が自動的かつ自然に貯まっていく訳ではありません。流動性を提供する役割を果たしてくれる市場参加者が存在しているからこそプールに流動性が集められるのであって、このような流動性提供者(LP; Liquidity Provider)がいなければAMM型DEXは機能できません。
とはいえ流動性提供者は、自身の資産をプロトコルに預けるという幾分かリスクが付随している行為を、単なる善意で行っている訳ではありません。それに見合う報酬が彼らのインセンティブとなっています。報酬にはいくつか種類がありますが、基本的には手数料報酬およびガバナンス報酬が、主に投資家を惹きつける要因となっています。
流動性を提供することにより様々な報酬を受け取ろうとする試みを、総じて流動性マイニングと呼びます。
関連:DeFi相場高騰の火付け役、イールドファーミングでは何が起こったのか
3-1 手数料報酬
AMM型DEXにおける最も一般的な報酬が、手数料報酬です。
AMM型DEXでは多くの場合、トレーダーは、トレード毎に一定の手数料をプロトコルへ支払っています(Uniswap V2では0.3%)。各DEXにもよりますが、トレーダーから支払われた手数料は、プロトコルに預けられている資産の額に応じて、流動性提供への報酬として、流動性提供者間で山分けされます。これが、流動性提供者の主な収入源となります。
3-2 ガバナンス報酬
流動性を集めるために、流動性提供者へガバナンストークンを報酬として提供しているDEXもあります。ガバナンストークンとは、そのプロジェクトにおける投票権のようなものであり、プロジェクトの方向性やプロトコルへの変更点などに対する意思決定権を持っています。UniswapのUNI、CurveのCRV、SushiSwapのSUSHIなどは全てガバナンストークンです。
DEXが存在しているDeFi領域では、「Decentralized(分散的な、非中央集権的な)」の文字通り、程度の差こそあれ、基本的には単一の中央集権型組織による管理や干渉なしに、プロジェクトが運営されています。このような世界において、プロジェクトの方向性を決定するのは、多くの場合ガバナンストークンを保有しているコミュニティメンバーです。そのため、ガバナンストークン、すなわちプロジェクトへの投票権を有するということは、そのプロジェクトの将来を決定する力を保有しているということになります。
多くのプロジェクトでは、実際にプロダクトを利用している人にプロジェクトの運営をしてもらいたいという考えから、流動性提供者を初めとしたユーザーへガバナンストークンを配布しています。
ガバナンストークンの配布方法はプロジェクトによって異なっており、流動性を提供するだけでガバナンストークンが貰えるプロジェクトもあれば、LPトークン(3-3参照)をステークしないと貰えないものや、ガバナンストークンをステークすることによりさらなる報酬が貰えるものなど、多種多様です。
3-3 流動性提供方法
上記のような流動性マイニングによる報酬を受け取るには、まずは流動性を提供しなければなりません。
その方法はDEXにより異なっており、Uniswap V2のようにETH/DAIなど二つのトークンをペアで預け入れなければならないものもあれば、CurveのようにDAIだけ、USDCだけなど、単一のトークンだけで流動性提供できるものもあります。一概には言えませんが、ペアで預け入れなければならないプロトコルの方が、流動性提供者が負うリスクは高い傾向にあります。
どのような方法にせよ、流動性提供者は、提供したトークンと引き換えに「LPトークン」と呼ばれるトークンを代わりに受け取ります。このトークンは、流動性を提供したことを証明する、いわば債券のようなものであり、預けたトークンを返却して欲しい時には、LPトークンを提示することにより、元の資産および利子を受け取ることができます。
4 流動性提供のリスク
流動性提供による報酬もあれば、反対にリスクもあります。スマートコントラクトリスクなど、DeFi全体で共有されているリスクももちろん付随してきますが、DEXに特有なリスクに「価格変動損失(IL; Impermanent Loss)」があります。日本語では単に「変動損失」と呼ばれていることもあります。
価格変動損失とは、端的に言えば、プールに入れたトークンの市場価格が変動することにより引き起こされる損失です。価格変動損失が起こると、利益を期待してトークンを流動性を提供したのに、流動性を提供しないでおいた方が、結果的に総資産額が多くなるという現象が発生してしまいます。
先ほどと同じETH/DAIの例に沿って、もう少し具体的に見てみます。
Uniswap V2では、先述のように、流動性を提供する際は必ず2種類のトークンをペアにしてプールに入れなければいけません。ETHだけやDAIだけでの流動性提供はできず、必ず「ETHとDAI」のようにペアで流動性を提供します。
また、ペアであればどのような比率でも良いわけではなく、両方のトークンの価値が1:1、つまり同じ価値になるように流動性提供しなければなりません。要するに、「1,000円分のETHと500円分のDAI」などの流動性提供は不可能で、必ず「1,000円分のETHと1,000円分のDAI」というように、両トークンの市場価値が同じでなければいけません。
価格変動損失の仕組みを理解するために、以下では、ある流動性提供者(Aさん)が、ETH/DAIプールに流動性を提供したと仮定し、説明していきます。
現在、市場価格が「1ETH=100ドル」だと仮定します。DAIはステーブルコインなので、常に1DAI≒1ドルです。流動性提供の際、ペアにした両トークンの価値は同じでなければならないため、Aさんは1ETHと100DAIをペアにして、ドル換算で合計200ドルの流動性を提供しました。Aさんは流動性提供の証拠としてLPトークンをプロトコルより受け取りました。
Aさんが1ETHおよび100DAIを預け入れたことにより、プール全体には「10ETHと1,000DAI」が集まったとします。前述の数式(x*y=k)に当てはめると、「x=10、y=1,000、k=10,000」となります。10ETHと1,000DAIのうち、1ETHと100DAIはAさんにより提供されているため、「Aさんはこの流動性プールの10%のトークンを保有している」と言うことができます。
ここまでをまとめると、
となります。
先ほどLPトークンの説明にて、「流動性提供者は提供したトークンと引き換えにLPトークンと呼ばれる債券のようなものを受け取る」と述べましたが、このLPトークンは、「どのトークンを何枚預け入れたか」ではなく、「プールの総価値に対してどのトークンをどの割合で預け入れたか」ということを表しています。
つまりAさんのケースにて、AさんのLPトークンが示していることは、「Aさんは1ETHと100DAIをETH/DAIプールに預け入れた」ということではなく、「ETH/DAIプール全体のうち、10%はAさんのETHとDAI」ということです。これは、言い換えれば、預け入れた資産(ETHおよびDAI)を返してもらいたい時も、預けた分の「1ETHと100DAI」が返ってくるのではなく、「プールのうちの10%」がAさんの元に返却されるということを意味しています。
次に、以下のシナリオを考えてみます。
AさんがETHおよびDAIをプールに預けている間に、Uniswap外におけるETHの市場価格が変動し、100ドルから400ドルまで上昇したとします。先述のように、AMM型DEXでは、DEX外の市場価格は関係なく数式に則ってのみレートが決定されるため、たとえ外部での取引レートが「1ETHあたり400DAI」であったとしても、DEX内でトレードが行われない限り、DEXのレートは、Aさんが流動性を提供した際の「1ETHあたり100DAI」のままです。
つまり、このDEXとそれ以外の市場では、ETH/DAI価格に差があります。ここの差に目をつけ利益創出を試みるのが、アービトラージャーです。アービトラージャーは、「1ETHあたり400DAI」という外部市場のレートと同じになり、アービトラージによる利益が見込めなくなるまで、プール内のETHをDAIで購入、すなわちプールからETHを貰いプールにDAIを入れていきます。
アービトラージャーのこの行為により、必然的にプール内のETHが減少し、DAIが増加していきます。前述のように、各トークンの比率は変わったとしても、各トークンの総数の積(k)は変わらないため、ETH減少およびDAI増加の結果、プールの中には、5ETHと2,000DAIが含まれている状態に必然的になっていきます。
ここまでをまとめると、
となります。
この状態で、Aさんがプール内のトークンを引き出そうとした場合を考えてみます。
市場価格が1ETH=400DAI、プール内には5ETHと2,000DAIがある状態で、Aさんはトークンの引き出しを試みました。AさんはLPトークンを返却することにより預けたトークンを引き出すことができますが、先述のように、LPトークンが表しているのは「プール全体のトークン数に対して、何割を保有しているか」ということです。
流動性を提供した際、Aさんが保有していたのは、プールの10%のトークンです。つまり引き出せる量も、プールの10%分です。先ほど見たとおり、Aさんが流動性を提供した時点では、10ETHと1,000DAIを含んでいたこの流動性プールのトークン数は、アービトラージ取引の結果、5ETHと2,000DAIになっています。Aさんが引き出せるトークン量は、引き出す時点での10%なので、5ETHと2,000DAIの10%、つまり0.5ETHと200DAIです。市場価格が1ETH=400ドルなので、この時Aさんの元へ戻ってきたトークンの総額は、「0.5ETH×400ドル=200ドル」と「200DAI=200ドル」で、合計400ドルになります。
ここで、最初にAさんが預けたトークンを思い出してみましょう。Aさんは、1ETHと100DAIを流動性プールに預け入れました。もしAさんが、この1ETHおよび100DAIを流動性プールに入れずにそのままウォレットなどで保有していた場合、Aさんが持っているであろう資産は、「1ETH=400ドル」と「100DAI=100ドル」で、合計500ドルになります。流動性プールから引き出した総額が400ドルなので、流動性提供せずにそのまま保有していた方が、結果として価値が多くなってしまいます。
このように、流動性を提供した際に、流動性を提供しなかった場合と比較して出てしまう損失を、価格変動損失と呼びます。この損失は、市場価格が元に戻れば(例では1ETH=100ドルに戻れば)、回避できる損失です。そのため英語では、「Impermanent Loss」、直訳すると「一時的な損失」と呼ばれています。
以下のグラフで見られるように、価格変動が大きければ大きいほど、価格変動損失も大きくなります。
リスクと報酬
以上のように、AMM型DEXの流動性提供には複雑なリスクが付随してきますが、多くの投資家は、このリスクを上回るほどの報酬に期待して流動性を提供しています。DeFi分野では、10%超えとAPY(利回り)の大きいプロジェクトも珍しくないため、リスクを知りながらも手数料報酬やガバナンストークンを目当てに流動性提供している人も多くいます。
また最近では、自分が提供した流動性がトレードされる範囲を決定できるUniswap V3や単一トークンの預け入れが可能なBancor V2、ステーブルコインに特化することによりリスクを抑えているCurveなど、多くのプロジェクトが価格変動損失を軽減するためのプロトコル開発に取り組んでおり、価格変動損失のリスクの程度も、DEXにより大きく異なっています。
関連:Uniswap v3、イーサリアムメインネット実装完了
本記事は企業の出資による記事広告やアフィリエイト広告を含みます。CoinPostは掲載内容や製品の品質や性能を保証するものではありません。サービス利用やお問い合わせは、直接サービス提供会社へご連絡ください。CoinPostは、本記事の内容やそれを参考にした行動による損害や損失について、直接的・間接的な責任を負いません。ユーザーの皆さまが本稿に関連した行動をとる際には、ご自身で調査し、自己責任で行ってください。