Homework on EVM

Homework on EVM - Questions (Updated on Dec 3 2019)

1. What does the EVM do?

The EVM acts as an intermediary between the smart contract and the CPU. The EVM reads the byte code from the smart contract and makes it run on the CPU.

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?

The solidity is the programming language used to code ethereum smart contracts, through a compiler.

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

Bitcoin has it’s own language called script that is a not Turing complete language. Therefore it’s not able to run smart contracts.

5. What is a Turing Complete programming language?

A Turing complete language enables you to have loops that allows the programmers to run things several times.

2 Likes
  1. A piece of code that reads and executes smart contracts.
  2. In Bytecode.
  3. EVM compiles the code from Solidity into readable text in Bytecode.
  4. Because it’s not Turing complete.
  5. A programming language that allows for loops (instructions can be repeated several times). It can also solve complex problems/calculations.
1 Like
  1. The EVM, Ethereum Virtual Machine, executes smart contracts deployed on the Ethereum blockchain, using the network of computers that run the EVM code

  2. The EVM reads the smart contract instructions after they are compiled to EVM Bytecode, the format it can interpret

  3. Ethereum developers write the smart contracts in the Solidity language and the EVM compiles them to the EVM Bytecode

  4. Bitcoin has script, a much simpler scripting language that is not Turing complete, a characteristic that was a design choice, not a flaw. That is why it cannot run complex programs like Ethereum

  5. A Turing Complete programming language is a programming language in which (theoretically and conceptually) any type of problem can be solved. One characteristic of this type of language is the possibility to program loops, which are programmable repetitions of instructions

  1. The Ethereum Virtual Machine(EVM) is a network of software that all ethereum nodes run that can interpret and execute smart contacts on the ethereum blockchain, as well as find consensus.
  2. Bytecode
  3. Solidity is the programming language used for Ethereum based smart contacts, Solidity is compiled down into a machine- readable language called Bytecode, the EVM then reads and executes the Bytecode over three Ethereum network.
  4. BTC doesn’t use a Turing Complete programming language like Ethereum’s Solidity, it uses a non-Turing Complete language called Script.
  5. A programming language that is able to be computationally universal, allowing for the creation of things such as smart contacts and other complex programs.
1 Like
  1. The EVM (Ethereum Virtual Machine) hosts smart contracts/applications written on the Ethereum blockchain. It is an encapsulated software system which uses the host’s resources such as its CPU to execute the instructions part of the smart contracts as part of reaching consensus. The sole reasoning behind the EVM is to secure the network by preventing smart contracts to be executed directly by the host to prevent malicious code from taking over the host system and eventually the entire network.

  2. EVM byte code.

  3. Solidity is a high-level programming language. Programs written using Solidity programming language are compiled into Bytecode which the EVM can understand.

  4. Because Bitcoin applications are limited by its programming language Script which is not Turing Complete. A program written in a Non-Turing Complete language cannot solve any computational problem. On the other hand, Ethereum is a Turing Complete language which in theory can execute any program.

  5. When a programming language is Turing Complete it means it can be used to create a program that can simulate a Turing Machine. A language where you can have the ability to form conditional branching or repetition (e.g. if, for, foreach, while) and have the ability to read memory in the form of variables etc…

1 Like

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.

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.

  1. What does the EVM do?
    EVM read and execute smart contracts. It’s a piece of code all CPUs in the network are running on top of the hardware.

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

  3. What is the relationship between the programming language Solidity and Bytecode?
    Solidity is a human readable language similar to javas that can be compiled into bytecode.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    BTC was created as a not turing complete language so it doesn’t get spammed and because it will be way too much data for the blockchain.

  5. What is a Turing Complete programming language?
    It’s a programming language that allows you to solve all possible problems you might have at the moment of creating an app.

1 Like
  1. What does the EVM do?
    Ethereum Virtual Machine, runs code in the Ethereum blockchain.
  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?
    Bytecode is produced by compiling a Solidity program into an executable format.
  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Bitcoin chain is not programmed to have a VM to run code.
  5. What is a Turing Complete programming language?
    Turing Complete is if it can be used to emulate a Turing machine. Most programming languages are Turing complete.
1 Like
  1. The Ethereum Virtual Machine reeads and executes a smart contracts code set (rules).

  2. The format of instructions the EVM can read is called Bytecode.

  3. Solidity is a form of code that is compiled down into Bytecode for the EVM to read.

  4. Bitcoin is not designed to perform like Ethereum due to not being a Turing Complete Language. This helps Bitcoin with not getting “spammed” by malicious code.

  5. Turing Complete programming language allows the code to complete any possible algorithm you can think of.

