Homework on EVM

  1. Reads the smart contract
  2. Byte code
  3. Solidity compiles the smart contract to Bytecode.
  4. It is limited in it’s ability through Script.
  5. A complexed programing language.
1 Like

[quote=“filip, post:1, topic:8443, full:true”]
Homework on EVM - Questions (Updated on Dec 3 2019)

  1. What does the EVM do?
    The ethereum virtual machine (EVM) basically gives instructions to your CPU or nodes to execute instructions in a smart contract. A compiler (a special app) converts the programming language solidity into byte code which the EVM reads to execute smart contracts. The EVM also serves as a security, ensuring that nothing malicious happens to your computer.

  2. What is the format of the instructions that the EVM can read?
    The EVM can read instructions in Byte code.

  3. What is the relationship between the programming language Solidity and Bytecode?
    A compiler converts the programming language solidity to byte code to be read by the EVM in the execution of smart contracts.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Bitcoin can’t run the same type of complex programs like Ethereum because it is written in a programming language script which is not a turing complete language. Additionally, it could be prone to spam because of loops and it could have issues with block size. Bitcoin was meant to be a digital money.

  5. What is a Turing Complete programming language?
    A turing complete programing language is a language that solve complex problems; it has more programmability.

1 Like
  1. What does the EVM do?

The EVM (Ethereum Virtual Machine) reads a smart contract, coverts it into bytes, and relays the instructions to the CPU (Core Processing Unit) in order to carry out the commands.

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

The EVM can read code from Solidity, Vyper & Bamboo but cannot execute this code. Instead the EVM translates these languages into opcodes or “bytes” before relating the data.

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

Though a program written in solidity is used by the smart contract to carry out commands, the machine must translate these lines to bytecode in order to execute & prompt the CPU.

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

Ethereum uses a second layer solution called the EVM in order to carry out complex tasks written in a turing complete language. Bitcoin uses a simple programming language called Script, which though secure and straight-forward, does not offer the versatility of the Ethereum network.

  1. What is a Turing Complete programming language?

“Turing Complete” is a term used to express the diverse functionality of a programming language. A programming language said to be “Turing Complete” can be used to carry out most any task a computer can potentially execute.

1 Like

1.Ethereum Virtual Machine, that execute instructions with bytecode, running as a world computer virtual machine to protect against malicious code.
2. bytecode
3.solidity uses a complier to communicate with the bytecode
4.Their code Script is incomplete code.
5.solidity or viper

1 the evm read the instruction of a smart contract ensuring nothing malicious take controls over your cpu
2 the evm can read byte code
3 solidity helps to create and deploy programs that will be translate in byte code later
4 because bitcoin is written in script language and it brings limitation because it’s not a turing complete language and it can’t resolve many problems that other programming language can do
5 a turing complete language is a language that can solve all the problems you write and have the possibility to program loops

1 Like
  1. It is a mediator between the Ethereum blockchain and the CPU, placed there mainly as security measure. EVM reads smart contracts (the bytecode) and gives instruction to the CPU, then based on the results from CPU, interacts with the chain.

2.Bytecode compiled from Solidity code.

  1. Solidity is a human-readable code that simplifies the writing for developers. This code is however NOT appropriate for a computer to understand and therefore is compiled to bytecode, which machines can easily read.

  2. Because BitCoin is based on different programming language (Script) that does NOT support many functionalities (it’s not Turing-complete language). This was done on purpose - to avoid spam and too high memory usage.

  3. It is a language which gives developers the opportunity to construct/simulate any mathematical algorithm’s logic and technically do whatever they can think of (if they manage to write the correct code of course).

1 Like
  1. EVM can read and execute smart contracts; it allows us to execute code on the network to achieve consensus.
  2. The instructions are compiled in byte code.
  3. Solidity and Bytecode have in common a compiler which will compile the logic and instructions from Solidity and render it into bytecode for the evm to read.
  4. Bitcoin is not Turing complete as it can not solve problems that a turing complete program can.
  5. Turing Complete programming language is a language that utilizes a feature called “loops” which allows you to program the software to execute an instruction over and over.
