コンテンツへスキップ
0%

開発者のためのEthereumスケーリングソリューションガイド

Alchemy team headshot

執筆者 Alchemy

2022年5月17日 公開読了時間 2 分

Ethereumが分散性とセキュリティを重視する設計は、トランザクション処理速度の低下につながる。これはネットワークのスループットに影響し、分散型アプリケーションのスケーリング能力に影響を与える。

Ethereumのスケーラビリティ問題を解決するために多くの設計が提案されており、それぞれ異なる利点を提供している。このガイドでは、Ethereumのスケーリングソリューションを紹介し、その仕組みと重要性について説明する。

スケーラビリティとは何か

スケーラビリティとは、機能を犠牲にすることなく使用量の指数関数的な増加に対応できるシステムの能力を指す。 ブロックチェーン技術の文脈では、スケーラビリティとはブロックチェーンが機能に影響を与えることなくトランザクションの増加をサポートできる能力を意味する。

現在、Ethereumが処理できるトランザクション数は毎秒7〜15件(TPS)に限られている。一方、Oracle DatabaseやMicrosoft SQL Serverのような従来の中央集権型データベースは、毎秒数千件のトランザクションを処理できる。

Ethereumのトランザクション毎秒(TPS)チャート

Source: Blockchair

Ethereumの設計がスケーラビリティに影響する2つの要因

Ethereumはスループットが低く処理速度が遅いが、これは分散性とセキュリティをスケーラビリティより優先しているためである(スケーラビリティトリレンマ)。

Ethereumの設計がスケーラビリティに影響を与える要因は以下の通りである。

1. Ethereumのコンセンサスアルゴリズムはトランザクションを逐次処理する

Ethereumはproof of work(PoW)を採用しており、ネットワーク上のトランザクションはすべてのノードによって受理・検証される必要がある。これにより分散性、そしてより重要なセキュリティが促進される。

欠点は、トランザクションの逐次実行がトランザクションのファイナリティ(トランザクションが確定するまでの時間)に影響を与えることだ。これがEthereumが高いTPSレートをサポートできない要因の一つとなっている。

2. Ethereumはブロックサイズを1MBに制限している

Ethereumはマイニングされたブロックが保持できるデータ量を制限している(1MB)。これは、ブロックサイズを制限することでノードがブロックチェーンの履歴をより効果的に保存できるようになり、分散性が向上するためだ。ブロックサイズを大きくすると、フルノードの運用が難しくなり、分散性が損なわれる。

しかし、1MBというブロックサイズの制限は、マイナーが1つのブロックに収められるトランザクションデータ量を減らし、ネットワークのスループットに影響を与える。ブロックサイズが小さいことは、Ethereum Virtual Machine内で操作を実行するために必要な計算リソースであるガスのコストにも影響する。

マイナーの計算能力には限りがあるため、手数料の高いトランザクションを優先せざるを得ないことが多い。これはEthereumユーザー間である種の入札競争を生み出し、トランザクション手数料の急激な上昇を引き起こす。

Ethereumのスケーリングソリューションとは何か

Ethereumのスケーリングソリューションとは、Ethereumネットワーク上でのトランザクション実行を改善するために特別に設計されたプラットフォームである。 レイヤー2ロールアップやサイドチェーンなどのEthereumスケーリングソリューションは、それぞれ異なる仕組みを使ってネットワークのスループットを向上させるプロトコルである。

Ethereumスケーリングソリューションの図

Source: Reddit

レイヤー1とレイヤー2のスケーリングソリューション

スケーリングソリューションは、実行が行われる場所によって大きく「オンチェーン」と「オフチェーン」の2種類に分けられる。

レイヤー1のスケーリングソリューション

レイヤー1のスケーリングは、ブロックチェーンネットワーク自体に変更を加え、基盤レイヤーを書き換えることを意味する。「オンチェーン」とは、Ethereumへのスケーリングアップグレードがブロックチェーン自体の上で実行されることを指す。

レイヤー1はブロックサイズの増加によりスケールできる

