モジュラー型ブロックチェーンの歴史とこれから ~ (旧)Etheruem2.0/ Drivechain/Cosmos/Rollup~

Leona Hioki (日置 玲於奈 )
17 min readOct 27, 2023

--

「モジュラー」でググるとこから始まり、なぜか爆弾の束に行き着いた

どうもこんにちわ、極度妄想(しなさい)です。ここ一年は個人で技術ブログを書く時間をほとんど取れませんでした。
しかし、なんか市場がブルになると、静かに議論できる環境も残り少なくなるかもしれません。その前に今のパブリックブロックチェーン関連技術に関して最速最深で頭が整理される記事を書きたいなと考えました。

さて、ここ2年くらいモジュラー型ブロックチェーンというキーワードはクリプト界の技術トレンドとして主流として認識されていたように思われます。旧称Ethereum2.0(シャーディング)やCosmosをはじめとして、アーキテクチャーの方向性としてモジュラー(束)は盛んに議論がされてきました。

モジュラーに特に定義はないですが、おおよそ分業された複数のブロックチェーンが束になって機能するアーキテクチャー と言えるでしょう。

基本的にはEthereum2.0がシャーディング(並列DB化)として特殊な点は、ICP(DFinity)などの現存のシャーディングと異なり、役割が違うシャード(レイヤー)が通信し合い補完し合う点です。これによりモノリスティック(モジュラーの対義語)なものが一つのノードプログラムで全部こなしているところを、分業されたノードが特化したスペックでネットワークを支えることが可能になります。大容量のSSDなどを持つノードはデータ保管(DA)用のノードに、帯域幅が安定してオフラインにほぼならないノードはコンセンサスレイヤーに、GPUをたくさん積んだノードはExcution LayerやZKPの計算ノードになって分業することができます。

Ethereumでよくある質問の一つにL2があればシャーディング必要なくない?というものですが、L2は大概似た機能のものを並列化していて、ETHのシャーディングは一つだったノードの機能を分割して並列してると言えるでしょう。

Cosmosはモジュラーブロックチェーンの代表格とも言えます。セキュリティが担保されることを重視するEthereum上のRollupと異なり、こちらはセキュリティや分散性よりも分業と独立性/自立性を重視したアーキテクチャーになっており、分業やサービス協業のためにIBCという規格でチェーン間の通信できることを大きな差別化としています。第一人者の木村優氏はIBCとCosmosは分離して考えた方が良いと言っています。

彼に聞きましたが、セキュリティに対する対策はMesh Securityを使った子チェーン相互のvalidatorの兼任(日系金融の株式持ち合いみたいな感じ)とShared Securityを使った親チェーンからのvalidatorの兼任(役所のOBを外部取締役にするみたいな感じ)で行われており、もちろんセキュリティ全く無視というわけではないです。なんか既存の金融をデジタル化/自動化したようなガバナンス構造で、これはこれで新しい世界が広がっていてとても面白いです。

出典:https://medium.com/sagaxyz/shared-security-ripping-off-the-masks-f3a68092f6b9

Drivechain

このように話題になっているモジュラー型ですが起源はBitcoinコミュニティで2015年ごろ生まれたDrivechainというコンセプトに遡ります。おそらく、Drivechain発案者はモジュラー型を自分から称したことはないですが、この種のアーキテクチャーの中で最も議論が長く深い上、セキュリティを落とさないという非常に強い性質があるので、このトレンドをより深く知りたい人はこのコンセプトを知るのが良いと個人的には考えます。そしてまた、BIP300はアクティベートされるかビットコイン界隈で議論になっているため、昔の遺物とかではなく今だにホットトピックでもあります。

Drivechainは長らくBIP300, BIP301の総称として認識されてきました。日本だとJoe MiyamotoさんがBIP301でスペシャルサンクスでメンションされるくらいのコントリビューターでしたので自分が改めて解説とか必要ないですが、この記事の文脈で分解してみたいと思います。

https://docs.rsk.co/Drivechains_Sidechains_and_Hybrid_2-way_peg_Designs_R9.pdf

