Homework on EVM

  1. EVM is the Ethereum Virtual Machine, that interprets and executes the smart contracts
  2. byte code
  3. Solidity is the programming language for Ethereum but have a compiler what translate the instructions into byte code
  4. Bitcoin use a simple, not turing language and does not have loops.
  5. a TC language theoretically can handle anything what the programmer wants to program
1 Like
  1. The EVM Ethereum Virtual Machine runs on the Ethereum network and executes code (smart contracts) across network compuuters.

  2. The EVM can read and execute Byte code.

  3. Solidity is a language that is easy to program similar to Java. It is converted to byte code for the EVM to read via a compiler.

  4. Bitcoin is a monetary network and the developers do not want it to have issues with having to execute smart contracts and run a lot of code. It does allow simple functions that are not Turing Complete using Script

  5. A Turing Complete programming language allows any mathematically possible manipulation of data including loops and other functions.

1 Like
  1. What does the EVM do?
    a. Similar code as bitcoin, it runs proof of work (soon proof of stake), EVM allows code for smart contracts.

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

  3. What is the relationship between the programming language Solidity and Bytecode?
    c. solidity is compiled into bytecode, then its read by the EVM and executed on your CPU.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    d. It isn’t Turing complete

  5. What is a Turing Complete programming language?
    d. A programming language is Turing complete if you can implement any possible algorithm with it.

1 Like
  1. EVM makes it possible for us to execute code on the Ethereum network, so we are all in consensus what this code should be. EVM can read and execute smart contracts. EVM runs on top of the existing hardware of each node. EVM will ensure that nothing malicious happens.

  2. Instructions for the EVM are compiled in Bytecode. To get to Bytecode a language called Solidity is used.

  3. Solidity is the programming language used by Ethereum, The programmer uses this to write their program and using a compiler converts the instructions into Bytecode.

  4. Bitcoin has some simple capabilities using Script. However Script is not Turing complete and cannot solve all problems.

  5. A Turing complete language is one that can solve all problems. It will also have loops which are a feature of a programming language that instructs software to do one this several times.

1 Like

Homework - EVM - Answers

  1. What does the EVM do?

The Ethereum Virtual Machine (EVM) is a distributed computer that enables the deployment of code on the blockchain in a manner that ensures that every node has consensus on how code should execute. Also, by processing this code in a virtual machine, the security of the node’s OS, hardware, and hence network, is maintained.

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

The EVM reads bytecode.

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

Currently, smart contracts are written in Solidity which has a compiler that transforms solidity code into bytecode which can be read and executed by the EVM. Any language that has a compiler that can translate its code into bytecode that the EVM can read and execute, can be used to deploy code onto the Ethereum chain. Another programming language that can be used to program Ethereum is Vyper.

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

Bitcoin’s programming language, Script, is not Turing complete. In short, it does not allow certain functions to be done, such as infinite loops, which means that there are limitations to what it can be used to execute.

  1. What is a Turing Complete programming language?

Turing complete languages, such as Ethereum’s Solidity, are infinitely programmable so theoretically, it can be used to build and execute any function in the relevant context.

1 Like
  1. The EVM makes sure that code deployed onto the Ethereum blockchain is within consensus in how the code should be. this prevents anybody from tampering from the code itself to avoid illegible code on the blockchain and helps maintain security.

  2. The format that the EVM reads in is called bytecode.

  3. Bytecode is the language that the EVM runs in while Solidity is the programing language for the apps. They are related because both are executed in the EVM.

  4. Because bitcoin’s programming language, script, is not a turing-complete programming language.

  5. A turing complete programming language is a language that allows anything to be expressed freely within that language without code restrictions since anything can be programmed due to the freedom of programming functions.

1 Like
  1. What does the EVM do?
    EVMs encapsulate a smart contract and reads the smart contract and then sends it to to CPU to execute.
  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 a programing language that is sent through a compiler and the compiler turns the programing language into byte code so the EVM can read it and send it to the CPU.
  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Bitcoin is not turning complete.
  5. What is a Turing Complete programming language?
    A programing language that has loops.
