サイドチェーン vs ロールアップ: スケーラビリティソリューションの違いと選択
原文标题:《サイドチェーンとロールアップ:dapp開発のための違いを解説》
撰文:エマニュエル・アウォシカ
編纂:深潮 TechFlow
サイドチェーンとロールアップは、ブロックチェーンのスケーラビリティ問題を解決するための2つのソリューションです。この2つのソリューションの核心的な考え方は、リソースが制限されたブロックチェーン(例えば、イーサリアム)から、スケール化の最適化のために特別に設計された独立したブロックチェーンに計算を移すことです。このアプローチは、取引ごとのコストを削減し、遅延を減少させ、全体的なスループットを向上させるなどの利点をもたらします。しかし、類似点はそれだけです。
サイドチェーンとロールアップは、その拡張方法に根本的に異なり、設計上の決定やトレードオフにも違いがあります。これら2つのソリューションを利用してスケーラブルなdappを構築しようとする開発者にとって、それらの違いを理解することは非常に重要です。
この記事では、ロールアップとサイドチェーンの概要を示し、アーキテクチャ、安全性の保証、拡張性能などの面での違いを探ります。
サイドチェーンとは?
サイドチェーンは、別のブロックチェーン(「メインチェーン」と呼ばれる)と並行して動作するブロックチェーンネットワークです。通常、サイドチェーンは双方向のクロスチェーンブリッジを介してメインチェーンと接続され、2つのネットワーク間で資産や契約の状態、マークル証明、特定の取引の結果などの任意のデータを転送することが可能です。
ほとんどのサイドチェーンは独自のコンセンサスメカニズムとバリデーターを持ち、メインチェーンとは別に運営されています。これにより、サイドチェーンは他のブロックチェーンに依存せずに取引を決済し、完了することができます。しかし、これはまた、サイドチェーンにブリッジされた資金の安全性が、バリデーター間の悪意のある行動を防ぐための強力な暗号経済的インセンティブの存在に依存することを意味します。
サイドチェーンの種類
EVM互換と非EVMサイドチェーン:EVM互換のサイドチェーンは、イーサリアム仮想マシン(Ethereum Virtual Machine)のカスタム実装を使用しており、この仮想マシンはイーサリアム上でスマートコントラクトをデプロイするための実行環境です。実際、これらのブロックチェーンのほとんどは、go-ethereum(Gethとも呼ばれる、イーサリアムプロトコルの最も人気のある実装)を基にしてフォークされています。
イーサリアム設計のほとんどの特徴(スマートコントラクトのサポートなど)を保持しつつ、EVM互換のサイドチェーンは、特にコンセンサスメカニズムにおいて、実行効率とスループットを向上させるために他の面で最適化されています。現在、EVM互換のサイドチェーンは、SolidityなどのEVM言語で書かれたスマートコントラクトの大部分を実行しており、分散型アプリケーションのユーザーにかかるコストと遅延を削減しています。
非EVMサイドチェーンは異なる仮想マシンアーキテクチャを実装しており、イーサリアムネイティブのdappを大量のコードリファクタリングなしで実行することはできません。非EVMチェーン上で構築された開発者は、Truffle、Remix、Hardhatなどの馴染みのあるEVM開発環境やツールを使用できず、dappを作成するために他の言語(RustやGolangなど)を学ぶ必要があるかもしれません。
注意:Avalanche、Fantom、Celo、PalmはEVM互換のサイドチェーンの例です。NEAR、Solana、Algorandは非EVMサイドチェーンの例です。
提出チェーンとオプティミスティックサイドチェーン:すべてのサイドチェーンが完全に自らの安全性に依存しているわけではありません。一部のサイドチェーン、特に提出チェーンとオプティミスティックチェーンは、メインチェーンが特定の安全性の保証を提供することに依存しています。提出チェーンは定期的に別のブロックチェーンに暗号的なコミットメント(例えば、ブロックヘッダー)を提出して最新の状態を更新します。メインチェーンはこれらの状態証明を検証できませんが、誠実な参加者が無効なブロックヘッダーに対して異議を唱えることができることを保証します。
通常、これはメインチェーン上にスマートコントラクトを実装することで行われ、このスマートコントラクトはサイドチェーンバリデーターの報酬、ステーキング、ローテーション、罰則を処理します。バリデーターが証明可能な違反行為(例えば、同じ高さで2つのブロックに署名すること)を犯した場合、誰でも証拠をスマートコントラクトに提出し、そのバリデーターのステーキングを削減できます。
オプティミスティックチェーンは、バリデーターが定期的にブロックヘッダーをメインチェーンのスマートコントラクトに提出することを要求する点で似ています。しかし、オプティミスティックチェーンには独自のコンセンサスメカニズムがなく、ブロックヘッダーは単に有効であると仮定され、詐欺的な挑戦を受けるまでそのままです。したがって、オプティミスティックチェーンは、1人の(誠実な)バリデーターだけで運営できるのに対し、提出サイドチェーンは正常に運営するために複数のバリデーターを必要とします。
この2つのケースでは、誠実な参加者が親ブロックチェーンに対してサイドチェーン上で発生した悪意のある行動を証明できます。これにより、サイドチェーンの大多数のバリデーターが悪事を働いていても、ユーザーは一定の安全性を得ることができます。
ただし、誠実な参加者は、ブロックに保存された状態データにアクセスできない場合、悪意のある行動を証明することはできません。しかし、メインチェーンはサイドチェーンからブロックヘッダーのみを受け取るため(ブロック本体ではなく)、ブロックの可用性を保証することはできません。これにより、不誠実なブロック提案者がブロックデータを隠すことで不誠実な行動を行うことができます。例えば、クロスチェーンブリッジから資金を盗むことなどです。
この問題はデータ可用性問題と呼ばれ、すべてのサイドチェーン(提出チェーン、オプティミスティックサイドチェーン、ロールアップに限らず)における安全性の特性の違いの核心です。
ロールアップとは?
ロールアップは、独立した実行環境で取引を処理することによって、基盤となるブロックチェーンのスケーラビリティを向上させます。サイドチェーンと同様に、ロールアップには親ブロックチェーンとロールアップ間で資産を移動するためのクロスチェーンブリッジがあります。また、ユーザーの計算速度とコスト効率を向上させるための最適化措置も実施しています。
しかし、ロールアップは定期的にブロックをメインチェーンに提出し、メインチェーンの安全性と分散化の特性を引き継ぎます。これにより、親ブロックチェーンはロールアップに以下の安全属性の保証を提供します:
- 可用性:ロールアップブロックの可用性は保証されており、データはより分散化され、安全な親ネットワークに保存されています。例えば、ユーザーは常にクロスチェーンブリッジ契約に対してロールアップの状態の詳細(特定のトークンを所有していることなど)を証明し、ロールアップバリデーターが取引データを隠した場合でも資金を引き出すことができます。
- 有効性:母チェーンによって強制される有効性条件を満たすロールアップブロックのみが最終的に確定されます。
- 存続性:ロールアップデータが基盤層に保存されているため、誰でもロールアップの最後の有効な状態を再構築し、新しいブロックを生成できます。さらに、ユーザーはロールアップのチェーン上のスマートコントラクトに取引を送信することで、ロールアップに含めるよう強制することができます。
ロールアップの種類
ロールアップには2つの形式があります:オプティミスティック型とゼロ知識型。ゼロ知識型ロールアップ(有効性ロールアップとも呼ばれる)は、ブロックと証明を母チェーンに提出し、オフチェーン取引の正しい実行を確認します。証明がチェーン上で検証されると、そのブロックは基盤層で最終的に確定されます。
オプティミスティック型ロールアップが提出するブロックには、オフチェーン計算の有効性を証明するための証明がありません。別の当事者が「詐欺証明」によって特定の取引の結果に異議を唱えない限り、ブロックは単に有効であると仮定されます。詐欺証明は、メインチェーンの介入の下で、2つの当事者が特定の計算について争い、不誠実な側が発見されるまで続く検証ゲームの形式を取ります。
オプティミスティック型ロールアップは、状態遷移がほとんど有効であるというオプティミスティック仮定に基づいています。しかし、このオプティミスティック仮定は、経済的なインセンティブと組み合わさり、無効なブロックが長時間異議を唱えられない限り、主チェーンによって最終的に確定されることはないことを保証します。
注意:ArbitrumとOptimismはオプティミスティック型ロールアップの例です。
EVM互換性は、オプティミスティック型とゼロ知識型ロールアップの間のもう一つの注目すべき違いです。オプティミスティック型ロールアップはEVM互換ですが、ゼロ知識型ロールアップはEVM互換性において異なります。ネイティブEVM命令を証明するための証明回路は複雑でリソースを大量に消費するため、一部の有効性ロールアップは、より効率的な証明のために最適化されたカスタム仮想マシン命令セットを使用しています。
EVM互換のZK-Rollupについては、その実行環境を「ゼロ知識EVM」(ZK-EVM)と呼びます。ZK-EVMは、オフチェーンでイーサリアムスマートコントラクトを実行し、計算のすべての部分が正しく実行されたことを証明できます。したがって、無効な実行を防ぐために暗号経済的インセンティブと誠実な仮定に依存するオプティミスティック型ロールアップと比較して、ZK-Rollupはより安全であると考えられています。
Lineaは、完全なEVMサポートを持つ第2層の有効性ロールアップの例であり、開発者がイーサリアムのインフラとツールを再利用してdappを構築できるようにします。それに対して、非EVMのZK-Rollup(StarkNetなど)にデプロイするには、(a)異なるスタックを使用してスマートコントラクトを構築するか、または(b)StarkNet仮想マシンで実行するためにコードベースを変更する必要があります。
サイドチェーンとロールアップの違いは?
スループット:サイドチェーンの平均取引処理量は通常ロールアップよりも高く、メインチェーンのコンセンサスやデータ可用性に依存しないためです。例えば、サイドチェーンはより大きなブロックサイズと非常に速いブロック時間を実現できるため、より高いスループットを得ることができますが、ロールアップはそれを実現できません。
ロールアップは、取引バッチが単一のメインチェーンブロックに収まらないほど多くの取引を処理することを避けなければなりません。そうでなければ、基盤層の混雑が再び発生し、ロールアップが生成するブロックに追いつくのが難しくなります。したがって、ロールアップの母チェーンデータ帯域幅は、そのスループットに対して効果的な制限を課します。
メインチェーンの安全性に部分的に依存するサイドチェーン(提出チェーンやオプティミスティックチェーンなど)でさえ、スループットはロールアップよりも優れています。
コスト:ロールアップと比較して、ユーザーはサイドチェーンでの取引に対してより少ない手数料を支払う可能性があります。サイドチェーンとロールアップの間の他の違いと同様に、これはロールアップがメインチェーンに依存して決済と最終性を行うことに関連しています。以下は、ロールアップが発生させるいくつかの運営コスト(これらのコストはユーザーが負担します)です:
- データストレージ:ロールアップブロックを基盤層に提出することは、固定コスト(取引をブロックに含めるコスト)と可変コスト(ロールアップブロックのサイズに基づくコスト)を発生させます。したがって、ロールアップはユーザーに計算とデータの料金を請求し、データ量が多い取引はより多くの料金を支払うことになります。
- 証明生成と検証:ゼロ知識ロールアップは、基盤層の検証のために有効性証明を生成する必要があり、これに追加のコストがかかります。有効性証明を検証するには、大量のリソースを消費する必要があり、現在イーサリアム上でのコストは約500,000ガスです。
純粋なサイドチェーンは上記のコストを発生させないため、それらを使用する費用は低くなります。提出チェーンやオプティミスティックサイドチェーンは、ブロックヘッダーを提出することによっていくつかの追加コストを発生させる可能性がありますが、これらのコストは無視できる程度です。さらに、単一の取引で複数のブロックヘッダーを累積することでコストを削減できます。
最終性:完全に自らの安全性を担保するサイドチェーンは即時の最終性を持ち、過半数のバリデーターの承認を得るとブロックは撤回できません。しかし、提出チェーンやオプティミスティックサイドチェーンは、このルールには当てはまりません。なぜなら、ブロックヘッダーの最終化を遅延させる可能性のある異議を考慮しなければならないからです。
通常、ロールアップの最終性時間は純粋なサイドチェーンよりも長く、理由はさまざまです。例えば、オプティミスティックロールアップは、誠実な参加者が無効な状態更新に異議を唱えるための十分な時間を確保するために、取引の確認を遅らせます。
有効性ロールアップは即時の最終性を持ちます(検証が通過するとすぐに)が、純粋なサイドチェーンと比較するとその最終性時間は長くなります。有効性証明の生成と検証にかかるコストが高いため、シリアライザーは大量の取引を生成し、提出する前に有効性証明を蓄積する傾向があります。
安全性:ロールアップ(オプティミスティックまたはゼロ知識)の安全性は基盤となるブロックチェーンによって保証され、ユーザーの信頼仮定を減少させます。前述のように、ロールアップは(経済的に安全な)メインチェーンに依存してコンセンサスとデータ可用性を確保します(サイドチェーンとは異なります)。これにより、検閲、出金の凍結、無効な実行などのリスクが低減されます。
純粋なサイドチェーンはその安全性を自ら担保します。しかし、多様で信頼できるバリデーターを立ち上げることは難しい場合があり、これがサイドチェーンがロールアップよりも安全性が低いと見なされる理由です。
提出チェーンとオプティミスティックサイドチェーンは、純粋なサイドチェーンよりも若干安全ですが、ユーザーはバリデーターと提案者のデータ可用性を信頼しなければなりません。データ隠蔽攻撃が罰則なしで行われる場合、提出チェーンとオプティミスティックサイドチェーンには安全性の保証がありません。
クロスチェーンブリッジ:ロールアップとサイドチェーン(ほとんどの場合)は、同じ資産ブリッジングスキームを使用します:メインチェーンのスマートコントラクトでXトークンをロックし、サブチェーンでユーザーにXトークンをミントします。彼らの違いは、ブリッジ契約に預けられた資金がどのように保証されるかにあります。
ロールアップは特定の基盤層ブロックチェーンに特化しているため、通常「規範的ブリッジ」が両者を接続します。ロールアップブリッジに預けられた資金は母チェーンによって保証されます:
- 有効性ロールアップに預けられた資金は、関連する取引のバッチに対する証明がチェーン上で検証されるまで引き出すことができません。
- オプティミスティックロールアップの場合、ユーザーが資金を引き出すには、ユーザーの出金取引を含むブロックが異議のウィンドウ(約1〜2週間)終了後に挑戦されていない必要があります。
対照的に、サイドチェーンブリッジに預けられた資金の安全性はその設計に依存します。例えば、サイドチェーンが別のブロックチェーンと規範的なクロスチェーンブリッジを持っている場合、ブリッジ資金の安全性はバリデーターの誠実さに関連します。もう一つの問題は、ブリッジが全体のバリデーター(例えば、Polygon PoSブリッジ)または少数の外部バリデーター(例えば、Avalanche-Ethereumブリッジ)によって検証されるかどうかです。
ロールアップとサイドチェーンブリッジングの最終性時間の違いも、彼らの違いを説明しています。例えば、オプティミスティックロールアップのユーザーは、資金をメインチェーンにブリッジする際に、異議のウィンドウを待つ必要があるため、より多くの遅延に直面します。サイドチェーンを使用する場合、ユーザーは最終的に確定したブロックヘッダー(および必要に応じて有効なマークル証明)を受け取ると、クロスチェーンブリッジ契約から資金を引き出すことができます。
ロールアップとサイドチェーンの選択
スマートコントラクトをデプロイする際に、ロールアップを使用するかサイドチェーンを使用するかは、あなたの目標、ユーザーのフィードバック、プロジェクトのニーズによって決まります。以下は、さまざまな状況でロールアップ、サイドチェーン、またはその両方を使用する利点です。
ロールアップを使用する場合:
- あなたのユーザーは最高の安全性の保証を望んでいます。
- あなたのユーザーは、やや高いコストと増加した遅延/最終性を容認できます。ロールアップのコストはイーサリアムよりもはるかに低く、速度も速いですが(桁違いに)、これらの指標ではサイドチェーンには及びません。
- あなた(またはあなたのユーザー)は、母チェーンエコシステム(例えば、イーサリアム)とのより緊密な関係を築きたいと考えています。
- あなたはロールアップ上のDAppユーザーのユーザーエクスペリエンスを改善することを計画しています。これは、オプティミスティックロールアップから資金を引き出す際の遅延を減らすために流動性提供者を使用することや、ユーザーがあなたのスマートコントラクトと対話する際に生成される取引データを減らすためにコード最適化を実施することを意味するかもしれません。
- あなたはDAppを構築する際にEVMツールとインフラを使用したいと考えています。ほとんどのロールアップはEVM互換であり、イーサリアムと同じツール、クライアントソフトウェア、ノードAPIを使用しています。
サイドチェーンを使用する場合:
- あなたのユーザーは最低の費用で取引を行いたいと考えています。
- あなたのユーザーは、特に資金をブリッジする際に取引が迅速に処理されることを望んでいます。
- あなたのユーザーは、増加した信頼仮定と低い安全性の保証を容認できます。
- あなた(またはあなたのユーザー)は、メインチェーンエコシステムとの緊密な関係が最優先事項であるとは考えていません。
- あなたはDAppを構築するために新しいプログラミング言語、ツール、インフラのセットを学ぶことができます(非EVMサイドチェーンを使用する場合)。
サイドチェーンとロールアップの両方を同時に使用する場合:
- あなたのプロジェクトはすでに1つのブロックチェーン上で強力なネットワーク効果を築いており、複数のエコシステムに同時に拡張する準備ができています(例えば、流動性を利用するために)。
- あなたは異なるタイプのユーザーに対応し、市場の一方を疎外することを避けたいと考えています。
- あなたのプロジェクトは、クロスチェーン拡張を処理するための十分なリソースを持っています。これは、異なるブロックチェーンプラットフォーム上であなたのDAppをデプロイするために異なるチームが必要であることを意味するかもしれません。