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

オプティミスティックRollupsの仕組み(完全ガイド)

Alchemy team headshot

執筆者 Alchemy

2023年8月9日 公開読了時間 2 分

かつては傍流のアイデアとみなされていたEthereum——世界初のスマートコントラクトプラットフォーム——は、この数年で大きく成長し、現在では約3,000の分散型アプリケーション、4,000以上のスマートコントラクト、そして日々90,000件を超えるトランザクションをホストしている。

しかし、Ethereum上でのアクティビティの増加には代償が伴った——スケーラビリティである。

ブロックサイズとブロック生成時間への制限は、分散性とセキュリティのために必要ではあるものの、Ethereumがスケールしてより多くのユーザーを受け入れる能力を低下させる。その結果として、多くのEthereumユーザーが馴染んでいる一連の問題——つまり高いガス代と遅いトランザクション——が生じている。

Ethereumをスケールさせるには、信頼の前提を追加することなく、ネットワークのスループットとレイテンシをスケールさせる能力を安全に高める必要がある。これはレイヤー2のRollupsやサイドチェーンなど、いくつかのスケーリングソリューションが目指していることだ。

この記事では、Ethereumの利用をより安く、より速くすることを目的としたL2 Rollupソリューションの一種であるOptimistic Rollups(ORUs)について解説する。

Optimistic Rollupsとは何か

‍Optimistic Rollupsは、計算とデータストレージをオフチェーンに移すことでEthereumのベースレイヤーのスループットとレイテンシを改善するレイヤー2(L2)構成である。 Optimistic RollupはEthereum Mainnetの外でトランザクションを処理し、ベースレイヤーの混雑を減らしスケーラビリティを改善する。

「Optimistic(楽観的)」という名称は、Optimistic Rollupsの特徴的な性質を指している。すなわち、オンチェーンにはトランザクションに関する情報をほとんど公開せず、すべてのトランザクションを自動的に有効とみなすという点だ。「Rollups」と呼ばれる理由は、Mainnetに提出する前に数千のトランザクションを集約(“roll up”)してバッチにまとめるからである。

Optimistic Rollupのアーキテクチャ

1. Optimistic Rollupへの入場

Optimistic Rollupsは、Ethereum上にデプロイされたスマートコントラクトを使って、L2チェーンとL1ブロックチェーン(Ethereum)間のやり取りを管理する。Rollupのユーザーは、Rollup上で同等の額をアンロックしてもらう前に、これらのスマートコントラクトの一つに資金をデポジットする必要がある。

sequencer(シーケンサー)と呼ばれる第三者が、Rollupコントラクトへのデポジットの証明を受け取った後、Rollup上でユーザーに資金をクレジットする。その後、ユーザーは残高を使い切るまでRollup上で自由にトランザクションを行うことができる。

optimistic rollupのアーキテクチャ
出典

2. Optimistic Rollupの利用

Rollup上では、ユーザーはトランザクションに署名し、トランザクションの順序付けと実行を担うsequencerに提出する。sequencerはトランザクションを検証し、データを圧縮してブロックにまとめ、そのバッチを単一のトランザクションとしてEthereumに提出する。

これはRollupコントラクトが関わってくるもう一つの領域だ。オンチェーンのコントラクトは、Rollupの状態のMerkleルートである「state root」を保存している。もう少し詳しく見ていこう。

State

_State_とは、ある時点においてネットワークについて入手可能な情報を指す概念である。「Rollupのstate」はL2チェーンの現在の状況を表し、既存のアカウント、残高、スマートコントラクトなどの詳細を規定する。

Rollup上で実行されるすべてのトランザクションは、そのstateに変化をもたらす——例えば、AliceがBobに5 ETHを送金すると、Aliceの残高は減少する。このように、トランザクションが実行されるとRollupは古いstateから新しいstateへ移行するため、トランザクションは_state transitions_(状態遷移)と呼ばれる。

Merkleルート

Merkleルートは、暗号学的ハッシュを用いて大量の情報をエンコードすることを可能にする。Merkleルートはまた、あるデータ(例:あるトランザクション)が、より大きなデータセット(例:トランザクションのバッチ)の一部であるかどうかを確認しやすくする。

