Homework on EVM

  1. What does the EVM do?

The EVM is an application that runs on top of the hardware of the node/ computer that is in the network, but it will also read and execute smart contracts. This ability to execute the code on the ethereum network enables the ability for the nodes reach consensus. It also acts as a security barrier from the smart contract from gain full control of everything on the computer that the EVM is running on and leaves the network vulnerable.

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

The format that the EVM reads is in solidity, but complied into byte code for the instructions in the smart contract and have the CPU on the node to execute those instructions.

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

The relationship between Solidity and Bytecode is that Bytecode is the result of what is compiled out of the solidity programming language. In solidity the code is probably written in the English language and it will compile it down to Bytecode. This lets the EVM read the instructions in that bytecode which was compiled from solidity.

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

Bitcoin does have a programming language (script), but it is primitive and limited. It’s a not turing complete programming language, meaning it can not solve all the problems it might come across with limited ability to develop applications to solve these problems.

  1. What is a Turing Complete programming language?

A Turing Complete programming language is a language that allows you to develop any applications or programs that you want. And it’s a language that allows loops. Meaning you can have it do the same thing over and over and over again.

2 Likes
  1. What does the EVM do?
    EVM sits on top of the existing CPU hardware of the network of computers / nodes and this allows the execution of the Bytecode of the smart contract
  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 compiles a more human readable form of smart contract into EVM readable Bytecode.
  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Bitcoin Script is not Turing complete
  5. What is a Turing Complete programming language?
    Turing complete programming language allows simulation of Turing machine. It allows executions of conditions including loops / recursive functions rather than writing instructions in linear fashion where each step has to be written manually.
1 Like
  1. What does the EVM do?
    EVM is an encapsulated system running in the node machines. It runs the compiled code of smart contract and execute its instructions.

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

  3. What is the relationship between the programming language Solidity and Bytecode?
    Bytecode are compiled instructions from Solidity (soon Viper) programming languages.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Bitcoin is not turing-complete, it doesn’t allow certain programming features like Loops. The reason is Bitcoin wants to limit its uses-cases and remain the digital gold.

  5. What is a Turing Complete programming language?
    Turing-complete language allow powerful data manipulations. In Ethereum case, it’s specifically applies to being able to run loop instructions (that can heavily impact the CPU resources and the network itself). To prevent spamming, Eth uses gas fees, which incentivise smart contract owners to optimise their code as much as possible.

1 Like
  1. EVM (Ethereum Virtual Machine) are pieces of code running on all computers in the ethereum network. It interacts (meaning gets all the instructions and calculates the computations) with smart contracts directly and execute programs using the CPU and all available resources in the network.

  2. EVM can read instructions that are compiled/formatted in Byte codes.

  3. Solidity is the programming language that is formatted in byte codes so that EVM can read it.

  4. Because bitcoin’s programming language, called script, is not turing complete.

  5. It is a language that you can program anything. It also has loops (a very important feature in programming that allows programmer to repeat an instruction “several times”).

1 Like

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

Quite close miss, but Solidity is the programming language that you use to create/design smart contracts, after that, it will be compiled into ByteCode, so the format of the instructions that EVM reads is Bytecode.

If you have any more questions, please let us know so we can help you! :slight_smile:

Carlos Z.

I guess you mean “It is NOT Turing complete…”

If you have any more questions, please let us know so we can help you! :slight_smile:

Carlos Z.

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

Quite close sir, but Solidity is the programming language that you use to create/design smart contracts, after that, it will be compiled into ByteCode, so the format of the instructions that EVM reads is Bytecode.

If you have any more questions, please let us know so we can help you! :slight_smile:

Carlos Z.

  1. What does the EVM do?
    EVMs secure the ethereum network by validating within all nodes the result of executing a certain smart contract.
  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?
    programmers write the code in solidity which then, through a compiler convert the instructions into byte code
  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    because script is a language that does not support loops, and this makes programming quite complicated
  5. What is a Turing Complete programming language?
    Its a language that allows to call other programs and use them in new ones
1 Like

Yes, correct. Little typo there.

Thanks to looking over my answer.

Dave

1 Like

