Why we need an EVM
luhuimao opened this issue · 2 comments
EVM Requirements
● Small code size (so that very many contracts from many users can be stored by one node)
● VM security designed around running untrusted code from arbitrary parties
each of these features implies big security issues. think of it, you can write a code which ping (of death) another machine or access protected files or even steal the miner's private keys. Even sandboxed a flaw could occur and file "write/read" feature could break the whole system's security. so we'll need to get rid of all these features, which is a hard task to achieve for a licensed VM. We need to remember that a Blockchain VM should be isolated whitout the capacity to communicate with the external environement.
● Multiple implementations (for cross-checking, and to mitigate developer centralization in the public chain)
● Perfect determinism (for consensus)
● Infinite loop resistance
While EVM is quite complex to deploy and code now, no thanks the stack-based bytecode, developers are able to make it readable through the ability to write smart contracts in Serpent and Solidity.
These codes makes it easier and simpler for people to use and understand. Future uses imply that it might be even easier as it gains worldwide acceptance and the codes becomes easier to learn and master.