Homework on EVM

  1. A Ethereum Virtual Machine is a software used to run smart contract on the computers(nodes). For security reason the smart contract is not ran by the CPU directly but the CPU would ran the EVM that will run the smart contracts
  2. EVM read byte code.
  3. The smart contract are written using Solidity( or Viper) and the EVM will translate it to byte code
  4. Script is the program language of Bitcoin and it’s not a Turing Complete programming language so it would be impossible to create such a hard and complex operations with it.
  5. A Turing Complete pl is a language that can make hard and long computing calculation.
1 Like

Correction of answer for Question 2:
2. What is the format of the instructions that the EVM can read?
A: EVM running on all nodes read the smart contract (Usually written in the language of Solidity) and compile into EVM “Byte Code”.

1 Like

Hi Carlos.
Thanks for pointing that out.
I have updated my answer as a reply to my original answer.

1 Like
  1. What does the EVM do?
    An EVM is a virtual machine that rides on top of the node OS. It is used to execute Smart Contract Bytecode without allowing the code to become malicious against the node itself. The EVM isolates the node from the Smart Contract code while still allowing the EVM to use node resources.

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

  3. What is the relationship between the programming language Solidity and Bytecode?
    Solidity is the language used by the programmer which the compiler then changes into Bytecode for the EVM to execute. The programmer understand Solidity and the EVM understands Bytecode.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Because Bitcoin does not use a Turing Complete language and cannot do things like loops.

  5. What is a Turing Complete programming language?
    A programming language that can express all forms of logic such as loops and mathematical functions. Basically if you can think it, you can code it.

1 Like
  1. What does the EVM do?
    The Ethereum Virtual Machine (EVM) is an application that runs on all the nodes on an Ethereum Network that reads and executes a smart contract providing a layer of security that prevents anything malicious from occurring by preventing direct access to the CPU of individual nodes.
  2. What is the format of the instructions that the EVM can read?
    The format of the instructions the EVM can read are bytecode.
  3. What is the relationship between the programming language Solidity and Bytecode?
    Solidity is the human readable developers use to develop smart contracts. Bytecode is the compiled form of the Solidity smart contract deployed to the Ethereum blockchain that the EVM is able to read and execute.
  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Bitcoin is written using the Script language which is NOT Turing Complete and has limited capabilities while Ethereum utilizes Solidity which is a Turing Complete language able to support complex applications where nearly anything can be programmed.
  5. What is a Turing Complete programming language?
    A Turing Complete programming language is able to solve nearly all problems or tasks that are possible to be achieved by computers and supports constructs such as loops allowing tasks to be performed multiple times.
1 Like
  1. EVM (Ethereum Virtual Machine) sits on the nodes OS which uses the resources of the node when executing Bytecode and allows smart contracts to run ensuring that the contract does not commit malicious activity against the node itself

  2. EVM reads Bytecode

  3. Ethereum is written in Solidity by programmers which is compiled into Bytecode which is executed by the EVM

  4. Bitcoin is not a turing complete language, therefore it is only able to run simple instructions unlike Ethereum. e.g. Bitcoin cannot do loops

  5. Turing Complete language are languages which if you can think of it, it can be coded.using loops and other mathematical functions

1 Like
  • Execute the commands of the smart contract instead the CPU
  • byte code
  • because BTC uses script and this programming language doesn’t have Turnig complete
  • its what gives the possibility to program anything in a block chain

EVM

  1. What does the EVM do?
    The EVM (Ethereum Virtual Machine) is a piece of code, that runs on top of all the CPU’s of the Ethereum nodes. The EVM is capable of executing smart contracts, while telling the CPU to communicate those instructions to the other nodes in the Ethereum network. All the nodes will execute the same smart contract together. The EVM basically sandboxes the smart contract, to prevent malicious activity of the smart contract i.e. the smart contract sends instructions to the CPU to perform.

  2. What is the format of the instructions that the EVM can read?
    The EVM is able to read only byte code. Byte code is all the EVM cares about reading.

  3. What is the relationship between the programming language Solidity and Bytecode?
    Solidity and Bytecode are connected to each other. Solidity is the programming language that developers use in Ethereum, which then uses a compiler to change the language into computer code (byte code) in order for the EVM to read it.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Bitcoin and Ethereum are different in many ways. Bitcoin uses a different programming language called Script, which is not turing complete, which limits problems that can be solved. Bitcoin is capable of creating multi sig wallets but is not able to be turing complete, which also prevents loops, which would be needed to perform one thing several times, which a turing complete language can do.

  5. What is a Turing Complete programming language?
    A turing complete programming language is able to solve multiple problems, mathematically. In a turing complete language, if you can think of it, it can be coded. Ethereum uses Solidity, which is turing complete and can solve multiple different problems.

1 Like
  1. What does the EVM do?

they read and execute smart contracts.

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

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

Solidity is the langue we use to create the smart contracts, then a compiler takes the solidity langue and then converts it into bytecode so Evm can read and execute it

  1. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    because it is unable to complete all the steps in the smart contract because they end up getting complicated and the bitcoin network cant handle it because it was not built for that

  2. What is a Turing Complete programming language?
    Is a langue that contain loops which informs the program do a set of steps. then once the steps are done do the sets again over and over again hence looping

