Homework on EVM

  1. What does the EVM do?
    EVM is Ethereum Virtual Machine it acts as a middle man between the smart contract it works in a way were all nodes agree on a consensus and then the CPU would be able to execute the code
  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 a language used to write smart contracts then it is compiled into bytecode which are then read by the EVM nodes and then instructions are executed by the CPU
  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    When Vitalik introduced the concept of smart contracts to the bitcoin community they avoided it because of spam in the network and how Ethereum came into place. Bitcoin uses scrypt which is primitive and limited in functionality and cant execute code like JS or Solidity
  5. What is a Turing Complete programming language?
    You can program anything in that language like loops arrays objects etc. basically tell the computer what to do without limitations
1 Like
  1. EVM is a virtual environment that runs the smart contract byte code.
  2. EVM reads byte code.
  3. Solidity is the high level language of ethereum which will later be compiled into byte code and handed over to EVM to be executed.
  4. Bitcoin script language is not turing complete. It doesn’t support loops either, hence complex programs cant be built on top of it.
  5. Turing complete programming languages supports complex programs to be written to achieve complex tasks.
1 Like

1. What does the EVM do?
Ethereum Virtual Machines are on all nodes on the Ethereum network that run small smart contracts (programs) securely without allowing the smart contract to directly control the computer’s resources.

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

Byte code compiled by using Solidity.

3. What is the relationship between the programming language Solidity and Bytecode?
Solidity compiles code written in the Solidity programming language into Bytecode that EVMs can ingest and understand.

4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
Bitcoin uses Script. The Bitcoin development community did not allow more advanced languages to prevent spam and and blockchain size increases.

5**. What is a Turing Complete programming language?**
It cannot solve all programs it might have to solve. It is limited.

1 Like
  1. EVM is a virtual distributed machine for Ethereum network, which runs on a individual node, with a network of nodes, those nodes operate in order to maintain the state of the Ethereum blockchain, each EVM deploys the smart contracts (translates the solidity code into opcodes) which changes the state of the Ethereum blockchain, after this task is validated the blockchain is updated and approved by a consensus of the distributed EVM nodes.
  2. Smart Contract programs written in Solidity language
  3. the solidity is a high level language used to write smart contracts, once the smart contract is deployed on a EVM will generate de opcodes to be run by the EVM.
  4. Bitcoin is not a Turing complete machine, bitcoin offers script languaje which applications are: pay-to-public-key-hash (P2PKH), time-locked bitcoin transaction, Multi-signature script and Pay-to-Script Hash (P2SH) which can come with SegWit upgrade. Some examples are Lightning Network, stacks among others.
  5. a programming language which can solve any computational problem
1 Like
  1. Execute bytecode on the node hardware
  2. byte code
  3. Solidity is compiled into Bytecode. The EVM can only executed the latter
  4. Cause the language is not Turing complete
  5. Is a language in which all type of computation can be coded
1 Like
  1. What does the EVM do?
    [Ans] Executes the instructions represented in Bytecode. These instructions are part of programs that implements specific business logic related to assets on the Ethereum blockchain. EVM provides the intermediary layer running on the nodes of Ethereum network to ensure the security and sanctity for the blockchain

  2. What is the format of the instructions that the EVM can read?
    [Ans] Instruction in Bytecodes that are produced after compiling higher-level programming languages - Solidity/Viper

  3. What is the relationship between the programming language Solidity and Bytecode?
    [Ans] Programs written in solidity when compiled produce EVM’s bytecode.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    [Ans] Bitcoin blockchain provides very basic scripting limited only to specific instructions - signing. These scripts are not Turing complete and cant support complex instructions or mathematical computations.

  5. What is a Turing Complete programming language?
    [Ans] A Turning Complete programming language allows one to write any kind basic or complex logic with constructs of the language which can also involve mathematical computations - Loops, conditional instructions, Arithematic instruction, etc.

1 Like
  • What does the EVM do?
    EVM is an Ethereum Virtual Machine running on all Ethereum nodes.
    Its purpose is to provide security by running smart contract code on all Ethereum node CPUs in a controlled way (avoid malicious code).

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

  • What is the relationship between the programming language Solidity and Bytecode?
    Solidity is the programming language used to write the smart contract code in a human readable format. A Solidity compiler will then be used to compile this Solidity code into Bytecode.

  • Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Because it uses a language called “Script” which is not turing complete

  • What is a Turing Complete programming language?
    A turing complete programming language allows for the writting of complex code (e.g. loops)

