モジュール化 vs. モノリシックアーキテクチャは死んだ
著者:Avi Zurlo
編纂:Block unicorn
Rollups の台頭以来、ブロックチェーンのスケーラビリティはモジュール化とモノリシックの議論に集中してきました。最初は、この二元対立はブロックチェーンのスケーラビリティを推論するための有用な思考モデルでしたが、現在では両陣営はそれを超えています。
今日、モジュール化とモノリシックの対比は、私たちのスケーラビリティ思考モデルに不必要な制限をもたらしています。
では、代替案は何でしょうか?
この記事では、水平スケーリングと垂直スケーリングがブロックチェーンのスケーラビリティの基本フレームワークであり、水平スケーリングと垂直スケーリングを採用することで、より良いスケーリングソリューションがもたらされることを示します。
モジュール化 vs. モノリシックを理解する
まず、いくつかの定義を示します:
モジュール化 チェーンは、ブロックチェーンのコア機能を異なるレイヤーに分離します。
モノリシック チェーンは、すべてのコア機能を単一の相互接続されたレイヤーに統合します。
「レイヤー」を「マシン」と見なすことができます。モノリシックチェーンにはすべてのタスクを実行する単一の検証ノードがあり、モジュール化チェーンには異なるタスクを実行する複数の(2-3個の)フルノードがあります。
例えば、Rollup には通常、実行用の Rollup フルノードと、決済 + データ可用性(DA)用のイーサリアムフルノードの2つの実行ノードがあります。一方、validium は、実行用の Rollup フルノード、決済用のイーサリアムフルノード、DA 用のバックアップデータ可用性レイヤーフルノードの3つの実行ノードを利用する可能性があります。
モジュール化は、ブロックチェーンのタスクを少なくとも2つのフルノードに割り当てます。これにより、モジュール化ブロックチェーンは各ブロックを構築する際に複数のコンピュータの計算能力を活用できます。
これは水平スケーリングの一形態です。
モジュール化はブロックチェーンのスケーラビリティを考える際に有用です。なぜなら、それは水平スケーリングの一種だからです。
一方で、ほとんどのモノリシック陣営は、ソフトウェアの最適化、並列仮想マシンの実装、データパイプライン、より高速なネットワークプロトコル、そして(最も注目すべきは)より強力なハードウェアを通じてスケーリングを選択します。本質的に、モノリシックチェーンは単一のフルノードから可能な限り多くの計算能力を引き出そうとします。
これは垂直スケーリングの一形態です。
批評家は、このアプローチが集中化を促進すると主張しています:単一のノードのパワーを増加させてスケーリングを行う場合、物理的なハードウェアの制限に直面し、さらなるスケーリングのためにハードウェア要件を増加させざるを得なくなるからです。
しかし、この批判は正しくありません。なぜなら、すべてのモノリシックチェーンが垂直スケーリングのみに依存しているわけではないからです。
例えば、Near はシャーディングネットワークアーキテクチャに基づいて構築されたモノリシック L1 ブロックチェーンです。これは、Near のフルノードがすべてのタスク(すなわち、実行、決済、データ可用性)を担当しますが、Near のグローバルステートのほんの一部のみを担当することを意味します。したがって、Near はタスクではなくステートに基づいて作業を割り当てることで、複数のコンピュータの計算能力を活用しています(モジュール化チェーンと同様に)。
私たちは、モノリシックチェーンでもモジュール化チェーンでも、実現されるスケーリング技術に制限はないことがわかります。両者は水平スケーリングおよび/または垂直スケーリングを行うことができます。
さらに、モジュール化とモノリシックの議論は常に水平と垂直のスケーリングのフレームワークに根ざしています。厳密な技術的観点から見ると、モジュール化は水平スケーリングを傾向としており、モノリシックは垂直スケーリングを傾向としています。
私たちはモジュール化チェーンを成功裏に立ち上げたので、追加のスケーリングの利点は「よりモジュール化すること」にはありません。今の焦点は、チェーンが水平または垂直スケーリング技術をどのように活用するかです。
水平 vs. 垂直の思考モデルを採用することで、各チェーンがこのプロセスで行ったトレードオフを簡単に推論できます。
対話を再定義する:水平 vs. 垂直スケーリング
水平 vs. 垂直スケーリングのフレームワークを深く掘り下げる前に、その起源が1970年代に遡ることを認識することが重要です。当時、分散コンピューティングの研究が水平スケーリングの概念の基礎を築きました。今日、すべてのスケーリング技術は水平または垂直スケーリングに分類できます。
垂直スケーリング
垂直スケーリング は、各ノードのハードウェア利用率またはハードウェア要件を増加させます。ブロックチェーンでは、これは通常、並列仮想マシン(すなわちマルチスレッドプロセス)などのソフトウェア最適化を通じて行われます。
一般的な例は EVM と SVM です。
EVM はトランザクションを順次実行しますが、SVM はトランザクションを並列に実行します。SVM はより多くの CPU コアを活用することでこれを実現し、したがって SVM は EVM よりも毎秒多くのトランザクションを処理できます。注意:このタイプの垂直スケーリングは Eclipse L2 の背後にある基盤です。
トレードオフの観点から、垂直スケーリングは利用可能なハードウェアの制限を受け、ハードウェア要件の増加により集中化し、水平スケーリングと比較してスケーラビリティが劣ります。
水平スケーリング
一方で、水平スケーリング は、作業負荷を複数のノードに分散させることで、システムがアクセスできるマシンの数を増加させます。前述のように、モジュール化チェーンは本質的にタスクを複数のマシンに割り当てます。しかし、チェーンは通常、シャーディング を通じてより大規模な水平スケーリングを実現できます。
=nil; ここで有用な例を提供します。
昨年11月、=nil; 財団は、zkSharding と呼ばれる検証可能なシャーディングアーキテクチャを発表しました。これは新しいイーサリアム L2 の基盤です。=nil; の設計の核心は、そのグローバルステートを複数のシャードに分割することです。各シャードは =nil; の分散型委員会によって運営され、ブロックを構築し、シャード間のトランザクションを管理します。さらに、各シャードは有効性証明を生成し、その証明は主シャードに送信されて集約され、イーサリアム上で公開および検証されます。=nil; は、次の2つの方法で水平スケーリングの能力を活用しています:
まず、=nil; はモジュール化ブロックチェーンであり、イーサリアムの強力なコンセンサスとデータ可用性を保証として利用し、タスクを複数のフルノードに割り当てます。
次に、=nil; はシャーディングブロックチェーンであり、したがって部分的なステートを多くのフルノードに分散させます。
これらの2つの技術は、任意の単一のマシンが負担する必要のある負荷を軽減し、ネットワーク全体のスケーラビリティを向上させます。
では、水平スケーリングのトレードオフは何でしょうか?これは2つの点に要約できます:ネットワークとコンセンサスの複雑さ、そしてマシンまたはシャード間の非同期通信です。
イーサリアムのスケーラビリティの終局の戦い
水平スケーリングと垂直スケーリングは、モジュール化またはモノリシックアーキテクチャに限定されません。これが、水平 vs. 垂直スケーリングフレームワークが新しいソリューションを探求するためのより多くのスペースを提供し、モジュール化ブロックチェーンをよりスケーラブルにする理由です。
例えば、1つのオプションは、モジュール化スタックの1層を垂直スケーリングすることです。一般的なアプローチは、並列仮想マシンを実装して実行スループットを向上させることです。上記で述べたように、Eclipse は SVM と他の Rollups(例えば Starknet)を利用して BlockSTM を実現し、並列化を実現しています。
しかし、垂直スケーリングは常に単一のマシンの制限に制約されており、物理法則を打破することはできません。
1つの解決策は、シャーディングを通じて水平スケーリングを実現することかもしれません。
現在のモジュール化設計は、水平スケーリングの全潜在能力に触れ始めたばかりです。シャーディングを通じて、私たちは任意の数のマシンの計算能力を活用できます(タスクを分担するのは2-3台のマシンだけではありません)。
言い換えれば、多くのマシンが同じタイプのタスクを並行して実行できます。これが、イーサリアムと Celestia がそれぞれ Danksharding とデータシャーディングを通じて実現したい目標です。しかし、シャーディングは本質的にデータ可用性レイヤーに限定されません。実行と組み合わせることもできます(=nil; L2 の場合のように)。
モジュール化スタックを通じて実現される水平スケーリングと、シャーディングが提供する水平スケーリングを組み合わせることで、利用可能な計算能力が大幅に増加します。
しかし、私たちはさらに良いことができます……
ブロックチェーンのスケーラビリティの最終目標は、水平と垂直のスケーリングを融合させ、並列仮想マシンを持つシャーディングブロックチェーンを生み出すことです。
= nil; 財団では、私たちはこの最終状態に向けて体系的に設計を進めています。= nil; の L2 は、モジュール化された水平スケーラブルなアーキテクチャ(zkSharding)と垂直スケーリングの検証者実装(シャーディング内の並列化)を活用することで、積極的なスケーリングロードマップを採用しています。
したがって、= nil; の設計は、ステート、流動性、またはユーザーの断片化を犠牲にすることなく、グローバルスケールを実現できます。
水平スケーリングと zkSharding に興味がある場合は、= nil; 財団の Discord と X に参加して対話に加わってください。