イーサリアム仮想マシン (EVM) とは何ですか? また、どのように機能しますか?

エーテル(ETH) は、時価総額で XNUMX 番目に大きい暗号通貨であり、そのネイティブ ETH トークンにより、暗号通貨の投資家の間で人気があります。 ただし、そのネイティブの Solidity プログラミング言語と Ethereum Virtual Machine (EVM) は、開発者コミュニティから受け取る賞賛に役立ちます。 実際、 エテリアムブロック鎖 引き続けている 分散型アプリケーション(DApp) その柔軟性、利用可能な幅広い開発者ツール、およびプラットフォームの大規模なユーザー ベースにより、開発者の支持を得ています。

ブロックチェーンのアーキテクチャのコアを形成する EVM は、そのアプリケーション コードを実行するプログラムです。 スマート契約、彼らが呼ばれるように、イーサリアムネットワーク上で実行されるランタイム環境を提供します。 さらに、EVM はチューリング完全であるため、任意のプログラミング言語でコーディングされた任意のプログラムを実行できるため、開発者は急成長するカスタム スマート コントラクトと DApp を簡単に作成できます。 Web3 スペース。 

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

イーサリアム仮想マシン (EVM) とは何ですか? また、どのように機能しますか?

プログラマーによって2013年に概念化 Vitalik Buterin、イーサリアムネットワークは、イーサリアムでの在職中にギャビンウッドによって設計されたイーサリアム仮想マシン(EVM)のおかげで、DApp開発者にとって好ましいブロックチェーンとして驚異的な成功を収めています。 C++ で記述され、LLVM プロジェクト コンパイラを使用する EVM は、継続的に動作し、イーサリアム ブロックチェーン内の各ブロックの状態を決定する不変の操作を行う特別なステート マシンです。 

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

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

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

イーサリアム仮想マシンの回路図

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

実際、EVM は数千の Ethereum ノードと実行コードの間の抽象化レベルを維持する役割を担い、多くの詳細をクライアントやノードに漏らさずに一貫した結果を提供する機能として機能します。

イーサリアム仮想マシン (EVM) の目的は何ですか?

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

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

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

イーサリアム仮想マシン (EVM) の利点

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

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

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

イーサリアム仮想マシン (EVM) の欠点

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

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

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

EVMの未来

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

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

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