Homework on EVM

1 - EVM reads from smart contracts and give instruction to the nodes/CPUs on the ethereum network to execute codes.

2 - The EVM reads byte codes.

3 - Solidity is the programming language used by a user to enter commands/instruction in a smart contract and Bytecode is the language in which it becomes when those inputs are compiled in the smart contract.

4 - Bitcoin uses a non-turing complete language that can only program basic codes.

5 - A turing complete language is a language that allows you to program everything you want(theoretically) on the ethereum network.

1 Like
  1. What does the EVM do?
    EVM (Ethereum Virtual Machine) is a piece of code that every node runs. It looks at instructions (in bytecode) and tells the cpu of each node to execute the instructions. The instructions can be in a smart contract. The EVM makes sure that nothing malicious happens when it tells the CPU to execute the instructions indirectly.

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

  3. What is the relationship between the programming language Solidity and Bytecode?
    Solidity is a programming language that you as an individual can use to input instructions in a smart contract. The instructions needs to be compiled into bytecode for the instructions to be read and processed by EVM.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Bitcoin uses the programming language script, which is not turing complete. Solidity or Viper, which is the programming language of Ethereum is turing complete. Ethereum is therefore able to have loops, which means that they can run instructions in a loop, over and over again.

  5. What is a Turing Complete programming language?
    It means that you can program “everything” in theory on a TC programming language. You can solve “everything” on a TC language. There are no restrictions.

1 Like
  1. What does the EVM do?

Ethereum Virtual Machine can read Smart Contracts, it executes the calculations outside of the CPU so it maintains malicious content away from the CPU.

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

It can read Bytecode

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

While Solidity is used to program Smart Contracts, Bytecode is the compiled code of the Smart Contracts code that can be interpretated by the Ethereum Virtual Machine

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

Because Bitcoin cannot be considered as a complete Turing. On the other hand, Ethereum is a Turing language which is more flexible to create infinite functionalities with is Solidity programming language

  1. What is a Turing Complete programming language?

A Turing Complete allows programmers to perform loops and to solve complex operations, basically they can create anything they want with the language.

1 Like
  1. What does the EVM do?
    In EVM reads Bytecode and tells the CPU how to interpret an Ethereum smart contract.

  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 the user interface to write Bytecode on the EVM.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Bitcoin dose not have a Turing Compete language

  5. What is a Turing Complete programming language?
    A computer language that allows you to code anything you can think of.

1 Like
  1. What does the EVM do? It executes the code that compose the smart contracts.

  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 programming language used to program the contracts, it is then compiled into bytecode that the EVM can execute.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can? Because “script” the language used with Bitcoin is not Turing complete therefore is is very limited.

  5. What is a Turing Complete programming language? It’s programming language that allows you to program pretty much anything like Java, C++, C#, Python … allows you to do.

1 Like
  1. What does the EVM do?
    A: The EVM is a virtual machine run on a full ethereum node that executes the code within smart contracts by utilizing the CPU and Memory resources available on each node.
  2. What is the format of the instructions that the EVM can read?
    A: Bytecode
  3. What is the relationship between the programming language Solidity and Bytecode?
    A: Solidity is the “human readable/writable” precompiled programming syntax. Bytecode is the machine readable or compiled version of the human written program which the EVM is able to understand and execute.
  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    A: Bitcoin’s “Script” syntax is not a “Turing Complete” programming language. It consists of a limited range of functions and does not allow for “looping” making it a very limited procedural syntax.
    5: What is a Turing Complete programming language?
    A: Turing complete languages allow for any functionality to be run in order to complete any logical function or solve any logical problem. When we move to quantum computing we may even be able to solve problems that don’t yet exist at the time the code is run! If that doesn’t make yer brain melt then I don’t know what will lol
1 Like
  1. In simple terms, an EVM reads smart contract instructions and tells node CPU to execute them.

  2. For EVM be able to read smart contract instructions, they have to be already compiled into byte code.

  3. Solidity is the programming language used by programmers to write the smart contract code, in a human way, let’s say. Byte code is like a language so that CPU can understand and execute.

  4. Just because Bitcoin uses a non turing complete language, called Script.

  5. So, a turing complete language is a type of language that is able to execute complex instructions, such as loops and some other math problems.

2 Likes
  1. What does the EVM do?
  2. What is the format of the instructions that the EVM can read?
  3. What is the relationship between the programming language Solidity and Bytecode?
  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
  5. What is a Turing Complete programming language?
  1. The EVM read and execute smart contracts
  2. The EVM can read Bytecode
  3. Smart Contracts can be setup or written in Solidity or any other programming language, but at least need to convert to bytecode, that the EVM can read and execute the information.
  4. Bitcoin has a Programming language called Script, which is not Turing Complete, and that means you can not create complex Programs on it , to be exact you can not program loops.
  5. A Turing Complete Language is for example Solidity, there you can program loops