1 Like
  1. The Ethereum Virtual Machine is running on every node and is able to read the sc and tell if it’s alright or not. This way consensus is achieved

  2. Byte Code

  3. In Solidity you can programm anything you want (touring complete) and put it then into a compiler which takes your code and puts it into bytes

  4. Because btc uses script which isn’t touring complete

  5. A language where you are able to programm whatever you want

1 Like
  1. What does the EVM do?
    It is the Etherem Virtual Machine, where it runs on the computer nodes consisting the Ethereum network and provides the environment to execute smart contracts.
  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 program language for Ethereum that that humans can interpret. Bytecode is the same in computer language.
  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Because Bitcoin is not Turing complete, it cannot do loops in programs, hence limiting the complexity.
  5. What is a Turing Complete programming language?
    A Turing Complete programming language is one where you can program anything you want, including loops.
1 Like
  1. EVM reads and executes smart contracts on a blockchain.
  2. EVM reads bytecode.
  3. Solidity is compiled into bytecode.
  4. Because Bitcoin programming language, Script, is not Turing-complete.
  5. It is a programming language that can simulate any Turing machine.
1 Like
  1. EVM makes it possible for smart contracts to be run on the Ethereum blockchain. EVM also secures the network by ensuring that smart contracts don’t breach consensus and execute directly on CPUs of nodes.

  2. The format of instruction the EVM reads is Bytecode; a compiled form of the language the smart contract are written in.

  3. Solidity is the Ethereum based programming language smart contract are written in. Bytecode is a compiled form of whatever language smart contracts’ instructions are written in that the EVM can read.

  4. Bitcoins programming language - Script, is not Turing complete - can program limited to stuff like multi-sig wallet while Ethereum has a Turing complete language - Solidity, this means it is capable of running complex programs.

  5. A Turing complete language is one that can be used to program complexities.

1 Like
  1. What does the EVM do?
    It reads smart code & and controls its execution by the 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?
    Byte code is complied Solidity
  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    It id NOT turin complete
  5. What is a Turing Complete programming language?
    One that can be programmed to execute any type of logic in theory
1 Like
  1. The EVM allows for a CPU to indirectly use smart contracts in case of malicious attacks.
  2. EVM reads in byte code
  3. Solidity is the programming language that is then compiled to byte code to further execute smart contracts.
    4.Bitcoin has another programming language called script and it is very limited to what it can do, not Turing complete.
  4. A Turing complete program can solve many mathematical problems.
1 Like

Homework - EVM

  • What does the EVM do?
    The EVM is essential to the Ethereum Protocol and is instrumental to the consensus engine of the Ethereum system. It allows anyone to execute code in a trustless ecosystem in which the outcome of an execution can be guaranteed and is fully deterministic (i.e.) executing smart contracts.
  • What is the format of the instructions that the EVM can read?
    Bytecode
  • What is the relationship between the programming language Solidity and Bytecode?
    By using a coding program called Solidity, we can program a smart contract and deploy it at the Ethereum network.
    Solidity compiles our instructions into byte code, then EVM reads all of these instructions.
  • Why can’t Bitcoin run the same type of complex programs like Ethereum can ?
    BTC can’t run the same type of complex programs like Ethereum can because it is not running a Turing Complete programming language. It has a programming language called script that cannot run a true smart contract as it is limited. You can do a multisig wallet but several parties are required to sign a contract before it can go through. BTC developers want BTC to remain solely as digital money or digital gold.
  • What is a Turing Complete programming language?
    A Turing Complete programming language is a language where you can program anything you want or can think of. Alan Turing created a machine that can take a program, run that program, and show some result. But then he had to create different machines for different programs. So he created “Universal Turing Machine” that can take ANY program and run it. Programming languages are similar to those machines (although virtual). They take programs and run them. Now, a programing language is called “Turing complete”, if it can run any program (irrespective of the language) that a Turing machine can run given enough time and memory. For example: Let’s say there is a program that takes 10 numbers and adds them. A Turing machine can easily run this program. But now imagine that for some reason your programming language can’t perform the same addition. This would make it “Turing incomplete” (so to speak). On the other hand, if it can run any program that the universal Turing machine can run, then it’s Turing complete. Most modern programming languages (e.g. Java, JavaScript, Perl, etc.) are all Turing complete because they each implement all the features required to run programs like addition, multiplication, if-else condition, return statements, ways to store/retrieve/erase data and so on.
