ユニスワップ(Uniswap)で学ぶAMMの価格決定メカニズム




コインチェック

ユニスワップ(Uniswap)はイーサリアムのブロックチェーン上で動く自動化された取引所のプログラムである。

また、そのような金融プラットフォームは総じてDeFi(Decentralized Finance、読みはディファイまたはディーファイ)と呼ばれており、空前のブームとなっている。

プログラムにより自動で処理される取引所は中央管理者がいないことから、DEX(Decentralized Exchange、分散型取引所)と呼ばれている。

なお、ユニスワップではAMM(Automated Market Makers、自動マーケットメイカー)と呼ばれる方式で取引を処理している。これは、株式取引などで見慣れた「板寄せ方式」ではなく、ユーザーが流動性プール(Liquidity Pool)にペアの暗号資産をロックすることにより供給される暗号資産を利用して暗号資産の交換を行うものである。

ユニスワップの開発者であるHayden Adams氏による以下のホワイトペーパー(Whitepaper)をもとにユニスワップのアルゴリズム(仕組み)を説明する。

価格決定メカニズム

交換されるトークンの価格は、一定の積(x * y = k)のマーケットメーカーメカニズムを使用して自動的に設定される。これにより、全体の準備金(流動性供給されているペアのプールの残高)が相対均衡に保たれる。

つまり、yの需要が高まりxとの割合が相対的に低下したときに、kは一定であるからyの価格はxの価格に対して相対的に上昇する。

なお、準備金は取引手数料の比例配分と引き換えにトークンをシステムに供給する流動性プロバイダーのネットワーク間でプールされる。

と、かなり抽象的でわかりにくいと思うので、以下の具体例を確認してみよう

ETHとERC20(OMG)の交換の例

ホワイトペーパーではETHとERC20のOMG(omisego)の流動性を供給する例が紹介されているので、若干の解釈を加えて以下に記載する。

モデルとなっている取引は2取引を行うことで

  • Exchange State1
  • Exchange State2

のように状態が変わってゆく様子を説明している。

Exchange State1

まず、10ETH及び500OMGはが流動性プロバイダーによって、ペアでスマートコントラクトに預けられるとする。

ETH_pool * OMG_pool = invariant(イーサプールとOMGプールの積が不変量)となるように自動的に設定される。

ETH_pool = 10
OMG_pool = 500
invariant = 10 * 500 = 5,000

この段階では1ETH=50OMGの関係が成立している。

Exchange State2

次に、OMGを購入したい人が1ETHをスマートコントラクトに送信したとする。

そうすると、流動性プロバイダーに対して0.25%の手数料が支払われ、残りの0.9975 ETHがETH_poolに追加される。

次に、不変量を、1ETHが追加され、手数料が控除された後のETHの流動性プールの量で除算し、新しいサイズのOMG_poolを決定する。

そして、新しいサイズを超える量のOMGは購入者に送信される。これが今回の取引で1ETHで購入できたOMGの量である。

Buyer sends: 1 ETH
Fee = 1 ETH / 500 = 0.0025 ETH
ETH_pool = 10 + 1 – 0.0025 = 10.9975
OMG_pool = 5000/10.9975 = 454.65
Buyer receieves: 500 – 454.65 = 45.35 OMG

手数料は流動性プールに戻され、流動性プロバイダーが市場への流動性の供給を停止したときに徴収される流動性プロバイダーへの対価の支払いに使われる。

価格計算後に手数料が追加されるため、取引ごとに不変量がわずかに増加する。そのため、流動性プロバイダーにとっては有利なシステムになっている。

不変量は前の取引の終了時のETH_pool * OMG_poolを表している。

ETH_pool = 10.9975 + 0.0025 = 11
OMG_pool = 454.65
new invariant = 11 * 454.65 = 5,001.15

この場合、購入者は45.35 OMG / ETHのレートを受け取ったが、この取引により価格が変動している。もし別の購入者が同じ方向に取引を行うと、OMG / ETHのレートがわずかに低くなる。

一方で、購入者が反対方向に取引するとETH / OMGレートがわずかに向上する。

1 ETH in
44.5 OMG out
Rate = 45.35 OMG/ETH

流動性プールの合計サイズに比べて大きい購入は価格のスリッページ(注文レートと約定レートの乖離)を引き起こす。

なお、活発な市場では裁定取引(arbitrage)により価格が他の取引所の価格から大きく変動しないことが保証される。

これはどういうことかというと、取引レートが市場価格から乖離していた場合、アービトラージャーは裁定機会がなくなるまで裁定取引を繰り返し、やがて市場価格に収束することになるということである。

ERC20(OMG)とERC20(KNC)の交換

ETHはすべてのERC20トークンの共通ペアとして使用されるため、ERC20からERC20への直接スワップの仲介として使用できる。

例えば、OMGからKNCに交換するケースを考えてみよう。

OMGをETHと交換した後、それを購入者に返還するのではなくKNCに変換して購入者に返還することにより、ETHからKNCに交換するということを1つの取引で行うことができる。

Uniswap v3

2021/5/6にUniswap v3がローンチされた。主な変更点は以下のとおりである。

主な変更点
Concentrated liquidity:集中流動性。個々のLPの価格変動範囲を制御できるようになった。
Multiple fee tiers:複数の手数料階層。トークンのペアごとにリスクに応じて手数料率の異なる複数のプールが導入された。

