Homework on EVM

  1. What does the EVM do?
    A: EVM stands is an application that stands between the smart contract and the node’s CPU. It reads the smart contract, which is written in Solidity and then compiled into Bytecode and then tells the CPU what to do. It has access to that computer’s resources. The EVM is in place for security purposes because if the smart contract could access a CPU directly it could be used for malicious purposes such as reading that computer’s hard drive and accessing the camera and then sending the info to a malicious third party, etc.

  2. What is the format of the instructions that the EVM can read?
    A:The smart contract is initially programmed in Solidity and then compiled into Bytecode, a readable code format for the EVM.

  3. What is the relationship between the programming language Solidity and Bytecode?
    A: See answer to #2 above.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    A: Because Bitcoin’s programming language, Script, is a non-turing complete language, which only allows for basic programming functions, not the more dynamic functions of a turing complete language, which in Ethereum’s instance allows for the creation of smart contracts that have features like loops contained therein.

  5. What is a Turing Complete programming language?
    A: See #4 above.

2 Likes
  1. What does the EVM do?
    Ethereum version machine is the place where the smarts contracts run , EVM encapsulated the instruction(byte code) to run the 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?
    solidity is the ethereum language

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    it is the original idea to keep btc in way is it , Script is not turing complete

  5. What is a Turing Complete programming language?
    it is a programming language where you can write the instruction you want to execute in a smart contract

2 Likes
  1. What does the EVM do?
    It can read and execute smart contracts. It says to the cpu what to do.

  2. What is the format of the instructions that the EVM can read?
    The language is Solidity but compiled in EVM bytecode.

  3. What is the relationship between the programming language Solidity and Bytecode?
    Solidity has a compiler that takes the code and then compiled it into bytecode so EVM can read and execute the instructions of the smart contract.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Because it´s not turing complete.

  5. What is a Turing Complete programming language?
    It´s a language where you can program anything you want like Solidity.

2 Likes
  1. What does the EVM do?
    holds the code to perform the logic needed, in bytecode instructs the cpu what to do

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

  3. What is the relationship between the programming language Solidity and Bytecode?
    Solidity contains the logic (code) to instruct the CPU on what to do

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    because bitcoin’s scripting language is NOT turing complete (limitations)

  5. What is a Turing Complete programming language?
    to perform any desired computing action, an example is Solidity

2 Likes
  1. it is able to read and execute the smart contract on the network. it passes on the instructions to the CPU

  2. bytecode

  3. solidity is the language used to write the code, then it gets compiled into bytecode

  4. because the scrypt language it is written in is not Turing Complete

  5. it means its able to solve any problem

2 Likes

Q: What does the EVM do?
A: Executes smart contract code compiled from Solidity (or other Turing complete language) into byecode.

Q: What is the format of the instructions that the EVM can read?
A: Executes list of instructions in bytecode.

Q: What is the relationship between the programming language Solidity and Bytecode?
A: Solidity is a Turing Complete human readable programming language used to construct Smart Contracts. Bytecode is the result of compiling Solidity smart contract code (or other TC language).

Q: Why can’t Bitcoin run the same type of complex programs like Ethereum can?
A: Bitcoin’s goal is to simply be a digital store of wealth and therefore it has a very rudimentary programming language called script, which is not Turing Complete and therefore cannot be used to create complex programs like Ethereum.

Q: What is a Turing Complete programming language?
A: A programming language that can (at least in theory) be used to solve any computational problem.

2 Likes
  1. What does the EVM do?
    It reads the instructions from smart contract and then tells the CPU what to do.
  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 language we use to program smart contracts. That code then has to go through compiler and get compiled into Bytecode so the EVM can read it.
  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Because it is not turning complete. It is limited.
  5. What is a Turing Complete programming language?
    Language that has no limitis, meaning that in theory you can program anything in it.
2 Likes
  1. EVM is the Etherium Virtual Machine which is code that executes smart contracts on the various nodes within the etherium network.

  2. EVM can read and execute byte code.

  3. The complier for programming languages such as Solidity and other similar programming languages compiles the instructions into byte code which is read and executed by the EVM.

  4. Bitcoin using script program language which is not Turing complete. This means Bitcoin can only execute simple programming instructions while Etherium can execute complex instructions such as smart contracts.

  5. An example of a Turing Complete programming language is Solidity.

2 Likes
  1. The Ethereum Virtual Machine or EVM is an application installed on each computer of the ETH network (that works under a slightly modified POW scheme to accommodate the programming capabilities) that can execute the instructions of smart contracts.
  2. Byte code
  3. Solidity works as a compiler to “translate” the instructions (smart contract) to byte code.
  4. Because Script (bitcoin programming language) is not turing complete.
  5. TC allows loops of a program so it’s way more practical and almost anything could be created in this kind of languages.
