Homework on EVM

What does the EVM do?

  1. 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.

1 Like
  • it reads and verifies that all the conditions of the smart contract are good to go.
  • Bytecode
  • You program in solidity and then covert to bytecode for the EVM to read.
  • Because Bitcoin was made to be more like a transnational coin, more than a programmable ledger.
  • it means that you can do anything you want with it when it comes to programming.
1 Like
  1. Execute a bytecode
  2. Bytecode
  3. Solidity is compiled into Bytecode
  4. Script is not Turing complete language, Solidity is.
  5. That means the language can solve any computer science problem.
1 Like

What does the EVM do?
The EVM runs on each ETH node it will read the smart contract then tell the cpu what to do. The EVM makes sure that the smart contract stays within the EVM and not start giving commands to the cpu

What is the format of the instructions that the EVM can read?
The EVM’s syntax is bytecode.

What is the relationship between the programming language Solidity and Bytecode?
ETH Devs program in solidity then use a compilier to change to Bytecode.

Why can’t Bitcoin run the same type of complex programs like Ethereum can?
BTC is lacking the ability to carry smart contract code and check the status of smart contracts.

What is a Turing Complete programming language?
Solidity is a Turing complete language.

1 Like
  1. EVM reads the smart contract instructions in byte code, sends it to the CPU to process it and gets the results of the smart contract to be put in the block chain. EVM also provides security by forming a shield before the smart contracts are sent to be processed by the CPUs.
  2. Ethereum can read in Byte Code.
  3. Solidity is the language in which the Ethereum smart contracts are written. Solidity compilers translates the instructions of the smart code into byte code which is then read by the EVM.
  4. Bitcoin’s programming language(Script) is not Turing complete, whereas Ethereum programming language (Solidity) is Turing Complete. Hence Bitcoin can’t run the same type of complex programs like Ethereum can.
  5. Turing complete programming language are those in which any problem conceivable can be executed.
1 Like
  1. EVM reads the byte code (resulted from smart contract code compilation) and sends instructions cu CPU. It also provides security to the Ethereum smart contract execution.
  2. EVM can read byte code
  3. ByteCode is a compiled version of a Solidity smart contract.
  4. Bitcoin can’t run the same type of complex programs like Ethereum because is not Turing Complete?
  5. Turing Complete programming language provides a full-set of programming instructions with which one can program any desired functionality whereas non Turing Complete programming languages are missing some instructions (it could be loops and/or others).
1 Like

What does the EVM do?

Read and execute smart contracts on the nodes of the network.

What is the format of the instructions that the EVM can read?

EVM byte code

What is the relationship between the programming language Solidity and Bytecode?

The smart contract is written using the solidity programming language then compiled in EVM byte code

Why can’t Bitcoin run the same type of complex programs like Ethereum can?

The script programming language that bitcoin uses is not Turing complete.

What is a Turing Complete programming language?

A programming language that can does not have restrictions so anything can be programmed using a Turing complete language in theory. You can also use “loops” in Turing complete programming language which means you can tell the software to do one thing several times.

1 Like
  1. EVM or Ethereum Virtual Machine is a consensus network that processes bytecode that is compiled from smart contracts that are writen in Solidity. The EVM tells the CPU how to process the smart contract.

  2. smart contracts are written in solidity on the Ethereum network. Solidity is compiled into Bytecode that is interpreted through tyhe EVM tho the computer’s CPU.

  3. Solidity is the language develpoed for the Ethereum network. Smart contracts are written in Solidity and then compiled into Bytecode so that the contract can be interpreted by the EVM and relayed to the CPU. THE EVM is the vehicle, while solidity is the steering wheel, and byte code is the driver.this enables the EVM to execute instructions to the CPU without being interfered with by various sets of instructions.

  4. Bitcoin is not turing complete, meaning that It cannot adapt to changes in the instructions and
    loop the instructions.

  5. A turing complete language an loop instructions and continually process the same set of instructions enabling the network to adapt to changing input.

1 Like

Typed out the first three … then I saw this … well said … Cheers!

  1. EVM works on top of the nodes their CPU. it reads the smart contracts and indirectly (by ordering the CPU) executes them. Because the CPU is not in direct contact with the contract this (one way or the other) prevents the nodes from getting a sort of trojan horse like smart contract extracing data from their PC
  2. EVM reads “compiled Solidity” or any programming language added later on
  3. the smart contracts are programmed in Solidity. then it is compiled to a Bytecode which the EVM can read and use to instruct the CPU of the nodes
  4. Bitcoin is not Turin Complete. the programmability of the “smart contracts” of bitcoin is very limited because “loops” are made impossible in bitcoin in order to prevent spamming
  5. a turin complete language can solve any programmable problems.
1 Like
  1. The EVM is used to run the smart contract’s bytecode and encapsulates the code from the cpu.
  2. The EVM reads bytecode.
  3. Solidity is a high level language that is human readable and compiled to bytecode for the EVM to read.
  4. Bitcoin’s language, script, is not turing complete.
  5. A turing complete language is a language that is able to perform all programming operations.
1 Like
  1. The Ethereum virtual machine reads and executes peices of code such as smart contracts using the CPU of the node indirectly.

  2. The format of the instructions that an EVM can read is bytecode

  3. Solidity is the programming language used by developers on the ethereum blockchain. A compiler will then take the code and compile it into the format of bytecode.

