blockchainjapan’s blog

旬のブロックチェーンを記事を厳選して提供!

Ethereum Virtual Machine(EVM)とは?


Ethereum Virtual Machine(EVM)とは?

Supra Oracles

Supraコミュニティにご参加ください:https://linktr.ee/supraoraclesjapan

EVMは、スマートコントラクトの要求を受信・実行し、ブロックチェーンをある状態から次の状態に移行させるイーサリアムのノードの集合的で分散化された計算能力を生み出します。

はじめに

Ethereum Virtual Machine(EVM)は、イーサリアム上でスマートコントラクトが展開されるサンドボックス型の実行環境であり、決定論的な計算エンジンです。EVMは実際のコンピュータのエミュレーションであり、イーサリアムの全ノードの計算とストレージの集合的抽象化で構成されていることから、仮想マシンという言葉が使われています。EVMは、数百万の実行可能なオブジェクトを含む分散型のグローバルコンピュータと考えることができ、それぞれが独自のオンチェーンデータストアを備えています。

EVMは物理的な形状を持たず、また他のコンピュータよりも限定された領域で動作しています。スマートコントラクトのトランザクションを計算するためのルールを定義して実行し、イーサリアムブロックチェーンの正規の状態を読み取って記録し、受信したスマートコントラクトの要求のバイトコードを処理します。

このように、EVMはイーサリアムの運用構造の基礎となるものです。

ステートマシンとしてのイーサリアムネットワーク

イーサリアムは、ビットコインのように単なる分散型台帳ではなく、分散型ステートマシンです。つまり、イーサリアムブロックチェーンの状態は、任意の時点で、修正されたMerkle Patricia Tree内に保持されている全てのアカウントと残高を保持する大きなデータ構造でして機能します

つまり、ユーザーは複雑なスマートコントラクトを開発しアップロードすることができ、定義された基準が満たされたときに自動的に実行されるのです。スマートコントラクトの実行後、他の多くの取引と一緒に次のブロックにバンドルされ、イーサリアムの新しい状態が更新されます。

トランザクションが実行されると、以前の状態が現在の状態に遷移し、イーサリアムのノードによって検証されなければならない新しいトランザクションのブロックが含まれます。新しいブロックは現在「マイニング」されていますが、イーサリアムのアップグレードが完了すれば、単にステイカーによって検証される仕組みになります。

イーサリアムノードは、スマートコントラクトのバイトコードを実行する責任があるため、EVMに貢献すします。EVMは、決定論的なスマートコントラクトを実施し、イーサリアムの状態のスナップショットを取得し、ある有効な状態から次の状態への移行を実行すると考えるのが最も簡単です。

分散型、コンセンサスベースの計算機であるため、EVMはしばしば準チューリング完全世界計算機として特徴付けられます。つまり、EVMはあらかじめ決められた量のガスを消費すると、実行を停止することができるため、「準」という言葉が使われています。ガス代でEVMの計算を制限しないと、サービス妨害(DoS)攻撃のように、EVMが止まらないプログラムを実行する状態「ハルティング問題」に陥る危険性があるのです。

イーサリアムチューリング完全性により、後方互換性、前方互換性、そしてまだ開発されていないスマートコントラクトも実装できる可能性を持っています。これは信じられないほどの可能性を秘めていますが、例えばビットコインのネットワークに比べてイーサリアムの予測可能性は低くなっています。

EVMはどのように機能するのか?

イーサリアムのスマートコントラクトが正しく実行されるためには、事前の条件が満たされていることを確認する必要があります。全てのイーサリアムノードはEVMインスタンスを実行し、バイトコードがこれらの標準と互換性がある限り、ネットワーク上でスマートコントラクトを実装するために同じ標準を使用することができます。例えば、ERC-20はトークンの互換性のための標準であり、ERC-721は非腐敗性トークン(NFT)が実装されるための標準です。

スマートコントラクトの中には、外部データソースからの入力を必要とする、より複雑な条件設定を伴うものがあり、ハイブリッドスマートコントラクトと呼ばれています。オラクルはハイブリッドスマートコントラクトの外部データを取得・検証し、イーサリアムブロックチェーン上での取引以外にも様々な新しいユースケースを可能にします。その他のスマートコントラクトは、2者間の取引を要求するだけで、さらに多くのスマートコントラクトがイーサリアムのインフラ内の他のスマートコントラクトに呼び出したり、決定したりできます。

