2018/03/08ハッキング被害や持ち逃げなどのリスクを考えると、多額の仮想通貨(トークン)を取引所に預けておくのは危険であると言われています。ブロックチェーンを基盤としているネットワーク自体は安全であるものの、取引所のセキュリティ脆弱性を狙って実際に多額の通貨が奪われてしまう事件が多発しているのです。このような集中型取引所に対し、取引所自体をブロックチェーンを基盤とすることで管理していこうとしているのが分散型取引所(DEX)です。現在の集中型取引所はある特定の管理者によって集中的に管理されているのに対し、分散型取引所はブロックチェーンネットワークで分散的に管理していくのが特徴的です。このようにブロックチェーンを基盤とすることで、仮想通貨が奪われるハッキングリスクをなくそうとしているのです。秘密鍵を取引所の管理者が保持するのではなく、ユーザー自身で管理できるようにするのがDEXになります。将来的にDEXはトークン経済圏で重要な存在となってくると考えられており、さまざまなプロジェクトが進行しています。当記事では、このようなDEXプロジェクトのうち0x(ゼロ・エックス)の仕組みや課題点について紹介していきます。0xとは0xとは、異なるトークン同士を取引する分散型取引所(DEX)のプロトコルです。0x自体はユーザーが使う取引のアプリケーションではありません。0xをプラットフォームとして、その0x上にさまざまなDEXアプリケーションが作られるようなイメージです。DEXも現在さまざまなプロジェクトが進行していますが、この0xプロジェクトが目指していることはDEX取引をスケールさせ、高速な取引、低い取引手数料を実現することです。従来のDEXは取引の注文も含めて全てブロックチェーン上で処理していました。実際にトークン交換の取引を行うときだけでなく、取引の注文(オーダーブックの作成)も注文内容の修正も注文キャンセルも含めてトランザクションが作られ、ブロックチェーン上で処理していたのです。これにより、取引にかかる時間が多くかかるだけでなく手数料も多く取られてしまいます。イーサリアムネットワーク全体にも負荷がかかり、DEX以外でのトランザクションにも大きな悪影響を及ぼしてしまいます。これに対し、0xでは互いにトークンの取引を行う処理だけをブロックチェーン上で行い、それ以外の取引の注文などはブロックチェーン外(オフチェーン)で行うことで、取引の効率化と低い手数料を目指しているのです。0xの仕組み取引を行う2者はメイカー(Maker)とテイカー(Taker)と呼ばれています。メイカーは初めに注文を提示する者で、「1ETHを10万円で買いたい!」といった取引を注文します。テイカーはその取引注文を受けることで、メイカーの10万円とテイカーの1ETHを交換する取引が成立することになります。このようなメイカーとテイカーの取引注文を管理しておく場所をオーダーブックと呼びます。異なるトークンを取引所で取引するときは一般的にオーダーブックという取引の注文表に基いて管理されています。それぞれの価格ごとにトークンを売りたい人と買いたい人をまとめた表になります。それでは、0xプロトコル上でトークンの取引を行うときの全体的な流れを見ていきましょう。下図のようにメイカーのトークンAとテイカーのトークンBを0xプロトコル上で取引する流れを見ていきます。1イーサリアムブロックチェーン上のメイカーのアカウントが持つトークンAに対し、DEXコントラクトがアクセスできるようにメイカーが承認する2メイカーは自身が持つトークンAをトークンBに交換するための取引を注文する。このとき、メイカーの秘密鍵で署名が行われる3メイカーはこの取引注文をネットワークにブロードキャストする4テイカーはその取引注文を受ける5イーサリアムブロックチェーン上のテイカーのアカウントが持つトークンBに対し、DEXコントラクトがアクセスできるようにテイカーが承認する6テイカーはメイカーの署名をDEXコントラクトに提示する7DEXコントラクトがトークンAとトークンBの取引決済を行うこのように0xプロトコル上では、取引の決済のみがイーサリアムブロックチェーン上で行われ、それ以外の取引の注文などはオフチェーンで処理されます。上図においては、2〜4がオフチェーンで行われ、7でオンチェーンの決済が行われています。それでは、このオフチェーン処理は誰によってどのように管理されているのでしょうか。オンチェーン上の取引であればイーサリアムネットワーク全体に管理されているので安全性が保たれます。オフチェーン処理はブロックチェーン外で処理されるということなので、イーサリアムネットワークのセキュリティ堅牢性を受けることはできません。オフチェーンのオーダーブックは誰かが管理しないと不正注文が横行する事態となってしまいます。0xにおける取引のオフチェーン処理は何らかの仕組みで安全に行われるようにしなければならないのです。0xのオフチェーン処理0xではこのオーダーブックの管理はリレイヤーと呼ばれる主体によって行われます。リレイヤーは特定の主体のみに依存しているわけではなく、誰でもリレイヤーとして活動することができます。リレイヤーは後述するように取引手数料を報酬として得られるので、オーダーブックを管理するインセンティブとなります。リレイヤーが行うのはオフチェーンでのオーダーブック管理だけなので、取引のトークンを奪ったりすることはできないようになっています。それではどのような仕組みでオフチェーンでの処理が行われるのか見ていきましょう。ここでの流れは上図における2〜4にフォーカスした手順となります。1リレイヤーが取引手数料の見積もりと手数料を受け取るアドレスをメイカーに提示する2メイカーは取引注文を作り、提示された取引手数料もセットする。このときメイカーの秘密鍵で署名を行う3メイカーは署名済みの注文をリレイヤーに提示する4リレイヤーは受け取った注文が正当かどうか確認し、有効であればオーダーブックに記録する5テイカーはメイカーの注文が更新されたオーダーブックを受け取る6テイカーは取引したい注文を見つけ、イーサリアムブロックチェーンのDEXコントラクトコントラクトに提示するここで注目すべきことは1において、リレイヤーが取引における全ての手数料を勝手に決めているということです。リレイヤーが報酬として受け取るメイカーが支払う手数料もテイカーが支払う手数料も、全てリレイヤー自身が決めています。リレイヤーが多額の手数料を要求するようであればメイカーやテイカーは、そのリレイヤーを通して取引はせずにもっと安価な手数料で済むリレイヤーと取引を行うはずです。メイカーの手数料が高ければメイカーはそのリレイヤーと取引を行おうとしませんし、テイカーも同様にテイカー手数料が高ければ他の取引注文を選択するでしょう。このように将来的には多数のリレイヤーが存在し、他のリレイヤーとの市場競争に基いて、バランスの取れた手数料を設定しなければ取引の仲介をさせてもらえないようになるのです。このリレイヤー同士の競争により取引手数料はより安くなっていくと考えられます。注意しなければならない点はリレイヤーは取引の決済自体は行なっていないということです。決済は安全性のためイーサリアムブロックチェーン上で行われるのでオフチェーンでは行われていません。リレイヤーが行っているのは、注文の正当性を管理し適切な手数料を定め、テイカーに対して最善の価格を提示することだけです。実際にここまで紹介した0xプロトコルを利用してトークンの交換を行えるサービス「ZooMeX」を作ってみたのでぜひ使ってみてください。ZooMeXまた、以下はZooMeXの解説記事になります。参考:イーサリアム上にDEXでDappな「ZooMeX」を作りました。比較したDEXのメリットは冒頭でお伝えしたように、秘密鍵を自分自身で管理できることなどがあげられます。0xプロジェクトのようなDEXが主流となるためにはさまざまな課題を解決しなければなりません。0xプロジェクトの課題点としては以下のことがあげられます。したように0xはリレイヤーがいないと成り立ちません。そのためにはリレイヤーが簡単にオーダーブックを管理できるようにしたりと環境を整えていく必要があります。リレイヤーとして活動するのが煩雑であり手間がかかるとリレイヤーの数がなかなか伸びずに、0xでのトークンの流動性が下がってしまったり、適切な競争が行われずに手数料が高くなってしまうことが考えられるからです。低コストでリレイヤーが参加できるようにAPIの整備やルール作りを行なっていかなければなりません。イーサリアムベースのDEXに共通する課題点として手数料と取引速度があげられます。0xは取引の決済のみをオンチェーンで行い、それ以外をオフチェーンで処理するように工夫しています。オフチェーン処理に伴う手数料は上述したようにリレイヤー同士の競争により低下していくと考えられます。決済の部分はブロックチェーンで処理する必要があるのでトランザクション承認のための時間がかかったり、gas消費による取引手数料がかかってしまいます。無数のトークンが飛び交うような将来を実現するためには、イーサリアムブロックチェーンでのトランザクション処理能力を向上させていかなければなりません。そのため、イーサリアムではシャーディング(Sharding)やプラズマ(Plasma)などのスケーラビリティ問題解決ための開発が行われています。【図解】アトミックスワップのすべて。