したがって、Rollupコントラクトに保存されている「state root」は、異なる時点におけるRollupの状態を検証する暗号学的コミットメントである。sequencerがRollupコントラクトにトランザクションのバッチを提出する際には、pre-state rootと_post_-state rootの両方を含める必要がある。

  1. Pre-state root:提出されたトランザクションが実行される前のRollupの状況を表す、_古い_state root。

  2. Post-state root:提出されたトランザクションが実行された後のRollupの状況を表す、新しいstate root。

sequencerがバッチを提出すると、コントラクトは_pre_-state rootが既存のstate rootと一致するかを検証する。両者が一致すれば、コントラクトは古いstate rootを破棄し、sequencerが提示した新しいstate rootを保存する。

これは、post-state rootで参照されているトランザクションが確定し、取り消せなくなったことを意味する。なお、sequencerはバッチにまとめたトランザクションの有効性の証明を提出する必要はない。

証明が必要になるのは、verifierがfraud proofを使って不正なRollupのトランザクションを報告した場合のみである。fraud proofの仕組みについては、この記事の後の節で説明する。

optimistic rollupにおいてstate rootを生成するMerkle treeの図
出典

3. Optimistic Rollupからの退出

Alice(ユーザー)がこのRollup周りの手続きに飽き飽きして、Ethereum Mainnet上のRollupコントラクトから資金を引き出したいとしよう。そのためには、彼女の持つトランザクションがRollupのstate rootに含まれていることを証明する——お察しの通り——Merkleプルーフが必要になる。

Merkleプルーフを構築するには、最初のトランザクションデータへのアクセスが必要であり、これはsequencerが提供することが期待されている。うまくいけば、Aliceはそのデータを取得し、Merkleプルーフを作成してRollupコントラクトに提出する。

しかし、sequencerがトランザクションデータを提供することに依存すると、信頼の前提が生じる。sequencerが不正を働き、Aliceのトークンを自分のウォレットに移すトランザクションを実行し、彼女が資金の所有権を証明するために必要なデータを渡さない、ということもあり得る。sequencerがオフラインになるといった、それほど悪意のないケースでさえ、Optimistic Rollupsの分散性とセキュリティを脅かす可能性がある。

Optimistic Rollupsは、sequencerに完全なトランザクションデータをEthereumのメイン実行レイヤーに投稿するよう要求することでこの問題を解決している。この情報は「calldata」としてEthereum Mainnetに公開され、Ethereum Virtual Machineのメモリやストレージに保存するよりも安価である(これによりRollupの手数料がさらに下がる)。

これにより、2つの目的が達成される:

  1. sequencerがオフラインになった場合、別のsequencerがそのトランザクションデータを使ってRollupのstateを再構築し、ブロック生成を継続できる。

  2. Alice(ユーザー)自身がそのデータをダウンロードし、Merkleプルーフの作成に使用できる。

このオンチェーンのデータ可用性の利用こそが、Optimistic Rollupsを他のスケーリングソリューションよりもかなり安全にしている要因である。トランザクションデータがEthereum上に保存されているため、Ethereumが稼働し続けている限り、ユーザーの資金は常に安全である。

こうして、いずれかの方法でAliceは資金の所有権を証明するMerkleプルーフを作成できる。しかし、彼女は資金を引き出す前に_dispute period_(異議申立期間)が過ぎるのを待たなければならない。Optimistic Rollupsでは、dispute periodは引き出しリクエストの提出から実際に資金を受け取るまでの1〜2週間の期間である。

この期間中、誰でも特定のトランザクション、またはトランザクションのバッチが無効であると主張するfraud proofを公開できる。fraud proofが成立すると、sequencerのbond(誠実な行動の保証として提供されたもの)がスラッシュされ、Aliceの「資金」は元に戻され、「whistleblower」(verifierと呼ばれる)はその働きに対して報酬を受け取る。

誰もAliceの引き出しリクエストに異議を申し立てなければ、彼女は1〜2週間後にRollupコントラクトから資金を受け取ることができる。

