著者:Avi Zurlo; Compiled by Block unicorn
ロールアップの台頭以来、ブロックチェーンのスケーリングはモジュール性対モノリシックという議論に集中してきた。当初、この二分法はブロックチェーンのスケーラビリティを推論する上で有用な思考モデルでしたが、今では両陣営ともそれを超えています。
今日、モジュール性対モノリシックは、私たちのスケーラビリティの思考モデルに不必要な制限を加えています。
では、代替案は何でしょうか?
この記事では、水平スケーリングと垂直スケーリングが常にブロックチェーンのスケーラビリティの基本的な枠組みであることを示し、水平スケーリングと垂直スケーリングを採用することで、より優れたスケーリングソリューションにつながることを説明します。
Modularity vs. Monolithicを理解する
最初に、いくつかの定義を説明します。
モジュラーチェーンは、ブロックチェーンの中核機能を異なるレイヤーに分離します。
モノリシックチェーンは、すべてのコア機能を単一の相互接続されたレイヤーに統合します。
レイヤーをマシンと考えることができます。モノリシックチェーンには、すべてのタスクを実行する単一のバリデータノードがあります。タスクを実行するのに対し、モジュラーチェーンには異なるタスクを実行する複数(2~3)のフルノードがある。
たとえば、Rollupには通常2つのランタイムノードがある。すなわち、実行用のロールアップ・フルノードと、決済+データアベイラビリティ(DA)用のイーサネット・フルノードである。対照的に、validiumは3つのランタイムノードを活用するかもしれない:実行用の Rollupのフルノード、決済用のEtherのフルノード、DA用の代替データ可用性レイヤーのフルノード。
モジュール性は、ブロックチェーンのタスクを少なくとも2つのフルノードに分散します。こうすることで、モジュール型ブロックチェーンは、各ブロックを構築する際に複数のコンピュータの計算能力を利用することができます。
これは水平スケーリングの一形態です。
モジュラリティは水平スケーリングの一種であるため、ブロックチェーンのスケーラビリティについて考える際に有用です。
その一方で、モノリシック陣営のほとんどは、ブロックチェーンのスケーラビリティを考える際に、次のような方法を選択しています。一方、モノリシック陣営のほとんどは、ソフトウェアの最適化、並列VMの実装、データパイプライン、より高速なネットワークプロトコル、そして(最も顕著なのは)より強力なハードウェアによって拡張することを選択した。要するに、モノリシック・チェーンは、単一のフル・ノードから可能な限り多くのコンピューティング・パワーを引き出そうとしているのです。
これは垂直スケーリングの一形態です。
批評家たちは、このアプローチは中央集権的になりがちだと主張しています。スケーリングが個々のノードのパワーを増やすことに依存している場合、基礎となるハードウェアの物理的な限界に必然的に遭遇し、さらにスケーリングするためにハードウェア要件を増やすことを余儀なくされます。
しかし、すべてのモノリシック・チェーンが垂直スケーリングだけに依存しているわけではないので、この批判は正しくありません。
例えば、Nearはシャーデッドネットワークアーキテクチャで構築されたモノリシックなL1ブロックチェーンです。つまり、 Nearのフルノードはすべてのタスク(すなわち、実行、決済、データの可用性)に責任を持ちますが、 Near のグローバルステートのごく一部にしか責任を持ちません。このように、Nearはタスクではなく状態に基づいて作業を分配することで、(モジュラーチェーンのように)複数のコンピュータの計算能力を活用している。
モノリシック・チェーンとモジュール化されたチェーンの両方が、制限を受けないことがわかります。モジュール化されたチェーンは、実装するスケーリング技術に制限がないことがわかる。どちらも水平方向や垂直方向に拡張することができる。
さらに、モジュール性対モノリシティの議論は、常に水平スケーリング対垂直スケーリングの枠組みに根ざしている。厳密に技術的な観点から見ると、モジュール性は水平方向にスケールする傾向があり、これはその設計に固有のものですが、モノリシックは垂直方向にスケールする傾向があります。
モジュラー・チェーンの導入に成功した今、さらなるスケーリングの利点は、もはや「よりモジュラーであること」にはありません。今注目されているのは、チェーンが水平または垂直方向のスケーリング技術をどのように活用できるかということです。
水平的な考え方と垂直的な考え方をすることで、それぞれのチェーンがプロセスで行うトレードオフについて簡単に推論することができます。
対話の再定義:水平対垂直のスケーリング
水平対垂直のスケーリングのフレームワークを掘り下げる前に、次のことが重要です。その起源は、分散コンピューティングの研究が水平スケーリングの概念の基礎を築いた1970年代にまで遡ることを認めることが重要です。今日、すべてのスケーリング技術は、水平スケーリングと垂直スケーリングのいずれかに分類することができます。
垂直スケーリング
垂直スケーリングは、各ノードのハードウェア利用率、つまりハードウェア要件を高めます。ブロックチェーンでは、これは通常、並列仮想マシン(つまりマルチスレッドプロセス)などのソフトウェアの最適化によって行われます。
よくある例は、EVMとSVMの比較です。
EVM はトランザクションをシーケンシャルに実行するのに対し、SVM はトランザクションをパラレルに実行します。注:このような垂直スケーリングはEclipse L2の基礎となっている。
トレードオフの観点から見ると、垂直スケーリングは利用可能なハードウェアによって制限され、ハードウェア要件が増加するため中央集権的になる傾向があり、水平スケーリングよりもスケーラブルではありません。
水平方向のスケーリング
一方、水平スケーリングは、作業負荷を複数のノードに分散させることで、システムにアクセスできるマシンの数を増やします。先に述べたように、モジュラー チェーンは基本的に複数のマシンにタスクを分散します。しかし、チェーンは多くの場合、シャーディングによって、より高度な水平スケーリングを実現できます。
=nil; ここに有用な例を示します。有用な例である。
昨年11月、=nil; 財団はzkShardingと呼ばれる検証可能なシャーディング・アーキテクチャを導入しました。nil;=nil;設計の核心は、グローバルな状態を複数のスライスに分割することである。各スライスは=nil;の分散型委員会によって運営され、ブロックを構築し、スライス間のトランザクションを管理する。さらに、各スライスは有効性の証明を生成し、その証明は集約のためにメインスライスに送られ、その後イーサ上で公開・検証される。
これらの技術はどちらも、個々のマシンが担うべき負荷を軽減し、ネットワーク全体のスケーラビリティを向上させます。
では、水平スケーリングのトレードオフは何でしょうか?それは、ネットワークとコンセンサスの複雑さと、マシンまたはシャード間の非同期通信です。
イーサスケーラビリティの最終局面
水平スケーリングも垂直スケーリングも、モジュール型やモノリシックなアーキテクチャに限定されるものではありません。そのため、Horizontal vs. Vertical Scalingフレームワークは、モジュラー型ブロックチェーンをよりスケーラブルにするための新しいソリューションを探求する余地を提供しています。
例えば、モジュール式スタックのレイヤーを垂直にスケールさせるという選択肢もあります。一般的なアプローチは、並列仮想マシンを実装することで、実行スループットを向上させることです。前述したように、EclipseはSVMとStarknetのような他の Rollupsを活用して、並列化のためのBlockSTMを実装しています。
しかし、垂直スケーリングは常に単一マシンの制約によって制限され、物理法則を破ることはできません。
1つの解決策は、シャーディングによる水平スケーリングを選ぶことかもしれません。
現在のモジュール設計は、水平スケーリングの可能性に完全に触れ始めたばかりです。シャーディングを使えば、(タスクを共有する2~3台のマシンだけでなく)任意の数のマシンの計算能力を活用することができます。
言い換えれば、多くのマシンで同じ種類のタスクを並列に実行することができます。これはEthernetとCelestiaがそれぞれDankshardingとdata shardingで達成しようとしていることです。しかし、シャーディングは本質的にデータ・アベイラビリティ・レイヤーに限定されるものではなく、(=nil; L2の場合のように)実行と組み合わせることもできる。
モジュール式スタックによって達成される水平スケーリングと、シャーディングによって提供される水平スケーリングを比較すると、シャーディングだけが唯一の方法ではないことがわかります。
モジュラースタックによるスケーリングとシャーディングによる水平スケーリングを組み合わせると、利用可能なコンピュートパワーが大幅に増加します。
しかし、私たちはもっとうまくやれるはずです......
ブロックチェーンのスケーラビリティの究極の目標は、水平方向と垂直方向のスケーリングを融合させることです。strong>水平方向と垂直方向のスケーリングにより、並列仮想マシンによるシャード化されたブロックチェーンを生み出す。
In =nil; Foundationでは、この最終的な状態設計に向けて組織的に動いています。=nil;の L2は、モジュール式で水平方向にスケーラブルなアーキテクチャ(zkSharding)と垂直方向にスケーラブルな検証器の実装(スライス内並列化)を活用することで、積極的なスケーリングロードマップを取っています。
その結果、=nil;は状態、モビリティ、ユーザーの断片化を犠牲にすることなく、グローバルスケールを達成するように設計されています。
水平方向のスケーリングとzkShardingに興味がある方は、=nil; Foundation's Discord and Xにアクセスして会話に参加してください。