Homework on EVM

  1. The EVM is a virtual machine running on the Etheruem blockchain which executes EVM Bytecode securely in its own sandbox

  2. EVM can read Bytecode

  3. Solidity is compiled into Bytecode

  4. Bitcoin has Script, a non-Turing complete simple scripting language, whereas Solidity is Turing complete

  5. A Turing complete programming language can perform computable functions using constructs such as conditionals and loops

  1. Executes the programed smart contract byte code via resource computer hardware.
  2. Byte code.
  3. Solidity programs byte code for EVMs.
  4. Scalability issues due to BTC block size. BTC programing language is not Turing Complete, it’s very limited.
  5. Turing Complete = fully programmable programing language. One key aspects is loops and conditional functions.

1. What does the EVM do?

Quite close sir, but the EVM does not convert Smart Contracts into bytecode.
EVM (Ethereum Virtual Machine), It’s an application that runs on top of an ethereum node that executes the bytecode of a smart contract within a safe environment (smart contracts cannot harm nodes since they run in a virtual machine). Think of an EVM like a safe virtual sandbox that handles the instructions of a smart contract in order to verify if all the instructions are valid and will not harm either the node or the network before those instructions pass through the node and then the network itself.

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

Quite close sir, but Solidity is the programming language that you use to create/design smart contracts, after that, it will be compiled into ByteCode, so the format of the instructions that EVM reads is Bytecode.

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

Not quite right, you program the Smart Contract using Solidity has the programming language(High level), then you compile the Smart Contract to Bytecode(Low level), this one is used for the EVM to understand the instructions you had programmed, because the EVM only read code in bytecode format.

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

Carlos Z.

2 Likes

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

Carlos Z.

1 Like

1. What does the EVM do?
In short: Read smart contracts. As I understood it, it is like a cpu but on the network, which is used to read the smart contracts and if they do not represent damage, run them through the cpu of each node.
2. What is the format of the instructions that the EVM can read?
It can only read in ByteCode.
3. What is the relationship between the programming language Solidity and Bytecode?
Solidity is like a transition languague between englsih (human language) and Bytecode (machine language), so Programmers can write in Solidity, then the information is compiled (something like been translated as i understand) into Bytecode and then it can be read by the EVM and executed by the node CPU.
4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
Because it uses Script, which is a not turing complete language, and therefore can’t create sophsticated programs.
5. What is a Turing Complete programming language?
Is a language that allows the programmer to create sophisticated programs.

2 Likes

5.What is a Turing Complete programming language?

Quite right miss, but that could be one of the abilities of the Turing Complete programming language, could you please describe it in general terms?

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

Carlos Z.

1: The EVM machine run the bytecode that interprets smart contract it runs on top of the cpu in the nodes. It isolates the cpu from improper commands that could take control of the nodes

2: The EVM can only read ByteCode

3:Solidity is the smart contract programming language which is then converted to Bytecode that is the instructions to the EVM

4:Bitcoin runs Script which is not turin compatible it cannot run complex programs it does not contain Loops

5: Turin programming language runs complex operations with a complete set of instructions including loops

1 Like
  1. Ethereum Virtual Machine is software that runs on etheream nodes and allows smart contracts to run while at the same time, protecting the CPU from malware and malicious attacks that might be on a smart contract.

2 EVM only reads byte code.

  1. Solidity is programming language which is like English where as byte code is compiled from the coding language into byte code which is not similar to English but something else only the EVM can read.

