Homework on EVM

1. What does the EVM do?
Ethereum Virtual Machine (EVMs) is an application that all nodes on the Ethereum network are running on top of their existing hardware that handles smart contract deployment and execution, a global decentralized computer containing millions of executable objects, each with its own permanent data store.

2. What is the format of the instructions that the EVM can read?
EVMs take a look at the instructions on the CPU of a node, written in Solidity, which is then compiled into bytecode and the EVM then reads and executes the programming commands.

3. What is the relationship between the programming language Solidity and Bytecode?
A solidity source file will be complied to EVM bytecode to be executed on the network

4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
Bitcoin does not have a true and complete programming language. It can use it’s script language to perform primitive functions like simple contacts and multi-sigs.

5. What is a Turing Complete programming language?
A system of data-manipulation rules that is able to recognize or decide other data-manipulation rule sets and can be used to solve any computation problem.

1 Like

What doe the EVM do?
The EVM acts as an intermediary between smart contracts and the CPU’s on the network, encapsulating the contract instructions as a security measure against malicious contracts attempting to take over the network, it also reads the data within the contract and sends instructions to the CPU on what to do.

What is the format of the instructions that the EVM can read?
The EVM reads Bytecode within the contract which is a compiled version of Solidity.

What is the relationship between the programming language Solidity and Bytecode
Smart contracts are created using Solidity, then a compiler is used to translate it into Bytecode, which is held within the smart contract to be read by the EVM.

Why can’t Bitcoin run the same type of complex programs as Ethereum can?
Bitcoin lacks the programmability of Ethereum due to the limitations of its programming language. Script is not turning complete, whereas Solidity is, this allows for more complex and robust programmability.

What is a Turing complete programming language
A Turing complete programming langue is one that is computationally universal, theoretically, it can be used to solve any computational problem.

1 Like
  1. What does the EVM do?
    The EVM is the ethereum virtual machine which reads and executes the instructions set with in the smart contract and provides a consensus to the ethereum network

  2. What is the format of the instructions that the EVM can read?
    The EVM can read instructions in the format of byte codes.

  3. What is the relationship between the programming language Solidity and Bytecode?
    Solidity is the programming language used to create instructions for a smart contract on the ethereum network which in turn compiles the instructions to byte code so the ethereum virtual machine can read it.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Bitcoin can not run the same complex programs like Ethereum can because it uses script language which has limited capabilities and is not turing complete unlike Solidity which is the programming language used for Ethereum.

  5. What is a Turing Complete programming language
    A turing complete programming language can in principle perform any computing calculation that any other computer can. A turing complete language like solidity has great scalability and can do loops and therefore anything can be programmed on such a network.

1 Like

1. What does the EVM do?
EVM is the Ethereum Virtual Machine. It is a script (piece of code) that executes on all computers/nodes on the Ethereum Network. It can read smart contracts and then tell the CPU of the computers what to execute. It acts as a middle layer to prevent security issues.

2. What is the format of the instructions that the EVM can read?
It reads EVM byte code

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

Programmers write their code in solidity. code is then compiled into EVM byte code via tthe solidity compiler. The EVM byte code is then read by EVM.

4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
Bitcoin uses script as a programming language. It is not Turing complete. The reason that Bitcoin uses script is that Satoshi only wanted BItcoin to be digital gold, and did not want to risk network being spammed, therefore kept Bitcoin Simple.

5. What is a Turing Complete programming language?

Turing complete means that the programming language can calculate all calculations. E.g. solidity (can do conditionals, if else, loops etc) unlike script for Bitcoin which cannot.

1 Like
  1. EVM is available on every Ethereum network node and it is responsible to execute the code of the smart contract which is compiled in Byte Code, EVM uses the node’s CPU to executes smart contracts compiled code to increase security.

  2. EVM can execute compiled smart contracts in Byte Code only.

  3. Smart contracts are written using Solidity Ethereum programming language, then the smart contract needs to be compiled into Byte code before EVM can execute it.

  4. Bitcoin script language is not Turing complete which means it is not allowed to have programmable instructions or data manipulation rule. Bitcoin script was designed this way because Satoshi’s goal is to allow simple digital mining without any risk of manipulating data.