BIP300: Hashrate Escrow
あるロックされたビットコインを特定のアドレスに引き出すtxを、それを賛成するブロック生成の累積ハッシュパワーが一定値を超えるかどうかで、承認是非を決める仕様です。(ブロック生成時に賛成反対を投票) ”vote by hash power”などとも言われます。注意すべき点は、各マイナーがどうVerifyするか、賛成かどうかを決めるメカニズムは意図的に指定されていないところです。マイナーはどのようなオラクルやクライアントでこの賛成是非の論拠にするかは意図的に指定されていません。

BIP301: Blind Merge Mining(BMM)
マージマイニングをする時にサイドチェーンブロック生成者がメインチェーンブロック生成者に報酬金を出すことができる仕組み。「このブロックヘッダーを入れてくれたら〇BTCお前に払うよ。このヘッダーの中では俺は〇+0.0001BTC トランザクション報酬あるから儲かるし。」って感じの仕組みです。ほとんど利益をマイナーが持っていくので、基本BTCのマイナーがマージマイニングの報酬をBitcoinチェーン上で受け取る仕組みと考えていいです。これにより、あるサイドチェーンが好きでもないマイナーもそのDBの中身を知らずにL1上のインセンティブで動けるようになります。

BMMはBIP301でなくともできることが示されているので、今はDrivechainはBIP300が入るかどうかだけでアクティベートを議論できる状態のようです。

で、この二つで何をするのかというと次のようなDrivechainの2 way peg構造です。

・マイナーはDrivechainをBMMで採掘する。これによりファイナリティはBitcoin L1で確定する。(二重支払いの禁止)

・DrivechainにデポジットされたBTCをL1に戻すのは、ハッシュパワーによる投票(ブロック生成時に賛成反対を投票)で一定数満たしたら承認される(二重出金や不正出金の禁止)

このDrivechainの機能にはスマコンをつけようがもっとすごい何かをつけようがなんでも構いません。マイナーが正しいサイドチェーンブロックヘッダーは何かを一定時間内で判断できる限り、なんでもいいのです。

昔自分がPlasma(Rollupの前身)のリサーチコミュニティにいた時期に、このアイディアの解説をm0tok1ch1さんから聞いた時は、「え?マイナーがフルノードを持たないと判断できないだろうし、マイナーがもっとDB追加で抱えるってこと?それはビッグブロックと同じでは?」と思いましたが、ステートレスクライアントの存在(フルノードやDBを持たなくてもプルーフを受け取るだけでVerifyできる仕組み)を知ってる近年ふと思い返し、少しだけ意見が変わってきました。ステートレスクライアントでのproof、つまりZKPなどで圧縮されたプルーフを用いれば、マイナーはDBを持たずにスケールできます。
なぜこれがモジュラーなのかといえば、サイドチェーンのDB保持するノードとそれを検証し投票するマイナー(コンセンサスレイヤー)が分離されているからです。

しかしながら、この仕組みを聞く時、セキュリティに関する次の疑問をもち解消するべきでしょう。

Q1: 一般にマージマイニングというのは、出鱈目なブロックハッシュを入れられるんじゃないのか?そしたらマイナーは僅かなお金を諦める程度で、ネットワーク全体を破壊できるんじゃないのか?

A1: 出鱈目の値が刻まれたのならば、それは無視して進めば良い。マージマイニングはtx達と一致するような(無限に生まれうる)正しいブロックヘッダーの中から一つファイナリティを与えるものであって、txと一致しない出鱈目な値まで正当化できるものではない。サイドチェーンのノード(投票者含む)は出鱈目な値を無視して進むコンセンサスであれば良い。

Q2: マイナーはL1をBTCを得ながらハッシュパワーで不正なものにも投票ができる。L1コンセンサスで正当であることとL2に対して不誠実であることは同時にできる。つまりDrivechain上のBTC全額不正出金するtxに対して何も失うものなく無リスクで投票できる。ならば、ハッシュパワーの投票はL2の資産を守らないのでは?

