banner
ニュース センター
販売と生産における豊富な専門知識

Ethereum Virtual Machine (EVM) とは何ですか?また、どのように機能しますか?

Sep 10, 2023

Ethereum ブロックチェーンのバックボーンを形成する EVM は、DApp やその他のアプリケーションを構築するためのランタイム環境を開発者に提供します。

イーサ (ETH) は、時価総額で 2 番目に大きい暗号通貨であり、ネイティブ ETH トークンであるため、暗号通貨投資家の間で人気があります。 ただし、ネイティブの Solidity プログラミング言語とイーサリアム仮想マシン (EVM) は、開発者コミュニティからの賞賛に貢献しています。 実際、イーサリアム ブロックチェーンは、その柔軟性、利用可能な広範な開発者ツール、およびプラットフォームの大規模なユーザー ベースにより、分散型アプリケーション (DApp) 開発者を魅了し続けています。

ブロックチェーンのアーキテクチャの中核を形成する EVM は、アプリケーション コードまたはスマート コントラクト (いわゆるスマート コントラクト) を実行するプログラムであり、イーサリアム ネットワーク上で実行されるランタイム環境を提供します。 さらに、EVM はチューリング完全なので、あらゆるプログラミング言語でコーディングされたあらゆるプログラムを実行できるため、開発者は急成長する Web3 スペース向けのカスタム スマート コントラクトや DApps を簡単に作成できます。

これらの重要な機能に加えて、EVM はネットワーク内のすべてのノードにアクセスし、スマート コントラクトの実行を処理し、イーサリアム ブロックチェーン上のすべてのトランザクションを効果的に処理するため、現在存在する最も強力な仮想マシンの 1 つとなっています。

2013 年にプログラマーの Vitalik Buterin によって概念化された Ethereum ネットワークは、DApp 開発者に推奨されるブロックチェーンとして驚異的な成功を収めたのは、Gavin Wood が Ethereum 在職中に設計した Ethereum Virtual Machine (EVM) のおかげです。 C++ で書かれ、LLVM プロジェクト コンパイラを使用する EVM は、継続的に動作し、その不変操作によってイーサリアム ブロックチェーン内の各ブロックの状態が決定される特別なステート マシンです。

EVM は、イーサリアム ブロックチェーンによって維持される分散台帳に対してノードが実行できること、できないことを管理するだけでなく、ブロックごとに状態を変更するための特定のルールも定義します。 後者の機能は、イーサリアムで知られるようになったスマート コントラクト機能を可能にするものです。

イーサリアム仮想マシンの機能を理解するには、イーサリアム ネットワークのスムーズな動作を確保するために仮想マシンが果たすさまざまな機能をそれぞれ検討する必要があります。 EVM は、受け取るすべての入力に対して、本質的に決定論的な出力を生成し、最も単純な意味で数学関数に従います。

プッシュダウン スタックとの間で一時的な値をプッシュするスタック マシンのように動作する EVM は 1024 項目の深さを持ち、各項目は 256 ビット ワードです。 また、イーサリアム ブロックチェーン上の 2 つのトランザクション間で変更される一時メモリをバイト配列の形式で維持します。 コンパイルされたスマート コントラクト コードは、140 個の標準オペコードのコレクションの形式で EVM によって実行され、他のブロックチェーン固有のスタック操作も EVM によって実装されます。

したがって、EVM には、トランザクションの処理中に本質的に揮発性であるマシン状態と、イーサリアム ブロックチェーン上で維持されるさまざまなアカウントに関する情報を含むグローバルまたはワールド状態が含まれます。 すべてのアクションは EVM コードによって管理されます。EVM コード自体は、2015 年のイーサリアム ネットワークの立ち上げ以来、数回の反復を経て、現在使用されている EVM のさまざまな実装が存在するようになりました。

実際、EVM は数千のイーサリアム ノードと実行コードの間の抽象化レベルを維持する責任を負い、クライアントやノードに多くの詳細を漏らすことなく一貫した結果を提供する機能として機能します。

EVM は、重大なダウンタイムが報告されることなく、イーサリアム ネットワーク上で実行されているすべてのアプリケーションに確実に電力を供給しています。 開発者にとって、EVM は、イーサリアムでスマート コントラクトとして知られる小さな実行可能プログラムを実行する包括的なプログラムとして機能し、Solidity、Vyper、Python、Yul などのさまざまなプログラミング言語でこれらのスマート コントラクトを自由に作成できるようにします。その他。

