Homework on EVM

Indeed sir, but it’s not only for the EVM, its for any kind of programming language that can execute complex operations, just keep it in mind :slight_smile:

Carlos Z.

  1. The EVM runs smart contracts on the distributed and decentralized Ethereum blockchain.

  2. The EVM understands Bytecode.

  3. When one programs on the Ethereum blockchain, one composes is Solidity, which is compiled to bytecode

  4. It is not Turing Complete. Bitcoin devs limit the bitcoin blockchain to the simplest of features in order to limit the increase of the size of the blockchain.

  5. A Turning-complete programming language is not limited the type of program it can run. It can perform loops.

1 Like

Quite close sir, just keep in mind that EVM does not convert the code into Bytecode, thats Solidity/Viper does, after you write the code in Solidity/Viper, it will compiled into Bytecode that will be used through the EVM to execute the instructions of the Smart Contract.

Keep learning sir, you almost catch it! :muscle:

Carlos Z.

@thecil Ah I see, Thanks for the clarification. I was a little confused about that specific function

1 Like
  1. EVM serves as a middleman between the blockchain and the network. It takes instructions from the smart contract and sends them to the network CPUs for completion.
  2. Bytecode
  3. Solidity is a language humans can write and understand. Bytecode is a machine language that EVM understands.
  4. The developers of Bitcoin did not want Bitcoin to be programmed. It was built as a simple means of transferring value. Bitcoin does not have the capability of understanding complicated programming.
  5. A Turing Complete language is a full featured programming language that is capable of completing virtually any mathematical computation you can imagine.
1 Like

1/ An Ethereum Virtual Machine reads the binary code coming from a smart contract an executes it
2/ Bytecode
3/ Solidity is what a programmer writes and the Bytecode is what gets read by the EVM. The compiler is what links both together, transforming solidity code to Bytecode
4/ It was not designed for it and the programming language script chosen for the project is not Turing Complete
5/ A Turing complete language is one that can run any type of program imaginable

1 Like
  1. EVM is an application that is running on all the nodes, it executes code.
  2. EVM instructions are in bytecode.
  3. Solidity compiles smart contracts to bytecode the EVM can read.
  4. Bitcoin uses SCRIPT which is not Turing complete.
  5. A Turing complete programming language can do anything, like SOLIDITY.
1 Like

1.The EVM is an acronym for Ethereum Virtual Machine. The EVM takes the smart contract code and runs the byte code. This byte code is run by the CPU.

  1. EVM uses a sandbox environment. The smart contracts can not be run directly on the nodes. They are isolated from the network and run by the CPU.

  2. Solidity compiles the code in to Bytecode that the EVM uses to solve the smart contract.

  3. Bitcoin can not run the sam programs like Ethereum because Bitcoin is not using a turing complete language.

  4. A turing complete language like Solidity and Viper, makes it possible to program theoretically anything.

1 Like
  1. The EVM creates a software environment that emulates the programm executions which are embedded in the smart contract. The advantage lays in not beeing dependent on the physical layer of the process.
  2. Byte code.
  3. Devs write in Solitity and the programm translates it into bytecode.
  4. Because its not turing complete (in order not to have loops)
  5. A programm langauge that can solve any problem/task you have. (in theory)
1 Like
  1. It’s an intermediary between the smart contract code and the CPU. It interprets Solidity (or other programming language such as Viper) and gives CPU instructions on what to do. Basically, it is where smart contracts take place.
  2. It reads Solidity or Viper but it can read other languages too. Nodes run EVM collectively in an isolated environment.
  3. Bytecode is what the CPU reads and it is what EVM provides to the CPU. Solidity is the programming language used to write and execute smart contracts.
  4. It is not Turing complete, i.e. it can run only the most basic smart contracts.
  5. A programming language which allows to program anything in theory.
1 Like
  1. It’s a middle man between your computer and the ethereum network
  2. Bytecode
  3. You use solidity to code the smart contract then compile it into bytecode
  4. Bitcoin isnt Turing complete
  5. It’s a programming language that can let you code anything theoretically
1 Like
  1. What does the EVM do?
    It executes bytecode and is meant to encapsulate the Ethereum System from OS. When I got it right it is nothing else as a container (like Docker)

  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 and a compiler translates solidity to bytecode, as well as in any other programming language

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

  5. What is a Turing Complete programming language?
    It can for instance execute loops

