暗号通貨とブロックチェーン研究所

暗号通貨とブロックチェーンに関する技術やトレンド情報を解説していきます。

0xプロトコルの概要と注目すべき理由

0x(ゼロエックス)とはイーサリアム上のスマートコントラクトで実装されたDEX(分散型取引所)を構築するためのプロトコルのことです。0xをプロトコルとしてその上にDEXを構築することで、異なるトークン間の取引における流動性が高まり、取引の高速化や手数料の低下が実現できることから注目を集めています。

0xproject.com

White paper


豆知識:DEX(分散型取引所)とは?

DEXとは中央に管理者をおかずに非中央集権(分散管理)で成り立つ取引所のことです。ゆえに顧客の資産を保有していません。Bitflyerなどの中央集権取引所では秘密鍵の管理を取引所が行うため、ハッキングや倒産、内部者による不正引き出しなどにより、自分の資産が失われてしまうリスクがあります。しかし、中央管理者が不在のDEXでは秘密鍵の管理を自分で行うため資産を安全に保護することができるのです。しかし、一般ユーザーからすると秘密鍵の管理をするハードルは高いため、それを踏まえた上でのユーザービリティの解決が課題となっています。

0xの仕組み

0xにはメイカー、テイカー、リレイヤー(中継者)という3種類の登場人物がおり、取引の流れは以下のようになっています。またメイカーの注文をまとめたものをオーダーブックと呼びリレイヤーが管理します。

リレイヤーは売買注文をオフチェーンで管理し、トランザクションだけをブロックチェーンに記録します。つまり0xはトランザクションブロックチェーンに記録するためのスマートコントラクトを提供するためのプロトコルでユーザー間におけるWallet to Walletの取引を可能にしたのです。

f:id:tomoya415:20180809081355p:plain

豆知識:メイカーとテイカーって何?

イカーとは新規で注文を出した人のことで「1ETH買いたい!」「1ETH売りたい!」と意思表示をします。これを指数注文といいます。
イカーとは注文を取りに行く人で、メイカーの注文をもとに売買をします。これを成行注文といいます。

Off-chain order relay On-chain settlement

Off-chain order relay On-chain settlementとは0xの特徴を言い表した言葉で、名前の通りオーダーはオフチェーンで行い、決済はオンチェーンで行います。従来のDEXは全ての処理をブロックチェーン上で行なっていたため、トークンの交換だけでなく、注文や修正、キャンセルと何をするにもガス代(手数料)が発生する上に取引の承認に時間がかかっていました。この課題を0xはOff-chain order relay On-chain settlementによって解決しようとしているのです。

それではWhite paperを追いながら、0xプロトコル上での取引の流れ(トークンAとトークンBの交換)を見ていきましょう。

※画像、説明ともにWhite paperからの引用になります。つたない英語ですので誤訳などありましたら、教えてください。

f:id:tomoya415:20180809081543p:plain
source:https://0xproject.com/pdfs/0x_white_paper.pdf

1. Maker approves the decentralized exchange (DEX) contract to access their balance of Token A .
2. Maker creates an order to exchange Token A for Token B, specifying a desired exchange rate, expiration time (beyond which the order cannot be filled), and signs the order with their private key.
3. Maker broadcasts the order over any arbitrary communication medium.
4. Taker intercepts the order and decides that they would like to fill it.
5. Taker approves the DEX contract to access their balance of Token B.
6. Taker submits the makers signed order to the DEX contract.
7. The DEX contract authenticates makers signature, verifies that the order has not expired, verifies that the order has not already been filled, then transfers tokens between the two parties at the specified exchange rate.

  1. イカーはDEXコントラクトがトークンAにアクセスすることを承認する。
  2. イカーは保有するトークンAをトークンBと交換するための注文を作成し、希望するレート、有効期限を指定しメイカーの秘密鍵で署名する。
  3. イカーは注文をネットワークにブロードキャストする。
  4. イカーは注文を受け取り、希望する注文を決める。
  5. イカーはDEXコントラクトがトークンBにアクセスすることを承認する。
  6. イカーはメイカーが署名したオーダーをDEXコントラクトに送信する。
  7. DEXコントラクトはメイカーの署名、注文の期限、注文がすでに成立していないことを確認し、指定されたレートでトークンAとトークンBの決済を行う。

