Conceptualized in 2013 by programmer Vitalik Buterin, the Ethereum network owes its phenomenal success as the preferred blockchain for DApp developers to the Ethereum Virtual Machine (EVM) that was designed by Gavin Wood during his tenure at Ethereum. Written in C++ and using the LLVM Project compiler, EVM is a special state machine that operates continuously and whose immutable operations determine the state of each block in the Ethereum blockchain.
The EVM not only governs what nodes can or cannot do to the distributed ledger maintained by the Ethereum blockchain but also defines the specific rules of changing state from block to block. The latter functionality is what enables the smart contract functionality that Ethereum has come to be known for.
To understand what an Ethereum Virtual Machine does, one needs to look at each of the different functions it serves in ensuring the smooth operation of the Ethereum network. For every input that it receives, the EVM produces an output that is deterministic in nature and follows a mathematical function in the simplest sense.
Operating like a stack machine that pushes transient values to and from a pushdown stack, the EVM has a depth of 1024 items, with each of them being a 256-bit word. It also maintains a temporary memory in the form of a byte array, which changes between two transactions on the Ethereum blockchain. Smart contract codes that have been compiled are executed by the EVM in the form of a collection of 140 standard opcodes, while other blockchain-specific stack operations are also implemented by it.