Homework on EVM

  1. What does the EVM do?
  • Ethereum Virtual Machine is reading and executing the byte code instructions from the blocks. It runs all this instead of CPU.
  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 is the programming language to make coding instructions and then it is transferred to a byte code for the EVM to understand the instructions.
  1. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
  • the block size limitation
  • there is no such programming language as Solidity for Bitcoin. Thus, Bitcoin can be programmed with scripts but only in a very limited way.
  1. What is a Turing Complete programming language?
  • Turing Complete is a language that understands basically everything and especially looping is highly important
1 Like
  1. The Ethereum Virtual Machine is running on top of all nodes hardware and drive each CPU in exactly the same way. That make possible for each nodes to have the same result of others nodes while reading a code ( smartcontract ) in the blockchain. Accordingly we have distributed consensus in the Ethereum blockchain network.

  2. The EVM can only read in Bytecode and limit the possibility of how can be drive the CPU in order to ensure the network from maliciuos attack.

  3. A node read the blockchain and compile the language of a smart contract into Bytecodes instructions. This istructions can be executed from EVM totally safe.

  4. Bitcoin is running a programing code called Script. But the bitcoin developers didnt want deploy a Turing Complete language in order to prevent scalability problems and spams. This is why we cant creat so many interactions with Script on Bitcoin.

  5. A languange designed to allow loops codes. This types of coding languages set no limit on what you can theoretically program.

1 Like

Homework on EVM

  1. What does the EVM do?
    The EVM can run code that all the network operate in consensus. CPUs are not executing directly the instructions but the EVM incapsulate the instructions, this for security reasons.

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

  3. What is the relationship between the programming language Solidity and Bytecode?
    By using a compiler you can “translate” Solidity (that is a programming language more similar to English) in Bytecode (that is a kind of machine language, so not natural to write for humans).

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Bitcoin use a programming language called Script that is a programming language that is not Turing Complete and it does not have all mathematical possibility and it can not run loops.

  5. What is a Turing Complete programming language?
    A Turing Complete programming language is a programming language that can solve any mathematical problems.

1 Like

What does the EVM do?
EVM is code running on each node - creating a virtual machine (isolated):
○ Can read and execute smart contracts
○ Solidity -> compiler -> EVM Byte code
○ All EVM reach consensus re. Status of a smart contract

  1. What is the format of the instructions that the EVM can read? EVM Byte code
  2. What is the relationship between the programming language Solidity and Bytecode?
    ○ Solidity -> compiler -> EVM Byte code
    ○ Bytecode is the binary code that results from runnig Solidity thru a compiler
  3. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    ○ Bitcoin has his own, very limited, non-Turing programming language called Script
  4. What is a Turing Complete programming language?
    ○ Able to do complex calculations and looping to solve any mathematuical problem.
1 Like
  1. What does the EVM do?

The EVM reads the smart contracts on the ethereum blockchain and directs the CPUs of the nodes on the blockchain to execute those smart contracts.

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

The instructions that the EVM can read are in Bytecode.

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

Solidity is a programming language that can be translated into Bytecode by a compiler so that the EVM can read it.

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

Bitcoin can’t run the same complex programs because its programming language isn’t turing-complete.

  1. What is a Turing Complete programming language?

A turing-complete programming language is one that can solve any problem you might encounter when developing an application. Turing-complete languages allow you to execute loops, which are needed for dealing with repetitive situations that contain changing variables.

1 Like
  1. The Ethereum Virtual Machine is an app used on all Ethereum network nodes that executes smart contracts.

  2. The EVM reads byte code.

3, Solidity has a compiler that transposes its code to byte code.

  1. Bitcoin is limited by its programming language, Script. Thus, it cannot perform loops and is effectively not Turing complete.

  2. A Turing Complete language allows you to program pretty much anything you want because it can recognize or decide other data-manipulation rule sets.

1 Like
  1. EVM reads smart contracts to allow general consensus on the network.
  2. The format is in byte code.
  3. Bytecode is the final product of Solidity projects. In other words whatever code you type in Solidity compiles into Bytecode on the smart contract.
  4. Bitcoin is runned on the script language that is a non turing complete language and cannot process complex actions.
  5. A language that can perform advance actions through loops rather than writing step by step protocols.
1 Like
  1. What does the EVM do?
    Read and Execute the codes on the computer network to make all computer network in consensus
  2. What is the format of the instructions that the EVM can read?
    EVM bytecode
  3. What is the relationship between the programming language Solidity and Bytecode?
    Solidity is the programming language that is used by programmers. Compiler will compile the solidity code to EVM Bytecode so that EVM can read and execute the instruction.
  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Because Bitcoin have the program language Script that is not turing complete or have a limitation to function.
  5. What is a Turing Complete programming language?
    It is the program language that help developer to program to solve complex problems.
