ユニスワップ(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つの取引で行うことができる。

コインチェック




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

コメントを残す

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

CAPTCHA


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