4)Bitcoin cannot run the same type of programs like ethereum can because its programming language script is not turing complete. This means that it is unable to use loops to tell the software to do the same 1 thing multiple times.

  1. A turing complete programming language is a language which is able to use something called loops. This means that the programmers are able to tell the software to perform the same single action multiple times. Meaning it is able to solve all programming problems .
1 Like
  1. What does the EVM do?
    EVM, or Ethereum Virtual Machine is the ecosystem of nodes that execute all manner of smart contracts on the Eth blockchain/network.

  2. What is the format of the instructions that the EVM can read?
    Byte Code.

  3. What is the relationship between the programming language Solidity and Bytecode?
    Solidity is translated(compiled) into byte so that it can be read and executed by the EVM.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Solidity is turing complete, Bitcoin is not, severely limiting the complexity allowed on its chain. This was intentional, as the Bitcoin creators were concerned about block size and spamming on the network.

  5. What is a Turing Complete programming language?
    Script(Bitcoin) is not a Turing Complete language, meaning it’s problem solving scope is limited. A Turing Complete language, like Solidity, allows for loops and can therefore be far more complex.

1 Like
  1. It is an application running on the Ethereum nodes, which allows to execute smart contracts given a consensus between the nodes.
  2. Bytecode
  3. Solidity is run through a compiler to be translated into Bytecode so EVM can read it.
  4. Because its programming language, Script, is not Turing Complete and thus can only run simple instructions. Loops for example, are not programmable on Script.
  5. It is a language that can program basically anything.
1 Like
  1. What does the EVM do?
    Its runs the smart contract on a node.

  2. What is the format of the instructions that the EVM can read?
    bytecode

  3. What is the relationship between the programming language Solidity and Bytecode?
    Solidity code gets compiled into bytecode.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Script, the bitcoin’s programming language, is not turing complete.

  5. What is a Turing Complete programming language?
    It means you can program anything with it.

1 Like
  1. What does the EVM do?
    It runs smart contracts in a secure virtual machine isolated from the host.
  2. What is the format of the instructions that the EVM can read?
    This is called EVM byte code.
  3. What is the relationship between the programming language Solidity and Bytecode?
    Solidity is the language in which a smart contract is written and is easy to read by humans. This is than compiled into EVM byte code. Which is easy to read by the EVM.
  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Because Script is not Turing complete. Which means it cannot be used to solve all problems.
  5. What is a Turing Complete programming language?
    It is a language that can be used to solve any problem.
1 Like

Homework on EVM

What does EVM do?
EVM stands for Ethereum Virtual Machine. It runs on every node on the ethereum blockchain. It is used to run smart contracts and applications on the blockchain. This is used so that the smart contracts and apps run on EVM instead of directly running on the node. This prevents them from utilizing the actual hardware resources of the node and keeps the node and the blockchain safe.

*What is the format of the instructions that the EVM can read? *
The format of the instructions is called Ethereum Byte Code. Solidity can be compiled into Ethereum Byte Code which can then be executed on the eth blockchain.

What is the relationship between the programmin language Solidity and Bytecode?
Solidity is the programming language in which most Ethereum smart contracts are programmed. These contracts need to be compiled to Ethereum Bytecode before they can be run on EVM.

Why can’t bitcoin run the same type of complex programs like ethereum can?
The programming language of Bitcoin is not turing complete and therefore cannot perform operations like loops. As a result of this the complexity of the smart contracts on the bitcoin blockchain is very low.

*What is a Turing complete programming language?
A Turing complete programming language is a programming language that can perform complex mathematical operations like a real Turing machine. It can perform operations in loops whereas non turing complete programming languages cannot.

1 Like
  1. The EVM reads the codes on the smart contract and tells the CPU what to execute.
  2. It only reads the byte code instructions
  3. Solidity is compiling the logic and instructions into the byte code
  4. Because it run on a Script languge, This language is Turing Incomplete and cannot run loops.
  5. Turing Complete language can run loops and is much more dynamic
1 Like
  1. The EVM reads smart contracts and gives instructions to the CPU
  2. EVM reads Solidity and Viper and turns that into Bytecode.
  3. Solidity is the language and EVM reads it and turns it into Bytecode, the smart contract.
  4. Because Ethereum is Turning complete and Bitcoin is not.
  5. Can solve all complex problems and is able to do loops.
1 Like
  1. What does the EVM do? The EVM is a decentralized virtual machine. It uses the computing power of the network’s CPU’s and runs the Smart Contracts inside an isolated VM environment.

  2. What is the format of the instructions that the EVM can read? The instructions are written in Solidty code (or other compatible programming languages) and is compiled into Bytecode.

  3. What is the relationship between the programmin language Solidity and Bytecode? Solidity code is complied into Bytecode for the EVM, like how Java code is compiled inte Bytecode for the JVM (Java Virtual Machine).

  4. Why can’t Bitcoin run the smae type of complex programs like Ethereum can? Because Bitcoin is hard-coded to be digital money.

  5. What is a Turing Complete programming language? A Turing Complete programming language is a language with which you can use conditional statements and loops, and thereby in theory calculate almost anything.

1 Like