1 Like
  1. The EVM allows all computers to read and carry out a smart contract.
  2. The EVM reads byte code.
  3. Solidity can be used to write code, which then is read as byte code by the EVM.
  4. Bitcoin’s programming language (Script) is not Turing Complete, so it does not have the same ability to run the complex programs that Ethereum can.
  5. A Turing Complete programming language is a language that can be used to solve various problems.
1 Like
  1. EVM (Ethereum Virtual Machine) reads instructions (byte code) from a smart contract.

  2. Byte code

  3. Solidity is the language of Ethereum and the code from Solidity gets compiled into byte code that goes into the smart contract and is read by the EVM.

  4. Because Bitcoin uses Script and it is not turing complete. It is limited in such way you can’t program anything you want.

  5. You can basically program anything you like in the smart contract.

1 Like
  1. What does the EVM do?
    It runs on all nodes and reads the instructions in the smart contract and tell the cpu what to do. It ensures security to the node computer.

  2. What is the format of the instructions that the EVM can read?
    The smart contract is in bytecode.

  3. What is the relationship between the programming language Solidity and Bytecode?
    Programmers use solidity and the code is compiled to bytecode.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Bitcoin code is in script, which is not turing complete, its limited, no loops.

  5. What is a Turing Complete programming language? Its a program language that are not limited and allow all kind of programming solutions.

1 Like
  1. EVM= Ethereum Virtual Machine. EVM runs on NODES , EVM creates an isolated environment to run smart contracts , in this way i doesn’t affect the main CPU of the node
  2. Instructions that EVM can read is BYTECODE, which is coded by Solidity programming language
  3. Solidity is a programming language that programm in Bytecode
  4. Bitcoin can’t run the same type of complex programs because it has his own programming language Script, which is non-turing complete or in simple words very limited
    5 . Turing complete programming language is the language which can program anything , so its has kind of unlimited usage for programming
2 Likes
  1. The EVM reads the byte code from the Smart Contract and sends that to the CUP to execute. The EVM also acts as a shield to ensure nothing malicious happens and to ensure that the Smart Contract cannot break clues.

  2. EVM reads byte code.

  3. Solidity is the current official Ethereum language. You can write all the instructions and logic in Solidity. A compiler will compile that into Bytecode.

4.Bitcoin does not have a turing complete programming langauge.

  1. A turing complete programming language allows you to loop and do anything as long as you can imagine and write it out.
1 Like
  1. What does the EVM do?
    EVM is an environment in which every etherium node executes smart contract code.
  2. What is the format of the instructions that the EVM can read?
    Etherium bytecode
  3. What is the relationship between the programming language Solidity and Bytecode?
    Solidity is a human readable language. Solidity compiler produces out of the language text the bytecode for the EVM.
  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    EVM bytecode is turing complete. Bitcoin script is not out simplicity of focusing on being store of value and nothing very much more.
  5. What is a Turing Complete programming language?
    A Turing complete programming language is not limited in the possibilities it can run. Loops are for example part of a TC language. Loops are a powerful tool to express multiple to infinite instructions in a very short compressed way. But bugs and malicious code can be easily overlooked.
1 Like
  1. The EVM runs the smart contract.

  2. The format of instructions the EVM can read is Solidity.

  3. Solidity tells the compiler what to do with the bytecode.

  4. Bitcoin can not run the complex programs like Ethereum.

  5. A language the can solve all of the problems it has to solve.

1 Like
  1. EVM stands for “Ethereum Virtual Machine” which executes the smart contacts into byte code which later will be run as machine readable code on cpu. It sits between smart contacts and cpu so security is robust.
    2.compiler
    3.solidity is the language of ethereum and byte code is the instruction given after the solidity was compiler.
  2. Bitcoin’s underlying blockchain scripting language (fancy word for programming language) does not support loops.
  3. A 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). So, if somebody says "my new thing is Turing Complete " that means in principle (although often not in practice) it could be used to solve any computation problem
1 Like

1. What does the EVM do?

It’s an application that runs on top of an ethereum node that executes the bytecode of a smart contract within a safe environment (smart contracts cannot harm nodes since they run in a virtual machine). Think of an EVM like a safe virtual sandbox that handles the instructions of a smart contract in order to verify if all the instructions are valid and will not harm either the node or the network before those instructions pass through the node and then the network itself.

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

Solidity is 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.

5.What is a Turing Complete programming language?

Turing complete is a term used in computability theory to describe abstract machines, usually called automata. Such an automaton is Turing complete , if it can be used to emulate a Turing machine. Now a programming language is said to be Turing Complete if it can simulate a single taped turing machine. Thus most programming languages are turing complete . C, C++, C#, Java , Lua, Python.

Hope this gives you a clear picture of the subject.
If you have any more questions, please let us know so we can help you! :slight_smile:

Carlos Z.

1 Like

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

Hello sir, did you forget to reply to that question?

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

Carlos Z.

1 Like

Excellent answers sir, well documented! Please keep them like that :muscle:

Carlos Z.

1 Like