レイヤー1のスケーリング改善策として考えられるのが、ブロックサイズの増加である。Ethereumの1MBというブロックサイズが増加すれば、マイナーはブロックに追加のトランザクションデータを含めるためのスペースをより多く確保できる。

Ethereumのブロックサイズを増やせばTPSレートは上昇するが、副作用として中央集権化がゆっくりと進行する。ブロックサイズが大きくなるにつれてブロックチェーン自体のサイズも増大し、(スーパーコンピューターを持っていない限り)フルノードの運用が難しくなるためだ。この理由から、Ethereumコミュニティはブロックサイズの拡大をスケーリングソリューションとして採用しないことを決めている。

レイヤー1はブロックチェーンシャーディングによる並列トランザクション処理でスケールできる

ブロックチェーンシャーディングは、Ethereumが採用しているデフォルトの逐次実行モデルに代わり、トランザクションの並列実行を導入するスケーラビリティ改善策である。シャーディングでは、ブロックチェーンがより小さなチェーン(シャード)に分割され、それぞれが個別にトランザクションを検証・処理する。

現在のEthereumの仕組みを考えてみよう。

トランザクションは検証されるまでネットワーク全体にブロードキャストされる。シャーディングでは、トランザクションがすべてのノードによって承認される必要はない。代わりに、各シャードには「コレーター」と呼ばれるバリデーターがおり、トランザクションの承認を行う。

各コレーション(シャードチェーン上のトランザクションの集合)は、コレーターの3分の2の署名を得る必要がある。また、提案されたコレーションはファイナリティを達成する前にメインチェーンに追加される必要がある。これらの仕組みが合わさって、システムのセキュリティを保証している。

シャーディングにより、Ethereumは分散性やセキュリティを犠牲にすることなくTPSを増加させることができる。シャードチェーンが異なるトランザクションを並行して処理するため、ネットワーク全体の処理能力が向上する。さらに、ネットワーク参加者は暗号学的証明によってシャードのコレーションの正当性を証明することができる。

Ethereumシャーディングの図
出典:Genesis Block

Source: Genesis Block

レイヤー2のスケーリングソリューション

レイヤー2(L2)のスケーリング改善策は、メインチェーン(レイヤー1)の外で実行されることからそう呼ばれる。「オフチェーン」ソリューションとも呼ばれ、レイヤー2のスケーリングは、セキュリティをメインチェーンに依存する別のネットワーク上でトランザクションを処理することを意味する。

L2ソリューションは多くの場合、トランザクション速度とスケーラビリティを重視して設計されており、分散性とセキュリティはここでは比較的軽視されている。トランザクションデータをEthereumのメインレイヤーに投稿するため、L2はメインネットの分散性とセキュリティの恩恵を受けることができる。また、L2ソリューションはEthereumの上に構築されているため、独自のネイティブトークンを必要としない。

これらのオフチェーンプロトコルは、複数のトランザクションを単一のトランザクションに集約し、メインチェーンに追加することができる。これによりネットワークへの負荷が軽減され、利用が増加するにつれてアプリのスケールする可能性が向上する。

レイヤー2のスケーリングソリューションの例:

  • Rollups
  • ステートチャネル
  • Plasma
  • Validium

レイヤー2とサイドチェーンの違い

サイドチェーンとは、Ethereum Mainnetと連携するが、セキュリティをそれに依存しない別個のブロックチェーンである。サイドチェーンはクロスチェーンブリッジを介してEthereumと接続し、これにより両チェーン間でのアセット移転が可能になる。

サイドチェーンは、高いスループットを実現するための異なる特性を備えて設計されているため、スケーラビリティにおいて優れている。例えば、Polygonサイドチェーンはより高速なトランザクションのためにproof of stake(PoS)コンセンサスアルゴリズムを採用している。

レイヤー2ソリューションとサイドチェーンの主な違いは、そのセキュリティ保証にある。L2ネットワークはEthereumのセキュリティ保証の恩恵を受けるが、サイドチェーンはそうではない。