EVM によって提供されるこの柔軟性により、イーサリアム ブロックチェーンは分散型金融 (DeFi) および非代替トークン (NFT) スペースで数千の DApp を生み出しました。 これらの各 DApp とそれを構成するスマート コントラクトはバイトコードに変換され、EVM に供給されてイーサリアム ネットワーク内のすべてのノードに分散されます。 スマート コントラクトが展開されると、EVM はすべてのノードと通信し、コンセンサスに達したときに状態変更を実行する責任を負います。

EVM はすべてのイーサリアム ノード内に挿入され、基本プログラミング言語の代わりにバイトコードを使用してスマート コントラクトを実行するため、イーサリアムが実行されるマシン コードから物理ホスト コンピューターが分離されていると言えます。

EVM の動作方法により、開発者はネットワークの残りの部分への影響や、ノード コンピュータ上でホストされているデータや個人ファイルを無視して動作する可能性を心配することなくコードを実行できます。

さらに、分散型コンセンサスを使用して、さまざまなコンピューティング環境で複雑なスマート コントラクトを実行できます。 これにより、EVM コードはすべてのノードで同じままとなるため、単一ノードの障害が DApp またはスマート コントラクトの実行に悪影響を及ぼさないことが保証されます。 さらに、アカウント データは EVM のグローバル レベルで維持されるため、開発者はカスタム スマート コントラクト コードを記述し、このグローバル データ セットにアクセスして信頼性の高い出力を生成できる個別の DApps を作成するのに最適であると考えています。

結果の神聖さにより、EVM、特にイーサリアム ブロックチェーンは一般に、DApps およびスマート コントラクト イーサリアム エコシステムの持続可能な拡大に適しています。 これに加えて、開発者が選択できる標準コードのライブラリ、EVM 互換のレイヤー 2 ブロックチェーンの数が増加し、潜在的な EVM ユースケースが多数可能になり、EVM が推奨プラットフォームである理由が簡単にわかります。 Web3開発用。

EVM によって提供される多くの利点にもかかわらず、イーサリアム上に構築する開発者や起業家は考慮する必要がある特定の欠点があります。 これらの中で最も重要なのは、イーサリアム ネットワーク上でスマート コントラクトを実行することに関連する高額な取引手数料またはガス費用です。

ETHで支払われるこれらの料金は、契約の複雑さや実行時のネットワークの混雑状況に応じて変動するため、開発者や起業家はそれに応じてサービスの価格を設定することが不可欠です。 さらに、Solidity は EVM でのコーディングに最も適した言語であるため、開発者はそれを使用して効率的なスマート コントラクトを作成するには、Solidity に関する十分な経験と、ある程度の技術的専門知識を持っている必要があることを意味します。

追加の計算要件はガスコストの増加につながり、最終的にはプロジェクトの成功に悪影響を与えるため、後者は重要です。 開発者が他の言語を使用してコードを作成することを選択した場合、EVM がコードのコンパイルを続行するため、コード内に固有の繰り返しを解決する際に注意する必要があります。 スマート コントラクトのアップグレードは後の段階で可能ですが、元のスマート コントラクトのアドレスを参照する中間スマート コントラクトの作成に関連するセキュリティ リスクが伴います。

EVM によってブロックチェーン エコシステムにもたらされた革命的な変化にもかかわらず、コードを読み取って実行するためのこのテクノロジーは、多くのブロックチェーン プロジェクトによって改良されています。

クロスチェーンの相互運用性が開発者にとって最も重要な側面であるため、多くのEVM互換ブロックチェーンが立ち上がっており、そのほとんどはイーサリアムプロトコルよりも低ガスで高速なトランザクション速度を提供しています。 その結果、これらのブロックチェーンはイーサリアムユーザーとシームレスにやり取りできるようになり、ブロックチェーンブリッジを使用して独自のネットワークへの資金送金を容易にしています。

ただし、イーサリアム プロトコルは 2022 年 9 月にマージを正常に完了したため、次の目標は EVM からイーサリアム WebAssembly (eWASM) に移行することです。 高度にモジュール化され、プラットフォームに依存しないように設計された eWASM は、イーサリアム プロトコルの次の変革者として宣伝されており、他のブロックチェーンがスマート コントラクトにもこのランタイム環境を採用するきっかけとなる可能性があります。 ただし、eWASM が EVM に取って代わるスマート コントラクトの最も信頼できるメカニズムになるかどうかは、時間が経てば解決する問題です。

リアクションを追加

リアクションを追加