# EVMの並列化最適化:ブロックチェーン性能向上の鍵EVMはイーサリアムのコア実行エンジンとして、これまで直列方式でトランザクションを処理してきました。この方法はシンプルでメンテナンスが容易ですが、ユーザー層の拡大と技術の進歩に伴い、その性能ボトルネックがますます顕著になっています。特にRollup技術が広く普及している今日、EVMの直列実行は第2層ネットワークの発展を制約する重要な要素となっています。SequencerはLayer2のコアコンポーネントとして、単一サーバー形式で全ての計算タスクを担います。他のモジュールの効率が十分に高い場合、Sequencer自体の処理能力が最終的なボトルネックとなります。あるチームはDA層とデータの読み書きモジュールを最適化することで、Sequencerが1秒あたり約2000件のERC-20転送を実行できるようにしました。この数字は一見悪くありませんが、より複雑な取引に直面すると、TPSは大幅に低下することは必然です。したがって、取引処理の並列化は今後の発展における必然のトレンドとなります。! [並列EVMの最適化パスを説明するために、例としてReddioを取り上げます](https://img-cdn.gateio.im/social/moments-6618615055b17eadfa9646a0ea71fecd)イーサリアムのコード構造において、EVMの他に、stateDBも取引実行と密接に関連するコアコンポーネントです。これはイーサリアムのアカウント状態とデータストレージを管理する役割を担っています。EVMは取引を実行するたびにstateDB内のいくつかのデータを変更し、これらの変更は最終的にグローバルステートツリーに反映されます。stateDBは、通常のアカウントとコントラクトアカウントを含むすべてのEthereumアカウントの状態を主に維持し、アカウントの残高やスマートコントラクトコードなどの情報を保存します。取引の実行中、stateDBは該当するアカウントデータを読み書きし、実行が終了した後に新しい状態を基盤となるデータベースに永久に保存します。従来の直列実行モデルでは、一つのブロック内の取引は順番に一つずつ処理されます。各取引は独立したEVMインスタンスで具体的な操作を実行しますが、すべての取引は同じstateDBを共有します。EVMは実行中にstateDBと頻繁に相互作用し、関連データを読み書きする必要があります。! [並列EVMの最適化パスを説明するために、例としてReddioを取り上げます](https://img-cdn.gateio.im/social/moments-2c09413238e16d168c5f593e2923708b)この逐次実行モードの欠陥は明らかです:取引は実行を待つためにキューに並ばなければならず、時間のかかる複雑な契約取引に遭遇した場合、後続の取引は強制的に待機するしかなく、ハードウェアリソースを十分に活用できず、処理効率を大きく制限します。このボトルネックを突破するために、業界はEVMのマルチスレッド並行最適化方案を提案しました。その核心思想は、複数のスレッドを立ち上げて同時に複数の取引を処理し、効率を大幅に向上させることです。しかし、並行実行が直面する主な課題は、状態衝突問題をどのように処理するかです。! [並列EVMの最適化パスを示す例としてReddioを取り上げます](https://img-cdn.gateio.im/social/moments-404bb55ec4d21fe81783881149ac0ad6)あるプロジェクトのEVMの並行最適化の考え方は注目に値します。彼らは各スレッドにトランザクションと一時的な状態データベース(pending-stateDB)を割り当てています。具体的な手順は以下の通りです:1. マルチスレッドによる並行取引の実行、各スレッドは互いに干渉しません。2. 各スレッドには独立したpending-stateDBがあり、トランザクションが実行されると、グローバルstateDBを直接変更するのではなく、状態の変化をpending-stateDBに一時的に保存します。3. ブロック内のすべての取引が完了した後、EVMは各pending-stateDBの状態変更を順次グローバルstateDBに同期します。! [並列EVMの最適化パスを示す例としてReddioを取り上げます](https://img-cdn.gateio.im/social/moments-fc9301b18b6299dc8f792e68961977cd)このプロジェクトは、読み取りおよび書き込み操作の最適化も行いました:- 読み取り操作の際、EVMはまずPending-stateのReadSetを確認します。必要なデータがあれば、pending-stateDBから直接読み取り、そうでなければ前のブロックのグローバルstateDBから履歴状態を読み取ります。- 書き込み操作はグローバルstateDBに直接書き込まれるのではなく、まずPending-stateのWriteSetに記録されます。トランザクションの実行が完了した後、競合検出を通じてグローバルstateDBへの統合を試みます。! [並列EVMの最適化パスを示す例としてReddioを取り上げます](https://img-cdn.gateio.im/social/moments-c62d7268de0c9ada677dc15618b1e024)状態の競合問題を解決するために、このプロジェクトは競合検出メカニズムを導入しました:- 実行中に異なるトランザクションのReadSetとWriteSetを監視し、複数のトランザクションが同じ状態項目を読み書きしている場合は衝突と見なされます。- 再実行が必要な競合トランザクションにマークする。! [並列EVMの最適化パスを説明するためにReddioを例にとります](https://img-cdn.gateio.im/social/moments-75575d5ea4bfa2edcc71ad93d3277caf)すべての取引が完了した後、複数のpending-stateDBの変更記録がグローバルstateDBに統合されます。統合が成功した後、最終的な状態がグローバル状態ツリーに送信され、新しい状態ルートが生成されます。! [並列EVMの最適化パスを示す例としてReddioを取り上げます](https://img-cdn.gateio.im/social/moments-6274c33f6c958750df5cf3e53949b7fb)マルチスレッド並列最適化はパフォーマンスを大幅に向上させ、特に複雑なスマートコントラクト取引を処理する際に顕著です。研究によると、低い競合負荷の下で、ベンチマークのTPSは従来のシリアル実行よりも3〜5倍向上しました。高い競合負荷においては、理論的にはすべての最適化手段を採用することで60倍の向上が可能です。! [Reddioを例にとり、並列EVMの最適化パスを示します](https://img-cdn.gateio.im/social/moments-4966960247a4550afa25f04eaaabbbd8)このEVMのマルチスレッド並列最適化ソリューションは、各トランザクションに一時的なステートライブラリを割り当て、異なるスレッドで並行して実行することにより、EVMのトランザクション処理能力を大幅に向上させました。読み書き操作の最適化と競合検出メカニズムの導入により、ステートの一貫性を保証しながらトランザクションの大規模な並列化を実現し、従来の直列実行モードのパフォーマンスボトルネックを効果的に解決しました。これは、イーサリアムエコシステムの将来の拡張の重要な基盤を築いています。未来の研究方向は、ストレージ効率のさらなる最適化、高い競合状況での処理ソリューションの改善、およびGPUを利用した最適化の探求などを含む可能性があります。これらの進展は、ブロックチェーン技術の継続的な発展に新たな推進力を提供します。! [並列EVMの最適化パスを示す例としてReddioを取り上げます](https://img-cdn.gateio.im/social/moments-af377193cf86df94c08df49ba217e327)
EVM並列最適化:ブロックチェーン性能向上60倍の鍵となる技術
EVMの並列化最適化:ブロックチェーン性能向上の鍵
EVMはイーサリアムのコア実行エンジンとして、これまで直列方式でトランザクションを処理してきました。この方法はシンプルでメンテナンスが容易ですが、ユーザー層の拡大と技術の進歩に伴い、その性能ボトルネックがますます顕著になっています。特にRollup技術が広く普及している今日、EVMの直列実行は第2層ネットワークの発展を制約する重要な要素となっています。
SequencerはLayer2のコアコンポーネントとして、単一サーバー形式で全ての計算タスクを担います。他のモジュールの効率が十分に高い場合、Sequencer自体の処理能力が最終的なボトルネックとなります。あるチームはDA層とデータの読み書きモジュールを最適化することで、Sequencerが1秒あたり約2000件のERC-20転送を実行できるようにしました。この数字は一見悪くありませんが、より複雑な取引に直面すると、TPSは大幅に低下することは必然です。したがって、取引処理の並列化は今後の発展における必然のトレンドとなります。
! 並列EVMの最適化パスを説明するために、例としてReddioを取り上げます
イーサリアムのコード構造において、EVMの他に、stateDBも取引実行と密接に関連するコアコンポーネントです。これはイーサリアムのアカウント状態とデータストレージを管理する役割を担っています。EVMは取引を実行するたびにstateDB内のいくつかのデータを変更し、これらの変更は最終的にグローバルステートツリーに反映されます。
stateDBは、通常のアカウントとコントラクトアカウントを含むすべてのEthereumアカウントの状態を主に維持し、アカウントの残高やスマートコントラクトコードなどの情報を保存します。取引の実行中、stateDBは該当するアカウントデータを読み書きし、実行が終了した後に新しい状態を基盤となるデータベースに永久に保存します。
従来の直列実行モデルでは、一つのブロック内の取引は順番に一つずつ処理されます。各取引は独立したEVMインスタンスで具体的な操作を実行しますが、すべての取引は同じstateDBを共有します。EVMは実行中にstateDBと頻繁に相互作用し、関連データを読み書きする必要があります。
! 並列EVMの最適化パスを説明するために、例としてReddioを取り上げます
この逐次実行モードの欠陥は明らかです:取引は実行を待つためにキューに並ばなければならず、時間のかかる複雑な契約取引に遭遇した場合、後続の取引は強制的に待機するしかなく、ハードウェアリソースを十分に活用できず、処理効率を大きく制限します。
このボトルネックを突破するために、業界はEVMのマルチスレッド並行最適化方案を提案しました。その核心思想は、複数のスレッドを立ち上げて同時に複数の取引を処理し、効率を大幅に向上させることです。しかし、並行実行が直面する主な課題は、状態衝突問題をどのように処理するかです。
! 並列EVMの最適化パスを示す例としてReddioを取り上げます
あるプロジェクトのEVMの並行最適化の考え方は注目に値します。彼らは各スレッドにトランザクションと一時的な状態データベース(pending-stateDB)を割り当てています。具体的な手順は以下の通りです:
マルチスレッドによる並行取引の実行、各スレッドは互いに干渉しません。
各スレッドには独立したpending-stateDBがあり、トランザクションが実行されると、グローバルstateDBを直接変更するのではなく、状態の変化をpending-stateDBに一時的に保存します。
ブロック内のすべての取引が完了した後、EVMは各pending-stateDBの状態変更を順次グローバルstateDBに同期します。
! 並列EVMの最適化パスを示す例としてReddioを取り上げます
このプロジェクトは、読み取りおよび書き込み操作の最適化も行いました:
読み取り操作の際、EVMはまずPending-stateのReadSetを確認します。必要なデータがあれば、pending-stateDBから直接読み取り、そうでなければ前のブロックのグローバルstateDBから履歴状態を読み取ります。
書き込み操作はグローバルstateDBに直接書き込まれるのではなく、まずPending-stateのWriteSetに記録されます。トランザクションの実行が完了した後、競合検出を通じてグローバルstateDBへの統合を試みます。
! 並列EVMの最適化パスを示す例としてReddioを取り上げます
状態の競合問題を解決するために、このプロジェクトは競合検出メカニズムを導入しました:
実行中に異なるトランザクションのReadSetとWriteSetを監視し、複数のトランザクションが同じ状態項目を読み書きしている場合は衝突と見なされます。
再実行が必要な競合トランザクションにマークする。
! 並列EVMの最適化パスを説明するためにReddioを例にとります
すべての取引が完了した後、複数のpending-stateDBの変更記録がグローバルstateDBに統合されます。統合が成功した後、最終的な状態がグローバル状態ツリーに送信され、新しい状態ルートが生成されます。
! 並列EVMの最適化パスを示す例としてReddioを取り上げます
マルチスレッド並列最適化はパフォーマンスを大幅に向上させ、特に複雑なスマートコントラクト取引を処理する際に顕著です。研究によると、低い競合負荷の下で、ベンチマークのTPSは従来のシリアル実行よりも3〜5倍向上しました。高い競合負荷においては、理論的にはすべての最適化手段を採用することで60倍の向上が可能です。
! Reddioを例にとり、並列EVMの最適化パスを示します
このEVMのマルチスレッド並列最適化ソリューションは、各トランザクションに一時的なステートライブラリを割り当て、異なるスレッドで並行して実行することにより、EVMのトランザクション処理能力を大幅に向上させました。読み書き操作の最適化と競合検出メカニズムの導入により、ステートの一貫性を保証しながらトランザクションの大規模な並列化を実現し、従来の直列実行モードのパフォーマンスボトルネックを効果的に解決しました。これは、イーサリアムエコシステムの将来の拡張の重要な基盤を築いています。
未来の研究方向は、ストレージ効率のさらなる最適化、高い競合状況での処理ソリューションの改善、およびGPUを利用した最適化の探求などを含む可能性があります。これらの進展は、ブロックチェーン技術の継続的な発展に新たな推進力を提供します。
! 並列EVMの最適化パスを示す例としてReddioを取り上げます