サイドチェーンは自身のコンセンサスメカニズムによってセキュリティが保たれるのに対し、L2はEthereumのコンセンサスの恩恵を受ける。これが、多くの人がL2をサイドチェーンよりも安全だと考える理由である。

なぜEthereumにスケーリングソリューションが必要なのか

優れたEthereumのスケーリングソリューションは、web3開発者とユーザーに対して、トランザクションのセキュリティを保ちながら、より低いガス代とより高速なトランザクションを提供する。

Ethereumにスケーリングソリューションが必要な理由は以下の通りである。

1. トランザクション手数料の低下

Ethereumのガス代問題は広く批判の的となってきた。スケーリングの改善によりネットワークの混雑を緩和し、トランザクションコストを大幅に削減できる。

ガス代の低下は、ユーザー体験の向上とアプリの採用率上昇につながる。ユーザーはトランザクションの失敗や法外なガス代を心配する必要がなくなる。

2. より高速なトランザクション

多くのスケーリングソリューションは、Ethereumがより短時間でより多くのトランザクションを処理できるようにするために特別に開発されたものである。

例えば、ロールアップは数千件のオフチェーントランザクションを単一のオンチェーントランザクションにまとめることができる。同様に、シャーディングはトランザクションの並列処理を可能にすることでスループットを向上させる。

これらの改善の結果として、毎秒トランザクション数(TPS)レートが上昇する。推定値には幅があるが、多くの人はL2とシャーディングによりEthereumのTPSが数千に達すると予測している。

3. セキュリティの向上

L2はネットワークのセキュリティを低下させることなくEthereumをスケーリングする優れた方法である。オンチェーンのスケーリングとは異なり、オフチェーンのスケーリングプロジェクトはEthereumの分散性に影響を与えない。

これらのL2は別個のチェーンであるにもかかわらず、そのセキュリティはEthereumブロックチェーンと密接に結びついている。これは、ユーザーが資産を危険にさらすことなく、これらのプロジェクトと安全にやり取りし、スケーラビリティの恩恵を享受できることを意味する。

最も一般的な5つのEthereumスケーリングソリューション

最も一般的な5つのEthereumスケーリングソリューションは、ロールアップ、サイドチェーン、ステートチャネル、Plasmaチェーン、Validiumである。

1. Rollups

ロールアップは、オフチェーンで実行された複数のトランザクションを組み合わせ(「ロールアップ」し)、バッチとしてメインチェーンに渡す。1つのロールアップには数百、数千件ものトランザクションが圧縮されて含まれることがあり、メインチェーンが処理しなければならないトランザクション量を削減する。

スケーラビリティの改善に加えて、ロールアップはEthereum自体に近いレベルのセキュリティを提供する。これは、ロールアップ内のトランザクションがL1チェーンに固定されており、トランザクションのファイナリティが保証されるためである。

ロールアップには主にオプティミスティックロールアップとゼロ知識ロールアップの2種類がある。それぞれ、トランザクションがどのように計算され、Ethereumに投稿されるかが異なる。

ゼロ知識ロールアップ、すなわちZKロールアップは、計算をオフチェーンで実行し、Succinct Non-Interactive Argument of Knowledge(SNARK)またはSuccinct Transparent Argument of Knowledge(STARK)と呼ばれる暗号学的証明を生成する。これらの**「validity proof(有効性証明)」**は、トランザクションバッチの妥当性をメインチェーン上のノードに保証する。

オプティミスティックロールアップは、デフォルトでトランザクションが有効であると仮定し、すべてのトランザクションバンドルに対して有効性証明を生成しない。ただし、オプティミスティックロールアップ内のトランザクションの有効性は**fraud proof(不正証明)**によって異議を申し立てることができる。

では、両方のロールアップ方式を比較するとどうなるか。ZKロールアップは有効性証明を生成するためより安全だが、その分オプティミスティックロールアップよりも処理が遅くなる。

