Homework on EVM

  1. What does the EVM do?

-EVM is Ethereum Virtual Machine. It’s an application that is run on every node and miner to be able to read and execute smart contract. EVM also has access to the CPU hardware.

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

-Byte code

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

-Solidity is a programming language that is use to generate smart contract. Then a compiler will translate the data within that smart contract into bytecode. Then the EVM will be able to read the bytecode and execute the instruction within that smart contract.

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

-Bitcoin runs a different programming language call Script. Which isn’t a turning complete programming language.

  1. What is a Turing Complete programming language?

-Turing complete allow the programmer to program anything they want.

1 Like
  1. What does the EVM do?
    It enables the execution of smart contracts in blockchain nodes without executing them directly on the cpu of the computers which might introduce a huge security risk.

  2. What is the format of the instructions that the EVM can read?
    Byte code produced after the compilation of smart programs written in solidity.

  3. What is the relationship between the programming language Solidity and Bytecode?
    Bytecode is the output produced by a compilation of smarts contracts written in Solidity.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Butcoin allows a very simple programming language called Script allowing very basic actions. It is not Turing Complete. On the contrary, Ethereum uses Solidity which comes to be a Turing Complete programming language.

  5. What is a Turing Complete programming language?
    Is a programming language enabling its users to write code doing whatever they are able to think of.

1 Like
  1. What does the EVM do?

It reads smart contracts safely without directly accessing the CPU. It indirectly accesses the cpu. EVM = Etherium virtual machine.
2. What is the format of the instructions that the EVM can read?

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

Solidity is the language of the smart contrast. Bytecode tells the EVM what to do.
4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?

Because Bitcoin is not Turing complete.
4. What is a Turing Complete programming language?

A Turing complete programming language allows you to program anything in theory. If you can think of it in a Turing complete language you can program it.

1 Like
  1. the EVM is a middle man between the smart contract and your CPU; it translates solidty into bytecode; it is a program that runs on top of all the nodes
  2. bytecode (which is compiled from solidity)
  3. EVM compiles the one out of the other
  4. because bitcoin is not turing complete, meaning you can’t program loops which are important to program some things
  5. see 4
1 Like

What does the EVM do?
It reads the smart contract and gives the instructions to the CPU
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 code is compiled down to bytecode
Why can’t Bitcoin run the same type of complex programs like Ethereum can?
It doesnt allow for loops and is not turing complete
What is a Turing Complete programming language?

1 Like
  1. What does the EVM do?
    Executes SC code in a consensual way.

  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 human way to write SC, which is then compiled and “translated” into Bytecode.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Because the programming langage used by BTC is not Turing complete.

  5. What is a Turing Complete programming language?
    It is a way of saying the programming language can solve any mathematical and logical problem.It is not limited in scope.

1 Like

1. What does the EVM do?

  • EVM is executing all the transactions and smart contract interactions on the Ethereum blockchain.
    It is a software program and it is running on all miners’ computers (as a classical virtual machine on top of the operating system). It is utilizing the computer’s resources to execute and verify all the traffic on the Ethereum network.

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

  • EVM can only read and execute instructions written in bytecode. These instructions are very low level and are (usually) created by compiling the source code written in some higher-level language, like Solidity or Vyper.

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

  • Solidity is used by programmers to write human-readable source code of a smart contract (is a high-level language). However, for EVM to understand the instructions, the code written in Solidity must be compiled (translated) into lower-level “machine-code”, called Bytecode.

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

  • Bitcoin has very limited programmable capabilities, its language called Script can only handle very basic instructions (like working with time and addresses). Ethereum, on the other hand, has fully-fledged programming capabilities, where theoretically any program can be created. Both these approaches obviously have their own set of advantages and drawbacks, so it is up to each use-case to decide which is better.

5. What is a Turing Complete programming language?

  • It is a language that can solve any arbitrary complex logical problem (given enough time and computational resource). One differentiation from non-Turing complete languages is the ability to create loops, which can execute the same sequence of steps multiple times in a row. The disadvantage of this is that it is very hard to prove that the code does not have any logical error or mistake.
1 Like

Great answers. It’s easy to understand. Great work. :clap:

Carlos Z.

What does the EVM do?
Ethereum Virtual Machine is an encapsulation layer between the smart contract code and the CPU of the network nodes in order to prevent developers from writing smart contracts doing potentially malicious things on the nodes.

What is the format of the instructions that the EVM can read?
Bytecode. Usually smart contracts will be written in Solidity, which is then compiled to Bytecode.

What is the relationship between the programming language Solidity and Bytecode?
Solidity is compiled into Bytecode before it is sent to the EVM.

Why can’t Bitcoin run the same type of complex programs like Ethereum can?
Because Script is not Turing Complete. Most notably, it does not have the capability of programming in Loops. Ethereum’s Solidity is Turing Complete.

What is a Turing Complete programming language?
This means a programming language “can solve all mathematical problems”.