今後の変更予定
・Optimism(オプティミズム)によるL2の実装は今後行われる。

以下の公式サイトの解説をもとに主な変更点の概要について記載する。

集中流動性

Uniswap v3では流動性を提供する価格を要求通りの範囲内に抑えることができ、希望価格の範囲においてより多くの流動性を提供することができる。

例えば、ETH/DAIプールのLPについて、価格範囲1,000USD〜2,000USDに100USDを割り当て、1,500USD〜 1,750USDの範囲に追加の50USDを割り当てることを選択することができる。

前提条件
・アリスとボブはそれぞれ100万USD保有している。
・ETHの価格は現在1,500DAIである。
・アリスは全価格帯に資本を投入する(Uniswap v2と同様)。
・アリスは500,000DAIと333.333ETH(合計100万USD)を預け入れる。
・ボブは集中ポジションを作成し、1,000~2,250USDの価格範囲内で資本を投入する。
・ボブは91,751DAIと61.17ETH(合計183,500USD)を預け入れ、残りの816,500USDは別の投資を行う。

アリスはボブの5.44倍の資本を投入しているが、ETH / DAIの価格が1,000から2,250の範囲内にある限り、同じ金額の手数料を受け取ることになるため、当該場合にはボブのほうが資本効率が優れていたという結果になる。

つまり、v2に比べて資本効率が向上している

また、ボブのカスタムポジションは供給する流動性においてストップロスの一種として機能する

市場価格がLPの指定された価格範囲外に移動した場合、その流動性はプールから削除されるためである(一方で手数料を獲得できなくなる)。

仮にETHの価格が0ドルに下がった場合、アリスとボブの両方の流動性は完全にETH建てになる。アリスは1,000,000USD全額喪失することに対して、ボブは183,500USDドルの喪失で済む。

ボブは追加の816,500ドルを使用して下振れのエクスポージャーをヘッジしたり、その他の考えられる戦略に投資したりすることができる。

つまりv3のLPのカスタマイズ性によって、従来の成行注文形式を補完する「レンジオーダー」と呼ばれる新しい注文機能が実装されたと考えることができる。

狭いレンジ内での流動性供給は指値注文のようなものである。

前提条件
・DAIの現在の価格が1.001 USDC未満である。
・アリスは流動性プールの1.001〜1.002 DAI / USDCの範囲に1,000万ドル相当のDAIを追加する。

DAIが1.002DAI / USDCを超えて取引されると、アリスの流動性は完全にUSDCに変換されるが、1.002DAI/ USDC未満で取引を開始した場合に自動的にDAIに変換されないように、アリスは流動性を撤回する必要がある。

レンジオーダーの平均執行価格は、最小価格と最大価格の幾何平均となる。アリスの場合、執行価格は1.001499 DAI / USDCで合計$ 1,001,499である(執行価格は価格が1.001〜1.002 DAI / USDCの範囲内で取引されている期間中に獲得した追加のスワップ手数料を考慮しない)。

なお、LPごとにカスタムされた流動性ポジションはノンファンジブル(代替不能)であり、NFTとして発行される(共通の共有ポジションはファンジブルにすることができる)。

複数の手数料階層

Uniswap v3では、LPのペアごとに3つの個別の料金階層(0.05%、0.30%、1.00%)を提供している。この一連のオプションにより、LPは予想されるペアのボラティリティに応じて手数料を調整することができる

LPはETH / DAIのような非相関ペアでより多くのリスクを引き受け、逆に、USDC / DAIのような相関ペアで最小のリスクを引き受けることとなる。

個別の手数料階層はある程度の流動性の断片化につながる可能性があるが、ほとんどのペアは「明白な」手数料階層に調整され、それが正規市場として機能すると考えられている。

同種の資産ペアは0.05%の手数料階層に集まり、ETH / DAIのようなペアは0.30%を使用すると予想されるが、エキゾチックな資産では1.00%のスワップ手数料がより適切である可能性がある。ガバナンスは必要に応じて追加の料金階層を追加することができる。

具体例

以下は実際のUniswap v3の流動性供給画面である。

各パラメーターは以下のとおりである。

①ペアとなるトークンを選択
マーケットメイクをしたいプールを選択する。上記の場合はETHとUSDCのペアを選択している。

②手数料階層を選択
収受する手数料を0.05%、0.30%、1.00%の中から自ら選択する。上記の場合は0.3%としている。

③価格変動範囲
0.10%、0.60%、または2.00%の増分で価格を調整する。価格がLPの指定範囲外に移動した場合、それらのポジションは2つの資産のいずれかに集中し、価格が範囲に戻るまで取引手数料を獲得しなくなる。上記の場合はUSDC/ETHで、現在の価格が3,430USDC/ETHに対して2,504-3,505の範囲で設定している。

④デポジットする数量を指定
上記の場合は1USDCをデポジットしてそれに対応するETHが表示されている。

想定されるリスク

前述のとおり、価格がLPの指定範囲外に移動した場合、それらのポジションは2つの資産のいずれかに集中する。

つまり、価格変動範囲を狭くするほど、価格変動によりペアのどちらかのトークンだけを保有することになるうえで手数料収益が上がらなくなってしまうというリスクが高くなることになる。

コインチェック




いいね!って思ったでしょ?

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


%d人のブロガーが「いいね」をつけました。