開発日報

窓際エンジニアの開発備忘。日報は嘘です。

【忘備】イーサリアム基礎 ~ イーサリアム仮想マシンとコード実行 ① -概要説明- ~

イーサリアム

イーサリアムプログラム可能なブロックチェーンであり、ユーザーが任意の独自性のある複雑な処理を作成することができる。

EVM

EVMスマートコントラクトのランタイム環境として既往するイーサリアムの実行エンジンである。

  • 全ノードがEVMを保持している。
  • イーサリアムの状態を変更できる。
  • コンセンサスを達成する

EVM設計目標

EVMの設計目標は以下の通り

  • シンプルさ
  • 完全な決定性:同じ入力に対して、常に同じ出力を生成する(決定的!)。
    • 計算ステップからガス手数料を正確に見積もることができる
  • スペース最適化:計算量、メモリ、ストレージなどが可能な限り最小化されている
  • ネイティブな処理に対応:暗号処理に用いられらる特定の処理をいくつかのネイティブ処理に対応している。
  • 簡便なセキュリティ:EVM上の処理にはガスコストがかかるため、無限ループなどの悪意のある処理を実行することが難しい。

EVMとスマートコントラクトの仕組み

EVMは、

つまり、EVMはイーサリアムのスマートコントラクトのランタイムとして機能し、コードの安全な実行を保証している。

コードやトランザクションのデジタル署名による検証もEVM上で行われる。

 → EVMを通じて命令の実行が成功したときのみイーサリアムの状態を変更することができる。

サンドボックス

EVMをメインネットワークから切り離すと、独立したテスト環境として使用可能。