L1とL2
dYdXには、レイヤー1のdYdXとレイヤー2のdYdXがあります。
以下では前者をL1 dYdX、後者をL2 dYdXと呼ぶことにします。
双方の話に入る前に、レイヤー1(L1)とレイヤー2(L2)について知る必要があるため、まずはL1とL2について説明します。
L1とは、ビットコインやイーサリアムなどのエコシステムの基盤となるブロックチェーンを指します。
エコシステム内で最下層に位置するネットワークであることから、L1と呼ばれています。
L1ブロックチェーンはエコシステムの基盤として欠かせない存在ですが、様々な課題を抱えています。
L1ブロックチェーンは一つのブロック生成に時間がかかり、ブロックあたりの容量も決まっています。
そのため、取引量が多くなると送金が滞るといったスケーラビリティ(拡張性)の問題があるのです。
また、全ての取引をブロックチェーン上に記録しようとするとそのたびに手数料がかかるため、少額な決済(マイクロペイメント)には向かないという弱点もあります。
これらの課題を解決するために登場したのがL2です。
L2とは、L1ブロックチェーンの外部(オフチェーン)で取引を実行する技術のことを言います。
L2のメリットは、L1ブロックチェーン上で全ての処理を行わないため、ブロックチェーンへの負荷を軽減し、高速な処理と手数料の削減を可能にすることでスケーラビリティ問題を解決できる点にあります。
ビットコインのL2であるライトニングネットワークなどがその代表例として機能しています。
Check your achievement
Click the “Tick” button
if you understand the lesson so far.
dYdXのL1とL2
いよいよ、L1 dYdXとL2 dYdXについて学んでいきましょう。
L1 dYdXは、仮想通貨の信用取引と現物取引を行うことができる、流動性の高い分散型取引所です。
L1 dYdXでは、例えばビットコイン(BTC)やイーサリアム(ETH)などの仮想通貨とステーブルコインUSDCとDAIのペアで、最大5倍のレバレッジ取引を行うことができます。
L1 dYdXはイーサリアム上に作られているため、一つ一つの取引がブロックチェーンに記録されます。
そのため、L1の課題である処理速度が遅いことや手数料がガス代に依存し高くなってしまうといった影響を受けてしまいます。
このような課題を解決すべく、L2 dYdXが立ち上がりました。
L2 dYdXでは、ビットコインやイーサリアムに加え、ソラナ(SOL)やポルカドット(DOT)などの幅広い仮想通貨の永久先物取引が可能です。
それに加え、高速でシームレス、かつ手数料を抑えて利用でき、中央集権型取引所での取引にひけを取らないユーザー体験を提供することに成功しています。
この成功を可能にしているのが、StarkWare社のStarkExというイーサリアムのスケーラビリティソリューションです。
StarkWare社は、イーサリアム上のあらゆる計算をオフチェーンに移行することでブロックチェーンのスケーラビリティを向上させるソフトウェアを開発しています。
StarkWare社の開発するStarkExは、ZK-Rollupという技術を使ってスケーラビリティを向上させるL2ソリューションです。
Check your achievement
Click the “Tick” button
if you understand the lesson so far.
ZK-Rollupとは
ZK-Rollupは、ゼロ知識証明を使ったロールアップ技術なのですが、以下でわかりやすいようにゼロ知識証明とロールアップに分けて学んでいきましょう。
まずゼロ知識証明(zero-knowledge proof)とは、証明者(Prover)が検証者(Verifier)に、 自分の持っている命題が真であることを伝えるのに、真であること以外、 何の知識も伝えることなく証明できるような対話(非対話)知識証明プロトコルのことを言います。
イメージしやすいように有名な洞窟の例で説明します。
Pさんがある合言葉を知っていると主張しているとします。
Vさんはお金を払ってでもその合言葉を知りたいのですが、Pさんが本当に合言葉を知っているのかわからないので、先にお金を払いたくはありません。
しかし、Pさんはお金を先に払わないと合言葉を教えないと言います。
そこで2人は、合言葉そのものは教えることなく、本物の合言葉を知っていることだけを証明するために特殊な洞窟を使います。
この洞窟は、入口は一つですが入るとAとBの分かれ道になっており、洞窟の奥でAとBはつながっています。
しかし、AとBは自由に行き来することはできず、合言葉を入力すると開けることのできる扉がAとBの間にあるのです。
この状況では以下の手順で検証を行います。
- Vさんは洞窟の外で待ち、Pさんがだけ入る
- PさんはAかBどちらかの分かれ道をランダムに選んで奥に入る
- Vさんは分かれ道の入り口まで行き、どちらかの道をランダムに選ぶ
- Pさんに、ランダムに選んだその道から出てきてほしいと伝える(VさんはPさんがどちらから入ったのかは知りません)
もしPさんが本物の合言葉を知っていたとすれば、Vさんが選んだ道から出てくることができます。
しかし、もしPさんが合言葉を知らなかった場合、Pさんは入った道からしか出てくることができません。
たまたま、VさんがPさんの入った道を選べばリクエストに応えることができますが、Vさんはランダムにどちらかの道を選ぶのでリクエストに応えられる確率は50%になります。
数回の試行であれば、合言葉を知らずともPさんはVさんのリクエストに応えられるかもしれませんが、試行回数を増やせばPさんが合言葉を知っていなければVさんのリクエストに応えられない場合が出てきます。
よって、Pさんが多数回のリクエストに全て応えられたなら、VさんはPさんが確かに合言葉を知っていると納得できるというわけです。
あくまでイメージしやすいように簡略化した一例ですが、Pさんは合言葉をVさんに伝えずとも、本当に合言葉を知っていることを証明できていることになります。
これがゼロ知識証明のイメージです。
次にロールアップについて学びましょう。
ロールアップを簡単に表現すると、オフチェーンで大量の取引を一つにまとめてL1に書き込む、というものです。
まず、ユーザーはL2(オフチェーン)で取引をします。
その取引をひとまとめにして、各アカウントのステータスをまとめたroot情報と取引データをRollupコントラクトを通じてL1に書き込みます。
この一連の処理をロールアップと言います。
さて、いよいよZK-Rollupの説明に移ります。
ZK-RollupはL2でまとめた情報をL1に書き込む際に、その情報が正しいことをゼロ知識証明を使って証明する方法のことです。
まず、ZK-RollupにはL2側に証明者(Prover)、L1側には検証者(Verifier)となるコントラクトがあります。
証明者はゼロ知識証明を使って、取引内容を明かさず取引内容が正しいという証拠を作ります。
この証明と取引データをL1上の検証者が正しいと判断したときのみ、取引データをL1に書き込むという仕組みになっています。
ここで重要なのは、証明の認証をL1上の検証者が行なっている点です。
L1上で行うことによって、L1のセキュリティを利用しつつ大量の取引データを書き込むことができます。
L2 dYdXは、以上で説明したZK-Rollupを可能にするStarkExを使うことで、高速かつ低手数料な取引を実現しているのです。
Check your achievement
Click the “Tick” button
if you understand the lesson so far.