ユニスワップ(Uniswap)の仕組みとは?アルゴリズムのみで制御されるイーサリアム上のピュアDEX

ユニスワップ(Uniswap)の仕組みとは?アルゴリズムのみで制御されるイーサリアム上のピュアDEX

イーサリアム上のDEX(分散型取引所)Uniswapとは?

ユニスワップ(Uniswap)は、イーサリアム(Ethereum)上で稼働するDEX(分散型取引所)で、しっかりとした取引ボリュームを伴いながら存在感を高めているプロジェクトです。

同プロジェクトは、2018年10月にDevconにて発表されたプロジェクトで、ほとんど唯一のピュアなDEXであるという評価もあります。その理由は、コードは完全にオープンソースで、独自トークンやトークンの上場基準もなく、スマートコントラクトで制御されたアルゴリズムのみでシステムが機能しているからです。

Uniswapは、いわばインスタントDEXであり、BidとAskがある板トレードではなく、固定レートでの即時交換を提供するプロトコルです。特定の二者間の交換をマッチングするようなモデルではなく、コントラクトアドレスに不特定多数がプールしたトークンを交換できるようにします。

コントラクトアドレスを流動性プールとして利用し、誰でもそこに在庫(流動性)を提供したりアクセスすることができ、トークンをスワップすることができます。流動性プールに在庫を提供すると、交換手数料が流動性提供者に分配されるというインセンティブ設計が用いられています。この在庫提供は、任意のトークンとその価値分のETHを必ず2つセットでプールに入れ、ETHをUniswap上のブリッジ通貨にしています。

Uniswapの仕組み(ETH<>ERC20の交換)

Uniswapの仕組みのコアな要素として、「流動性プール内の二種類のトークンXとYの積をもとに交換価格を決定する」があり、これを前提にUniswapは機能します。

ホワイトペーパーの説明を引用します。
Uniswapイメージ
出典:ホワイトペーパー

ETHとERC20トークン(例:OMG)のプールがあります。プールに存在するETHとOMGのそれぞれの在庫数は交換が行われる度に変動しますが、この積に関しては常に一定にします。

流動性プールが以下の状態だったとします。
ETH_pool在庫= 10 ETH
OMG_pool在庫= 500 OMG
積= 10 * 500 = 5000

この流動性プールには、誰でもデポジットができ、 提供者を「Liquidity Providers」と呼びます。この流動性プールを利用して、第三者であるユーザーが1ETHをOMGにスワップしたい場合は、0.25%の手数料(「Liquidity Providers」への支払い)を支払い、0.9975ETHが、まずETHプールに送られます。0.25%の手数料については後述します。

ETHが流動性プールに送られたことによって、ETHプールの総量は、10 + 0.9975 = 10.9975ETHになります。これに対して、あらかじめ設定されていた積から、スワップされるOMGの量を逆算します。

積5000を元に計算すると、このスワップ後にOMGプールに残る在庫は下記のようになります。

5000/10.9975 = 454.65 OMG

元々、OMGの在庫は500存在していたので、500 – 454.65 = 45.35 OMGが、このスワップによってトレーダーが受け取るOMGの量です。

このときのトレードによって、0.25%の手数料は、「Liquidity Providers」の収益になりますが、コントラクトアドレスから引き出されるまでETH_poolの在庫として貯まります。これによって、上述のETH<>OMGのトレード後に、流動性プールの各在庫と新しい積が更新されます。

ETH_pool在庫= 10.9975 + 0.0025 = 11
OMG_pool在庫= 454.65
新しい積= 11 * 454.65 = 5,001.15

この更新後に同様の計算をすると、1ETHで買えるOMGは 44.5 OMGに変化しています。このように流動性プールの対ETHとの在庫状況によって、常に価格算出されますが、トレーダーによるアービトラージが行われ、他の取引所と大きな価格乖離は起きないだろうという元にシステムが構築されています。

Uniswapの仕組み(ERC20<>ERC20の交換)

Uniswapでは、ERC20<>ERC20のスワップも行えますが、裏側のコントラクトは、ETHを経由する形式をとっています.

このとき、スワップのリクエストによって、「tokenToTokenSwap()」のコールを行います。ABCトークン<>XYZトークンのスワップするときの動作を見てみましょう。

このとき下記のような動作をします。

ABCETHコントラクトアドレスにABCトークンとXYZアドレスを送信
結果→ABCETHコントラクトにおいてABC比率が増加する。

ABCETHコントラクトからXYZETHコントラクトにETHとXYZアドレスを送信
結果→ABCETHコントラクトにおいてETH比率が減少する
結果→XYZETHコントラクトにおいてETH比率が増加する

XYZETHコントラクトからXYZアドレスにXYZを送信する
結果→XYZETHコントラクトにおいてXYZ比率が減る

Uniswapイメージ2

流動性提供やトークン上場も自由に行えるUniswap

Uniswapでは、上述した流動性提供や自身のトークンの上場も自由に行えます。そのことから、詐欺トークンも自由に上場されてしまうということも一部で起こっていますが、このように運営者が不在でも成り立つシステム設計は非常に洗練されていると言えます。

開発者はこれをプロトコルとしてサービスを作ることもできますし、暗号通貨投資家であれば流動性提供やトレードするユーザーとして一度利用してみると良いでしょう。

参考
公式サイト
ホワイトペーパー

【こんな記事も読まれています】
2020年に期待される3つの仮想通貨エコシステム
ユーザーインターフェイスが優れた3つの分散型取引所(DEX)を紹介
分散型取引所(DEX)のこれまでと注目すべき今後の動き


d10n Labのリサーチコミュニティでは、ブロックチェーン業界の動向解説から、更に深いビジネス分析、技術解説、その他多くの考察やレポート配信を月に20本以上の頻度で行なっています。コミュニティでは議論も行えるようにしており、ブロックチェーン領域に積極的な大企業・スタートアップ、個人の多くに利用頂いています。
▼d10n lab 未来を思考するための離合集散的コミュニティ
https://d10nlab.com

参照元:CoinChoice

コメントする

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