Homework on EVM

1. What does the EVM do?

[EVM] (Ethereum Virtual Machie) is an application running on all the nodes. It executes the smart contracts, and gives instructions to the CPU (Central Processing Unit)

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

EVM (Ethereum Virtual Machine) doesn’t care what programming language you use.
E.g solidity or viper. It just cares about the bytecode.

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

Solidity is a programming language, the code from this program acts in accordance with EVM bytecode.
Bytecode bring into action on Ethereum blockchain.

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

Bitcoin has a programming language named script. With script you can do somewhat a smart contract, but it’s very primative, simple and not turing complete.
(Can’t solve all problems)

Meanwhile Ethereums solidity is turing complete, so you can do almost anything.
At least in theory. :slight_smile:

4. What is a Turing Complete programming language?

A Turing Complete programming language is a system where a program can be written and will find an answer, in theory. :slight_smile:

1 Like
  1. The Ethereum Virtual Machine (EVM) interacts with Smart Contracts following instructions from a CPU interpreting and executing them.

  2. Byte Code, a software compiler.

  3. Smart Contracts are programmed in Solidity to be deployed in the Ethereum network after the instructions of the compiler Bytecode are executed.

  4. Because Bitcoin uses Script as its programming language, which is not Turing Complete and lacks of those more advance programming capabilities Solidity (the Turing Complete programming language used in Ethereum) has.

  5. A programming language capable of virtually build anything on the internet, being just limited by people’s imagination and scalability boundaries.

The EVM is what reads the smart contract and decides whether or not the contract makes sense

EVM can read byte code

solidity code is able to be used because a compiler translates it into byte code

Bitcoin doesn’t have an EVM

A turning complete language means you can program whatever you want

1 Like
  1. The EVM runs the bytecode instructions from smart contracts in a controlled (and safe) environment
  2. The EVM can only read bytecode instructions
  3. Solidity is programming language that is compiled into bytecode for the EVMs to then interpret
  4. Bitcoin’s Script language is not Turing Complete (whereas Solidity is)
  5. A Turing Complete programming language can be used to solve any coding problem.
1 Like
  1. the evm executes the code that people deploy in form of smart contracts
  2. it reads a language called solidity and then converts it into bytecode
  3. Solidity is the language that is used to create smart contracts, whereas bytecode is the low level code that the compiler creates when a solidity program is compiled
  4. because BTC runs using “script” which is a not turing complete programming language, while ethereum uses a language called Solidity that is turing complete and theoretically can execute whatever task
  5. a turing complete language is a programming language that is able to execute any action the programmer thinks of, using condition, loops and other logic mechanisms and can adapt based on the context
  • Reads, interpret and execute smart contracts - making the interface with computers and the network -

  • Byte code!

  • Everything can be done in solidity language, although, it must be compiled into a byte code so EVM is able to read and execute the instructions

  • Because Bitcoin was build on top of a Blockchain 1.0 technology that didn’t support this kind of feature

  • It’s a language that, in theory, can solve any problem that shows up… the main feature that makes it possible it’s the looping - when some can repeate indefinitly an instruction in the code -

  1. EVM is a global command system that reads program code that entails instructions that is then computed to the nodes in the network that accept and verify transactions.

  2. EVM reads the format of instructions written in Solidity.
    3.The relationship between Solidity and bytecode is that solidity is comprised of bytecode that is executed on the EVM.

  3. A Turning Complete language is one where you can compute anything that any other computational method can compute.

  4. Im not sure could someone help explain this one to me a bit more?

1 Like
  1. What does the EVM do?
    It executes the instructions of a smart contract

  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 gets compiled by a compiler into byte code which the EVM can then read

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

  5. What is a Turing Complete programming language?
    It means that you can code virtually anything

1 Like
  1. It’s an environment that translates commands/code and talks to the CPU. It’s sandboxed so it protects your computer from malicious instructions
  2. Bytecode
  3. Solidity is a more accessible programming language which compiles the written code to instructions in bytecode
  4. Because it’s programming language Script is very limited (intended)
  5. It allows for complex programs and logic to be written (e.g. loops)
1 Like
  1. It is the heart of all Ethereum. It is the place where dapps, smart contracts and just about anything on Ethereum lives. It interprets contracts and validates the network through their nodes.

  2. Bytecode.

  3. Solidity is what programmers use to code a contract, and Bytecode is what is used to compile it in a way that the EVM can understand.

  4. Because its loop function does not exist. It cannot run contracts ad-eternum, unlike Ethereum.

  5. It is a programming language that is “complete”, that can do whatever a programmer wants it to do within reason.

1 Like
  1. EVM is responsible for protecting nodes from malicious smart contracts. It runs the code of a smart contract indirectly, still using a node’s CPU to do so but in a much safer way.

  2. Bytecode

  3. The Solidity compiler will turn the instructions into Bytecode and then pass it along to the EVM which is responsible for running it.

  4. Bitcoin’s primary language “Script” is not Turing complete.

  5. This means it is limited in capabilities in comparison to modern dynamic programming languages. One of the things that define not being Turing complete is a lack of loop capabilities (While, For, etc).