1 Like
  1. What does the EVM do? - The Ethereum Virtual Machine is an additional layer that exists on top of the Ethereum network that allows you to execute code in a way that achieves consensus about the results of smart contracts. The EVM exists on each node within the network and reads / calculates the instructions contained in a smart contract. These instructions are executed using the host CPUs resources to process the result which is then broadcast back to the network. EVMs contain the smart contract instructions within an environment that does not permit malicious code to be executed directly by the CPU.

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

  3. What is the relationship between the programming language Solidity and Bytecode? - Solidity is the programming language the instruction set is written in for a smart contract. The instructions are then complied into bytecode for the EVM. This means that instructions can be written in any language and then complied into bytecode.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can? - Bitcoin Script is not Turing Compliant meaning that it can only handle low level basic instructions. You can instruct BTC to use double signatures but you cannot layer an application into it. Ethereum on the other hand is Turing Compliant meaning, in theory, you can program anything you fancy as long as you have deep pockets.

  5. What is a Turing Complete programming language? - A Turing Complete language is one in which you can program complex mathematical functions and is also capable of performing loop functions.

1 Like
  1. EVM reads and executes the byte code from a smart contract. the byte code has been compiled from the programming language (Solidity, Viper…)

  2. byte code

  3. a Compiler “translates” Solidity written programmes into Bytecode, which can be read by EVM

  4. because it is Non-TC, and therefore very limited to build smart contracts onto the blockchain - but this is in purpose and wanted by the btc developers to avoid spamming etc…

  5. a TC language can do almost anything you can imagine, theoretically :wink: you can build any application or smart contract and it will be implemented onto the network

1 Like
  1. the EVM rea and execute smart contract and add a layer of security on the ethereum blockchain.
  1. Byte code

  2. Solidity is the language used to program smart contract and then a compiler, compiles the instructions of the smart contract into Byte code whih the EVM on each nodes can read.

  3. Bitcoin language (script) is not a turing complete language, so we can only do simple task. Ethereum use solidity which is a turing complete language. It can do a lot more complicated task.

  4. A turing complete programming language is a language where you can, in theory, program everything you want.

1 Like

1 - it interacts with the smart contracts to reach consensus, security check, and then send processing request to CPU.
2 - Bytecode
3 - Solidity is a high level programming language that gets compiled into Bytecode, so EVMs can read and execute it.
4 - Because its programming language Script is not Turing complete
5 - Programming language that can solve any mathematical issue

1 Like
  1. It executes code on the network
  2. bytecode
  3. Smart contracts are written in solidity, then compiled to bytecode for evm to read
  4. Because script is not turing complete where solidity is
  5. A programming language in which you can program anything you can think of
1 Like
  1. What does the EVM do?
    The Ethereum Virtual Machine reads smart contracts in bytecode and executes, it also has security features that isoloate it incase there is any malicuous code.

  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?
    Smart contracts are written into solidity then compiled into bytecode

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

  5. What is a Turing Complete programming language?
    can solve all complex provlems

1 Like

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

  1. What does the EVM do? EVM makes it possible to execute code on the network. EVM reads and executes smart contract. EVM stands between the contract and the CPU and tells the CPU what to execute.
  2. What is the format of the instructions that the EVM can read? EVM uses Solidity to compile logic and instructions that convert to byte code.
  3. What is the relationship between the programming language Solidity and Bytecode? Solidity can be written in English and converts logic and instructions to byte code.
  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can? BTC has script language which is very primitive and limited. It is not turning complete.
  5. What is a Turing Complete programming language? EVM uses Solidity which is Turing complete and can program any logic into contract.
1 Like

Nice answer!
Welcome @zoefleischer :wave:

  1. The EVM application gives the network a consensus on smart contracts. Solidity written code is translated to bytes for the EVM to pass on to the network. This EVM also fixes the security issue of malicious attacks by not allowing coding to change the computer.
  2. The EVM reads in byte coding.
  3. Solidity is a form of coding that someone will write, then it will be translated into bytecode for the EVM to read.
  4. The developers of bitcoin didn’t want loops in the programming, also if bitcoin would have more complex programs on it the blockchain size would be too big.
  5. Turing complete programming language allows for looping programs without having to write it all out over and over.
  1. The EVM executes code on the network so all are in consensus.
  2. The instructions are in Byte code.
  3. The programmer uses Solidity to write the smart contract, the compiler converts to byte code for the EVM to read.
  4. BTC uses Script which in not turing complete. Therefore it does not have loops which are required in most smart contracts. BTC developers wanted to protect the network from getting spammed and from the blockchain size increasing and for it simply to remain as digital gold which is it’s killer app.
  5. A Turing Complete programming language is used in smart contracts. Loops are a feature of a programming language allowing the software to be told to do one thing several times instead of having to write the same code long hand.
  1. The EVM is what interprets and executes the smart contracts.
  2. EVM runs in a sandbox environment. What that means is that it doesn’t allow smart contracts to interact directly with host computer, they are isolated from the network.
  3. Commands or smart contracts are first written in solidity and then compiled into bytecode.
  4. The idea of Bitcoin is to be crypto currency and gold and nothing more. It’s script language is very limited. Ethereum is not turning complete.
  5. Turing complete (which is Solidity) is a language where you can program everything you want into contract.
  1. What does the EVM do?

The EVM runs the smart contract code on the nodes CPU to check that the result is the same and that there is a consensus

  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 is the code used to program smart contracts it gets converted into Bytecode so that EVMs can run the smart contract on the nodes

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

Bitcoin has a very primitive coding language that is not turing complete meaning it cannot run complex programs

  1. What is a Turing Complete programming language?

This means the the programming language can run complex mathematical functions and in theory one can program anything they can think of