1 Like
  1. EVM is used on the ethereum network to read smart contracts. EVM is installed on the nodes to protect the CPU from potentially malicious smart contracts.

  2. The format of instruction evm can read is ethereum byte code which is written on solidity and then complied into byte code.

  3. Solidity compiled into byte code which is then what evm reads.

  4. Bitcoin uses script which is a non turing language making it not possible to create complex languagws.

  5. It is a language that you can write complex programs on including loops.

1 Like
  1. What does the EVM do?

The EVM runs the bytecode in an isolated environment. Essentially executing code in the network nodes that run the Ethereum blockchain.

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

Ethereum bytecode.

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

Solidity is the language in which the code is written, and this is then compiled in to the Bytecode.

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

Bitcoin is not turing complete, so it cannot run all programs.

  1. What is a Turing Complete programming language?

A TC language can compute anything that is computable, essentially it can run all possible programs.

1 Like
  1. What does the EVM do?
    EVM (Ethereum Virtual Machine) is an isolated environment or virtual stack embedded within each full Ethereum node, responsible for running smart contracts. These contracts are written in higher level languages, like Solidity, then compiled to EVM bytecode. It can also be viewed as the translator, middleman between smart contracts on the network and CPU of each node.

  2. What is the format of the instructions that the EVM can read?
    EVM reads intructions in bytecode, which represent the logic of a smart contract compiled from a ligh level language (for example solidity)

  3. What is the relationship between the programming language Solidity and Bytecode?
    Solidity is a Turing Complete programming language. Bytecode is a compiled version of smart contracts written in solidity.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Bitcoin used scrupt, which is a non turing complete programming language. It is limited to sequential instructions and stack based operations, which are suitable for complex tasks (performing a loop for example)

  5. What is a Turing Complete programming language?
    A turing complete programming language can be used ti simulate any turing machine. This means that this language is able to recognize or decide other data-manipulation rule sets.

1 Like
  1. What does the EVM do?
  • EVM reads the byte code in the smart contract and with consensus by all nodes, the instruction is given to CPU to execute. EVM also prevents malicious codes/instructions within the smart contract from targeting CPU directly
  1. What is the format of the instructions that the EVM can read?
  • Byte Code
  1. What is the relationship between the programming language Solidity and Bytecode?
  • Solidity will have a compiler to traslate the instructions into byte code onto the smart contract for EVM to read
  1. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
  • BTC is running on the language Script, which is not turing complete
  1. What is a Turing Complete programming language?
  • a turing complete language is able to lay out instructions to solve all problems that might have to solve
1 Like

1.The Ethereum Virtual Machine is an application that executes smart contracts onl nodes on the Ethereum network. EVM can be seen as an extra security level for the network, as it ensures no malicious activities are going on in a smart contract.
2. EVM reads byte code.
3. Solidity is a readable programmable language that is compiled into byte code, and runs through the EVM on the CPU of a node.
4.Bitcoin runs on Script, which is a different programmable language than Ethereum runs on, Script is not Turing complete.
5. Turing complete is a a programming language that programs smart contracts.
It can be used to solve an immense multitude of computational problems.

1 Like
  1. What does the EVM do?
    Ethereum Virtual Machine allow us to write and run code withim the ethereum network. With this funcionality we can give orders, store information and produce smart contracts. Its like Ethereum Network is a big cpu that we share.

  2. What is the format of the instructions that the EVM can read?
    The instrunctions are writing in Bytecode. But programmers usually use Solidity to write the instrutions and then compile it to Bytecode.

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

Despite the EVM understand only bytecode, the Solidity is a the language used by programmers to write the instructions to the smart contract. After write it, the programmer will compile the code to Bytecode using compilers like Viper. The EVM doesnt care about the language used to write the instructions, only to the Bytecode produced throught it.

  1. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Because Script, the language used to write code inside the Bitcoin network, is not Turing Complete, its kinda of a primitive structure that does not allow you to write everything you want.

  2. What is a Turing Complete programming language?
    Is a language that allows you to write and run everything you want into a computer. When a language is not turing complete you are restricted to the set of rules that the machine gives you.

2 Likes