Homework on EVM

  1. Isolated code from the network that allow consensus among the nodes. Every node in the network posses a copy of the EVM. The EVM is run on top of the hardware of each computer. It also protects the smart contract from malicious instructions.
  2. Bytecode is the virtual machine language. It is the language used in the smart contacts.
  3. The bytecode is the language used by the EVM to operate. Solidity is a programming language that uses a compiler that converts instructions into the smart contract so that they can be read by the EVM. Basically Solidity is the program used by the programer and Byte code is the language of the EVM.
  4. The computing language used in Bitcoin is called Script. It is an older computer language more basic than the one used in Ethereum . It needs several people to sign a transaction before this transaction goes through. It is not Turing complete. It doesn’t have the ability to solve all the problems that might need to solve. Solidity is more flexible and it has more functions than script language
  5. Turing complete means that you could program anything on top of that. For example , a feature called LOOPS: let the programer to tell the software to do one thing several times. This language includes different programming languages as well.
1 Like
  1. EVM is a security layer that encapsulates the Ethereum environment and runs smart contracts isolated from the main network.
  2. bytecode
  3. Original program is written in Solidity then a compiler adapts the script to bytecode.
  4. Bitcoin language SCript is not Turing complete, making it difficult and/or impossible to create/run complex functions.
  5. A language that is able to perform complex functions most importantly Loops.
1 Like

Homework - EVM

  1. What does the EVM do?
    Ethereum Virtual Machine runs decentralized smart contract code
  2. What is the format of the instructions that the EVM can read?
    The format of instructions is byte code
  3. What is the relationship between the programming language Solidity and Bytecode?
    Solidity is the programming language for humans, bytecode is the instruction steps for EVM to read, a special compiler converts programmers’ solidity code into bytecodes before send to EVM.
  4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
    Bitcoin runs on script, which is not a turing-complete language and difficult to run smart contracts.
  5. What is a Turing Complete programming language?
    It can run complex instructions like recursion/loops.
1 Like
  1. Etherum Virtual Machine sits on top of each node and reads and excecutes smart contracts.
  2. bytecode
  3. Solidity uses a complier to transform into bytecode and the EVM reads the btycode
  4. because it is not turing complete, it has nothing that sits on top of the node to allow for such capability.
  5. It allows “in theory” the ability to program anything
1 Like
  1. It is a virtual machine that every ethereum node runs and that protects from the smart contracts directly accessing the CPU, which could be dangerous (for example virii). Instead the smart contracts run in a sanboxed virtual machine (EVM).

  2. It is in bytecode (compiled code)

  3. Solidity is the programming language and bytecode is the compiled code. You can use other programming languages, only the compiled bytecode matters.

  4. Bitcoins language “script” is not Turing complete and can only do very simple things such as multisig.

  5. It is a language that can run any “program”. Another way of roughly defining it would be that any mechanical, deterministic computing rule can be written in that language.

1 Like
  1. EVM (Ethereum Virtual Machine) enables execution of a code (bytecode) on the Ethereum network to read and execute smart contracts and enable the network nodes to reach a consensus. Every node in the Ethereum network runs an EVM instance which allows them to agree on executing the same instructions.

  2. The format of the instructions that EVM can read is known as bytecode.

  3. Smart Contracts are typically written in higher level languages, like Solidity, then compiled to EVM bytecode. Even in the future when the smart contract language is expected to change to Viper this will then be compiled to EVM bytecode.

  4. Bitcoin can’t run the same complex program like Ethereum because the script language in Bitcoin is not Turing Complete like the solidity language in Ethereum which is Turing Complete.

  5. A Turing Complete programming language is capable of executing complex instructions in order to solve a computational problem. A simple calculator is an example of a system which is Turing Incomplete since it can only do a few types of calculations. In contrast, a programmable scientific calculator (able to perform all kinds of calculations) can be deemed as a Turing Machine. The scripting language used in Bitcoin is intentionally designed as Turing Incomplete because it serves its purpose and increased complexity would potentially introduce problems. By keeping it simple, the developers can predict with high accuracy how it is going to react in the finite number of situations in which it is used. Ethereum, on the other hand, is built as a Turing Complete blockchain. This is important because it needs to understand the agreements which make up smart contracts. By being Turing Complete, Ethereum has the capability to understand and implement any future agreement, even those that have not been thought of yet. In other words, Ethereum’s Turing Completeness means that it is able to use its code base to perform virtually any task, as long as it has the correct instructions, enough time and processing power.

1 Like

Excellent answers sir, well documented! Please keep them like that :muscle:

Carlos Z.

1)is executing code directly before giving the instructions to cpu(not sure if i expressed myself right) and assures that the code doesn’t contain any malicious code
2)bytecode
3)solidity is used to create bytecode that an evm can read
4)because of the potential spam on the blockchain the devs on btc didn’t took the step to a turing complete programing language but vitalik gave it a try and now he has to solve the scalability issue (shoutout to cryptokities)
5)a turing complete programing language is a programing language that includes looping processes and can be applied to solve any problem (in theory)

please let me know how exact my answers are

1 Like
  1. What does the EVM do?
    Ethereum Virtual Machine is a piece of code, which resides as a copy on each node,
    that reads and executes smart contracts

  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 human readable, turing complete and can be compiled into byte code. Bitcoins Script is not turing complete and very, very limited in regards to be programmable

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

Because it uses Scirpt as a programming language which is not turing complete as it does not allow loops.

  1. What is a Turing Complete programming language?
    It is a programming language that allows you to solve all problems that might occur including loops
1 Like

thank you sir. I find writing the answers in as detailed format as possible helps it to stick in my brain!

2 Likes

