Homework on EVM

1, The EVM runs on nodes participating in the Ethereum network, and is used to read and execute smart contracts. It encapsulates the smart contract execution process and manages interactions with the host CPU, thus protecting the host machine from any poorly constructed smart contract (malicious or otherwise) that could lead to a detrimental effect on the instance or the network at large.

2, The EVM reads ByteCode.

3, Solidity is a human readable program language that can be used to create smart contracts. The solidity code must then be compiled down to ByteCode before it can be deployed to the network and read by the EVM.

4, Bitcoin cannot run the same kind of complex programs because it is not Turing complete.

5, A Turing complete programming language includes the concept of loops, giving it practically limitless flexibility (while also making it more vulnerable to misuse).

1 Like
  1. Application runs on nodes it creates smart contracts and give instruction to CPU
  2. Byte Code
  3. Solidety send its code to a compiler application that compile its code and send it to byte code and then the EVM read the instruction
  4. Because it is not turing complete language
  5. It has programming ability, scripting and the opportunity to create any application on top of the block chain
1 Like
  1. The EVM (Ethereum Virtual Machine) is an application that runs on all Ethereum nodes. It reads and executes the smart contracts.
  2. The EVM reads EVM byte code.
  3. The smart contract is written in Solidity and then compiled into Bytecode.
  4. Bitcoin only allows very primitive programs on top of the blockchain. they only allow for very simple functions such as a Wallet that needs several signatures. The programming language of Bitcoin (Script) is not Turing Complete.
  5. A Turing Complete progamming language that can emulate the functions of a Turing machine. It means that it actively change the state of the system.
1 Like
  1. The EMV reads the smart contracts on the nodes and tells the CPU what to do

  2. Bytecode

  3. Smart contracts are written in Solidity and compiled into Bytecode for the EMV to read and execute

  4. The language it is programmed in (script) is not turing complete

  5. Anything can be programmed with a turing complete language.

1 Like
  1. The EVM reads and executes smart contracts
  2. The format that EVM can read instructions is bytecode
  3. Solidity is used to get bytecode which then can be read by EVM
  4. Bitcoin was created to act as digital gold and not as means to run smart contracts
  5. Turning complete programming language that allows for the program to perform "loops)
1 Like

1. What does the EVM do?

  • Ethereum Virtual machine (EVM) reads the smart contract on nodes in the network and it also provides security to the entire network

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

  • EVM reads the smart contract instructions in the byte code hence a SC can be written in any language.

3. What is the relationship between the programming language Solidity and Bytecode?
On Enthereum network the executable peice of code called “Smart contract” is written in the Solidity language and EVM reads the smart contract in bytecode

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

  • Bitcoin program is written in Script language which is not turning complete meaning it cannot handle complex functions whereas Ethereum uses Solidity programming language which is truing complete
  • Bitcoin developer community wanted to keep the application for currency use and not create self executable programs to handle complex transactions

5. What is a Turing Complete programming language?

  • A Turing complete programming language can handle many complex transactions and allows developers to create self executable smart contracts. one good example is Loop funtion which allows to execute the same code multiple times
1 Like
  1. When it comes to traditional programs - the CPU will execute the instructions in a particular code/program directly. When it comes to Ethereum Smart Contracts, the copy of the EVM on the participating computer will first verify this code (Every computer in the Ethereum network has a copy of the EVM program/code and all participating computers have to get to the same conclusion for the smart contract to execute), only then it sends it to the local CPU to execute. The reason for this is to make sure that the smart contract is incapsulated and only verified, non-malicious code will execute on the actual CPU.

  2. byte codes (compiled from a Solidity code)

  3. Solidity is a Turing Complete (it can do anything {in theory}) programming language. You write your Smart Contract with Solidity and compile it into byte code because that’s what the EVM (and CPU) will recognize.

  4. Because Bitcoin’s programming language (Script) is a NOT Turing Complete (it has limited abilities) language for a good a reason (maybe not according to Vitalik) = to limit it’s capabilities, to prevent spamming for example via loops

  5. Turing Complete programming language can do anything (in theory). Non-Turing Complete programming languages are limited (can’t solve all problems)

1 Like

What does the EVM do?
EVM is a virutal machine that enables a computer to execute smart contracts bytecode.
What is the format of the instructions that the EVM can read?
Bytecode
What is the relationship between the programming language Solidity and Bytecode?
Solidity is compiled into bytecode.
Why can’t Bitcoin run the same type of complex programs like Ethereum can?
Script is not Turing complete language and solidity is.
What is a Turing Complete programming language?
It means that in TC programming language you can program and run anyting given enough time and memory.

1 Like
  1. The EVM executes code on the Ethereum network.
  2. Solidity is compiled into EVM byte code.
  3. Solidity gets compiled into EVM byte code.
  4. Bitcoin has a limited Script language that is not Turing complete.
  5. Turing complete means it has the capabilities to do addition, multiplication, if/else, variables, and loops.
1 Like
  1. The EVM is present on each ethereum node and executes the bytecode smart applications on the Ethereum blockchain.

  2. Bytecode

  3. Solidity is the language that programmers interact with in order to code DApps, and then this is compiled to bytecode which is EVM-executable.

4.Bitcoin’s scripting language is non Turing complete.

  1. A Turing Complete programming language allows for loops.
1 Like
  1. What does the EVM do? A smart contract is written using the Ethereum language
    Solidity this code is then changed by a complier to bytecode that the EVM reads carrying out smart contract instruction on your pc or phone.

  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 is converted by a complier into bytecode.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can? This is because bitcoin as a programming language is not Turing complete.

  5. What is a Turing Complete programming language? A Turing complete language is able to read looped instruction (automation) and adapt to changes in the language it is able to recognize or decide other data-manipulation rule sets, can be called computationally universal.

