Homework on EVM

1 It is an application that reads smart contracts. EVM also protects your computer from the smart
contracts it’s reading.
2 The formant EVM reads is byte code.
3 Solidity is a programing language that is compiled into bytecode that EVM reads.
4 Because bitcoin runs a programing language called Script which is not Turing complete, it cannot
solve all problems, it is limited.
5 A Turing complete language can complete every problem

1 Like
  1. The EVM runs the smart contract code on top of the node’s CPU.
  2. The EVM can only read Bytecode.
  3. The EVM can only read Bytecode. The user compiles the smart contract in Solidity which translates it into Bytecode.
  4. Because Bitcoin is not Turing Complete. You can’t use loops in the code.
  5. It means that you can program anything you can think of on such a programming language.
1 Like

the evm takes the inputs and outputs from the contracts and nodes and distributes to the other nodes

evm reads the ABI byte code

solidity needs to be compiled into bytecode same as other programing languages

bitcoin is missing the Turing part of the programing Ethereum has this

turning is the ability for the contracts to run loops

1 Like
  1. The EVM is a virtual machine for the ethereum network that acts as an intermediary between the CPU and the network. This adds a layer of security to the hardware, as it prevents malware getting into the hardware, and is part of the reason ethereum is so dynamic and programmable.

  2. (and 3) EVM can read Bytecode which at this point is a compiled person of the ethereum scripting language called solidity. Though because it runs on bytecode, this means it has the potential to be programmed using other languages, assuming a compiler is built.

  3. Refer to Above.

  4. Bitcoin is not Turing Complete and although it does allow for basic scripting, it does not let you program loops (unlike eth).

  5. A Turing Complete language is a general purpose programming langauge, which means it can be used to pretty much program any task (dynamic and flexible).

1 Like

What does the EVM do?

Am EVM is a dedicated piece of code running of every node on the Eth BC. The EVM is the bridge to facilitate the instructions from the smart contract to be executed through the CPU. Every CPU has to have the same information for Consensus to occur.

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

For the EVM to read the Smart Contract ( the contract being written in Solidity), a Compiler changes the Smart Contract information ( Solidity) into Byte Code.

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

Solidity is compiled to bytecode that is executable on the EVM. With Solidity, developers are able to write applications that implement self-enforcing business logic embodied in smart contracts, leaving a non-reputable and authoritative record of transactions.

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

Bitcoin runs on a very simple code called Script. It is very limited in regards to executing commands besides just normal TXs.

What is a Turing Complete programming language?

Turing Complete is a Programming Language where anything can be programmed like Solidity. Opposed to Bitcoin which is not Turing complete.

1 Like

Hello there

  1. What does the EVM do?
    EVM or ethereum virtual machine reads SC bytecode and executing it on nodes.

2.What is the format of the instructions that the EVM can read?
Bytecode- which is written in programming language Solidity.

  1. What is the relationship between the programming language Solidity and Bytecode?
    Commands are written in Solidity, Solidity turns it to bytecode, this bytecode is readable for EVM.

4.Why can’t Bitcoin run the same type of complex programs like Ethereum can?
BTC language Script is simple, it is limited to solve problems also referred not Turing Complete. Whereas in Ethereum uses Solidity and it’s Turing Complete and can solve complex problems like loops.

5.What is a Turing Complete programming language?
Most new programming languages are TC you can implement any mathematical assignment and it can solve any problem.

1 Like
  1. EVM executes intructions. It reads the bytecodes and ensures nothing will happen to your CPU
  2. Bytecode
  3. EVM does not care about what programming language you use, it only cares about the bytecode and the instructions.
  4. The Bitcoin script is not turing complete
  5. Slidity, you can program anything you want!
  1. EVM is a piece of code that reads and executes smart contracts and insures that nothing malicious happens.

  2. The EVM reads the smart contract, then sends the signal to the cpu, cpu does not directly execute smart contracts.

  3. Solidity is a programming language like javascript. Solidity will compile down to byte code and the EVM will read the instructions. EVM only cares about the byte code.

  4. Because bitcoin uses script and not solidity, it is not turing complete which means it is limited.

  5. Solidity, you can program anything.

Homework on EVM - Questions

  1. EVM is a application running on all nodes and executing the smart contract, which then gives instructions to the CPU.

  2. The format that the EVM can read is byte code.

  3. Solidity compiles and reads byte code so EVM can understand.

  4. Bitcoin cant run the same type of programs like Ethereum can because they used two different types of language.

  5. A turning complete program language means it can solve any problem.

  1. What does the EVM do?