Thanks for the feedback, Carlos. I’m actually going to copy and paste your reply into my notes because I was having a hard time wording my answer to this question. And how you explained it is spot on and understandable.

Cheers,
David

1 Like

Hello everyone,

  1. EVM can read, write and execute smart contracts

  2. Bytecode

  3. Solidity is used to code smart contracts. Smart contract code is converted to bytecode by EVM.

  4. Bitcoin’s language script is not Turing complete. Ethereums language solidity is Turing complete, so it can run complex programs

  5. Any computational programming can be done with Turing complete language.

1 Like
  1. What does the EVM do?

The EVM is an application built on the Ethereum Blockchain that ensures smart contracts are executed accordingly in a decentralized and secure manner.

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

EVM reads Bytecode

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

EVM takes Solidity as the input language and compiles it to Ethereum Byte Code.

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

It is not Turing complete. As result, complex programs can not be built on the Bitcoin blockchain.

  1. What is a Turing Complete programming language?

A Turing Complete programming language allows a user to program any practical application on the blockchain.

1 Like
What does the EVM do?
What is the format of the instructions that the EVM can read?
What is the relationship between the programming language Solidity and Bytecode?
Why can’t Bitcoin run the same type of complex programs like Ethereum can?
What is a Turing Complete programming language?

1- Evm is Ethereum Virtual Machine an isolated envoirement to run the smart contracts.
2- Evm reads bitecodes that is compiled from viper or solidity.
3- Solidity is a hight level programing language bytecode means “assembler” language to EVM, machine readable coputer language.
4- Bitcoin is not a turing complet programing language.
5- touring complete programing language is a programing language that can make loops and more.

1 Like
  1. It is an additional layer that allows smart contract execution
  2. bytecode.
  3. solidity compiles into bytecode.
  4. it is not turing complete. e.g. it cannot have loops and some other programming features.
  5. A language that implements a complete set of programming capabilities.
1 Like
  1. What does the EVM do? The evm executes smart contracts on an isolated part of 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?
  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can? Bitcoins programming language isnt fully finished and doesn’t allow bitcoin to do so
  5. What is a Turing Complete programming language?
  1. The EVM indirectly executes code (smart contracts) on the network (nodes).

  2. Bytecode

  3. Both are Turing complete programming languages (Viper still in development?) which compile into bytecode on the EVM.

  4. Bitcoin’s language (“Script”) isn’t Turing complete. In other words, it can only execute simple logic commands, not complex or conditional type requests.

  5. A programming language that can code arguably anything.

1 Like

5. What is a Turing Complete programming language?

Turing complete is a term used in computability theory to describe abstract machines, usually called automata. Such an automaton is Turing complete , if it can be used to emulate a Turing machine. Now a programming language is said to be Turing Complete if it can simulate a single taped turing machine. Thus most programming languages are turing complete . C, C++, C#, Java , Lua, Python.

If you have any more questions, please let us know so we can help you! :slight_smile:

Carlos Z.

I guess you forgot to type the answer to the last question :nerd_face:

If you have any more questions, please let us know so we can help you! :slight_smile:

Carlos Z.

  1. What does EVM do?
    A: EVM completes various tasks. It encapsulates the the smart contract from the cpu/node, it reads the Bytecode in the smart contract, and executes a program/smart contract on all nodes of the network.

  2. What is the format of the instructions that the EVM can read?
    A: The format that EVM reads is Bytecode.

  3. What is the relationship between the programming language Solidity and Bytecode?
    A: Solidity is used to write code that then is complied into Bytecode which is read by the EVM.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    A: Bitcoin can’t run complex programs like Ethereum because it’s language is not Turing Complete therefore cannot run complex programs.

  5. What is a Turing Complete programming language?
    A: A Turing Complete programming language is a language that can solve any mathematical problem.

1 Like

EVM is the middle man between the CPU and the smart contract. It reads the smart contract instructions.

Bytecode

Solidity is transformed into bytecode.

Bitcoin’s language is script which is not turing complete. Ethereum’s language is solidity which is turing complete.

Turing complete programming can solve any complex problem (in theory, there are scaling issues).

1 Like