What is a Virtual Machine?
Before delving into the Ethereum virtual machine, you must fully understand what a virtual machine is.
A Virtual Machine or VM (virtual machine) is nothing more than a software that emulates the operation of a real computer, that is, a computer in which there are no physical components since all of them: RAM, Hard Disk, Processor and others depend on said software and are emulated by it. But it not only emulates the Hardware, but it is also capable of emulating the programs that run on it, allowing a true emulation experience of a virtual computer within a physical one.-
![EVM](/newstech/sites/default/files/inline-images/SLIDERevm12_0.png)
What is the Ethereum Virtual Machine?
The Ethereum Virtual Machine or EVM is a software capable of executing a machine with the necessary characteristics for the Ethereum blockchain to work, in it the Smart contracts written in the Solidity programming language that was created specifically for it are transformed into operation codes ( OP_Codes) and then to bytecode to be finally executed by the EVM carrying out the orders described in that code.
All this, added to the fact that the Smart contracts are stored in the different nodes of the network, make the EVM a large decentralized global computer that is capable of solving almost any mathematical problem.
The best thing about all this is that anyone can use this decentralized super computer to execute the code that they have developed, they simply have to pay a commission (fee) for the nodes to confirm the validity of the action.
![EVM](/newstech/sites/default/files/inline-images/SLIDERevm13.png)
Who created the Ethereum Virtual Machine (EVM)?
Although such a work has had the work and collaboration of many developers from around the world since 2013, the brilliant minds who are assigned the honor of its creation are Greg Colvin and Gavin Woods. While the former is the creator of the ethereum Yellow Paper, Greg Colvin has been the main developer of the EVM since its birth as an idea in the mind of Vitalik Buterin.
![EVM](/newstech/sites/default/files/inline-images/SLIDERevm14.png)
How does the Ethereum Virtual Machine work?
Since the operation of the Ethereum virtual machine is very complex and high technical knowledge is needed to understand it, I will simplify it in several points:
1. The Ethereum development team created the Solidity programming language (very similar to JavaScript) in order to facilitate the task of the programmers in charge of writing the Smart Contracts code that makes the Dapps functional.
2. This programming language is nothing more than a layer above the OP_CODES and the subsequent Bytecode to which the code written by the developer is transformed and is the one that actually compiles the EVM.
3. Each action within the network (Ether transactions, NFTs, executions within Dapps or Games) goes through this process within the EVM and is later stored in the blockchain, leaving a record in the Ethereum ledger. In short, there is no action within the blockchain that does not go through the EVM.
![EVM](/newstech/sites/default/files/inline-images/SLIDERevm15.png)
Characteristics of the Ethereum Virtual Machine
The Ethereum virtual machine is not a trivial virtual machine, it has some features worth mentioning:
* Provides a high level of security since, being limited by the Solidity language, it is capable of executing malicious code without being affected.
* The Dapps and the contracts that are executed in the EVM are completely decentralized thanks to the nodes that store a copy and verify that the entire process is correct and not modified by third parties.
* Allows the creation of compatible applications that use the decentralization of their nodes, security and power for their operation
* It is capable of executing Turing complete smart contracts, that is, it is capable of executing loops and complex structures thanks to its programming language.
* It is complicated to update since it has to be done without the network ceasing to be operational
![EVM](/newstech/sites/default/files/inline-images/SLIDERevm16.png)
What are the OP_CODES and Bytecode of the EVM?
The OP_CODES are one of the most important parts of the EVM since thanks to these it depends on the execution of the operations that are written in the code, in other words they are an intermediate language between Solidity and Bytecode (even more complex code) which it is impossible to read by humans but by machine. However, the EVM is able to read the Solidty Language > transform it to OP_CODE > Execute it in Bytecode (machine language). This would be the process that is carried out.
![EVM](/newstech/sites/default/files/inline-images/SLIDERevm17.png)
Thus, Ethereum functions as a general purpose decentralized world computer in a peer-to-peer network. Smart contracts and DApps built on the EVM could even take over the functions of the Internet as we know it. In addition, it could allow us to create more stable economies since its operation can be guaranteed and is not subject to human interpretation.