A2: 必読 (https://www.truthcoin.info/blog/drivechain/#drivechain-a-simple-spv-proof)。ソフトフォークを行う場合とそうでない場合に分けて考える必要がある。もしソフトフォークを伴って出金txを完全に無効化する場合、チェーンは分岐するためマイナーは無リスクではなく、マイニングコストをかけながらマイニング報酬とサイドチェーンBMM報酬の両方を失う可能性がある。この場合、セキュリティはL1と同等であり、かつこのソフトフォークは機械的に行えるため、機能追加のソフトフォークと違い討論などを行う必要はないことが期待できる。ソフトフォークが絶対に行わないという確証がある場合、「3ヶ月間の間マイナーがハッシュパワーを維持し共謀し続けることが難しいこと」をセキュリティアサンプションにしなければならないので、質問の通りと言えるだろうが、その確証があるケースが極めて稀である。

Q3: Data Availability 攻撃(Block withholding攻撃)の対策はどこにある?

A3: これこそRollupで議論され、proto-dankshardingの主な役割となってるものであり、Drivechainでこれをスキップできるなら、proto-dankshardingはいらないではないかという話にもなる。もちろんこの問題をスキップすることはできない。少なくともBIP300/301でここは議論されていない。しかしながら、DAやproofなしに賛成の票が入る道理もなければ、マージマイニングのファイナリティがL2で受け入れられることもなさそうに思われる。

Q4: Drivechain上のBTC以外の資産はBTCと同じセキュリティか?

基本的にBTC以外の資産についてはブリッジがなく、Counter PartyやRGB、Soverign Rollupと同じく、Client -side Validationあるいはオフチェーンコンピューティングのみに依存する。これは当然トラストレスではあるが、そのL2のノードのコンセンサスに依存する。もちろん、極端な話、L2ノードの数が0になれば資産はなくなる。

Q&A終わり

最初のモジュラー型ブロックチェーンであるDrivechainについては非常に変わったアイディアであると同時に、2015年時点からコンセンサスのvalidator(miner)に子チェーンのvalidatorを兼任させることをあまりセキュリティを落とさずに行うことができてることが分かります。故に非常に重要なアイディアであると言えるでしょうし、モジュラーブロックチェーンのトピックでは真っ先に議論されるべきと言って良いでしょう。

ちなみに、BIP300では賛成派のAdam Back, Luke Dash Jr, もちろん発案者のPaul Sztorcなどがいる一方、反対派にPeter Todd, Samson Mowらがいます。外野からすると、あまり意見が分かれないように見えるメンバーの意見がここで割れます。

BIP300承認はTrustless Bitcoin Bridgeの十分条件

EthereumとBitcoinを繋ぐBTCの2 way peg、つまりトラストレスなWrapped bitcoinは現在も実用的でトラストレスなものはありません。(理論的に現在の暗号技術で効率的なものは2年ほど前に、自分とこの暗号化された共著者のリサーチで構築しました。遊び好きな人達にまぁまぁ好評でした)

もし、BIP300が承認された場合には、このような複雑な暗号を使うことなく、なんの問題もなくこのブリッジの構築が可能になるでしょう。

このDrivechainのvoterが頼るオラクルをEthereumのステートレスクライアントを使って行うだけです。

Rollup

Rollupはよくモジュラーだと言われます。構造を見ると、確かに一つのExecution Layer(よく皆が言うEthereum)がたくさんのRollupを束ねているのでモジュラーと言っていいでしょうが、Rollup同士で役割が分担されているわけではないです。多くの場合役割は重複しています。Rollup + Danksharding、つまりはRollup Centric Ethereum全体でモジュラーであると言うのが正しいでしょう。

https://www.blocknative.com/blog/proto-danksharding-and-eip-4844

モジュラーブロックチェーンの将来とその先 Stateless構造

様々なモジュラー構造を見てきて、それぞれが色々な用途トレードオフの中で進化を遂げていると思います。このトレードオフ特性や用途目的に向けて進化していくのはこれからももっと続いていくのでしょう。最近取り沙汰いされているDA Layerだけでなく、まだ自分が全く知らない概念がたくさん出てくるのがとても楽しみです。

では、モジュラーブロックチェーンはモノリスティックブロックチェーンと比べてどの程度優位にいるのでしょうか?
無条件にモジュラーブロックチェーン > モノリスティックブロックチェーンのような意見が2021年には散見されましたが、これは言い過ぎといえます。と言うのも、モジュラーはモノリスティックでは1つであったフルノードを分割分業したものであるため、性能は上がりますが、トータルのコストで言えば、同じどころかコミュニケーションコストが加わった分、増えているからです。並列化が強みと言っても計算の並列化であればモノリスティックの代表であるSolanaは最も長けている部類と言えるでしょう。
しかしながら、よりブロックチェーンに求められる処理の数がユーザーの増加によって大きくなり、コードの複雑性が極限に大きくなっている今、モジュラー的な分業と最適化はやはり主流と言えるでしょう。

モジュラーブロックチェーン間でのコミュニケーションにおいては、Drivechainの部分で話した通り、stateless(ステートレス)クライアントが非常に重要な役割を果たしていたことがわかります。これは違うデータベースを持ってるもの同士、あるいはデータベースを持つノードと持たないノードの間のVerificationやコミュニケーションを可能にしているからです。

モノリスティックブロックチェーンに対して、コミュニケーション量を増やして最適化を図る改造を加えたのがモジュラーブロックチェーンだとしたら、この改造の傾向をさらに強めたものがStatelessなシステムです。
チェーン間のコミュニケーションだけでなく、クライアント(ユーザー)サイドとチェーンの間のコミュニケーションやユーザー間のコミュニケーションも加えたトラストレスシステムがstatelessなアーキテクチャーだからです。こちらに関してもどちらが良いという話ではないですが、最適化の方向が性能+分散性に振り切ったものもあるよという話ですね。

Stateful systems: モノリスティックブロックチェーン、モジュラーブロックチェーン、zkEVM、ほとんどのRollup

オンライン要求ありのStateless systems: Lightning Network、RGB

オンライン要求なしのStateless systems: Intmax

Statelessな仕組みは機能を絞りますが、ブロックチェーンでは考えられない量のトランザクションを処理することができます。プライバシーもおまけでついてくることが多いです。

LNとRGB、Rollupの解説はこちらでしています。
(昔RGBについて勘違いしていたところをYuyaさんに聞いて訂正することができました。昔読んだ人もアップデートあるのでご了承ください。また、RGBについても現在第一線で関わっているのはJoeさんだそうです)

INTMAXのstateless zkRollupの解説はこちらでしています。

Ethereum上のzkRollupの最適化から始まったIntmaxがLN上のRGBと共通点を持つのは難しいですが、tx履歴をオフチェーンにしている点は同じです。

性能で言えば、LN=RGB > Intmax >>> ステートフルシステムとなりますが、IntmaxはLN/RGBが持っているオンライン要求(ユーザーがnodeかwatch towerでずっとネットワークを見張る必要)がないため、UXで言えばステートフルシステム≥=Intmax>LN=RGBとなります。

おまけ:Statelessシステムの限界として、Limit on revocable proof systems という論文がa16zという有名VCから出ましたが、これはStatelessなシステムでも線形でデータ量が増えるよという話でした。
これはほぼ元々自明な話で、例えばLNのペイメントチャネルを1 channel開く場合と1億 channel開く場合では、1億倍L1でのデータ使用量も違うよねという話です。平均で1ペイメントチャネルにつき閉じるまで100万回txを使おうが、平均が2回だけ使って閉じようがuserの数に対しては線型ですよねという話です。線の傾きが全然違うことが重要です。

線形かどうかよりも、線の傾きが重要

個人的な感想:自分はしばらくモジュラーというよりもRollupやL2というコンセプトに惹かれていました。が、Soverign Rollupというプロジェクトが立ち上がった時にCore Devにならないかという招待を受けまして、そこで初めて、モジュラーというコンセプトが新しい技術トレンドなんだなと実感しました。それ以来Cosmos技術畑の人々がなぜこれに惹かれているのかたまに考えながら過ごしていましたが、だんだん言語化できてきたかなと思います。

また、Drivechainのように遥か昔から遠く未来のトレンドを取り込んだ技術について話している人達がいたのも面白いです。制限がある中で試行錯誤するからこそ、真に革新的なアイディアが出てくるのだなと思います。インフラを作るのに関わっている人や、そこに投資する人はそれぞれ一体どんな制限のなかで戦っているのかが、すごく重要だなと思いました。

--

--

No responses yet