1 Like
  1. EVM is Ethereum virtual machine which runs in a sandbox pattern and interprets/ executes the smart codes.
  2. Bytecode (Smart contract)
  3. The solidity is a language based on Javascript and Smart contract codes are compiled in form of byte codes and EVM runs these code on individual CPUs.
  4. BTC uses Script programming which cannot solve loop based complex operations and it is not a turing complete language.
  5. Turing complete language is capable of performing loop based, conditional, complex operations.
1 Like
  1. EVM, Ethereum Virtual Machine, isolates individual contract code, runs and reads the smart contract to execute the machine code.
  2. Byte code
  3. Solidity is the programming language and uses a compiler to translate to Bytecode. Bytecode is what is read by the EVM.
  4. Bitcoin is not Turing Complete (uses Script)
  5. TC programming language can in theory do any type of programming and very importantly do loops.
1 Like
  1. What does the EVM do?
    Ethereum Virtual Machine, it runs the smart contracts on all the nodes to get consensus.

  2. What is the format of the instructions that the EVM can read?
    They are written in Solidity, and compiled and run in the CPU on an isolated environment.

  3. What is the relationship between the programming language Solidity and Bytecode?
    Solidity is a high level language that when compiled produces the Bytecode that runs in the EVM.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Because it runs in Script which is a Not Turing Complete language, by design developers just allowed simple programs so it would not be too heavy and run faster. Solidity is a TC language that can run loops and do complex tasks.

  5. What is a Turing Complete programming language?
    TC is a programming language that can perform complex tasks and has loops.

1 Like
  1. EVM executes code written on the Ethereum blockchain that results in consensus.
  2. EVM reads compiled EVM bytecode.
  3. Solidity is the coding language that allows for greater functionality in writing code and that code is translated into EVM bytecode on the blockchain
  4. Bitcoin is written in Script which is a more simplistic code and cannot complete more complex instructions.
  5. Turing Complete language can solve all problems that can be contrived. It gives full functionality to program any type of smart contract or other action on the blockchain. It also gives the possibility to complete loops.
1 Like

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

Quite close sir, but Solidity/Viper are 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 Like

Excellent answers, It’s easy to understand. Please keep them like that :muscle:

Carlos Z.

5.What is a Turing Complete programming language?

Quite right sir, but could you please describe it in general terms?

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

Carlos Z.

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

Is not incomplete code, its limited in terms of use case, Script languange is not made for turing complete operations, like solidity/viper are.

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? it sits on a computer in between the CPU and the smart contract code that needs to be executed, reads the code and tells the CPU what to do

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

  3. What is the relationship between the programming language Solidity and Bytecode? Solidity is the programming language that ETH is using and sends out its code in bytes on the smart contracts for the EVM to read and execute

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can? bitcoin is not a Turing Complete language

  5. What is a Turing Complete programming language? it means that any type of program can be coded in a Turing Complete language

  1. The etherium Virtual Machine is where all the smart contract run. It’s similar to BTC Nodes.
  2. It runs in a virtual setting the protect users from harmful codes.
  3. Solidity is a writing language that allows for high functionality, Bytecode is what it transforms into on the blockchain.
  4. Unlike the complex language of ETH, the BTC language is simpler, it uses Script.
  5. It is a complex language that is able to solve any problem on the blockchain as well as being able to complete other tasks and complete loops.

1 - What does the EVM do?

  • ethereum virtual machine is necessary to understand what is
    programmed in solidity

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?

  • when we compile the solidity code it will translate our code into bytecode and evm understand

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

  • because they are different languages the bitcoin language is primitive and ethereum is dynamic, you can make (in theory) every type of contract we can imagine

5 - What is a Turing Complete programming language?

  • turing complete system means a system in which a program can be written that will find an answer (although with no guarantees regarding runtime or memory)
1 Like
  1. What does the EVM do?
  • executes smart contracts and give instructions to CPU
  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?
  • smart contracts are written in Solidity (or Viper) and then compiled to Bytecode to make it possible for EVM to read
  1. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
  • because its language (script) is not turing complete
  1. What is a Turing Complete programming language?
  • it is a language where you can create loops (you can do 1 thing several times)
1 Like

1.The EVM allows for each node to have it’s own EVM that helps run it securely.
2. Ethereum machine code
3.Solidity is compiled into byte code then runs through the EVM nodes’ CPU’s
4. Because the programming language Script is not turing complete.
5. more programming flexibility to accept different programs.