Ethereum virtual machine (EVM) operates as a
stack machine with a depth of 1024 items (256-bit
hashes). Any implementation of the EVM (Py-EVM,
evmone,
EthereumJS, etc) most follow the instructions
in the Etherum Yellow paper. Smart contracts
are executed by compiling to opcodes which
translates to standard operations such as XOR
, AND
, ADD
, SUB
, etc together with blockchain
specific operations such as ADRESS
, BALANCE
, BLOCKHASH
, etc. There are several languages
that compile to Ethereum opcodes. Vyper (Python like) and Solidity (JavaScript like) are the most
common. There are also Yul and Yul+ which are languages closer to the EVM. Solidity is the most
widely used language from smart contract development. Solidity has similar syntax to JavaScript:
Object-oriented, curly-brackets and statically typed.
How to get started with smart contract development in Solidity? Many recommend tutorials such as CryptoZombies where you learn Solidity by making a blockchain game.