EVM is an security intermediary software between Ethereum network and network user’s PC that uses their CPUs to interpret, run and execute smart contracts.

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

EVM is designed to read instructions in Bytecode.

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

Solidity is the Ethereum programming language that is compiled in Bytecode in order to be interpreted by EVM

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

Bitcoin can’t run complex programs like Ethereum because, as opposed to Ethereum’s “Solidity”, Bitcoin’s programing language “Script” is not Turing complete.

  1. What is a Turing Complete programming language?

A Turing complete programming language is programming language that has loop programming options so, in theory, it allows you to program anything you can think off.

  1. What does the EVM do?

The Ethereum Virtual Machine is an isolated and secure environment that allows only specific non malicious code; it executes smart contracts on the ethereum network CPUs.

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

EVM can read byte code.

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

Solidity is human readable and writable code. ByteCode is solidity (or in the future, viper) code compiled into machine readable code that the EVM can interpret and run on the CPU of its node. The relationship is simple: first you write code in solidity, then the code is compiled into ByteCode.

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

Because bitcoin’s “script” programming language is not turing complete, e.g. it doesn’t allow loops.

  1. What is a Turing Complete programming language?

A touring complete programming language can solve any problem. Most of modern programming languages are touring complete.

  1. What does the EVM do?

The EVM (Ethereum Virtual Machine) is a program code that is run over the top of every CPU’s existing hardware enabling smart contracts to be executed.

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

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

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

Solidity is the programming language that Ethereum’s smart contracts are written on. In order for the EVM to read smart contracts, the smart contracts need to be converted to Bytecode.

  1. 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 the programming language used in Bitcoin (Script) is not ‘turing complete’ – in other words too basic.

  1. What is a Turing Complete programming language?

All ‘turing complete’ programming languages have a feature called ‘loops’ which can be utilized. Loops enable the programmer to repeat commands without endless programming commands. Solidity and Viper are ‘turing complete’ programming languages.

  1. ethereum virtual machine reads and interprets the byte code keeping a secure wall between the cpu and the contract
    2.evm reads the contract in an isolated program keeping the cpu safe

1- Run the smart contract.
2- Byte code.
3- By compiling the source code written in solidity a byte code is created, which is readable by EVM.
4- Bitcoin has not turing complete language.
5- Can solve any mathematical problem.

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

  1. What does the EVM do?
    Security, on every node, protect ETH blockchain, solidity program --> compiler --> EVM --> 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?
    Compiler translates solidity to bytecode
  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Not turing complete no loops. is scripting language
  5. What is a Turing Complete programming language?
    Includes loops
  1. What does the EVM do?
    Execute code on the eth network.

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

  3. What is the relationship between the programming language Solidity and Bytecode?
    Solidity is a programming language that with the help of a compiler compiles the code to bytecodes that is read by the EVM.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Because bitcoin can only do simple smart contracts wirth script programming language.

  5. What is a Turing Complete programming language?
    It is a language that lets you program anything you want like Loops.

  1. EVM stands for Ethereum Virtual Machine. EVM runs on top of CPUs and creates an environment on which the Smart Contract runs. Solidity codes get compiled into byte code, EVM executes that byte code onto CPUs

  2. Byte code

  3. Solidity gets compiled and transform into bytecode

  4. Bitcoin possesses non-turing complete programming language

  5. A turing complete programming language is the one that can solve any complex problems.

  1. What does the EVM do?
    it runs on top of the network environment and it can execute the smart contract code

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

  3. What is the relationship between the programming language Solidity and Bytecode?
    Bytecode is a compiled version of the smart contract and it could come from different programming languages

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    because Bitcoin script language is a turing incomplete language so it can’t achieve the computational complexity that ethereum can

  5. What is a Turing Complete programming language?
    it’s a type of programming language that is limited in the kind of instructions that it can perform so it only offers limited performance and programability

1. What does the EVM do?
The Ethereum Virtual Machine executes smart contracts on the ethereum blockchain.
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?
A compiler compiles instructions programmed using Solidity into Bytecode.
4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
The bitcoin network was not programmed to be Turing Complete, since its developers did not want the network to be spammed or block sizes to increase.
5. What is a Turing Complete programming language?
This is a language which hypothetically can solve any computational problem.

EVM can only understand bytecode, we usually use solidity to program on ethereum, but in theory we could build our own programming language that can compile it into bytecode.