1 Like
  1. EVM is the virtual machine over which smart contract are executed. This EVM encapsulate the smart contract and denies direct access of the smart contract to the CPUs.
  2. ByteCode.
  3. Solidity is the high level language used by programmers and is than compiled into Bytecode for EVM to execute.
  4. Bitcoin does not have a turing complete programming language.
  5. A programming language which can solve any kind of computational problem.
1 Like

What is the EVM and what does it do?

  1. The Ethereum Virtual Machine (EVM) is a powerful, sandboxed virtual stack embedded within each full Ethereum node, responsible for executing contract bytecode. Contracts are typically written in higher level languages, like Solidity, then compiled to EVM bytecode.

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

  1. The EVM reads Bytecode from Solidity.

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

  1. The smart contract is first written in Solidity , then it gets compiled into Bytecode which is then used in the form of a Smart Contract on the network.

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

  1. In simple terms BTC uses script and is not Turing Complete to avoid spam and scalability issues

What is Turing Complete programming language?

  1. It essentially means you can write programs (contracts) that can (for the most part) solve any reasonable computational problem.
    Using Solidity and Serpent you have the ability to perform looping and branching statements as well as local state storage.
2 Likes

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

What does the EVM do?
The EVM is the program that runs the smart contract to the cpu’s of the nodes.
It makes executing code on the network possible in a way all nodes will have consensus with the contracts.

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

What is the relationship between the programming language Solidity and Bytecode?
You are able to write code in Solidity. Solidity can compile the code to byte code so that the EVM can read the byte code, because it cannot read Solidity.

Why can’t Bitcoin run the same type of complex programs like Ethereum can?
Because Script on Bitcoin is not turing complete, Ethereum and Solidity are.

What is a Turing Complete programming language?
It means it is possible to program anything on Solidity.

2 Likes
  1. The EVM is a set of programming code made by the Etherium Network to read and execute a Smart Contract from the Blockchain in every users CPU
  2. Bytecode
  3. its interrelated, has the same content meaning
  4. Bitcoin use a simpler language that are not Turing Complete
  5. Turing Complete programming language is a complex set of code to run a software program that are used in every computer
1 Like
  1. EVM supports in executing the smart contract , byte code instructions in smart contract and act as a layer protection for CPU.

  2. byte code instructions

  3. Solidity is compiled to bytecode instructions

  4. Because Bitcoin language is not Turing complete.

  5. Turing complete means it can be programmed dynamically along with the loops etc.

1 Like
  1. What does the EVM do?
    The Ethereum virtual machine allows us to execute code for smart contracts and reach consensus with the CPU in the background. EVM will read the smart contract and instruct the CPU on what to do, reaching a final result. When all the nodes execute and reach the same result, consensus is reached.
  2. What is the format of the instructions that the EVM can read?
    Smart contracts are written in solidity.
  3. What is the relationship between the programming language Solidity and Bytecode?

Solidity is assembled into Bytecode that is interpreted through the EVM to the computer’s CPU.
4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
Bitcoin runs on script. Scripts is not Turing complete. It is unable to solve all problems and create complex contracts. Also, BTC did not implement the same approach in order to avoid spamming due to loops and the existing block size limitation.
5. What is a Turing Complete programming language?
Solidity is Turing complete and can be solve any problems the user can code. Technically this means the language contains “Loops” which allows the programmer to make the CPU complete actions over and over.

1 Like
  1. The EVM runs on Nodes and creates a closed enviroment in wich you can run smart Contracts
    EVM reads SC —> consensus —> istructions for CPU

  2. The EVM reads Bytecode

  3. The solidity programminglanguage is compiled into Bytecode wich can be read and executed by
    the EVM

  4. The BTC script is not touring complete which means that creating complex SC is not possible.

  5. The language can solve loops, making repeated task possible

1 Like
  1. What does the EVM do?
  • EVM is Etherum virtually machine. It executes codes in a secure environment who interact with the etherium blockchain.
  1. What is the format of the instructions that the EVM can read?
  • For now its Solidity and later it will be Viper too.
  1. What is the relationship between the programming language Solidity and Bytecode?
  • Solidity is a language based (like english written words) who transform it’s code into bytecode, witch the machine can understand.
  1. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
  • Because the developer at the bitcoin core dont want to upgrade the protocol into this. But keep it as it was made a much as possible.
  1. What is a Turing Complete programming language?
  • A programming language who cant loop it self.
1 Like