ZKロールアップは複雑な仕組みであるため、EVM互換性をプログラムすることが難しい。その結果、ZKロールアップはオプティミスティックロールアップと比較して機能が限定されている。

Polygonは、Hermez 2.0の計画によりゼロ知識EVM(zkEVM)を開発中で、ゼロ知識ロールアップの機能をEthereumネットワークに拡張しようとしている。

オプティミスティックロールアップを使用するEthereum L2

  • Optimism
  • Arbitrum
  • Boba Network
  • Immutable X

ZKロールアップを使用するEthereum L2

  • zkSYNC
  • Loopring
  • dYdX
  • StarkNet

開発者として、dAppにロールアップを組み込むことで、トランザクションのファイナリティとスケーラビリティを改善できる。これにより、ユーザーはEthereumで頻繁に発生する高いガス代、トランザクションの失敗、処理速度の遅さを経験せずに済む。

2. サイドチェーン

サイドチェーンは、Ethereum Mainnetと並行して動作する別個のブロックチェーンであるレイヤー2ソリューションの一種である。これらの違いには、暗号経済的インセンティブやコンセンサスメカニズムなどが含まれる場合がある。

Ethereum向けに特別に設計されたサイドチェーンはEthereum Virtual Machine(EVM)との互換性を持ち、スマートコントラクトをサポートできる。これは、サイドチェーン上にプロジェクトをデプロイし、そのスケーラビリティの改善をアプリのために活用できることを意味する。

クロスチェーンブリッジは、サイドチェーンをEthereumのスマートコントラクトプラットフォームに接続するために必要である。名前が示す通り、ブロックチェーンブリッジはユーザーがメインチェーンとサイドチェーンの間を移動するための入口を提供する。

ブリッジを使用するには、元のチェーン上でいくらかのアセット(この場合はETH)をロックする必要がある。その後、同等量のアセットがサイドチェーン上で生成され、ウォレットに預けられる。

その後、サイドチェーン上で自由に取引を行い、その優れたトランザクション処理能力を活用できる。前述の通り、サイドチェーンはスケーラビリティを提供するために設計されており、それを実現するために異なる仕組みを採用している。

Ethereumサイドチェーンの例:

  • Polygon
  • xDAI
  • SKALE

その他の代替レイヤー1(L1)ブロックチェーンも、特にEVM互換のブロックチェーンであれば、Ethereumのサイドチェーンとして機能することができる。これらの代替L1は、多くの場合、低いガス代、より優れたトランザクションファイナリティ、場合によってはより豊富な機能といった利点を提供する。

EVM互換L1の例:

  • Avalanche
  • Fantom
  • Binance Smart Chain

3. ステートチャネル

ステートチャネルは、メインチェーンがすべてのトランザクションを検証する必要なく、二者間でトランザクションを行うことを可能にするオフチェーンのスケーリングソリューションである。ステートチャネルは本質的に、必要な当事者の承認がある場合にのみ実行されるマルチシグスマートコントラクトである。

ステートチャネルの仕組み

  1. Aliceが、毎朝コーヒーを売ってくれるBobとステートチャネルを開設したいとする。彼女がチャネルに0.4 ETHを預け入れ、このトランザクションがMainnetに公開されたとしよう。

  2. このオープニングトランザクションの後、AliceとBobは望むだけオフチェーンでトランザクションを実行できる。唯一の条件は、両者がトランザクションに署名する必要があることで、つまりAliceとBobはコーヒーの支払いのたびに承認しなければならない。

  3. Aliceが預け入れた資金を使い切った場合、メインチェーン上でexit transaction(退出トランザクション)を公開できる。このトランザクションはチャネルの最後に確認された状態を反映しており、それがファイナリティのために記録される。AliceとBobは十数回取引を行ったかもしれないが、Ethereumネットワークが記録するのは入金トランザクションと退出トランザクションの2件のみである。

ステートチャネルは、長い待ち時間や高いトランザクション手数料を経験することなく、安全なオフチェーントランザクションを当事者間で行うことを可能にする。また、マイナーが処理すべきトランザクション数が減り、より高速に処理できるようになるため、スケーラビリティも向上する。

