Homework on EVM

1- the evm encapsulates the instructions which is programmed in solidity in a way so that the cpu doesn’t carry out the instructions directly, but the entire ethereum network carries out the code before the cpu does.
2- bytecode
3-solidity is the language that is used to code on ethereum and bytecode compiles that informataion for the evm to read
4-it was designed for a different purpose. By running a simpler programming language on bitcoin, you cannot spam the blocks with smart contract data keeping the blockchain lightweight.
5- a turing complete language allows for you to create anything with the language

1 Like

1. What does the EVM do?

  • allows the communication between the blockchain smart contracts and your pc.

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

  • the EVM can read byte code.

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

  • Solidity is the programming language used to write a smart contract. The Solidity compiler then transforms this to Bytecode that the EVM can read.

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

  • because Bitcoin uses a much more simple programming language called Script (not Turing Complete) which is very limited.
  • this was done intentionally so it would not overload the network.

5. What is a Turing Complete programming language?

  • is a language that can solve any kind of problem
  • loops is an important component of Turing Complete languages.
1 Like
  1. EVM executes instructions in the smart contracts.
  2. The format of the instruction is a byte code.
  3. We using solidity in order to write a code that is then trasformed into byt code.
  4. Because bitcoin programming language is not turing complete.
  5. In this language we can program actually anything we want. solidity
1 Like
  1. The EVM (Etherium Virtual Machine) is the application used on the Etherium network that can read and execute smart contracts.
  2. The format of the instructions that the EVM can read is Bytecode compiled by programming languages such as Solidity and Viper.
  3. The relationship between the programming language Solidity and Bytecode is such that Solidty compiles the instructions into Bytecode so that the EVM can read and execute the instructions.
  4. Bitcoin cannot run the same type of complex programs like Etherium can do to Bitcoin’s simpler programming capabilities; it is not Turing Complete.
  5. A Turing Complete programming language is one that has loop capabilities, and can hypothetically solve all problems.
2 Likes
  1. EVM is on each ETH node. It can read and execute smart contracts on the network. It does the work of the CPU instead of the CPU which enhances security.

  2. Bytecode.

  3. Kind of like the same relationship between C++ and machine language.

  4. Because it is not Turing Complete. The code does not contain loops.

  5. A language that has loops, a function that allows software to perform a function over and over.

1 Like

1. What does the EVM do?
Ethereum Virtual Network is an application that all computers on Ethereum network are running. EVM runs on top the existing hardware of each node and basically resides between the Smart Contract and the node’s CPU. It can read and execute smart contracts. The smart contracts are written in Solidity and compiled into bytecode. EVM reads the bytecode and tells the CPU to execute the instructions and it will reach a final result. If the nodes on the network reach the same result then everyone is in consensus about what happened in a specific smart contract. The EVM also provides a level of security to ensure that a malicious smart contract cannot get loose in a node’s CPU.

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

3. What is the relationship between the programming language Solidity and Bytecode?
Solidity is compiled into bytecode. The Ethereum Virtual Machine reads the bytecode.

4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
Bitcoin does not use a Turing Complete programming language like Ethereum does. Since its main purpose is to serve as a digital currency it uses a limited language called Script. Otherwise the blockchain size would increase and it would quickly run into scalability issues like Ethereum has.

4. What is a Turing Complete programming language?
A language that can solve any computation problem. It is more complex than say a markup language like HTML

1 Like
  1. it is a code that all computers on the network run that reads and executes smart contracts
  2. solidity code
  3. solidity is a programming language which is then compiled into byte code which is then executed by the EVM
  4. script is not turing complete and does not contain loops.
  5. a turing complete language can program with more complexity and contains loops.
1 Like

Answer 1:
The environment on the nodes that execute SC.

Answer 2:
Bytecode.

Answer 3:
Solidity is the human-readable code that are parsed to bytecode for efficient execution.

Answer 4:
Bitcoin does not have a turing complete programming language and ethereum does.

Answer 5:
A language in which a program can be written that will find an answer given enough time and memory capacity.

1 Like
  1. The Etheruem Virtual Machine encapsulate the programme language (solidity) executed by computer CPU to make sure smart contract are protected and propagated on all etheruem network
  2. The EVM will read the instruction on the smart contract compile by solidity and do the calculations and tell the CPU to execute in order to receive results and nodes will verify and reach consensus on the network. For example, if I create a contract for my WILL, therefore I need to make sure the instruction of who and when to pay out the money and how it is written on the smart contract using EVM code and execute it. When it’s time to pay out, all the nodes will run the instruction like fetch the identity of recipients and pay out the amount agreed on the contract.
  3. The relationship is that the smart contract will be written in solidity and compiled in EVM byte-code for execution.
  4. The script language is not turing complete and doesn’t have loop to do action many times over. It’s also because of spammed protection and blocksize concerns by bitcoin developers.
  5. The Turing Complete programming language is universal method to solve problems and potentially have unlimited storage.
