It's not clear to me the importance of the Ethereum Virtual Machine and why it is used. So it is natural to ask what would happen if EVM didn't exist? or Ethereum didn't use it.
6 Answers
First to get an idea on EVM you may refer this question on what is EVM. And then,
What would happen if the EVM didn't exist?
As I understand,
Since ethereum should provide a platform independent (Otherwise you need to deploy different contracts at different addresses for different platforms?) running environment to execute smart contracts (providing a Turing Complete language to write smart contracts is a main specialty in Ethereum ) , A VM is highly needed. But why not an existing VM is not used? Ethereum has it's on requirements other than just executing a code. This answer requirements needed for the EVM will give a good idea on that. And this comparison with JVM will give a more insight to that.
Highlighting the security aspect Ethereum Virtual machine(EVM) provides the secured run-time environment for the smart contracts in the network. Smart Contracts are open to everyone in the network and anyone in the network is allowed to deploy smart contracts. When a node need execute a smart contract function, the code is run with in the particular node.
These reasons open up a security vulnerability, unless the run-time environment is not controlled. In a worst case scenario, it may lead nodes to be unavailable and ultimately the network to be unavailable. These vulnerabilities are prevented by controlling the run-time environment by the EVM.
-
Thanks for the answer. Yes, by reading all the answers it's getting clearer to me. But I'm not sure why you brought up "security vulnerabilities."– AydinCommented Sep 30, 2017 at 15:59
-
because, smart contracts can be sent by anyone, hence untrusted. So the nodes need a security mechanism and evm provides while doing its main task of processing smart contracts. Commented Sep 30, 2017 at 16:04
-
So if ithe EVM didnt eist, smart contract are needed to provide with a existing VM to provide the run-time environment and that may not specifically catered for the security requirements in the ethereum blockchain and may be unnecessary a large one with other irrelevant features that may not be useful with ethereum Commented Sep 30, 2017 at 16:09
-
1I would leave out the arguments about the security aspect of it, it requires more accurate analysis, e.g. when user's machine is corrupted by an adversary then there's no guarantee VM executes correctly. But the rest of your answer is nice and supported with some references which is cool!– AydinCommented Oct 17, 2017 at 18:28
Ethereum provides two main services : Money transfer and Smart contracts processing. The first doesn't need a VM but the second does while a smart contract is a piece of code which needs a VM or a compiler to run it. So no VM no ability to write smart contract or advanced programs handling assets or money.
read this post to get more details about why do they creat a new VM instead using an existing one : What was the reason to invent the EVM?
Ether/Tokens will be transferable and even smartcontracts can be achieved without a VM( as seen in blockchains like Stellar). But such are limited to a few basic logical features.
The main reason why Ethereum needs an EVM is to have Turing Complete smartcontracts. i.e the ability to execute any computable piece of code(basically a "virtual CPU")
The blockchain ecosystem would have remained centralized within Bitcoin.
The EVM is the essence of the evolution to programmable blockchains.
The virtual machine is just fancy talk for scripting language. If you've studied Bitcoin, you could say that the Script language built in Bitcoin's code is the "Bitcoin Virtual Machine". It just happens that it is not Turing complete, as the Ethereum scripting language is Turing complete and has higher capabilities (albeit at the cost of more complexity).
Here is a perfect and complete answer to your question. The answer was big enough, so I wrote an article instead. I hope that it will help a lot of people.