13章イーサリアム仮想マシン(EVM)

 イーサリアムプロトコルの中心にはイーサリアム仮想マシン(Ethereum Virtual Machine)、つまりEVMがあります。名前から推測できるように、それは計算処理エンジンであり、Microsoftの.NET Frameworkの仮想マシンや、Javaなどの他のバイトコードでコンパイルされたプログラミング言語のインタープリタと大きく異なるわけではありません。この章ではEVMの詳細を見ていきます。特に、イーサリアムのステート(状態)更新に関わる命令セット、構造、操作などを見ていきます。

13.1 EVMとは何か

 EVMはイーサリアムの構成要素の1つで、スマートコントラクトをデプロイあるいは実行します。1つのEOA(外部所有アカウント)から別のEOAへの単純なトランザクションの送信に関しては、実際の所はEVMを関与させる必要はありませんが、それ以外のすべてのトランザクションに関してはEVMによって計算処理がなされた状態への更新を伴います。おおまかに言うと、イーサリアムブロックチェーン上で実行されるEVMは、それぞれ永続的なデータストアを伴い、多くの実行可能オブジェクトを格納した、グローバル分散コンピュータとみなせます。

 EVMは準チューリング完全状態マシンです。どのようなスマートコントラクトに対しても、すべての実行過程は、実行のために利用可能なガスの量によって有限の計算ステップ数に制限されるため、「準」と呼んでいます。このようにして、EVM上のプログラムの停止性問題は「解決」し(すべてのプログラムは、実行した場合にいつかは停止する)、実行が(意図せず、もしくは悪意をもって)永遠に実行され、イーサリアムプラットフォームが完全に停止する状況が回避されます。 ...

Get マスタリング・イーサリアム ―スマートコントラクトとDAppの構築 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.