1. What does the EVM do?
EVM is an application that runs on every nodes of ethereum network, it reads and executes the instructions of a smart contract.
2. What is the format of the instructions that the EVM can read?
EVM read Bytecode language.
3. What is the relationship between the programming language Solidity and Bytecode?
Basically you write your S.C. With Solidity then passing through a compiler which is a special app that “translate” the language in Bytecode.
Ethereum is developing a new language call Viper.
4. Why can’t Bitcoin run the same type of complex programs like Ethereum can?
4. Because BTC is build with a not Turing Complete language called script that doesn’t allow you to create many features of your code.
4. What is a Turing Complete programming language?
5.ia a programming language that allowd you to create “potentially” everything you can imagine with a sting of code.

1 Like
  1. The nodes run Etherium Virtual Machine, which the ETH network is based on.
  2. EVM operates Bytecode
  3. Solidity language is compressed into Bytecode before the EVM can operate it.
  4. Bitcoins language does not have “loops” in it. It´s far more simpler then ETH language. It´s not Touring Complete, which means it has limits to what it can do.
  5. A touring complete language does not have any limitations to what it can do. So basically anything is possible, in theory at least.
1 Like
  1. EVM is the network virtual machine that runs smart contracts on nodes
  2. Bytecode
  3. Solidity writes the smart contract and it gets translated to Bytecode
  4. it is not using a turing complete language to prevent loops
  5. Turing complete allows for any problem to be executed
1 Like

1.Ethereum virtual machine is used for executing contract byte codes. It allows developers to create decentralized Applications.

  1. EVM reads the format Byte code

  2. Solidity code is a language for writing smart contracts e.g Javascript, C++ while Bytecode is the a complied data to be executed.

  3. Bitcoin only uses basic script and is not Turing complete

  4. With a complete Turing program, you are able to program any instructions you want

1 Like
  1. The EVM creates an isolated environment for the execution of smart contracts running on the ethereum blockchain. The EVM is run by nodes in the ethereum network.

  2. The EVM is said to be running in a sandbox environment because it is isolated from the CPUs of the ethereum nodes. The EVM interprets and executes smart contracts in an isolated program, rather than directly on the nodes’ CPUs, which helps to keep the network secure and prevent the propagation of malicious code throughout the network.

  3. Bytecode is a compiled version of Solidity. It the version that the EVM reads when it executes smart contracts. Solidity is the language used by ethereum developers when writing the code itself.

  4. Bitcoin can’t run the same type of complex programs as ethereum because it is not a Turing complete system. This means that whereas ethereum can be programmed to solve any mathematical problem, bitcoin cannot. Unlike ethereum, bitcoin’s programmability is limited to basic use cases such as multi-signature wallets.

  5. A Turing complete system is one that can be programmed to solve any mathematical problem.

1 Like
  1. EVM stands for Ethereum Virtual machine which can read and executes smart contracts . It is a small code running in each of the computer on ethereum blockchain . EVM runs on top of CPU . the solidity codes executes in to ethereum byte code and EVM then executes that bytecode on to CPU .

  2. The format of instruction that the EVM can read is Byte codes

  3. Solidity is a language used by programmer to instrust a command . In order to make the instructions readble by EVM , These solidity codes get converted in to bytecodes by using a special application . The EVM then reads the bytecode and executes them .

  4. Bitcoin cant run the same type of complex programs like ethereum can coz bitcoin uses a language called script and that is not turing complete language in which we cant program .

  5. Ethereum uses the programming language solidity which is a Turing complete programming language . Means we can run whatever program we think of making .

1 Like
  1. The Ethereum Virtual Machine(EVM) is a piece of code that runs on top of each of the hardware of every nodes on the Ethereum network, and it is the one who reads and executes the smart contracts on the ethereum blockchain and then it will tell the CPU in each computer on the network on what to do and later on it will reach some kind of a result, and each of those EVM results on every nodes will be the bases of the consensus of the whole Ethereum network.

  2. The Ethereum Virtual Machine can read the format of a Byte code.

  3. Solidity is a programming language and then we have the compiler which is a special application that do compiles the logic and instructions you have in your solidity code and it will compile it down to a byte code which the Ethereum virtual machine(EVM) will read all of the instructions that is already in a byte code format.

  4. Because bitcoin uses a script programming language which is not a turing complete language.

  5. A turing complete programming language is a language that can program anything what the programmer wants, in theory it means that it can calculate everything assuming that there is enough memory available, and also in a technical level a turing complete language do have something called loops which is a feature of a programming language that allows a programmer to tell a software to do one thing on a several times.

1 Like
  1. Reads and executes the byte code of program instructions generated from compiling by Solidity. Runs on all nodes - tells the CPU what to do.
  2. byte code
  3. Program compiled by Solidity compiler generates the byte code
  4. No loops in Bitcoin script, just primitive commands
  5. Language that can be used to program anything
1 Like
  1. The EVM runs code from the smart contracts on Ethereum nodes.

  2. The format of the instructions for the EVM is Bytecode.

  3. Code written in Solidity is compiled into Bytecode.

  4. Bitcoin is limited in the types of programs it can run and is not Turing complete.

  5. A Turing Complete programming language is one that can implement any algorithm.

1 Like
  1. The EVM runs on every node and reads/manages the smart contract.
  2. The EVM reads Byte code, which can be converted from Solidity using a compiler.
  3. Solidity is a high level programming language (Turing Complete) and its syntax is in English, byte code is low level similar to machine code for computers to EVM to understand.
  4. Bitcoin programming language is scripts which is not turing complete, and programming language Solidity is turing complete and allows for complex programs and applications.
  5. A device or programming language is considered to be Turing Complete when it can replicate a Turing Machine by running any program or solving any problem the Turing Machine could run or solve.
1 Like