What does the EVM do?
- The EVM (Ethereum Virtual Machine) software sits on top of the CPU of each node and reads the instructions on the smart contract, translates them then instructs the CPU to execute those instructions to then produce a result which it adds to the contract. Every node does this and should hopefully all come to the same results.
What is the format of the instructions that the EVM can read?
2. The smart contracts are written in Solidity (soon to also be Viper), where they are read then translated (compiled) into EVM byte code.
What is the relationship between the programming language Solidity and Bytecode?
3. Solidity is the language the contracts are written in (similar to English). They are then compiled into EVM byte code (the language the CPU will understand) and passed on as instructions to execute.
Why canât Bitcoin run the same type of complex programs like Ethereum can?
4. Bitcoins language, Script, is very basic and is not Turing Complete. This is for security of the network to avoid it being spammed as well as to keep the blocksize small and hence quicker transactions etc. It is large enough to program basic functions such as multisig where 2 or more people sign off a transaction though. The bitcoin developers chose to keep bitcoin as digital gold only (and possibly more as a store of value only?)
What is a Turing Complete programming language?
5. Solidity is Turing Complete, in that you can (theoretically) program anything with it. Specifically loops are allowed instructing software to perform functions many times over in response to eg different input variables.