ホーム/ガイド/市場動向/人気トピック分析/Optimistic Rollupの技術分析

Optimistic Rollupの技術分析

2023.06.10 MEXC
共有

概要

ロールアップはイーサリアム レイヤー2のスケーリングソリューションで、トランザクションとオフチェーン処理を組み合わせることで、イーサリアムトランザクションのスループットを向上させることを目的としています。 オプティミスティックは「楽観的」という意味であり、その名前通り、Optimistic Rollupは「楽観的」なメカニズムを採用しています。「Optimistic Rollup」は、レイヤー2上のすべての取引が有効であると仮定し、多くの取引をイーサリアムへの1回の送信に圧縮し、送信後1週間の真正性に対する挑戦期間を設け、その間チェーン上のどのユーザーも取引の真正性を検証することができます。 ステータスアップデートで不正が発見された場合、挑戦者に報酬が支払われます。 Optimistic Rollupは、イーサリアム レイヤー2で最も実装された革新的なソリューションであることは間違いなく、その技術的詳細は探究する価値があります。 この記事では、Optimistic Rollupの実装の詳細を簡潔に分析し、Optimistic Rollupの技術的原理を解説します。


Optimistic Rollupの動作プロセス

Optimistic Rollup レイヤー2上では、ユーザートランザクションはOptimistic Rollupのノードオペレーターに送られ、彼らは「バリデーター」と「アグリゲーター」となり、トランザクションの集約と検証を担当します。多くのトランザクションのデータを1つに圧縮する責任を持ち、他のトランザクションと同様にイーサリアムネットレイヤー1のトランザクションプールに入り、最終的にノードはパッケージされたトランザクションを受け入れ、イーサリアムネットブロックチェーン上でブロックを公開します。 誰でもOptimistic Rollupノードになることができますが、プルーフ・オブ・ステーク(PoS)と同様に、ノードはイーサリアムネットネットワークに保証金を提供する必要があります。

ノードがブロックを提出する際に状態遷移の正当性を検証することはありませんが、ブロックには1週間の「不正証明」への挑戦期間が設けられています。 挑戦期間中にブロックの正当性に異議を唱えるノードやユーザーがいなければ、そのブロックは有効化されます。「不正証明」への挑戦が行われ、成功した場合、そのブロックを公開したノードは保証金を失います。 不正行為の発見を促すため、不正を発見したユーザーに保証金が報酬として付与されます。 このように、Optimistic Rollupは暗号経済学のインセンティブを利用して、ノードの正直さと信頼性を確保しています。



データ圧縮の仕組み

通常のイーサリアム上でのトランザクション(ETHの送信など)は、通常約110バイトを消費します。 しかし、Optimistic RollupでETHを送信すると、約12バイトしか消費されません。 この効果を実現するために、Optimistic Rollupはよりシンプルでハイレベルな符号化技術を使用しています。

Optimistic Rollupのレイヤー2トランザクションでは、ナンス(nonce)は完全に省略され、ナンスは単に前の状態から復元されます。ガス代などのガス関連の問題はレイヤー2トランザクションの外に移動します。ToやFromフィールドにはイーサリアムアドレスを必要とせず、代わりにインデックスとアドレスのマッピングを保存するために状態にサブツリーが追加されます。Valueは科学的記数法で保存できるため、送金には3桁しか必要ありません。署名については、バッチ内のトランザクションをBLSで集約して署名することで、各トランザクションの署名ストレージの消費量を削減し、この署名をメッセージと送信者のセット全体に対して一度に使用してバッチチェックを行います。 同時に、このトランザクションデータは、チェーン上のガスの比較的低コストのフィールドであるCalldataフィールドに保存されます。

アップロードされるデータは、上記のトランザクションデータの内容だけでなく、バッチトランザクションの発生前後のマークルツリールート(アカウント、残高、コントラクトコードなどのステータスデータを含むため、ステータスルートとも呼ばれる)や、ステータス推移の正当性を証明(あるいは検証)するためのデータも含まれることになります。 これらのデータ圧縮技術は、Optimistic Rollupが実現するスケーラビリティの鍵となるものです。 現在、圧縮後のOptimistic Rollupは、イーサリアムの最大30倍のスループットを実現することができます。


イーサリアムへのデータ提出方法

Optimistic Rollupは、イーサリアムレイヤー1にロールアップコントラクトと呼ばれる特定のスマートコントラクトを導入し、ユーザーの残高の追跡、入出金処理、紛争解決など、ロールアップの状態を管理する役割を担っています。 Optimistic Rollupでは、複数のトランザクションを「ロールアップブロック」に束ねるノードによって、トランザクションがオフチェーンで収集・集約されます。 このブロックには、トランザクションの内容と、新しいアカウントステータスのマークルツリーのルートが含まれています。


その後、ノードは集約されたデータをcalldataとしてイーサリアムに公開します。calldataはスマートコントラクトの変更不可で、非永続的な領域であり、内部ストレージと非常によく似た動作をします。その代わり、calldataはブロックチェーンの履歴ログの一部として機能し、イーサリアムの状態の一部として保存されることはありません。calldataはイーサリアムの状態に関与しないため、チェーン上のデータ保存コストが低くなります。