ステートチャネルを使用するEthereumスケーリングソリューション:

  • Raiden Network
  • Connext Network
  • Celer Network

4. Plasmaチェーン

Plasmaのホワイトペーパーでは、メインのブロックチェーンすなわち「ルートチェーン」から派生する「チャイルドチェーン」という概念が紹介されている。Plasmaチェーンはトランザクションを検証できるが、ルートチェーンのセキュリティに依存している。トランザクションの有効性を証明するため、チャイルドチェーンは暗号学的証明をルートチェーンに提出する。

Plasmaチェーンは、スマートコントラクトを介してEthereumブロックチェーンと接続する点でサイドチェーンに似ている。Plasmaチェーンを使用するには、チャイルドチェーン上でトークンを取得する前に、ルートチェーン上のスマートコントラクトにETHをロックする必要がある。

Plasmaは、Ethereumの基盤レイヤーから直接セキュリティを得るため、L2スケーリングソリューションとみなされる。これが、Plasmaをサイドチェーンなどよりも安全にしている要因である。

Plasmaは、Ethereumのメインチェーン上の各ブロックに対してMerkle rootを公開する。ブロックルートは、トランザクションに関する情報を検証するために使用できる小さな情報である。Plasmaチェーンで攻撃が発生した場合、ユーザーは適切な証明を使って安全にメインチェーンへ退出し、資金を引き出すことができる。

Plasmaを使用するEthereumスケーリングソリューション

  • OMG Plasma
  • Gluon Network

5. Validium

Validiumは、メインのEthereumレイヤーの外で計算を実行する点でZKロールアップに似ているが、大きな違いは、ValidiumがZKロールアップのようにメインチェーンに圧縮データを投稿する代わりに「オフチェーンデータ可用性」を使用している点である。

Validiumはデータプロバイダーとともにデータをオフチェーンで保存するため、ある程度カストディアルな性質を持つ。ただし、StarkWareのような一部のソリューションはData Availability Committee(DAC)を使用して、データプロバイダーが正直に振る舞うことを保証している。

Validiumは手数料が非常に低く、トランザクションも高速である(最大100,000tps)。ただし、ZKロールアップなど他のスケーリングソリューションと比べて信頼の前提がより多く必要とされる。

Validiumを使用するETHスケーリングソリューション:

  • DiversiFi
  • Immutable X

スケーリングソリューションにはどのような欠点があるか

Ethereumのスケーリングソリューションの2つの欠点は、実装が複雑であることと、セキュリティ保証が低下する可能性があることだ。

1. 複雑さ

多くのスケーリングソリューションは実装が複雑であり、これが機能性に影響を与えることがある。例えば、Ethereum開発チームはシャーディングのリリース日を、そのアップグレードに必要な作業量のために繰り返し延期してきた。

2. セキュリティ保証の低下

多くのL2およびL1のスケーリングソリューションはセキュリティをEthereumに依存しているが、Ethereum自体ほど安全ではあり得ない。各スケーリングソリューションは、速度と引き換えに(分散性やセキュリティといった)何らかの要素を犠牲にしている。ユーザーはこれらのプラットフォームを使用する前に、こうしたリスクを十分に認識しておく必要がある。

まとめ

このガイドで取り上げたスケーリングプロジェクトは、Ethereumがスケーラビリティを追求する上で大きな役割を果たすと考えられる。ただし、それが長期的なスケールを保証するのに十分かどうかは、まだわからない。

次のdAppをL2でスケールする予定はあるだろうか。

世界最大のブロックチェーン開発プラットフォームであるAlchemyは、Arbitrum、Optimism、Polygon、StarkNetをはじめとする主要なL2をサポートしている。Alchemyの無料アカウントに登録する。

Background gradient

ブロックチェーンで魔法を生み出す

Alchemyは、最も強力なweb3開発者向けプロダクトとツールを、豊富なリソース、コミュニティ、そして卓越したサポートと組み合わせて提供します。