1 Like
  1. What does the EVM do?
    EVM reads the byte code that was compiled from a smart contract and uses the CPU (and consequentially other) resources of the computers on the Ethereum network that are each running an instance of the EVM.

  2. What is the format of the instructions that the EVM can read?
    It’s in the bytecode (hexadecimal) format, but “underneath” it is binary as the CPU executes binary instructions, i guess.

  3. What is the relationship between the programming language Solidity and Bytecode?
    Solidity code gets compiled (translated) into bytecode for EVM to read.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Because the Script language used for BTC programming is not a Turing complete language.

  5. What is a Turing Complete programming language?
    It is a language that, in theory, is able to solve any computational problem. Time and other resources are not taken into consideration.

1 Like
  1. Reads and verifies consensus of the smart contract instructions before allowing the central processing unit to action it.

  2. It reads byte code format.

  3. bytecode is compiled from solidity so the ethereum virtual machine can read it.

  4. The bitcoin coding language script is not TC turing complete, and doesn’t has the loop feature like that of solidity and viper.

  5. A language that has loops and is possible to programme anything you want.

1 Like
  1. Each node runs EVM. EVM creates an encapsulated environment on which smart contracts and transactions that have been submitted to it can be run.
  2. Bytecode
  3. Solidity compiles into Bytecode.
  4. Bitcoin is using Script which is a programming language that is not Turing complete.
  5. A Turing complete programming language can solve all problems, for example using loops.
1 Like
  1. What does the EVM do?

EVM is a virtual machine, like JavaVM or the .net framework VM , the idea is to decentralize the program making all nodes to execute the same cpu instructions and reaching consensus between them.

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

Bytecode, it’s a secuence of numbers designed to be read by a computer and not a human, nonetheless is more abstract than cpu instructions.

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

Solidity compiles into bytecode (designed to be read by the EVM) , then each node converts that to cpu instructions.

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

Because it has no loops in its language, instead solidity is a turing complete language

  1. What is a Turing Complete programming language?

a turing complete language techically can be used to program any algorithm possible, so any game or app you know could (in theory) be written in Solidity.

1 Like
  1. What does the EVM do?
    Ethereum virtual machine ensures everything is safe.

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

  3. What is the relationship between the programming language Solidity and Bytecode?
    ETH is programmable thru solidity, the compiler reads the solidity code and turns it into bytecode that the EVM can read.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    It uses script which is not turing complete.

  5. What is a Turing Complete programming language?
    One that is able to have loops.

1 Like
  1. What does the EVM do?

The EVM is a virtual machine that acts like a CPU by reading the instructions of the smart contract and executing them.

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

The EVM reads byte code

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

Solidity provides a human-readable form of the machine language bytecode

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

Bitcoin uses a programming language called “Script” which is not Turing complete and was established to perform more simple instructions

  1. What is a Turing Complete programming language?

It is a language that allows scalability and the use of programming loops

1 Like
  1. What does the EVM do?

EVM reads and executes smart contracts.

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

An EVM reads the instructions in Bytecode.

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

Smart Contracts are written in solidity and get compiled in to Bytecode. When compiled the EVM is able to read an execute the smart contract.

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

Because Bitcoin does not have an turing complete programming language like solidity.

  1. What is a Turing Complete programming language?

An Turing complete programming language allows an developer to create any application he can thinks of.

1 Like
  1. EVM reads and executes smart contracts
  2. The format of instructions read by the EVM is byte code which is created by the programme solidity.
  3. Solidity is a language, and it turns the language into the bytecode so that the EVM can read it and execute it.
  4. Bitcoin can not run the same complex programs like ethereum can because it is not turing complete
  5. A Turing complete programme is a programme that can, in theory, do anything and is used to solve any computational problem
1 Like

1)The EVM interprets and executes smart contracts in the ethereum network
2)sandbox is an isolated environment that prevents malicious activity
3)solidarity is the programmable language used to input instructions which are made into byte code and read by the EVM
4)bitcoin is a non turing language unlike Ethereum, made that way intentionally to decrease size and unnecessary Contracts from filling blocks
5)one the allows smart contracts and loops

1 Like

1.EVM is the Ethereum Virtual Machine, it is on all Ethereum Nodes and executes the instructions in Smart Contracts by instructing the CPU of the nodes.

2.EVMs read Solidity.

  1. Solidity is converted to byte codes to give the CPU instructions.

4.BTC can not preform complex instructions because it runs on Script. Script does not have the capability to loop as Ethereum can.

  1. Solidity is a Turing Complete programmable language.
  1. The EVM reads and execute smart contract .

  2. The EVM reads bytecode.

  3. Bytecode is compiled Solidity code.

  4. BTC cant run the same type of complex programming as Ethereum because BTC is not Complete.

  5. A Turing Complete programming language uses loops and allowing almost anything to be programmed.

1 Like