1 Like
  1. What does the EVM do?
    The EVM reads and execute smart contracts.

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

  3. What is the relationship between the programming language Solidity and Bytecode?
    Solidity creates the instructions in a smart contract and it is compile with a complier into Bytecode.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Bitcoin programming is limited and not turning complete like Ethereum.

  5. What is a Turing Complete programming language?
    It is unlimited and you can program whatever you want.

1 Like
  1. What does the EVM do?

It’s a computational engine, a global virtual computer which runs the network but also on the nodes and acts as a layer of executing code. It’s a runtime compiler to execute the smart contract. Once the code is deployed on the EVM every participant on the network has a copy and runs the EVM.

The EVM uses a set of instructions called opcodes and currently there are 140 opcodes. Together these opcodes allow for EVM to be Turing-complete. Opcodes are 1 byte and there can only be a maximum of 256(16^2) opcodes. In order to efficiently store opcodes, they are encoded to bytecode.

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

A low-level programming language called Bytecode.

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

Solidity is a high-level programming language with it’s syntax in English. It’s human readable. Solidity is programmed by the user and then it’s compiled into Bytecode which is interpreted and digested by the EVM.

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

Bitcoin using a language called Script which is limited in functionality. This is intentional for security reasons.

  1. What is a Turing Complete programming language?

A Turing-complete program can express all possible programs. Any program can be configured inside a Universal Turing Machine. Languages that are Turing complete usually include some form of loops or recursion. When they go into a loop you don’t know whether they will terminate from that loop.

A Turing-incomplete language is simple enough that you know how long it’ll run, all of the possible conditions it’ll run and when it’ll terminate. Bitcoins scripting language is Turing-incomplete.

1 Like
  1. EVM takes the byte code from the smart contract instructions and then tells the cpu what it will do. It also keeps malicious programs from running for better security
  2. EVM can only read byte code that was compiled from solidity to the smart contract
  3. A smart contract will be written in solidity on the Ethereum blockchain and will then be compiled to bytecode once contract is added to the blockchain
  4. Bitcoin can not run the same types of programs like Ethereum because it would disrupt the block size and cause excessive delays also a security risk.
  5. Turing complete code allows Loops to run within the program so tasks could be repeated of the same nature over and over.
1 Like
  1. Execute the instruction of the smart contract over the CPU.
  2. bytecode
  3. compile solidity to bytecode
  4. it suppose to be use only for monetary stuff and don’t want to store a lot of data
  5. complex programing instruction
1 Like
  1. What does the EVM do?

EVM runs SmartContracts on block chain, it means it reads the code and processes it on blockchain. Basically EVM is blockchain itself.

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

Bytecode

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

Solidty is modified by compeller into Bytecode so that EVM can read/process it.

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

Because Bitcoin is not Turing Complete, it was made like this on purpose, to be more simple, to prevent spam attacks on its core blockchain.

  1. What is a Turing Complete programming language?

Solidity is Turing Complete, and Viper as well. And there are many more I guess.

1 Like
  1. What does the EVM do?
    The Ethereum Virtual Machine (EVM) is what developers use to create the code for smart contracts and DApps on the ethereum network. The EVM is what is used to define the rules that are programmed into everything on the network

  2. What is the format of the instructions that the EVM can read?
    The code is written in Solidity and then compiled into Bytecode

  3. What is the relationship between the programming language Solidity and Bytecode?
    Solidity is the programming language that the contracts are written into and from there it’s compiled into the EVM Bytecode

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Because Bitcoin isn’t a Turing complete system like Ethereum is.

  5. What is a Turing Complete programming language?

Turing complete is a language that can written to find an answer to a certain problem or set of rules. For Example, with Smart Contracts being able to create code that will be able to read if/then instructions on it’s own and execute the contract based on the code if a certain parameter is met