1 Like
  1. EVM makes it possible to execute code on the node network.
  2. Byte Code
  3. Solidity complies information into Byte code.
  4. The Bitcoin programming language “Script” is limited. It can not run loops and does not have scalability which Ethereum needs.
  5. A language that can program anything.
1 Like
  1. What does the EVM do?
    The Ethereum virtual machine executes smart contracts. It encapsulates the instructions within the smart contract so they cannot be executed directly on the hardware of the node.

  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 code is converted into Bytecode to be run on the EVM.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Bitcoins script language is not Turning complete, meaning it cannot complete every possible computation, wheres as Solidity is Turning complete.

  5. What is a Turing Complete programming language?
    One which can complete any possible computation required.

1 Like
  1. EVM stands for Ethereum Virtual Machine and it is used to execute the code on the Ethereum network.

  2. EVM is what interprets bytecode instructions.

  3. Ethereum smart contracts are written in Solidity. A compiler is used to convert Solidity language into bytecode.

  4. Bitcoin is written in Script which is a basic language that is not turning complete.

  5. Turning complete languages allow for unlimited ability to program almost anything.

1 Like
  1. An EVM reads the contract and essentially proves it as viable.

  2. Byte code

  3. The EVM compiles the solidity code into byte code that the network can read.

  4. Because bitcoin is written in script code that is very limited as to what it can do.

  5. Turing complete has little restriction as to can be coded and requested. It also allows for looping code to be written.

1 Like
  1. The EVM executes code on every node on the computing network that runs the blockchain
  2. Bytecode
  3. Solidity is the programming language that is compiled to bytecode that the EVM can run
  4. Bitcoin can only run simple scripts and is not touring complete
  5. Turing complete language can run loops
1 Like
  1. EVM provides a security measure that allows all computers of the etherium network to read smart contracts and have consensus.
  2. Byte code format
  3. Solidity are the instructions of a program and a compiler is used to convert the instructions into byte code.
  4. Bitcoin is not programmable like etherium because it does not have “loops” and turn complete.
  5. Turing complete is a language that allows to program anything.
1 Like
  1. EVM runes bytecode. Smart contracts are written in solidity which after complied becomes bytecode which runs in EVM. Ethereum Virtual Machines provides a layer of security that isolates and prevents the smart contract from having direct access to CPU.

  2. EVM reads bytecode.

  3. Solidity code after compilation becomes bytecode.

1 Like
  1. Bitcoin is non Turing complete and can only allow for basic script programming, while Ethereum is Turing complete. Bitcoin does not allow loops.

  2. Turing complete programming language allows for loops.

1 Like
  1. The Ethereum Virtual Machine reads end executes code just like a regular computer, except that it exists simultaneously on every machine in the Ethereum network.

  2. The EVM reads a programming language called Bytecode.

  3. Solidity is what is written by programmers, which is compiled into Bytecode which the EVM can execute.

  4. Bitcoin can’t read the same complex programs as Ethereum because it has an intentionally limited coding language that is uses, which was designed that way to make it difficult for people to write code that spams and overloads the network.

  5. Turing Complete means that the programming langue itself can be used to imitate a Turing Machine. A programming language is said to be Turing complete if it has conditional branching and the ability to change an arbitrary amount of memory.

1 Like
1. What does the EVM do?
EVM encapsulates smart contracts and it also give the CPU instruction on how to execute smart contracts.  
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 is a programming language that can be compiled into byte code that the EVM uses to read all instructions. Once the EVM reads the instruction in byte code the EVM tells the CPU what to execute. 
4. Why can't Bitcoin run the same type of complex programs like Ethereum can?
	1. Spamming: It didn't want users to spam the BTC network.
	2. Increase in Blockchain size: Having users being able to insert any smart contract they want could cause a problem for Bitcoin blockchain because it will cause a scalability  issue that ETH has. BTC is digital gold.
5. What is a Turing Complete programming language?

A truly complete language is a language that can use loops and that can turn anything a user wants into an application.

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

Indeed, but is not an user interface, solidity is the programming language and then it will be compiled into Bytecode for the EVM to work with.

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

Carlos Z.

1 Like
  1. EVMs verify & compile smart contracts before tasking CPUs to execute them. EVM is the environment in which the smart contracts run.

  2. EVMs can only read Bytecode format instructions.

  3. Solidity is a programming language that can be compiled into Bytecode and executed using an EVM.

  4. Bitcoins programming language is not turing complete.

  5. Turing complete languages (such as Solidity) have the ability to run code in loops, which allows us to execute complex functions (such as smart contracts).

1 Like