4 Bitcoin coding is not Turing complete.

  1. Turing `Complete programming language allows you to program anything you can think of in theory.
  1. TC language allows you to have loops in code. Whereas Bitcoin does not have this feature because it does not want this feature.
1 Like

Thank you Carlos, will do! :+1:t4:

1 Like

1 - It is a peace of software between the smart contracts and the nodes CPU’s that actually reads and tells the CPU to execute the smart contract. They protect the nodes from being controlled by the code of the smart contract, because they only execute instructions related to the Ethereum blockchain.

2 - They can only read Bytecode.

3 - Solidity is closer to an human language, and is used to write the byte code in a friendlier way. Bytecode is what the computers really understand.

4 - Bitcoin blocks would be bigger if they included the smart contract codes. And Bitcoin developers wanted it to be more like a store of value than a programmable money, so it would kind of defeat BTC’s objectives.

5 - It is a language that does not have programming limitations.

1 Like
  1. EVM is an application that executes the contracts and send instructions to the CPU:s.

  2. Bytecode.

  3. You compile the logic and instructions you have given in the Solidity code down to Bytecode, which is read by the EVM.

  4. Bitcoin isn’t programmable in the same level as Ethereum. You can do some programming in Script, which isn’t Turing Complete.

  5. You can program anything you want in a TC language. This isn’t possible in the Script language.

1 Like
  1. It runs EVM byte code which was compiled from a Solidity or Vyper program. It also prevents smart contracts from doing any crazy stuff at a local node like controlling any resources that it shouldnt.
  2. EVM byte code
    3.Solidity is the higher level human readable language that gets compiled down to lower level byte code.
  3. Bitcoin is not turing complete and only has the SCRIPT language which is very limited.It can only do multi sig.
    5.A language with loops
1 Like

1.EVM Etherium virtual machine secure the etherium blockchain by acting as a firewall. Execute the bytecodes from the smart contracts.
2. EMV reads bytecodes
3. Solidity is a programables language, can be compile into bytecode
4. Bitcoin use a script language, can not do complex programs like etherium.
5. Turing complete programming allows to solve any programmable issue.

1 Like
  1. Run the byte code compiled from solidity or viper, separate from the cpu for security.
  2. Byte code compiled from solidity or viper.
  3. You program i solidity but compile to byte code for EVM to understand.
  4. It’s code is simpler for smaller size network.
  5. Code with loops, and other limits in Script removed.
1 Like

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

Yes sir, just to give you a clear picture of the subject: you program the Smart Contract using Solidity has the programming language(High level), then you compile the Smart Contract to Bytecode (Low level), this one is used for the EVM to understand the instructions you had programmed , because the EVM only read code in bytecode format.

1 Like
  1. The EVM is software that runs on all nodes within the Ethereum network. It provides the ability to execute smart contracts in a technically secure environment that is isolated from deeper level network functions.
  2. EVM reads Byte code
  3. Solidity compiles & executes into Byte code for the EVM to read
  4. BTC can’t run complex programmes because it wasn’t designed for that level of functionality but as a simple digital store of value & exchange. BTC uses a non Turing complete language called “Script”
  5. A Turing complete language has in theory the potential to resolve any computing task as opposed to a non Turing complete language that is limited in its functionality
1 Like

1.Read and execute code
2.Byte code
3.solidity is language used by ethereum compiles into bytecode in order for EVM to be able to read & execute code
4.Bitcoin is using the scripting language which is not turning complete language
5. Allows for complex instructions to be written to perform functions such as loops.

1 Like

1./2. EVM (Etherium virtual machines) read smart contracts in Bytecode.
3. Solidity is PL as JS but Bytecode is language used in smart contracts
4. Because it is dangerous. With greater programming possibilities (more complex programs) you can slower/destroy application.
5. TC is programming language like Solidity or Python. It is more complex PL so I can write “loops” conditions.

1 Like

An EVM, or Ethereum Virtual Machine, is an application designed to read smart contracts. The smart contract, written in Solidity, is then converted to Bytecode language and read line by line to filter out any malicious or abnormal instructions intended for the CPU. After being processed and passed through this sort of “buffer” the commands are then carried on directly to the CPU.

The instructions are received through the Solidity programming format. It is then converted into Bytecode and read / processed from there.

The relationship between Solidity and Bytecode in the EVM context is a partnership. The EVM receives the smart contract which is written in Solidity; which is Turing Complete. This allows the programmable aspect to shine. The smart contract is then translated into Bytecode and filtered, line by line, searching for anything that doesn’t belong. After passing this filter phase the Bytecode is then directed to the CPU.

Bitcoin is not capable of the same complexities as Ethereum because it is written in Bytecode which restricts capabilities in that regard.

Turing Complete programming language is a very adaptable format of code. The language allows for loops which saves time exponentially from not having to code repetitive tasks individually. The freedom granted by this is a significant contrast to the simplicity, and monotony, of Bytecode.

1 Like