このように取引の中でイーサリアムブロックチェーンを活用したオンチェーン処理はstep.7だけで、それ以外の処理はオフチェーンで行われます。

次にOff-chain order relayにおけるリレイヤーの役割に焦点を絞って解説をしていきます。

f:id:tomoya415:20180809081736p:plain
source:https://0xproject.com/pdfs/0x_white_paper.pdf

1. Relayer cites a fee schedule and the address they use to collect transaction fees.
2. Maker creates an order, setting feeA and feeB to values that satisfy Relayer’s fee schedule, setting feeRecipient to Relayer’s desired recieving address and signs the order with their private key.
3. Maker transmits the signed order to Relayer.
4. Relayer receives the order, checks that the order is valid and that it provides the required fees. If the order is invalid or does not meet Relayer’s requirements, the order is rejected. If the order is satisfactory, Relayer posts the order to their order book.
5. Takers recieve an updated version of the order book that includes Maker’s order.
6. Taker fills Maker’s order by submitting it to the exchange contract on the Ethereum blockchain.

  1. リレイヤーは取引手数料と手数料を受け取るためのアドレスをメイカーに提示する。
  2. イカーは注文を作成し、提示された取引手数料をセットする。リレイヤーの希望する受け取りアドレスにfeeRecipientをセットし、メイカーの秘密鍵で署名する。
  3. イカーは署名された注文をリレイヤーに送信する。
  4. リレイヤーは注文を受け取り、注文が有効であること、必要な手数料が提供されていることを確認する。注文が有効な場合はオーダーブックに書き込み、無効な場合は注文を拒否する。
  5. イカーはメイカーの注文が更新されたオーダーブックを受け取る。
  6. イカーが希望する注文があった場合は、イーサリアムブロックチェーンのDEXコントラクトに提示する。

この流れにおいて特筆すべきはリレイヤーが取引手数料を決めていることです。0xプロトコルにおけるリレイヤーのインセンティブは取引手数料になります。そしてその手数料の設定額をリレイヤーの裁量に任せることで他のリレイヤーとの競争を生みバランスを保っているのです。

WTEH(Wrapped ETH)

Wrapped ETHとはETHをERC20仕様に変換することです。
現在0xではERC20トークンしか取り扱うことができないので、ETHと他のトークンの取引を可能にするために必要な処理となっています。

0Xのメリット

DEXにおけるネットワークの流動性問題の解決

中央管理することなく売り手と買い手をつなげる役割を持つDEXですが、鶏と卵問題が往々にして発生してしまいます。DEXにおける鶏と卵問題とはそのプラットフォームに売り手がいなければ買い手は集まらないし、反対に買い手がいなければ売り手が集まらないようにプラットフォームが初期に抱える問題のことです。つまり流動性問題とは売り手と買い手が集まらないことにより、取引高や売買数が少ない状態のことをさします。

これの何が問題なのかというと、流動性が低くなることで市場相場に対してトークン価格が適切に反映されなくなり、売り手と買い手で価格のバランスが崩れてしまうことにあります。

しかし、0xプロトコル上で構築されるリレイヤー(DEX)は他のリレイヤーにもアクセスすることができるので、メイカーの注文をリレイヤーが集約していくことで流動性を高めることができます。

f:id:tomoya415:20180809082104p:plain
source:https://blog.0xproject.com/front-running-griefing-and-the-perils-of-virtual-settlement-part-2-921b00109e21

例えば、アリスがDEX(A)で1ETHを売りたいと注文を出した場合、その情報は0x上で集約されDEX(B)を使っているボブがアリスの注文を受けることができるのです。これにより新規でリリースされたDEXやDappsでも高い流動性を実現することができるのです。

※今まではリレイヤー=DEXという構図で説明をしてきましたが、上図のようにトークンの交換が必要なDappsもリレイヤーに含まれます。

DEXにおける取引速度の低下と高額な手数料問題の解決

先述した通りイーサリアムブロックチェーンをベースで構築されているDEXでは全ての処理をブロックチェーン上で行なっていたので、トークンの交換だけでなく、注文や修正、キャンセルと何をするにもガス代(手数料)が発生する上に取引の承認に時間がかかっていました。

