イーサリアムは、EVMと呼ばれるプログラムの実行環境を持っています。この記事では、EVMとは何かについて解説し、その役割や特徴を解説します。
なおプログラミングの知識は必要ないように、可能な限り専門用語を避けて解説します。5分ほどで読み終わります。
なおイーサリアムの仕組みを知りたい方は下記のリンクで詳しく解説しています。
EVM(Ethereum Virtual Machine)とは何か?
EVMとは、Ethereum Virtual Machineの略で「イーサリアム仮想マシン」です。
仮想マシンとは、簡単に言うと「コンピューターへ命令を出すための翻訳機」と思ってもらえれば問題ないです。
イーサリアムのコントラクトの実行は、専用のプログラム言語を用いて記述します。イーサリアムで最も使用されている言語は「Solidity」で、Javaに近い言語です。
この「Solidity」は、人間が理解しやすい可読性の高いプログラム言語なのですが、コンピューターには理解ができません。コンピューターが理解できるのは、数値の羅列のようなバイトコードのみです。
そこで、この「Solidity」からコンピューターが理解できる言語のバイトコードに翻訳することが必要になります。この翻訳をEVMで行なっているのです。
コントラクトコードはEVMを通じて実行されるというわけです。
コントラクトとは何か?
EVMでコントラクトコードを実行するのですが、そもそもコントラクトとは何なのでしょうか?
イーサリアムは、スマートコントラクトという機能を備えています。簡単に言うと、分散型アプリ等を作れる機能です。
イーサリアムのスマートコントラクトについて詳しくは下記で解説しています。
スマートコントラクトとは、「状態A」から、「状態B」への状態変化をブロックチェーンに書き込むことができる機能です。
ポーカーのdAppsでは、手札の状態変化や、ベットの状態変化などをコントラクトで記述しています。それらをブロックチェーンで記録することで不正を不可能にしています。
つまり、アプリの挙動やルールの記述は「Solidity」で記述し、それをEVMが解釈して、ブロックチェーンへの書き込みなどの実行を行なっているということです。
まとめ
イーサリアムにおけるEVMについて解説しました。またコントラクトとは何かについて簡単に解説しました。
まとめると以下の通りです。
EVMは、コントラクトコードを実行するための翻訳機 コントラクトコードは、主に「Solidity」で記述され「EVM」でコンピューターで解釈できる形に変換し、実行される。 コントラクトとは、状態変化を記述するプログラムで、イーサリアムの主要な機能である。