概要先日ブログを執筆させて頂いた際、初めてsolidity assemblyを知りました。solidity assemblyはsolidityのコード内で扱うことが出来るインラインアセンブリで、EVMをより厳密に扱うことが出来ます。ただ今までassemblyのような低レベル層の仕組みについては全く理解がなかったので、取っ掛かりとしてして今回はEVM上でバイトコードがどのように実行されるのか以下の項目に注目して調べてみました。 EVMバイトコードの構造EVMバイトコードの仕組みEVMバイトコードとOP codeの対応EVMがコントラクトを実行する際に使用する記憶領域(stack, memory, storage, calldata, returndata)外部コントラクトの関数呼び出し(function selector)※今回はsolidityのコードをRemixで実行し、Debug機能を
![EVMバイトコードの理解](https://cdn-ak-scissors.b.st-hatena.com/image/square/0d97fd1d8abbbd16b4161cdeb3170348c2b30c2f/height=288;version=1;width=512/https%3A%2F%2Ftech.bitbank.cc%2Fcontent%2Fimages%2Fsize%2Fw1200%2F2022%2F06%2F----------2022-06-20-14.16.28-1.png)