2 Likes
  1. A copy of the EVM (ethereum virtual machine) exists on all ethereum nodes on the blockchain. The EVM is a separate sandbox on the ethereum node that takes byte code and hands it over to the CPU on the node to process and execute the byte code from a smart contract and this results in the final state for the smart contract that is then handed back to the EVM and to the smart contract to update its state. All nodes must be in consensus with the smart contract end state for it to be valid and hence, the byte code from each smart contract must be verified by all ethereum nodes on the network. The EVM is in its own separate sandbox on the node to protect the node CPU from manipulating input code to be processed and executed by the CPU.

  2. Byte code

  3. Solidity is the programming language that the smart contract on the ethereum blockchain is written in. It is compiled to bytecode and passed to the EVM to be read and passed to its local node computer to process and execute.

  4. Bitcoin’s scripting is not turing complete and cannot use loops to iterate programs and update variable states. Hence it cannot run the same type of complex programs ethereum can run.

  5. A turing complete programming language can run loops and update variables constantly resulting in being able to theoretically program anything.

2 Likes
  1. EVM protects the nodes CPU from malicious attacks from code

  2. The EVM can only read line by line type sequential instructions.

  3. Solidy when compiled is output into bytecode

  4. Bitcoin cant run the complex programs Ethereum can to protect the network from exausting processing power from loops or malicious code, etc.

  5. A Turing complete programming languagr is one that it is possible to perform all functions that could possibly be needed in a programming language

2 Likes
  1. What does the EVM do?
    Etherium virtual machine is the security layer for the etherium block chain which stands between the computer and the node preventing hacks.

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

  3. What is the relationship between the programming language Solidity and Bytecode?
    Bytecode is the result of the compiled code. Solidity is more human friendly, while bytecode is less so.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    The founders wanted it to be a simple store of value.

  5. What is a Turing Complete programming language?
    Turing complete programming language is one that allows smart contracts, and loops.

2 Likes
  1. EVM reads and executes smart contracts on each node in network.
  2. EVM can read instructions written in Solidity translated to Bytecode.
  3. Solidity must be compiled to Bytecode to be able to run on EVM.
  4. Bitcoin uses Script as a programing language. Script is not a Turing complete language, therefore it can’t execute all kinds of commands.
  5. A Turing Complete language enables running loops and other complex operations. If eough memory is available, theoretically any kind of smart contract could be written.
2 Likes
  1. EVM is the Ethereum virtual machine. Sits on top of the CPU which will interpret and execute smart contracts on the network.

  2. A sandbox environment means an isolated environment.This will protect the network operators from malicious code built within a smart contract.

  3. Solidity is the programable language used to input instructions which are compiled into the form of byte code which is then read by the EVM.

  4. By design Bitcoin is a non turing complete language unlike Ethereum, developers did not want unnecessary contracts spamming the network and increasing block sizes.

  5. Turing complete language is able to create loops which can follow instructions when executed.

2 Likes

EVM runs the byte code generated by the Solidity and other compilers

EVM reads byte code instructions

Solidity is the source language and Bytecode is the language that it the output of the Solidity compiler

Bitcoin Script is not a Turing complete language

A Turing complete language has loops and if/then logic that allows you do do anything you want coding wise.

2 Likes

Eg. solidity. A code that has the ability to run loops and can solve all problems

2 Likes

1. What does the EVM do?
The Ethereum Virtual Machine is used to read smart contracts and execute them in the blockchain. The EVM is used to prevent malicious activity happening.

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

3. What is the relationship between the programming language Solidity and Bytecode?
The relationship between Solidity and Bytecode is that you code in Solidity and put it in a compiler for it to translate to Bytecode and then the Bytecode reads the smart contract in the EVM

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 that Ethereum can because Bitcoin developers didn’t want the network to get spammed with looped applications to increase blockchain size along with having to store all the smart contracts in the blockchain.

5. What is a Turing Complete programming language?
A Turing Complete Programming Language is one where you can program anything you want as in anything you can think of, it can be done in that language.

2 Likes
  1. EVM serves as a virtual machine that sends instructions to the CPUs across all network machines.
  2. EVM runs via a language called Bytecode.
  3. Solidity is the language code that programs create the smart contracts with. This is then run through a compiler that translates these instructions into Bytecode what is run by the EVM. This way other programming languages, like Viper, can be used to write smart contracts and then they too are compiled into Bytecode.
  4. Bitcoin cannot run as complex of programs as Ethereum because it was not designed to be that robust. It uses the language called Scipts which is much simpler. It is also not Turing Complete.
  5. A Turing Complete programming language is one where the contract can execute any instructions, at least theoretically. It also allows for Loops, whereby the EVM can run the same instructions over and over again multiple times, even if needs to change a variable. We need to be Turing Complete in order for complex smart contracts to operate.
2 Likes
  1. EVM can read and execute smart contracts in an encapsulated environment so that it will not break out to take over a node.
  2. Byte format.
  3. Solidity is the language in which the program is written and is compiled into byte code which can be executed by an EVM.
  4. It is not Turing complete.
  5. Turing complete means that a language can execute any program in the world.
2 Likes

1- Ethereum virtual machine makes it possible to execute code on this network in such a way that were all in consensus about what the result should be
2- Smart contracts in isolated program rather than direct CPU, shield against takeover computor
3- It complies the logic down to bight code ready to read by ethereum virtual machine
4, btc not turing complete very limited no or limited smart contracts
5- Is turing complete programming language has solidity solves all problems has loops instructs
has scripting and programmability

2 Likes