fraud proofとは何か

fraud proofとは、あるstate transition(つまりトランザクション)が無効であり、その結果バッチ全体を取り消すべきであるという主張である。複雑ではあるが、fraud proofは大きく、前述のstate rootに依拠して機能する。

このプロセスは、あるパーティ(verifier)がL1チェーン上のstate rootで参照されているRollupのstateと、Rollupチェーンの実際のstateとの不一致を検出した時点で始まる。

例えば、sequencerがAliceの残高を5 ETH減らし、同額をBobの残高に加えるpost-state rootを提出したにもかかわらず、Aliceが実際には送金を一度も行っていなかった、というケースが挙げられる。

verifierはこのstate transitionに「異議を申し立て」、その無効性を証明できる。これが可能なのは、verifierがすべてのトランザクションのデータをダウンロードし、自身が持つRollup stateのコピーに適用して、post-state rootを計算するからだ。

sequencerのpost-state rootがverifierのそれと一致すれば、何も起こらない。しかし、sequencerのpost-state rootが異なる場合——おそらくAliceのケースで説明したような不正なトランザクションが含まれているためだが——verifierはfraud proofの計算をトリガーできる。

optimistic rollupのトランザクションに異議を申し立てるfraud proofプロセスの図
Source: https://ethereum.org/en/developers/docs/scaling/optimistic-rollups/#disputing-transactions

fraud proofはどのように機能するのか

以下は、fraud proofプロセスの概要である:

  1. verifierが異議申し立てを開始し、以下の情報を提供する:

    a. 争点となっているstate transition

    b. Pre-state root

    c. Rollupのstateデータ

    d. verifier自身が算出したpost-state root。

    1. 異議申立者が提供した情報などを用いて、L1チェーン上のサンドボックス環境でトランザクションが再実行される。

この「サンドボックス環境」は、Ethereum上で稼働するスマートコントラクトであり、仮想マシン(VM)としても機能する。

  1. この計算の結果得られたpost-state rootが異議申立者のものと一致すれば、sequencerが無効なstate transitionを含むバッチを実際に公開したことが確認される。

その無効なバッチ(およびそれ以降に公開された他のバッチ)は取り消され、Rollupは以前のstateに戻される。

なお、fraud proofの仕組みは、ここで説明した内容よりも複雑であることを付記しておく。

より詳しいコンテキストについては、Rollupsにおけるfraud proofに関するこの記事が参考になるだろう。

fraud proofとvalidity proofの違いは何か

fraud proofとvalidity proofの主な違いは、fraud proofがオンチェーンで計算されるという点である。Validity proof(zero-knowledge proofとも呼ばれる)はオフチェーン(つまりRollup上)で計算され、Ethereum上で検証される。

zero-knowledge proofの種類を比較した記事で説明した通り、SNARKやSTARKといったvalidity proofは、オフチェーンで実行されたトランザクションの有効性を証明するために使われる。これはzero-knowledge rollupの基盤となっている。

ZK-rollupでは、トランザクションデータを入力として、バッチごとにvalidity proofが生成される。このvalidity proofはバッチとともにEthereum Mainnetに提出され、オンチェーンのコントラクトによって検証される。これは、(Optimistic Rollupsのような)異議申し立てを待つことなく、トランザクションを即座に有効と宣言できることを意味する。

fraud proofとZK proofのもう一つの違いは、後者の方がオンチェーンでの検証がやや容易であるという点だ。スマートコントラクトが行う必要があるのは、validity proofを実行してバッチ化されたトランザクションの有効性を判定することだけである。fraud proofの場合は、fraud proofの計算を完了させる前に、state transition全体を再実行する必要がある。

Optimistic RollupsとZK Rollupsの違いは何か

Optimistic RollupsとZK Rollupsの主な違いは、前者がスマートコントラクトのサポート、引き出しの遅延、暗号経済的インセンティブへの依存、そしてセキュリティ特性において異なる点にある。

以下は、Optimistic RollupsとZK Rollupsの詳細な比較である:

Features
Optimistic Rollups
ZK Rollups
Proof
Uses fraud proofs to prove transaction validity.
Uses validity (zero-knowledge) proofs to prove transaction validity.
Capital Efficieny
Requires waiting through a 1-week delay (dispute period) before withdrawing funds.
Users can withdraw funds immediately because validity proofs provide incontrovertible evidence of the authenticity of off-chain transactions.
Data Compression
Publishes full transaction data as calldata to Ethereum Mainnet, which increases rollup costs.
Doesn't need to publish transaction data on Ethereum because ZK-SNARKs and ZK-STARKs already guarantee the accuracy of the rollup state.
EVM Compatibility
Uses a simulation of the Ethereum Virtual Machine (EVM), which allows it to run arbitrary logic and support smart contracts.
Doesn't widely support EVM computation, although a few EVM-compatible ZK-rollups have appeared.
Rollup Costs
Reduces costs since it publishes minimal data on Ethereum and doesn't have to post proofs for transactions, except in special circumstances.
Faces higher overhead from costs involved in generating and verifying proofs for every transaction block. ZK proofs require specialized, expensive hardware to create and have high on-chain verification costs.
Trust Assumptions
Doesn't require a trusted setup.
Requires a trusted setup to work.
Liveness Requirements
Verifiers are needed to keep tabs on the actual rollup state and the one referenced in the state root to detect fraud.
Users don't need someone to watch the L2 chain to detect fraud.
Security Properties
Relies on cryptoeconomic incentives to assure users of rollup security.
Relies on cryptographic guarantees for security.

主要なOptimistic Rollupブロックチェーンとは

Total Value Locked(TVL)の観点で見た主要なOptimistic Rollupブロックチェーンは、Arbitrum、Optimism、Metis Andromeda、Boba Networkである。 以下に、異なるOptimistic Rollups(ORUs)の概要を示す:

1. Arbitrum

Arbitrumは、計算とデータストレージをオフチェーンに移すことでEthereumのユーザーコストとトランザクション速度を改善するよう設計されたOptimistic Rollupプロジェクトである。Arbitrum Virtual Machine(AVM)はEVM互換のスマートコントラクトをサポートし、ユーザーはEthereumのコストのごく一部でお気に入りのアプリを利用できる。

2. Optimism

Optimismは、Ethereumのセキュリティ保証を活用するEVM互換のOptimistic Rollupチェーンである。OptimismはOptimistic Rollup(OR)構成を使って、数千のオフチェーントランザクションをまとめ、ユーザーのガス代を節約する。

3. Metis Andromeda

Metis Andromedaは、Optimistic Rollupsに基づく、スケーラブルで低コストかつ機能的なL2プロトコルである。Metis Andromedaの独自のスタックは、アプリ、DAOs、DeFiなど、さまざまなユースケースに適用できる。

4. Boba Network

Boba NetworkはOptimistic Rollupの設計でスループットをスケールさせるEthereumのL2である。Boba NetworkはLiquidity Provider(LP)サービスを提供しており、7日間のチャレンジ期間の終了を待たずに、ユーザーが即座に資金を引き出せるようにしている。

トークンを持つOptimisticブロックチェーンまたはプロジェクトは何か

以下のOptimistic Rollupプロジェクトはトークンを持っている:

  • Optimism(OP)
  • Boba Network(BOBA)
  • Metis Andromeda(METIS)

Optimistic Rollupのツール

Optimistic Rollupsは、アプリをスケールさせ、より低コストかつ効率的にスマートコントラクトとやり取りするための有用なソリューションである。ただし、まずはOptimistic Rollupsを簡単かつ安全に利用するためのさまざまなツールが必要になる。

以下は、開発者とエンドユーザー向けの各種Optimistic Rollupツールである:

Optimisticなレイヤー2ブロックチェーンへのクロスチェーンブリッジ

Optimistic RollupsはEthereumのベースレイヤー上に構築されているものの、両方のチェーン上の資産は本来的には互換性がない。しかし、クロスチェーンブリッジを使うことで、EthereumのようなL1チェーンからOptimistic Rollupへ資金を移動させることができる:

以下は、L1チェーンと異なるL2 Rollupsを接続するブリッジの例である:

Arbitrumへの、およびArbitrumからのブリッジ

  • Arbitrum Token Bridge
  • cBridge
  • Hop Protocol
  • Synapse Protocol
  • Anyway Bridge
  • DeGate Bridge

Optimismへの、およびOptimismからのブリッジ

  • Connext
  • Celer Bridge
  • Li.Fi
  • Optimism Bridge
  • Poly Network
  • Via Protocol
  • Synapse Protocol
  • Across

Metis Andromedaへの、およびMetis Andromedaからのブリッジ

  • Metis Bridge
  • cBridge
  • AnySwap
  • Synapse Protocol

Boba Networkへの、およびBoba Networkからのブリッジ

  • Across
  • Boba Standard Token Bridge/Fast Token Bridge
  • cBridge
  • Synapse Protocol

Optimistic Rollupのテストネット

テストネットは、対応するメインネットワーク(Mainnet)の挙動をシミュレートする公開ブロックチェーンネットワークである。テストネットは実際のブロックチェーンとは異なり、実際の資金を使用しないため、開発者は最小限のリスクでスマートコントラクトをデプロイしテストできる。

OptimismとArbitrumは、Ethereumの現行のテストネットであるSepoliaに対してテストを行う。KovanやRinkeby上の古いRollupテストネットは廃止されている。

まとめ

Optimistic Rollupsは、レイヤー2アーキテクチャを使ってEthereumをスケールさせる取り組みの重要な一部である。Optimistic RollupsはEthereumのセキュリティと分散性を基盤にしながら、より安価な手数料とより速いトランザクションを提供する。

AlchemyはOptimistic Rollupsに基づく2つの主要なプロジェクト、ArbitrumとOptimismをサポートしている。今すぐ無料で登録すると、Ethereumベースのoptimistic rollupsを使ってdAppをどのようにスケールできるかがわかるだろう。

よくある質問

Optimistic Rollupsとは何か

Optimistic Rollupsは、計算とデータストレージをオフチェーンに移すことでEthereumのスループットとレイテンシを改善するレイヤー2のスケーリングソリューションであり、異議が申し立てられない限りすべてのトランザクションを有効とみなす。

Optimistic Rollupに資金をデポジットするにはどうすればよいか

ユーザーはEthereum上にデプロイされたスマートコントラクトに資金をデポジットし、sequencerがそのデポジットの証明を受け取った後、Rollup上で同等額をクレジットする。

Optimistic Rollupsにおけるchallenge periodとは何か

Challenge periodとは、引き出しリクエストの提出後の1〜2週間の期間であり、この間、誰でもfraud proofを公開して無効なトランザクションに異議を申し立てることができ、それが終わるまで資金は引き出せない。

sequencerはどのような役割を果たすのか

sequencerはトランザクションの順序付けと実行を行い、トランザクションデータを圧縮してブロックにまとめ、そのバッチを単一のトランザクションとしてEthereumに提出し、デポジット後にユーザーへ資金をクレジットする。

Optimistic RollupsはZK Rollupsとどう違うのか

Optimistic Rollupsはトランザクションが有効であると仮定し、異議が申し立てられた場合にのみfraud proofを使用するのに対し、ZK Rollupsはすべてのバッチに対してvalidity proofを使用し、待機期間なしで即座に引き出しが可能である。

fraud proofとは何か

fraud proofとは、あるstate transitionが無効であるという主張であり、verifierがRollupのstateの不一致を検出した際にトリガーされ、その不正なバッチを取り消すための証拠が提出される。

Optimistic Rollupsにはなぜ引き出しの遅延があるのか

1〜2週間の引き出し遅延は、Rollupコントラクトから資金が解放される前に、verifierが不正なトランザクションを検出し異議を申し立てるための時間を確保するためである。

主要なOptimistic Rollupブロックチェーンは何か

Total Value Lockedで見た主要なOptimistic Rollupブロックチェーンは、Arbitrum、Optimism、Metis Andromeda、Boba Networkである。

Background gradient

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

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