1 Like
  1. What does the EVM do?
    The EVM runs the code within the smart contracts. Each node on the network runs an EVM.

  2. What is the format of the instructions that the EVM can read?
    Instructions are written in Solidity, compiled to Byte code

  3. What is the relationship between the programming language Solidity and Bytecode?
    Instructions are written in solidity by programmers, this is then compiled into Byte code which is then executed by the EVM. This means more languages can be created for developers as long as they compile to the same byte code

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Bitcoin is not Turing Complete, the Script language is limited in capability.

  5. What is a Turing Complete programming language?
    A Turing complete language is one that can be used to solve problems. E.g. HTML is a presentation language and is not Turing complete, Javascript is as it has conditions, loops etc.

1 Like
  1. What does the EVM do? An EVM executes and stores the bytecode on a smart contract.

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

  3. What is the relationship between the programming language Solidity and Bytecode? Solidity gets compiled into bytecode then the EVM reads the data to execute the instructions of the smart contract.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can? Script the programming language of Bitcoin is not turing complete that is why it can’t run complex programs like Ethereum can with solidity.

  5. What is a Turing Complete programming language? A Turing complete language can perform complex functions like loops that a non-turning complete language can not. Anything, in theory, can be programmed in a Turing complete language and non-turing complete languages are limited on what can be programmed.

1 Like
  1. What does the EVM do?
  • EVM or ethereum virtual machine is a piece of code or application that all the computers on the networks are running, EVM makes it possible to execute a code on the network in such a way that we are all in consensus about what the result should be. EVM can also execute and read smart contracts.
  1. What is the format of the instructions that the EVM can read?
  • EVM will read the smart contract it will be probably written in Solidity but then compiled into EVM bytecode
  1. What is the relationship between the programming language Solidity and Bytecode?
  • a smart contract will have a bunch of instructions and they will be in Bytecode, but what programmers are using in order to get to this Bytecode is a programing language called Solidity. Then you have a compiler a special application that will take your Solidity code and will compile the logic and the instructions you have given in Solidity and it will compile down to Bytecode and then the EVM will read all of the instructions.
  1. Why can’t Bitcoin run the same type of complex programs as Ethereum can?
  • Because the scripting language in Bitcoin is not TC (Turing complete) which means that it can not solve all problems if you want for example to program some kind of application, it is very limited. While Solidity in ETH is TC, meaning that you can program anything you want, anything you can think of it can be done in Solidity.
  1. What is a Turing Complete programming language?
  • On a technical level a TC language will have something called “loops” and “loops” is a feature of a programing language that allows you as a programmer to tell the software to do one thing several times.
1 Like

1.Evm is a reader of code that ethereum uses. It is a way that makes everyone consent to whatever smart contract is put out on the blockchain.

  1. It reads bytes code. Just like if a CPU was to follow instructions.

  2. Ethereum allows solidity to have a compiler so that it can be written by the EVM. Because byte code is the only code that evm reads.

  3. Bitcoin was created to be read by a code reader less potent than solidity. Bitcoin uses script.

  4. Turning complete program language can allow for loops to be integrated in the coding which is much more advanced type of program.

1 Like
  1. What does the EVM do?
    The EVM is a security layer between smart contracts and a node’s CPU. It reads smart contracts and instructs the CPU what to do.

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

  3. What is the relationship between the programming language Solidity and Bytecode?
    Solidity is the programming language used by humans, then a compiler transform it into byte code for the EVM to read.

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Because it uses script which is not turing complete

  5. What is a Turing Complete programming language?
    A programming language that has no limits on what can be programmed

1 Like
  1. What does the ECM do?
    It processes all transactions and goes through/executes the smart contracts and It protects the cpu and therefore the network.

  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 that the instructions for the the smart contracts are written in and then compiled/translated to Bytecode so the EVM can understand it.

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

  5. What is a Turing Complete programming language?
    A programming language that can replicate any other computer program or solve any problem, theoretically. (almost all programming languages today are turing complete)