2 Likes
  1. What does the EVM do?

The EVM executes program code for the Ethereum network with which the smart contracts can be programmed.

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

It is Bytecode .

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

Solidity is the programming language used to write the Bytecode for Ethereum.

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

The scripting language in Bitcoin allows only limited possibilities for security reasons, so that for example a “loop” cannot be used to spam the network.

  1. What is a Turing Complete programming language?

This is a programming language that offers the greatest possible flexibility, such as Solidity.

1 Like
  1. The EVM runs on every node in the Ethereum Network. It is an intermediary between the code behind the smart contracts and the CPUs of the nodes.

  2. byte code

  3. Solidity is the programming language that is being used by the programmers and Bytecode is what the EVM can read.

  4. Because Bitcoins Script language isn’t Turing complete.

  5. It is highly programmable and can theoretically solve every problem.

1 Like
  1. What does the EVM do?

The EVM is a virtual machine that reads and does the instructions in a smart contract. Actually, it is a software layer between the smart contract and the CPU, which reads the instructions of a smart contract, and makes the CPU do the actions of those instructions.

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

The EVM can read Bytecode.

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

Solidity is similar Java, and similar to English, so it is easy for programmers to use. Bytecode is read by the EVM, and is a code which gives instructions for machines to read and do. Programmer write Ethereum code in Solidity, the an application called a compiler changes the Solidity code to Bytecode for the EVM to use.

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

Bitcoin software is not designed to be general purpose software. It has a very limited set of functions, which are: 1. providing a way for digital transactions to be done 2. storing these transactions in its database of permanent transaction records, where it can be read by anyone with a basic computer system and internet connection. 3 doing these things in an extremely secure, reliable manner, without any middlemen to verify that transaction data is correct.

By not adding complex program features, BTC simplifies the software and the network system, and focuses on a set of transaction services, which function as a type of online money. This simplicity gives BTC more security and speed, because there is less chance of getting spam, viruses, etc. in the BTC system. Despite its limited software features, BTC is still slow, but it would be slower if there were more type of work for the system to do, or if the system received spam or other unwanted code.

  1. What is a Turing Complete programming language?

It is a programming language that can be used to solve any math problem, and to make any type of software instruction in a program.

1 Like
  1. The EVM reads and executes smart contracts for each node in the network. If all of the nodes reach the same result, then consensus has been achieved.
  2. Byte code
  3. A programmer will write code in a programming language such as Solidity, then a compiler will convert this code into byte code for the EVM to read.
  4. Bitcoin’s programming language is limited to what instructions can be coded. This means it is not a Turing complete language, but Solidity is Turing Complete.
  5. Anything (in theory) that can be imagined can be programmed with a Turing Complete programming language. However, there are certain instructions that may not be practical or scalable.
1 Like
  1. What does the EVM do?
  • EVM or Ethereum virtual machine makes it so that users can create dapps on top of the blockchain.
  1. What is the format of the instructions that the EVM can read?
  • The EVM can read byte code from the computer.
  1. What is the relationship between the programming language Solidity and Bytecode?
  • Solidity is 1 of the programming language that can be used to create smart contracts, through an app which is called compiler it can connect this language and turn it into a byte code instruction on your computer which then is read by the EVM.
  1. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
  • Bitcoin cant run same type as Ethereum because the program language that bitcoin has is very limited which is called script.
  1. What is a Turing Complete programming language?
  • A Turing Complete means that a programming language is capable of doing anything.
1 Like
  1. EVM is the code that Eth network computers have that can read and execute smart contracts, basically instructing the each node’s CPU what to do.
  2. The format of instructions that the EVM can read is the bytecode.
  3. Solidity is the programming language developers use, which gets compiled into bytecode, that is read by EVM.
  4. Bitcoin can’t run complex programs like Eth can due to its Script language not being Turing complete.
  5. A Turing Complete language is one that is totally programmable - will run instructions however you want, and however many times you want (like loops).
1 Like
  1. What does the EVM do?
    Execute bytecode

  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 allows for a human readable logic input. The compiler converts it to bytecode.

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

  5. What is a Turing Complete programming language?
    A language that is able to execute complex logic.

1 Like
  1. The eve executes the smart contract

  2. It can read the byte code format

  3. solidity it can be understood by humans and byte code is the binary type which is understood by computer only computer can read it

  4. The language that was programmed by bitcoin is not Turing complete

  5. a language that can execute like complex logic

2 Likes

1.- It executes the code of smart contracts in each node when the consensus among the different nodes is reached.
2.- Bytecode.
3.- Solidity is the language of the smart contracts and it is compiled into Bytecode so that EVM can run it.
4.- Because BTC uses a different language called Scrypt which is very limited. They maintained BTC limited to avoid the blockchain to run loops and become heavy or malleable.
5.-Turing complete programming languages are those that can solve all types of instructions.

3 Likes