This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
EVMの並列最適化により、イーサリアムの取引処理性能が最大60倍向上
EVM Parallel Optimization:トランザクション処理のパフォーマンスを向上
誰もが知っているように、EVMはイーサリアムのコア実行エンジンであり、スマートコントラクトの実行を担当しています。異なるノード間でのコントラクト実行結果の一貫性を確保するために、EVMは仮想マシン技術を採用し、クロスプラットフォームの互換性を実現しました。
スマートコントラクトがチェーン上にデプロイされると、まずEVMバイトコードにコンパイルされます。EVMがコントラクトを実行する際、これらのバイトコードを順番に読み込みます。各命令には対応するガスコストがあります。EVMは、命令の実行過程でのガス消費を追跡し、消費量は操作の複雑さによって異なります。
! 並列EVMの最適化パスを説明するために、例としてReddioを取り上げます
従来のEVMは、取引を直列方式で処理し、すべての取引が単一のキューで実行されます。この設計はシンプルでメンテナンスが容易ですが、ユーザーが増えるにつれてTPSとスループットの要求が高まり、直列実行の性能ボトルネックがますます顕著になり、特にLayer 2ではより明らかになります。
! 並列EVMの最適化パスを説明するために、例としてReddioを取り上げます
EVMを除いて、go-ethereumで取引実行に関連するもう一つのコアコンポーネントはstateDBで、アカウントの状態とデータストレージを管理します。EVMは取引を実行するたびにstateDB内のデータを変更し、最終的にはグローバルステートツリーに反映されます。
シリアルモードでは、取引は順番にキューに入れて実行する必要があります。時間がかかる複雑な契約取引が発生した場合、他の取引は待機するだけで、ハードウェアリソースを十分に活用できず、効率が大きく制限されます。
! 並列EVMの最適化パスを示す例としてReddioを取り上げます
この問題を解決するために、業界はEVMのマルチスレッド並列最適化ソリューションを提案しました。このソリューションは、複数のスレッドを起動して同時に複数の取引を処理することによって、効率を数倍向上させることができます。しかし、並列実行は状態の競合という課題に直面しており、適切な対策を講じる必要があります。
! 並列EVMの最適化パスを示す例としてReddioを取り上げます
いくつかのプロジェクトは、EVMの並列最適化に関する考え方として、各スレッドに一時的な状態データベース(pending-stateDB)を割り当てます。スレッドが取引を実行する際、状態の変更をpending-stateDBに一時的に保存し、グローバルstateDBを直接変更しません。すべての取引が完了した後、pending-stateDBの変更をグローバルstateDBに同期します。
! 並列EVMの最適化パスを示す例としてReddioを取り上げます
このソリューションは、読み書き操作の最適化も行っています。読み取り時には、まずpending-stateDBを確認し、存在しない場合にのみグローバルstateDBを読み取ります。書き込み操作はpending-stateDBに記録され、実行が完了した後にグローバルstateDBに統合されます。
! 並列EVMの最適化パスを説明するためにReddioを例にとります
状態の競合を処理するために、提案は競合検出メカニズムを導入しました。異なるトランザクションの読み取りおよび書き込みセットを監視し、競合が発生した場合は関連するトランザクションを再実行が必要であるとマークします。
! 並列EVMの最適化パスを示す例としてReddioを取り上げます
マルチスレッドの並列最適化により、特に複雑なスマートコントラクトを処理する際にEVMのパフォーマンスが大幅に向上しました。研究によると、低い競合負荷の下で、TPSは3〜5倍向上する可能性があります。高い競合負荷の下では、理論的には60倍に達することができます。
! Reddioを例にとり、並列EVMの最適化パスを示します
この並列最適化ソリューションは、一時的な状態ライブラリと競合検出を通じて、状態の一貫性を保証しながら取引の大規模な並列化を実現し、イーサリアムのロールアップの発展に重要な基盤を築きました。今後は、ストレージ効率の最適化、高競合シナリオの処理、GPUアクセラレーションなどの面からさらにパフォーマンスを向上させることができます。
! 並列EVMの最適化パスを示す例としてReddioを取り上げます
! 並列EVMの最適化パスを示す例としてReddioを取り上げます
! Reddioを例にとり、並列EVMの最適化パスを示します