- What does the EVM do?- agreed state between all nodes
- What is the format of the instructions that the EVM can read?- byte
- What is the relationship between the programming language Solidity and Bytecode? -backwards compatible and symbiotic
- Why can’t Bitcoin run the same type of complex programs like Ethereum can? bitcoin programmed to be simplistic (basically)
- What is a Turing Complete programming language? one that is complex and can have many iterations.
-
EVM can read and execute smart contracts.
-
It reads the Byte code regardless of the programming language
-
solidity is the programming language, from there you have the compiler, which is a special application that will take the solidity code and it will collate it down byte code, then the EVM will read all of the instructions on the byte code.
-
bitcoin still runs on blockchain 1.0, and it could do very simple smart contracts. you can do a multi-sig wallet. it cant solve all the problems that might present themselves. it is limited
-
Turing complete means you can program anything you want. it will have loops. this allows you to tell software to do one task several Times.
- The Ethereum Virtual Machine is distributed to nodes for compilation and verification of Ethereum scripts.
- EVM reads Bytecode
- Solidarity is the front end language which is human friendly that is then compiled into bytecode which is CPU friendly.
- It wasn’t designed to do more complex scripting (ie Turing complete). It also has limitations on block size which makes it less suited to scripted commands.
- Turing complete means that it is capable of running more complex commands, doing loops, and having scalability.
The EVM runs the code on-top of all the network/nodes CPU.
EVM runs byte code.
Solidity is the high level language that developers used to write the Smart Contract & that is compiled to Byte Code to be run on the EVM.
Bitcoin’s programming language is Script & it is not Turing complete. Just very simple logic to keep Bitcoin as currency only (digital gold).
Turing complete means the programming language can be written to do anything example loops.
-
What does the EVM do?
Piece of code that read and executes smart contract to reach consensus, runs on nodes. -
What is the format of the instructions that the EVM can read?
EVM reads Bytecode -
What is the relationship between the programming language Solidity and Bytecode?
Solidity is a programming language like Javascript, complier complies down to bytecode format -
Why can’t Bitcoin run the same type of complex programs like Ethereum can?
bitcoin has script, that is non turing complete. Simple contracts. Very Primitive. -
What is a Turing Complete programming language?
Anything you can think of or program can be done. Can do Loops, program to do something 1000x.
Answers to EVM Homework
-
What does the EVM do?
IT allows to read and execute a code, to Network of Nodes, in a consensus way, so the network knows how the result should be.
This code is known as Smart Contract, that can handle money and is transparent.
-
What is the format of the instructions that the EVM can read?
Bytecode
-
What is the relationship between the programming language Solidity and Bytecode?
A programmer will use Solidity (human readable programming language) to program his/her code, and then compile the code with compiler into a Bytecode, which the EVM will than read and execute.
-
Why can’t Bitcoin run the same type of complex programs like Ethereum can?
It is because it uses a Not Turing Complete programming called Script.
-
What is a Turing Complete programming language?
It’s a programming language where you can program more complex things, basically what ever you can think of, including having feature like Loops.
-
The computer runs the EVM. The EVM reads and runs the smart contract then, instructs the computer.
-
bytecode
-
Solidity is the code to create smart contracts made by the computer. It is then compiled into bytecode which is what the EVM reads.
-
Because the bitcoin code/protocol is not turing complete.
-
It is a programming language that can loop (has loops)
-
EVM reads the instructions of the smart contract and uses CPU to execute it. It is also a shield between mailicious smart-contracts and the CPU itself in order to prevent bad-actors to take over the network.
-
They are written in Bytecode.
-
Solidity translates the Bytecode of the smart contract into a programmagle language.
-
Because Bitcoin’s script is not a turing complete language. It is also not the original intention of the Bitcoin - it is a digital gold and it made more sense to create a new digital currency.
-
A language that can perform all mathematical operations.
- It tells the CPU what to do. It is also a security layer for the ethereum network.
- Byte code
- Solidity is compiled into byte code, and the byte code runs on a CPU of a node
- It doen’t have a feature called “loop” that is designed to repeat the code “x” amount of times. And bitcoin programming language is Script and isn’t turing complete.
- It a language in which you are able to program anything you want (in theory).
- What does the EVM do?
The Ethereum Virtual Machine executes the smart contract code, it is run on every node. - What is the format of the instructions that the EVM can read?
Ethereum byte code - What is the relationship between the programming language Solidity and Bytecode?
Solidity is the programming language compiled into byte code which is then read by the EVM. - Why can’t Bitcoin run the same type of complex programs like Ethereum can?
Because Bitcoin’s programming language, Script, is not true and complete so loops are not available in the program and the functionality is very limited because of this. - What is a Turing Complete programming language?
This is a programming language that cannot solve all thinkable problems that you might want to solve if you are creating an application. With a true and complete programming language, theoretically, you can program anything you can think of.
- EVM reads instructions from the smart contract and tells CPU what to do.
- bytecode
- In Solidity we write smart contract code and then with compiler the code is changed into bytecode code and then EVM reads bytecode.
- BTC script is a Not Turing Complete programming languaege so it does not solve all problems. Also BTC community did not want smart contracts on their blockchain because someone could just spamm the blockchain and there would also be problems with block size.
- Its a programming language which has a feature called loops. That allows you to do one thing repeatedly.
- What does the EVM do?
The EVM checks if the instructions in the smart contract respect the rules before the nodes in the network execute it.
The EVM can read instructions in Bytecode.
- Solidity is the language used by the programmer to input instructions.
Solidity is converted to Byte code(smart contract language) by a compiler.
- Bitcoin’s language is scrpit, which is a not a turing complete language, while Ethereum’s language is turing complete.
A non-turing language cannot solve all kind of computations problems, while a turing complete language can.
- It is a programming language solve any mathematical problems.
- EVM is Ethereum Virtual Machine which can read smart contracts. EMV helps in security of the smart contract.
- EVM reads the byte code.
- Solidity is compiled into the Bytecode
- Because Bitcoin is programmed using a language called Script which is not turing complete.
- A turing complete language allows the programmers to do anything they want.
1. What does the EVM do?
- EVM is a virtual machine running on each node in the network that
runs the smartcontract. It is there for security, to protect from running
'bad code' (malicious or otherwise) and to protect the network.
2. What is the format of the instructions that the EVM can read?
- Bytecode (code is writting in a language [example: Solidity or Viper] and compiled
into bytecode which is what EVM reads/executes.
3. What is the relationship between the programming language Solidity and Bytecode?
- Solidity is the more human readable programming language (like javascript).
where the smart contracts are written.
- The code is compiled into bytecode
4. Why can't Bitcoin run the same type of complex programs like Ethereum can?
- Bitcoin uses 'script' for its programmability and it is very simple.
It is not a turing complete language.
- Ethereum uses laungage like: Solidity or Viper.. which are turing complete
you can do more complex programming (like loops)
4. What is a Turing Complete programming language?
- A turing complete language is one that allows you to perform any computation.
1. What does the EVM do?
It converts computer code of a smart contract, created by the program Solidity (or Viper) into byte code which can be executed by the CPU of each computer
2. What is the format of the instructions that the EVM can read?
Solidity (or Viper) - like Javascript
3. What is the relationship between the programming language Solidity and Bytecode?
Solidity compiles the code (English) into bytecode (machine language)
4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
Bitcoin uses a primative and limited program called Script which is not Turing Complete
5. What is a Turing Complete programming language?
It can compute anything and it has loops
-
What does the EVM do? EVM stands for Ethereum virtual machine and it runs on top of the existing cpu, it instruct the cpu on the order of operation for reading a smart contract. The smart contract will be written in the programming language solidity. The compiler application will take information from solidity and convert into byte codes that makes-up the smart contract.
-
What is the format of the instructions that the EVM can read? EMV reads the byte codes compiled from the solidity programing language. The bytecodes are the contact’s instructions.
-
What is the relationship between the programming language Solidity and Bytecode? Solidity programming language is where the logic and the instruction of the contract are written. Then a compiler application takes the instructions and convert into bytecodes that the EVM will execute.
-
Why can’t Bitcoin run the same type of complex programs like Ethereum can? Bitcoin uses the scripting language program, and the script program is functionally very limited, and is not able to solve complex programing problems.
-
What is a Turing Complete programming language? Turing program language can solve complex problems because of the looping functions that can answer many iteration of the same question.
- What does the EVM do?
reads and executes smart contract instructions and sends the command to the CPUs’ network - What is the format of the instructions that the EVM can read?
Byte code - What is the relationship between the programming language Solidity and Bytecode?
Solidity uses a compiler to code the instructions into byte codes that are fed in the smart contracts and are readable by EVM - Why can’t Bitcoin run the same type of complex programs like Ethereum can?
Because BTC is Turing incomplete, therefore cannot read complex programs - What is a Turing Complete programming language?
Language that allows complex programming.
EVM is the ethereum virtual machine. The EVM is what interprets and executes the smart contracts.
Sandbox environment means isolated environment and whatever happens within EVM is opaque for other environment for security purpose.
-
Solidity is the programming language that developers use to create smart contracts. A compiler will then transform the Solidity code into bytecode. The EVN then reads the code and executes it instruction by instruction.
-
Because the programming language that BTC uses is very limited in terms of changes that can be done. It’s not turing complete.
-
With turing complete language, the developers can create any application they want.
Homework on EVM:
Q1: What does EVM do?
A: EVM makes it possible to execute code on the Ethereum network in such a way as to enable the entire network to arrive at a consensus about what the result should be.
Q2: What is the format of the instructions that the EVM can read?
A: The format of the instructions that the EVM can read is called Bytecode.
Q3: What is the relationship between the programming language Solidity and Bytecode?
A: The relationship between the programming language Solidity and Bytecode is that Solidity converts the written programming language into Bytecode for the EVM to read.
Q4: Why can’t Bitcoin run the same type of complex programs as Ethereum can?
A: Bitcoin cannot run the same type of complex programs that Ethereum can because the programming language that bitcoin uses is called Script which is not a Turing complete language like the Solidity programming language that Ethereum runs.
Q5: What is a Turing complete programming language?
A: A Turing complete programming language is one that can solve all problems that it is required to solve in order to produce the required/ intended result.
-
Ethereum Virtual Machine (EVM) is how the network reaches consensus, by reading and executing smart contract programs across nodes in the network.
-
EVM byte code
-
Solidity is a programming language that reads the byte code.
-
Bicoin is not Turing complete the way Ethereum is ruin complete (programers only want bitcoin to be digital gold / transactional only).
-
A turing complete language is a programable and contains loops that allow a smart contract to perform several sets of functions over and over again.