ステータスのコミットメント

上記の通り、アップロードされるデータには、トランザクション内容の他に、トランザクションが行われた前後のマークルツリーのルートが含まれます。 マークルツリーのルートとは、任意の時点におけるOptimistic Rollupの状態(アカウント、残高、コントラクトコードなど)であり、Optimistic Rollupの組織形態である「ステートツリー」とも呼ばれます。Optimistic Rollupのレイヤー2トランザクションに変更があると、そのトランザクションに関連するアカウントの状態が更新され、リーフノード、ひいてはマークルツリーの情報に変更が生じます。 レイヤー2オペレーターは、レイヤー2アカウントのステートツリーをローカルに維持し、バッチトランザクションが発生する前と後にマークルツリーを記録し、バッチトランザクションがアップロードされるときにこのルートハッシュ値をアップロードします。


このマークルツリーのルート(ステートルート)は、ロールアップの最新の状態を参照するためにハッシュ化されてロールアップコントラクトに保存されます。チェーン上の各状態遷移は、新しいロールアップ状態を生成し、ノードは新しいステートルートを計算して提出します。


ノードは、ブロックを公開するときに、古いステートルートと新しいステートルートの両方を提出する必要があります。 古いステートルートがオンチェーンコントラクトの既存のステートルートと一致する場合、後者は破棄され、新しいステートルートに置き換えられます。 ノードはまた、トランザクションバッチ自体のマークルルートを提出する必要があります。これにより、誰でもマークルツリーを提出することで、その取引がブロックに含まれていることを証明することができます。 Optimistic Rollupで状態変化を証明するためにマークルツリーのルートは不可欠です。


不正証明

Optimistic Rollupでは、誰でもトランザクション情報、状態遷移情報の提供、ブロックの公開が可能であり、有効性証明を行う必要はありません。イーサリアム・ブロックチェーンのセキュリティを確保するため、Optimistic Rollupには、ユーザーがブロック(状態遷移など)に挑戦できる1週間の枠があります。


挑戦が行われると、Optimistic Rollupプロトコルは不正証明計算を開始し、チェーン上で状態遷移を引き起こしたトランザクションを再生することで新しいステートルートを計算し、得られたステートルートをシーケンサーが投稿したステートルートと比較します。 他のノードまたはユーザーが、最終ブロック状態がノードが提案した状態と異なることを見つけた場合、不正証明の挑戦は成功し状態遷移は取り消されます。 同時にノードはペナルティを受け、その保証金は没収され、挑戦者に報酬として支払われます。


不正を検出するためにイーサリアムのトランザクションを再実行するには、別のトランザクションのステートコミットメントを解放する必要があり、チェーン上で公開しなければならないデータ量が増えるだけでなく、トランザクションを再生するためにかなりのガス代が発生します。Optimistic Rollupの挑戦期間は現在1週間ですが、資本効率の問題から挑戦期間を短縮する必要性について、コミュニティで積極的な議論が交わされています。



OVM仮想マシン

Optimistic Rollupは、イーサリアムのスケーリングをサポートするだけでなく、イーサリアムのスマートコントラクトの全機能をレイヤー2フレームワークに導入し、DAppsの開発とデプロイのためのチューリング完全なOVM仮想マシンを提供します。


OVM仮想マシンは、イーサリアムのEVM仮想マシンと完全に互換性のあるレイヤー2システムに適した機能完備の実行環境です。 OVM仮想マシンを使用することで、開発者はロールアップチェーン上のOVM仮想マシンを通じてイーサリアムチェーン上のすべての操作を実行し、APIを通じてブロックチェーンとやり取りすることができます。 さらに、OVM仮想マシンはDAppsのレイヤー2への移行を容易にします。 様々なレイヤー2スケーリングソリューションを導入する代わりに、プロジェクトチームは単にOVMにアクセスし、その中の様々なレイヤー2構造を利用することができます。



最後に

現在、Optimistic Rollupプロトコルに基づいて開発された2つのレイヤー2ネットワークがあります。オプティミズム(Optimism)とアービトラム(Arbitrum)はイーサリアムスペースで最大のレイヤー2エコシステムであり、ロックされた資産は40億ドルに達し、依然として大きく成長し続けています。 UniSwap、SushiSwapなど、数多くの有名なプロジェクトもOptimistic Rollupの仲間入りをしています。


しかし、Optimistic Rollupは唯一のものではなく、ZK Rollupとの競争にもさらされています。 前述の通り、Optimistic Rollupは不正証明を採用しています。つまり、システムは取引データの正しさを楽観的に信じ、不正挑戦という経済的論理によってトランザクションの有効性を保証します。 一方、ZK Rollupは、ゼロ知識証明のスケーリングソリューションであり、オフチェーントランザクションをバッチ処理し、暗号的な有効性証明を生成して各バッチの取引の真正性を検証することに重点を置いています。 両者のメリットを検証するには、より長い時間がかかりそうです。


初心者向け特典

新規登録後、簡単に新規ユーザー特典が受け取れます。最大1000 USDTの先物ボーナスがあなたを待っています。