そのため、EVMはイーサリアムブロックチェーンの現在の状態を追跡し、新しいトランザクションをすべて追加してブロックチェーンのその後の各状態のスナップショットを取るために、それを実行しているノード間の合意に達することによってスマートコントラクトを実行します。

つまり、ユーザー同士がスマートコントラクトを締結する際、EVMは完全に分散化された方法でその後の価値の移動を促進し、記録するエンジンであるということです。スマートコントラクトの条件が満たされ、その実行が完了すると、EVMはそのノードがコンセンサスに達し、次のブロックを生成することによって、新しい現在の状態が正確であることを保証します。

EVMは、一般的なオペレーティングシステムよりも高い抽象度で動作しています。実際、EVMはさまざまな実装を使用して実行することができ、その多くは異なる言語で記述されています。例えば、EVMの最も一般的な実装はGo言語で書かれたGethと呼ばれるものです。他にも、Rustで書かれたParityC++で書かれたAlethPythonで書かれたTrinityJavascriptで書かれたEthereumJSJavaで書かれたHyperledger Besuなどが代表的な例となります。

仮想マシンVM)は、物理マシンの計算能力を仮想アーキテクチャで近似したものです。仮想マシンは様々な種類のOSやハードウェア上で動作するため、分散型エコシステムの完璧なエンジンとなります。

開発者とネットワーク参加者は、VMを通じて、ネットワークからの許可なしに、好きなようにスマートコントラクトを構築、処理、実行することができます。彼らは、EVMの標準と互換性のあるコードをアップロードするだけでよいのです。このように、EVMはイーサリアムブロックチェーンのグローバル・プロセッサとして機能し、その蓄積されたすべての計算能力を開発者が自由に利用できます。

このように、ネットワークは非常に強力でありながらパーミッションレスで使用できるため、開発者にとってもユーザーにとっても魅力的です。オープンソースのソフトウェア実験がこれほど多く行われたことはなく、これまでにないイノベーションが期待できます。

ニュートラルな計算基盤としてのコンポーザビリティ

当然のことながら、多くのWeb3プロトコルは、EVMのインフラ、開発者ツール、そしてより広いネットワーク効果を活用するために、イーサリアムとつながろうとしています。例えば、Arbitrum、Optimism、Polygonなどのレイヤー2スケーリングソリューションはすべて、EVMのパーミッションレス互換性から利益を得ています。

また、Ethereum L2として注目されたおかげで、最近ではPolygonが独自のレイヤー1になったと主張する人さえいます。EVM互換性を持つL1ブロックチェーンには、FantomのOpera、KusamaのMoon River、AvalancheのC-Chain、Near ProtocolのAurora、CosmosのEvmos、BinanceのSmart Chainなど、数え上げればキリがありません。

EVMは、独自の生命を持つ分散型経済を生み出したエコシステムです。ガスインセンティブと無許可のP2Pスマートコントラクト機能を通じて、EVMは「世界のコンピュータ」という呼び名にふさわしい存在になっています。このプロトコルのガスシステムは、メインネットにリクエストを出す前に料金が支払われることを保証しており、システムの整合性を保護し、誠実な参加者に十分な報酬を与えることができるのです。

EVMを理解するだけで、読者はすでに、消費者、採掘者、ノード検証者、投資家、開発者、起業家、クリエイターとして、より効果的にイーサリアムのエコシステムに参加できるようになります。開発者は、様々なプログラミング言語でコードを書き、企業や小売店ユースケースを満たすdAppを構築することで、創造力を発揮することができます。

EVMの成功の鍵は、参入障壁の低さ、開発者とユーザーの巨大なネットワーク、そしてコンポーザビリティにあります。つまり、開発者とユーザーは、セキュリティやユーザー体験を向上させるあらゆるビジネスモデルの分散バージョンを構築し、それを世界と共有することができるのです。革新的な開発者と組織が手を伸ばし、それを手に入れるときが来たのです。


暗号/ブロックチェーン分野は特定のプロジェクトのみが生き残る世界ではなく、分野全体の成長が必須となります。また、理解もせずにトークンのみを追うというのは非常にナンセンスです。Supra Oraclesは、今後も継続的に教育材料を提供していきます。

ラクル・ソリューションという枠を超えて発展していく、今後のSupra Oraclesにご期待ください。

Supra Oraclesについて

Supra Oraclesは、実世界のデータを橋渡しと、金融市場のスマートコントラクトを自動化、簡素化、安全化を提供します。

Supraコミュニティにご参加ください:https://linktr.ee/supraoraclesjapan