1 Like
  1. What does the EVM do?
  • The EVM stores smart contracts and protects the Ethereum network from smart contract breaking out that potentially has hostile code. One could say the EVM is a security layer.
  1. What is the format of the instructions that the EVM can read?
  • Bytecode
  1. What is the relationship between the programming language Solidity and Bytecode?
  • Smart contracts are written in Solidity. The contract is the compiled into bytecode so the EVM can read it.
  1. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
  • Bitcoin developers didn’t want smart contracts on the network because it would clog up the network even more when they already have a scalability problem with just normal transactions.
  1. What is a Turing Complete programming language?
  • Solidity is a Turning Complete programming language. If you can think it, you can code it. This requires loops.
1 Like
  1. The Ethereum Virtual Machine run on top of all the Ethereum nodes and reads, executes and verifies sets of instruction from an Ethereum smart contract.

  2. The EVM reads bytecode

  3. Solidity makes it possible to translate instructions from a language we humans can understand (it looks like English), to bytecode using a compiler

  4. Because it is not Turing Complete, it can only execute very simpel programs

  5. A programming language that can theoretically execute any program you can think of no matter how complex, one of the reasons it can do this is it supports loops, execute the same set of instructions multiple times.

1 Like

1. What does the EVM do?

Yes sir, but what does the Ethereum Virtual Machine does? could you please explain it a little bit?

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

Quite close, but could you please explain the relationship between the Solitidy programming language and Bytecode?

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

Why not? could you please describe it a little bit more?

5. What is a Turing Complete programming language?

Quite close but could you please describe what a Turing Complete programming language means ?

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

Carlos Z.

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

Indeed sir, but the instructions are not precisely write on english language, you probably mean on a programming language, JavaScript.

Hope this gives you a clear view of the subject, keep learning! :slight_smile:

Carlos Z.

Excellent answer sir! really well documented! keep it like that please! :muscle:

Carlos Z.

1 Like

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

Quite close sir(s), but the format of the instructions that EVM read is ByteCode.

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

Carlos Z.

  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. Executes smart contract programs. it also isolates the cpu from the code.

  7. Byte code.

  8. Bytecode is compiled Solidity instructions.

  9. Its not turing complete

  10. A language that can solve for for any equation.

1 Like
  1. What does the EVM do?

EVM creates an execution environment on top of nodes in an Ethereum network. This environment allows for excecution of smart contracts (code) while isolating the contract from controlling the phsyical hardware. I would guess that this isolates the operation of one smart contract from interferring with the operation of another smart contract on the same node.

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

EVM reads and executes byte code. Byte code is generated by the Solidity programming language. EVM doens’t directly execute Solidity.

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

Solidity generates bytecode.
4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?

Bitcoin offers a smart contract-like feature called Script. However, script doesn’t offer enough programming features to support Smart Contracts.

  1. What is a Turing Complete programming language?

To be Turing complete, a programming language must be able to simulate another computer. This requires conditional logic, looping, and change memory. Script doesn’t offer all this.

1 Like

1.What does the EVM do? Ethereum Virtual Machine verifies the instructions, responsible for handling internal state and computation on the network. The machine must also handle account information pertaining to addresses, balances, current gas price, and block information.

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

  2. What is the relationship between the programming language Solidity and Bytecode? Solidity is high level language which rather than dealing with registers, memory addresses and call stacks, high-level languages deal with variables, arrays, objects complex arithmetic or boolean expressions, subroutines and functions, loops, threads, locks, and other abstract computer science concepts, with a focus on usability over optimal program efficiency. Whereas when we compile the solidity code using the solc compiler, it will translate our code into bytecode, something only the EVM can understand.

  3. Why can’t Bitcoin run the same type of complex programs like Ethereum can? Because its not turing complete.

  4. What is a Turing Complete programming language? It means it can solve all kind of problems.

1 Like

Q1: EVM is the environment that reads and executes the smart contracts on every node on the Ethererum network.

Q2: The format of the instructions that the EVM can read is byte code (Binary code).

Q3: Usually smart contracts are written in Solidity but the EVM doesn’t understand Solidity so it has to be translated (Compiled). A compiler translates the code that the smart contract is written (human language - Solidity) to language that the EVM can read which is Byte Code (Binary Code).

Q4: Bitcoin can’t run the same type of complex programs like Ethereum because its programs are written in Script language which is very limited in functionality and cannot perform looping. It is known as Turing Incomplete as it cannot perform all computational functions.

Q5: An example of a Turing Complete programming language is Java Script & C++
.

1 Like

1- EVM (ETH virtual Machine, basically an OS) that works as bridge and a barrier between the smart contract and the CPU of the node. It reads the bytecode (format of the SC) and reformats it as instructions to the Node CPU. This is also a barrier/filter that separates a possible malicious SC from a Node from being attacked.

2- EVM reads bytecode of the SC

3- Solidity uses JavaScript (basically plain language text) through a Compiler and converts into bytecode (format of the SC)

4- Bitcoin is basically meant to be a Currency or ‘Digital Gold’ only. It’s also been decided to remain this way for scaling issues. It is not ‘truring complete’, and therefor can only handle simple instructions such as multi-signature transactions.

5- ‘Truring Complete’ allows complete latitude and flexibility for the user. There are no limitations to which program can be used and what it can be used for.

1 Like