1 Like
  1. What does the EVM do?
    It is a virtual processor that executes the lines of code in a smart contract and protects the node CPU from potential malicious attacks that could have been imbedded into the 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?
    Solidify is the near English programming language embedded into Ethereum. Solidify will compile the list of instructions within the smart contract into Bytecode, which is the machine code that is NOT near English, but actually EVM friendly.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Because ‘Script’, the simple scripting language embedded into Bitcoin is too primitive for complex instructions, and lacks the loop function.

  5. What is a Turing Complete programming language?
    A robust programming language that allows the programmer to execute anything they can imagine.

1 Like

What does the EVM do?
=>The EVM is a layer between the smart contract code and the machine, preventing the smart contract code from using the machine resources in malicious ways.

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 to bytecode.

Why can’t Bitcoin run the same type of complex programs like Ethereum can?
=> Bitcoin´s language for smart contracts (Script) is not turing complete.

What is a Turing Complete programming language?
=> Is a language that can solve any computational problem.

1 Like
  1. The EVM lets you execute smart contracts on top of the blockchain.

  2. EVM can read instructions in byte code compiled via solidity.

  3. The EVM can read solidity and give the CPU bytecode commands to execute them.

  4. Bitcoin uses script which is a non-turing complete language.

  5. A turing complete programming language allows you to perform operations in loops that can take into account variables changing.

1 Like

1. What does the EVM do?

The Ethereum Virtual Machine, is a piece of software that runs on every full node on the Ethereum network. It also serves as a consensus mechanism to validate smart contract code across the network.

It can :

  • Read and execute smart contracts.

  • Achieve consensus among nodes for smart contract code.

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

The Ethereum Virtual Machine uses the format Bytecode.

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

Solidity is the programming language of Ethereum, it is used to write smart contracts and then used to compile this code into Bytecode so the EVM can read it.

Vyper is another language used for writing smart contracts. However the EVM will always need Bytecode.

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

Bitcoins programming language “Script” is not turing complete, and is therefore quite limited in what it can do. Solidity on the other hand is turing complete, and can do just about anything other popular programming languages can do.

5. What is a Turing Complete programming language?

It means you can program anything without restrictions.

1 Like

Hi, my answers are:

1. What does the EVM do?
EVM reads smart contract instruction codes on each node, make sure nothing malicious in smart contracts to protect the network

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

3. What is the relationship between the programming language Solidity and Bytecode?
Solidity is compiled down to bytecode so EVM can read it

4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
Because its smart contract programming language - script is not Turing complete, it doesn’t have enough capacity to solve many problems related to money on the internet.

One important feature that script doesn’t have is loop (iteration).

All of the limits of Bitcoin is because Bitcoin developers want to keep Bticoin a digital peer-to-peer cash, or digital gold. They don’t want someone be able to spam on the network (using loops), they don’t want to increase block size to store all of small pieces of code (smart contracts). They want bitcoin to keep being a digital asset

5. What is a Turing Complete programming language?
It is a kind of programming language that is capable of giving developers the ability to create programs that can solve many problems

One of the important features is loop - which means executing some codes multiple times without manually typing them down. Sometimes, manually typing them down is impractical to create a program because in runtime, no one could predict what a certain value would be.

1 Like
  1. What does the EVM do?
    It lets users execute code in a way that allows for network consensus. The EVM also communicates between the smart contract and your computer’s CPU for security reasons.
  2. What is the format of the instructions that the EVM can read?
    The format of the instructions the EVM reads is Byte code.
  3. What is the relationship between the programming language Solidity and Bytecode?
    A compiler will take your solidity code, compile your logic and instructions into byte code, then the EVM will read all of the instructions.
  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Bitcoin is not Turing Complete meaning it can not solve all problems that it may have to solve.
  5. What is a Turing Complete programming language?
    Turing Complete refers to the ability of a computer or system to run any algorithm or solve any computational problem, provided it is given the necessary instructions, time, and memory.
1 Like
  1. It allows you to execute smart contracts on the blockchain.
  2. Bytecode
  3. Solidity is compiled in bytecode
  4. They don’t want to along with t he fact it’s lacking a few key things to making it a Turing complete system.
  5. It is a language that allows loops to be created and ran along with everything else. Basically allowing anyone to build onto the blockchain.
1 Like