1 Like
  1. EVM reads the smart contract code and protects the network
  2. EVM Byte code
  3. You use the programming language solidity to create the smart contract than true the program compiler you create the Bytecode
    4.Because Bitcoin is the grandpa en ETH the grandson haha Butt bitcoin cant do it because it is NTC or Not turning complete. To say it in easy language it is not as smart as ETH
  4. It means that it, in theory, it can solve all problems. Only not the one from the to high fees haha
1 Like
  1. Reads and execute smart contracts.
  2. Byte code.
  3. Solidity is used to program smart contracts and gets compiled into Bytecode for EVM.
  4. Scirpt language (used in BTC) is not Turing complete.
  5. The one which can solve all the problems - it supports loops.
1 Like

EVM reads smart contracts and gives the ordres to CPU to execute them
Bytecode
Contracts are written in solidity so that EVM reads it in bytecode.
Because it´s not Turing Complete
It´´s a language in witch every order can be written and read

1 Like

I get it as it is complete code it just cannot turing complete operations, which allow loops. Thanks!

1 Like
  1. Executes the code in a smart contract.
  2. Byte code.
  3. Byte is the format of the solidity programming language.
  4. It is not turing complete.
  5. Is one that perform complex computations having loops.
1 Like
  • What does the EVM do?
    It executes the smart contracts deployed on the Ethereum network. In practice, it also serves as a security layer between the contracts and hardware that is running the nodes, so that contract’s are not able to access hardware directly.

  • 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 a language for developers to write code at a higher level of abstraction; this code is then compiled to Bytecode for the EVM to execute.

  • Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Because Script is a very limited programming language, while Solidity is turing-complete.

  • What is a Turing Complete programming language?
    A programming language that implements a particular minimum set on instructions in it’s architecture that allows it to compute anything that’s computable is Turing-complete. In practice, this is not a very high bar - vast majority of widely used modern programming languages are Turing-complete. Turing-completeness involves having things like loops, conditions, arrays, basic math capabilities, conditional flow control.

1 Like
  1. What does the EVM do?
    It is a virtual machine running on all nodes and it executes the smart contract on all nodes. Due to consensus the results of the smart contract must be the same at all nodes.

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

  3. What is the relationship between the programming language Solidity and Bytecode?
    Solidity is a programming language like JavsScript. Solidity code must be compiled into bytecode before it can be executed by EVM

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Bitcoins uses Script as a programming interface. Script does not allow loos and is not turing complete.

  5. What is a Turing Complete programming language?
    It is a language in which everything can be programmed. E.g. it enables interaction with the user.

1 Like
  1. What does the EVM do?

Ethereum Virtual Machine (EVM) is a “distributed computer” that actually runs on the nodes’ hardware. It’s responsible for running the smart contracts deployed on the blockchain.

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

EVM reads compiled bytecode instructions, regardless of the high-level language (Solidity, for instance) used for its creation.

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

Solidity is a programming language used for contracts creation. It must be compiled down to bytecode, which is low-level machine-readable instructions actually read by the EVM.

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

Bitcoin’s Script is not a Turing Complete language, which restricts a lot the complexity of the applications that can be built over the bitcoin blockchain.

  1. What is a Turing Complete programming language?

A Turing Complete language supports loops, which allows for the creation of complex programs (repetitions, conditional codes, etc) for nearly any kind of application.

1 Like
  1. The EVM, named the Ethereum Virtual Machine, is a piece of code that have the ability to read all the smart contracts and tell the CPU what to do. It sits between smart contracts and the CPU for security reasons.

  2. EVM can read information executed in bytecode.

  3. Solidity can generate bytecode, which can be read by the EVM.

  4. Bitcoin uses a language called Sript, that is not Turing Complete.

  5. A Turing Complete programming language can solve any problem you can think of, in theory.

1 Like
  1. What does the EVM do?
    EVM reads smart contracts and executes thus now. Approval or consensus is achieved by comparing results on each node and making sure they all display the same result.

  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 compiled into bytecode by a compiler, then the code runs through the EVM on to the cpu of a node.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Bitcoin uses Script which is not a turning complete, this was intended for Bitcoin as the developers did not want any unnecessary spamming as it is dealing with money.

  5. What is a Turing Complete programming language?
    A programming language allows loops to run and over, which theoretically allows you to create anything.

1 Like
  1. EVM is a piece of code ran on every Ethereum node that secures the network, reads the instructions from the smart contract, translates them into Bytecode, run pass them through CPU and gets a result.
  2. EVM can read Solidity which is Turing complete language
  3. Code is written in Solidity then compiled into Bytecode
  4. By purpose, Bitcoin can have only simple programs written in Script language (which is not Turing complete), because it would take lots of space in the blocks, and because it would get spammed by lots of programs, developers wanted to keep it simple.
    5.TC language means code it can do complex calculations and programs can do anything.
1 Like