0x (https://0xproject.com/) は異なるトークン同士を取引する分散型取引所(DEX)を構築するためのプロトコルで、イーサリアムネットワーク上に構築されています。
一般的なDEXでは、取引注文(オーダーブック)や注文キャンセルなどの全てのトランザクションをブロックチェーン上で処理します。
ブロックチェーンの承認作業には時間とコストがかかりますから、取引時にかかる時間と手数料が多くなってしまいます。
更に、イーサリアムネットワーク全体にも負荷がかかり、DEX以外でのトランザクションを阻害する可能性があります。
0xでは、互いにトークンの取引を行う処理だけをブロックチェーン上で行い、それ以外の取引注文などはオフチェーンで行うようにすることで効率的な取引と低い手数料を可能にします。
0xの仕組み
このように0x プロトコル上では、取引の決済のみがイーサリアムブロックチェーン上で行われ、それ以外の取引の注文などはオフチェーンで処理されます。
左側の図で、2から4までがオフチェーンで行われ、7でのみオンチェーンの決済が行われます。
メイカー: 予約注文を提示する人。
テイカーはメイカーの予約注文に応じる人。
※オーダーブックは予約注文をリスト化して管理する注文表。
①メイカーは、自分が持つトークンAへDEXコントラクトがアクセスするのを承認する
②メイカーは自身が持つトークンAをトークンBに交換するための取引を注文し、秘密鍵で署名が行われる。
③メイカーはこの取引注文をネットワークにブロードキャストする
④テイカーはその取引注文を受ける
⑤テイカーは自分が持つトークンBにDEXコントラクトがアクセスするのを承認する
⑥テイカーはメイカーの署名をDEXコントラクトに提示する
⑦DEXコントラクトがトークンAとトークンBの取引決済を行う
オーダーブックの管理者はリレイヤーと呼ばれ、報酬として取引手数料を得ることを目的とした不特定の個人が主体となることができます。
リレイヤーはオフチェーンでのオーダーブック管理だけを行います。
①リレイヤーが取引手数料の金額と手数料受取用アドレスをメイカーに提示する
②メイカーは取引注文を作り、提示された取引手数料をセットし、秘密鍵で署名を行う
③メイカーは署名済みの注文をリレイヤーに提示する
④リレイヤーは注文の正当性を確認し、有効ならオーダーブックに記録する
⑤テイカーはメイカーの注文が更新されたオーダーブックを受け取る
⑥テイカーは取引したい注文を見つけ、イーサリアムブロックチェーンのDEXコントラクトに提示する
0x まとめ
0xではビットコインのマイニングを多くの人が競争して行うのと同様に、リレイヤー同士の競争により取引手数料はより安くなっていくことを前提に設計されています。
オーダーブックの管理者が分散されているという点がこれまでになかった新しい仕組みとなっています。
また、取引の実行時は安全性のためイーサリアムブロックチェーン上で行われるので、送金速度の問題が未解決のまま残されています。
デイトレーダーにとって取引所では両替が瞬間的に行われる必要があります。