1 Like
  1. EVM is a software layer on top of the nodes hardware that is able to interpret EVM bytecode and execute the instructions from a smart contract.
  2. EVM bytecode.
    3, Ethereum smart contracts are written in Solidity, since EVM can convert SOL code to EVM byetecode. That doesn’t mean that other languages cannot be uses. You can theoretically write smart contracts in any language as long as the code can be converted to EVM bytecode.
  3. Because by design Script, Bitcoin’s programming language, is not able to use advanced programming features such as control-flow (loops). Thus one cannot develop sophisticated logic in the back end.
  4. A Turing complete language is one that can syntactically articulate and solve all problems of computational nature (without any memory or runtime guarantees nonetheless).
  1. The EVM will read and execute smart contracts and then tell the CPU what to do.
  2. byte code.
  3. Solidity is language that is used to create smart contracts on the Ethereum network. Once
    complete, it is compiled into byte code that the EVM reads.
  4. Bitcoin has limited programming via a language called “script”. Script is a not Turing
    complete and therefore has limited programmability.
  5. A programming language, in theory, that is capable of having anything programmed with it.
    No limits.
1 Like
  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?

  6. An EVM reads and executes the smart contract on the computer, EVM is short for Ethereum Virtual Machine.

  7. EVM reads bytecode

  8. Solidity has a source code set for the EVM, The EVM will use bytecode to execute the smart contract.

  9. The bitcoin programing language is not turing complete:

  10. A turing complete program language is when a programming language is capable of storing, receiving, sending, returning data.

The EVM runs smart contract code on the blockchain, it makes sure there is nothing malicious in the code and performs a set of checks to make sure the smart contract meets the required rules. Then the EVM tells the CPU what to do. The CPU runs the smart contract indirectly, through the EVM.

The EVM reads byte code. Smart contracts are written in solidity and then put through a compiler that translates it to byte code which the EVM reads.

Solidity is like JavaScript so it can be more easily written by developers and then solidity goes through a compiler which turns it to byte code which the EVM reads.

Bitcoin uses Script language which is not Turing Complete. Script has limited programmability while Solidity is Turing Complete.

A Turing Complete programming language can be programmed to do anything. It has loops which can run the same task many times over.

1 Like
  1. The EVM (Ethereum Virtual Machine) executes the code in a smart contract. All nodes in the Ethereum network have the EVM and the smart contracts are encapsulated within the EVM, which adds extra security to the network.

  2. The EVM reads byte code.

3.Smart contracts are written in Solidity, which are then compiled into byte code so that the program can be read and executed by the EVM.

  1. Bitcoin can’t run the same types of programs like Ethereum because Bitcoin’s programming language, Script, is not Turing complete.

  2. A Turing complete programming language is one that, in theory, can be used to program anything or solve any problem.

1 Like
  1. It reads and executes instructions from Smart contract
  2. It can read Bytecode.
  3. Solidity is used as programming language on Ethereum network, this code is being compiled to Bytecode as this is only language which can be read by EVM.
  4. Bitcoin language Script is not Turing complete. It has rather limited capabilities and it would make blockchain too heavy due to long codes.
  5. With Turing complete language theoretically you can solve anything. These languages allows to create any kind of instructions, including making loops to optimize code size and complexity.
1 Like
  1. Runs programs on all the nodes in the blockchain
  2. Byte code
  3. Bytecode is compiled from Solidity
  4. Bitcoin programming language script isn’t turing complete
  5. Language that enables all mathematical operations and loops
1 Like
  1. EVM interprets the code written into a smart contract.

  2. The EVM reads bytecode

  3. Solidity, a javascript-like programming language compiles into bytecode

  4. Bitcoin’s script is not turing-complete.

  5. A turing complete language can solve any mathematically-expressable problem.

1 Like
  1. What does the EVM do?
    it secures the smart contract so it does not corrupt 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?
    Solidity is the programming language for Ethereum and byte code is the program it interacts with?

  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Because bitcoin is not turing complete. the script it use for programming is limited in application

  5. What is a Turing Complete programming language?
    Solidity

1 Like