Answers to updated Homework on EVM questions:
1. What does the EVM do?
The EVM (Ethereum Virtual Machine) is the application layer that runs on the Ethereum networkâs nodes and executes the code for smart contracts.
2. What is the format of the instructions that the EVM can read?
The EVM reads Bytecode.
3. What is the relationship between the programming language Solidity and Bytecode?
Solidity is the language used by a programmer to write smart contracts for the Ethereum network. It is designed to be easily understood by humans. Then, a compiler takes the Solidity code and converts it into Bytecode to be read by the EVM in a format that is very difficult for humans to interpret but is executable by a computer.
4. Why canât Bitcoin run the same type of complex programs like Ethereum can?
The Bitcoin network was not designed with smart contracts in mind. To put it simply, the Bitcoin protocol lacks this feature. Instead, Bitcoinâs network uses a simple scripting language called âScriptâ that can be used to program transactions. The Bitcoin developers did not want to add smart contract functionality because it would cause blocks to fill up with smart contracts rather than transactions, could potentially slow down the network, would open up the network to exploits, and would necessitate a hard fork of the blockchain.
5. What is a Turing Complete programming language?
A Turing Complete language can solve any mathematical problem. Non-Turing Complete languages are limited in what problems they can solve. Examples of Turing Complete languages include JavaScript, Perl, and C++ to name a few.