しかし、0xではOff-chain order relay On-chain settlementにより決済以外の処理をオフチェーンで実行することで取引速度の低下と高額な手数料の問題を解決しています。

ただ、現状のDEXもOmiseがPlasmaを、Kyber NetworkはCosmosを活用した取引の高速化を構想しており将来的には取引速度という面での0xの優位性は失われることも考えられます。

代表的なリレイヤーやプロトコル

DEX

DDEX

0xの代表的なリレイヤーで現在取引高1位のDEX。
ercdex.com

Rader Relay

現在取引高2位のDEX。
radarrelay.com

Paradex

最近Coinbeseに買収されたことで話題になったDEX。
paradex.io

Dapps

Dharma

借り入れをしたい人と貸し出しをする人を仲介するP2Pレンディングサービス。
Dharma

dydx

暗号通貨での分散型デリバティブ取引の実現を目指すプロトコル

dydx.exchange

0xの課題

秘密鍵の管理における利便性の低下

この問題は0xだけでなくDEX全体が抱えている問題ですが、DEXでは中央管理者がいないので秘密鍵の管理をユーザー自身が行わなければなりません。秘密鍵を自身で管理することで資産を自己管理できる訳ですが、その反面秘密鍵の管理という手間が増えてしまうのです。
リテラシーが高いユーザーやエンジニアからすればさほど問題に感じないかもしれませんが、一般ユーザーからすれば大きな手間であることは間違いありませんし、そもそも秘密鍵とは何かを理解している一般ユーザーは少ないように感じます。当然秘密鍵を失くしてしまえば資産を失うことになるので、一般ユーザーからすれば秘密鍵の管理は大きなリスクでありDEXを使わない大きな理由となりえます。そのため0xを含めてDEXではそれらを踏まえた上での利便性の向上が大きな課題となっています。

秘密鍵の管理を自分ですることで安全性を保っているDEXですが、ユーザーには自分の資産を自分で守るだけリテラシーが求められていることを頭に入れておきましょう。

フロントランニング問題

フロントランニング問題とは、攻撃者が攻撃対象者のオーダーよりも先に自身のオーダーを処理することで攻撃対象者に不利なレートで取引させる手段のことです。マイナーは、基本的にガス代の高いトランザクションから処理するので、攻撃者は攻撃対象者よりも意図的に高いガス代を設定することで先回りして処理することができてしまいます。

詳細はこちらの記事をご覧ください。
zoom-blc.com

流通量が低い

0xはDEXの流動性問題を解決するためアプローチを実現させていますが、仮想通貨取引所全体から見るとDEXの流動性は低く、取引高1位のDDEXよりBitflyerの取引量の方が100倍以上多いのが現状です。
0xはプロトコルのでは構築されるリレイヤーが増えれば増えるほど流動性が高まる仕組みとなっているので0xを活用するDEXを増やすことが今後重要になってきます。
近々行われるバージョンアップデートによりERC20以外のトークンの取り扱いが可能になることが予定されておりリレイヤー構築のための環境整備も徐々に進みつつあり、流動性問題に関しては近い将来の解決が予想されています。

注目すべき理由

0xに注目すべき理由は0xはDEXではなくプロトコルでありプラットフォームであるということです。
例えばアプリ開発プラットフォームであるApp StoreGoogle Playを思い浮かべて見るといいでしょう。アプリ単体では競合にすぐに模倣されてしまいますが、プラットフォームは簡単に模倣されることはありません。なぜなら、プラットフォーム上にすでにエコシステムが出来上がっているからです。
つまりApp StoreGoogle Playはこのエコシステムにより優位性を保っているのです。今後新たにアプリプラットフォームが立ち上がったとしても開発者や企業がそのプラットフォームに移行することは著しく低いと考えられApp StoreGoogle Play以降にアプリプラットフォームは生まれていません。

このようにプラットフォームにおける先行者優位性は非常に高く、DEX領域において0xはそのポジションを取れる最も近いプレイヤーです。DEX視点で考えても0xを活用することで初期段階からある程度の流動性を得ることができ参入するメリットは高いと言えます。

これらの要因から今後0xは注目するに値するプロジェクトだと考えられます。

参考


最後まで読んでいただきありがとうございました。認識違いなどありましたら、ご指摘お願いいたします。

Twitterはこちら