1 Like
  1. What does the EVM do? It serves as a kind of buffer between the smart contract and the node CPU. The EVM will read and execute smart contracts and then tell the CPU what to do.
  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 the script language that is normally used to create smart contracts on the ethereum network. Once complete, it is compiled into byte code that the EVM reads.
  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can? Bitcoin has limited programming via a language called “script”. Script is a not turing complete and therefore has limited programmability.
  5. What is a Turing Complete programming language? A programming language that is capable of having anything programmed with it. No limits.
1 Like
  1. EVM is like the CPU of the network. It takes the Byte code given by the programming language from the compiler and executes the functions in the smart contract.
  2. It is in the Byte code format
  3. The compiler - that is basically where the translation takes place into Byte code
  4. It is not Turing complete and cannot solve all the difficult problems. It can only preform basic functions
  5. Solidity - it is able to perform more complex tasks, basically anything you ask it to do.
1 Like
  1. What does the EVM do?
    In my understanding, Ethereum Virtual Machine converts reads and performs smart contracts thru ByteCode. A CPU only understands ones and zeroes. EVM takes care of the smart contract and makes it understandable for the CPU to perform/process.

  2. What is the format of the instructions that the EVM can read?
    Byte code from the compiler.

  3. What is the relationship between the programming language Solidity and Bytecode?
    Solidity is a programming language readable by the programer and compiles it into byte codes for the EVM to understand.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Bitcoin is using a script that is non turing complete programming language.

  5. What is a Turing Complete programming language?
    Turing complete language has loops and full features of a versatile programming language while the opposite does not.

1 Like

Lesson 5: Homework EVM

  1. What does the EVM do?

The EVM (Ethereum Virtual Machine) is a security application that runs on all nodes on the Ethereum blockchain network. It operates as a buffer between the Smart Contract and the CPU of all nodes and encapsulates the Smart Contract. It reads the smart contract instructions and verifies if all instructions are secure (i.e. non malicious or incorrect) before sending the instructions to the CPU for execution.

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

The programming language used for the EVM is called Solidity which, with the help of a compiler application, converts the Solidity instructions into Bytecode before the EVM can read the instructions in a smart contract.

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

The Ethereum programming language Solidity uses a Compiler Application to convert its english like code into Bytecode before the EVM can use it to read the instructions of the Smart Contract.

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

The bitcoin programming language SCRIPT is not “Turing Proof” meaning it can only perform simple instructions (f.e. Multi Sig Wallet) but cannot handle sophisticated applications where you would need “loops”.

  1. What is a Turing Complete programming language?

Any programming language where you can basically program anything you want and make use of loops.

1 Like

1. What does the EVM do?
reads and runs the smart contracts code on the cpu
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 is the programming language used to write the programs which is compiled to Bytecode so EVM can read and execute it
4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
Bitcoins programing language is not turing complete
5. What is a Turing Complete programming language?
Turing complete programing languages can do what you can think of

1 Like

EVM Answers

  1. The EVM is an application running on top of all nodes on the Ethereum network, that deals directly with the smart contract. It’s responsible for reading the language the smart contract is written in, encapsulating and compiling those instructions, before it gives those instruction to the CPU to execute.

  2. The format of instruction that EVM can read is Bytecode

3.The smart contract contents are written in a programming language called Solidity, those instructions are put in a compiler Bytecode by the EVM where it sends that bytecode set of instructions to the CPU to execute.

  1. Bitcoin has a limited programming language called script, that can not perform complex mathematical operations. Meaning it is not a True & complete langauge.

  2. A true & complete programming will be able to accomplish any mathematical operation as well as contain a looping feature.

1 Like
  1. EVM makes read the smart contract on Ethereum network and tell a CPU what to do.

  2. EVM Bytecode

  3. A programmer can use Solidity to program. A compiler will comply Solidity into Bytecode.

  4. Bitcoin only use Script, a very primitive language which is not Turing complete.

  5. Basically it’s a programming language that can program everything in theory. It can do loop.

1 Like
  • What does the EVM do?
    Executes code on the Ethereum network in such a way that there is consensus as to what the result should be for any particular smart contract.

  • What is the format of the instructions that the EVM can read?
    Bytecode compiled from Solidity which the EVM can then process.

  • What is the relationship between the programming language Solidity and Bytecode?
    Solidity compiles smart contract instructions into Bytecode. Solidity is not the only programming language that can be used. A new language called Viper is also being developed (as of 2019).

  • Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    The Script language has limited capabilities and cannot do changed states by using loops. Each instruction has to be added sequentially and therefore impracticable to do state changes as well as being limited by block size.

  • What is a Turing Complete programming language?
    A language where the vast majority of functions and loops can be implemented and run.

1 Like
  1. What does the EVM do?

The EVM (Ethereum Virtual Machine) runs on all nodes on the Ethereum network, it reads the smart contracts and tells to the CPU what it has to execute.

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

Smart contracts from Etherum are written in Solidity, then it’s compilled to Byte, which is the language EVM can read.

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

Solidity is a high level programming language, which is compiled to Bytecode, which is the language the EVM can read.

  1. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Bitcon is written in script language, a static simple programming language and very limited in problem solving, meanwhil Ethereum is written in a turing complete language.
  1. What is a Turing Complete programming language?

A Turing Complete programming language is a language that is able to perform any computation. One great feature agains the language of Bitcoin is the loops, giving the developers versatility to create any kind of application.

1 Like