編集者注: この記事は「テクニカル拡張性が社会拡張性を生み出します」の精神的な続編記事です。ここをクリックしてご覧ください。
過去2年間、スケーリングに関する議論は、モジュラー型vs統合型が中心となった課題へとまとまり、定着してきました。
(暗号通貨に関する話では、「モノリシック」や「統合型」のシステムを組み合わせて話しています。過去40年間に渡って、スタックのあらゆるレイヤーにおいて、統合型システム vs モジュラー型システムの議論が行われてきた深い歴史があります。暗号通貨におけるこの議論は、新しい議論と捉えるのではなく、同じ枠組みの中であるという視点を持つべきでしょう)。
モジュラー化と統合化を考える上で、チェーンが行える最も重要な設計上の決定事項は、アプリケーション開発者にスタックの上位において、どれだけの複雑度を持たせるかということです。ブロックチェーンの顧客は、アプリケーション開発者なので、設計上の決定事項はアプリケーション開発者を念頭に置くべきです。
今日では、モジュラー化がブロックチェーンをスケールする主な手法として歓迎されています。この記事では、そういった前提の第一原則から疑問を投げかけ、モジュラーシステムの文化的神話や隠れたコストを浮き彫りにし、過去6年間にわたってこの議論を熟考してきた結論を共有します。
モジュラーシステムにより開発者への複雑性が増す
モジュラーシステムに置いて最大の隠れたコストは、開発者への複雑さです。
モジュラーシステムは、自身のアプリケーションの管理(技術的複雑性)や、他のアプリケーションや状態のやり取り(社会的複雑性)を行うため、アプリケーション開発者が管理しなければならない複雑さを大幅に増加させます。
暗号通貨システムでは、今日見られるモジュラー型ブロックチェーンは、新しい複雑性を生み出す犠牲を払いますが、理論的にはより専門化が可能です。こうした技術的・社会的複雑性は、スタック上位のアプリケーション開発者に影響を与え、最終的にはより構築が困難になります。
例えば、2023年8月時点で主要なモジュラーフレームワークであると考えられるOPスタックを考えてみましょう。OPスタックでは、開発者がLaw of Chainsを採用するか、フォークしてスタンドアローンを原則にOPスタックを管理することを絶対としています。どちらの選択肢も、ビルダーにとって多大なダウンストリームへの複雑性をもたらします。フォークして独自のルートを辿っても、新しい技術基準に準拠するためにコストを負担することになるその他のエコシステムにおけるプレイヤー(CEX、フィアットのオンランプなど)から、技術的サポートを受けられるでしょうか?「Law of Chains」を採用する場合、今現在、そしてより重要なこの先に、 どのようなルールや制約を課すことになるでしょうか?
出典: OSIモデル
現代のオペレーティングシステム(OS)は、数百のサブシステムからなる大規模で複雑なシステムです。現代のOSは、上記の画像のレイヤ2~6を取り扱います。これは、モジュール型コンポーネントを統合し、スタック上位におけるアプリケーション開発者に公開される複雑性を管理するための典型的な例です。アプリケーション開発者は、レイヤー7以下のものを扱いたくありません。だからこそ、OSが存在しているのです。OSは、アプリケーション開発者が対応する必要がないように、下位のレイヤーの複雑性を管理しています。したがって、モジュラー化は目標ではなく、目標を達成するための手段であるべきです。.
今日の世界の主要なソフトウェアシステム(クラウドバックエンド、OS、データベースエンジン、ゲームエンジンなど)は、高度に統合され、同時に多くのモジュラーサブシステムで構成されています。ソフトウェアシステムは、パフォーマンスを最大化し、開発者の複雑性を最小限に抑えるために、徐々に統合する傾向があります。ブロックチェーンも同様です。
(余談として、Ethereumの主要なブレイクスルーは、2011年から2014年のBitcoinフォークの時代から生まれた複雑性を軽減していました。モジュラー化の支持者は、データ可用性(DA)と実行を分離すべきだと主張するために、OSI(Open Systems Interconnection)モデルをしばしば強調しますが、この議論は広く誤解されています。目下の問題を正しく理解すると、逆の結論となります。例としてOSIを挙げることは、モジュラー化に関する議論というよりも、統合化に対する議論になります。)
モジュラーチェーンはコード実行を高速化しない
設計上、「モジュラーチェーン」の一般的な定義は、データ可用性(DA)と実行の分離です。ノードの1つのセットがDAを行い、他のセットが実行を行うことを指します。ノードセットは、オーバーラップをする必要は全くありませんが、可能ではあります。
実際は、DAと実行を分離しても、どちらのパフォーマンスも本質的に向上させるわけではありません。結局、世界のどこかのハードウェアがDAを行い、どこかのハードウェアが実行を行う必要があるのです。これらの機能を分離しても、パフォーマンスの向上にはなりません。ですが、分離は計算のコストを削減できますが、これには実行の集中化が必要です。
大事なことなので、繰り返して書きますが、モジュラー型のアーキテクチャでも統合型のアーキテクチャでも、どこかにあるハードウェアが作業を行うことに変わりはありません。DAや実行を他のハードウェアに任せても、本質的には双方を高速化したり、システム全体の容量が増加したりすることはありません。
モジュラー化により、多くのEVMが拡大して、ロールアップとして並行して実行され、実行が水平にスケールできると主張する人もいます。これは理論的には正しい ですが、この意見は、総システムスループットをスケーリングするという文脈で、DAと実行を分離するという基本的な前提に言及するわけではなく、シングルスレッドプロセッサとしてのEVMの制約を強調しています。
モジュラー化だけでは、スループットを向上させることはできません。
モジュラー化はユーザーのトランザクショコストを増加させる
定義上、レイヤー1とレイヤー2は、独自の状態を持つ別々の元帳です。これらの個別の状態は、レイテンシーが増加し、開発者やユーザーの複雑性が増加しますが、通信を行うことができます。(例:ブリッジ経由、LayerZeroやWormhole)。
元帳が多ければ多いほど、すべての口座の断片が持つ世界的な状態が大きくなります。これは、多くの分野にわたるチェーンやユーザーにとって、かなりひどいものです。状態の断片化は以下を引き起こします
- 流動性が低下し、テイカーのスプレッドが上昇する
- 総ガス消費量の増加(定義上、クロスチェーン取引には、少なくとも2つの元帳で、少なくとも2つのトランザクションが必要であるため)。
- 元帳全体における重複計算の増加(これによる、システム全体のスループットの低下):BinanceやCoinbaseでETH-USDCの価格が変動した際に、すべての元帳全体におけるETH-USDCプールで、裁定取引が行える様になるためです。(ETH-USDCの価格がBinanceやCoinbaseで変動するたびに、いろいろな元帳で10以上の取引が行われる様子は簡単に想像できると思います。断片化された状態の結果と して、価格を一律に保つことは、ブロックスペースを非常に非効率的に使用することになります。)
より多くの元帳を作ることは、特にDeFiに関連するすべての側面で、明確にコストを作り上げていると認識することが重要です。
DeFiへの主なインプットは、オンチェーン状態(アセットの所有者)です。チームが、アプリチェーン/ロールアップを立ち上げると、当然ながら断片化します。これは、DeFiにとって非常に悪いことで、アプリケーション開発者(ブリッジ、ウォレット、レイテンシー、クロスチェーン、MEVなど)やユーザー(スプレッドの拡大、決済時間の長期化)に向けた複雑性の管理に悪影響を及ぼします。
DeFiは、アセットが1つの元帳で発行され、単一のステートマシン内で取引が行われる場合に最適です。元帳が多ければ多いほど、アプリケーション開発者が管理しなければならない複雑性が増加し、ユーザーが負担するコストも増加します。
アプリロールアップは開発者に新たな収益化の機会をもたらさない
アプリチェーン/ロールアップの支持者は、レイヤー1やレイヤー2ではなく、ロールアップを構築すれば収益化に繋がり、MEVを自身のトークンとして取り戻せると主張しています。ですが、この考えには欠点があります。それは、アプリロールアップを実行することが、アプリケーションレイヤートークンにMEVを取り戻す唯一の方法というわけではなく、ほとんどのケースでは最適な方法ではありません。アプリケーションレイヤートークンは、汎用チェーン上のスマートコントラクト内で、ロジックをエンコードするだけで、MEVを自身のトークンにキャプ チャできます。いくつかの例を考えてみましょう。1. 清算 — CompoundやAave DAOが、清算ボットへと向かうMEVの一部をキャプチャしたいとします。これは、それぞれの契約を更新して、現在DAOへと向かう清算人に支払っている手数料の一部を支払うだけです。新たなチェーン/ロールアップを必要としません。2. オラクル — オラクルは、サービスとしてのバックランニングを提供することで、MEVをキャプチャできます。価格更新に加えて、オラクルは価格更新直後の実行が保証された任意のオンチェーントランザクションを組み合わせることができます。そのため、オラクルは、検索者、ブロックビルダーなどにサービスとしてのバックランニングを提供することで、MEVをキャプチャすることができます。3. NFTミント — NFTミントにはスキャルピングボットが溢れています。これは、漸減型利益再分配をエンコードするだけで緩和できます。例えば、誰かがNFTをNFTミントから2週間以内に再販しようとすれば、収益の100%がミントの作成者やDAOまで、再回収できます。パーセンテージは時間で変動します。
アプリケーションレイヤートークンにMEVをキャプチャすることに、普遍的な答えはありません。しかし、少し工夫をすれば、アプリ開発者は汎用チェーンでMEVを自分のトークンに簡単に取り戻すことができます。まったく新しいチェーンを立ち上げることは、ただ不要なことであり、開発者が管理するための技術的および社会的複雑性が追加され、ユーザーにとってウォレットと流動性の課題が増えます。