How Ethereum works
The Ethereum application doesn’t require a particular entity to control or store its data. To achieve this, Ethereum utilizes concepts similar to bitcoin’s protocol and its blockchain design but increases its functionality to support money.
Ethereum hopes to adapt the bitcoin design in such a way that developers can create applications or agreements that possess additional steps, new rules of ownership, alternative transaction format or multiple ways to transfer. The Ethereum’s ‘Turing-complete’ programming language is designed to allow developers to write more programs governed by blockchain transactions that can automate specific outcomes. The flexibility is Ethereum’s chief innovation.
The Ethereum Blockchain
The Ethereum blockchin is similar in structure to that of the bitcoin in that it is a shared record of the entire transaction history stored as a copy on every node on the network. With Ethereum, the nodes store the most recent form of each smart contract together with all the ether transactions.
For each Ethereum application, the Ethereum network is required to keep an update on the current information of all the applications including every smart contracts codes, each user’s balance and where it is stored.
Bitcoin uses unspent transaction outputs to track who has how much bitcoin.
The idea is straight forward although it sounds complex. Every time a bitcoin transaction is made, the network 'breaks' the total amount as if it was paper money, issuing back bitcoins in a way that makes the data behave similarly to physical coins or change. In order for a future transaction to be made, the bitcoin network adds up all the pieces of change that are classed under ‘spent’ or ‘unspent’.
Ethereum on the other hand uses accounts. Just like the bank accounts, ether tokens, like paper in a wallet, can be transferred to a different account. There isn’t what one calls a continued relationships even though the funds are always kept in a particular place.
The Ethereum Virtual Machine
A network of thousands of computers process information when an Ethereum program is used. The Ethereum virtual machine (EVM) has a feature that reads and executes contracts written in a smart contract specific programming language compiled into ‘byte code’. The contracts are executed by their nodes using their EVMs.
As every node contains information on the transaction and smart contract history on the network, once a user carries out an action, all the nodes on the network are required to agree that the change took place. The responsibility of transferring changes between states rests on the network of miners and the nodes rather than a control entity like the bank or PayPal. Bitcoin miners verify and validate the transfer of bitcoin ownership between two persons while the EVM executes a contract strictly on the rules initially continued during programming.
Calculations on the EVM are done through a stack-based bytecode language (the ones and zeroes in my machine can read), but developers today can write programs that are not difficult to use for humans by writing smart contracts in high-level languages such as Solidity and Serpent. The miners here tries to prevent bad behavior –like making sure that no one person spends their holding while rejecting smart contracts that hasn’t been paid for. There currently exists thousands of Ethereum nodes with each one compiling and executing the same codes. It is way more expensive when compared to the normal computation and therefore, the network is mostly used for a particular need.