Ethereum
The following article covers a high level technical summary of Ethereum and is the first in a series articles covering The Basics of Ethereum. The article assumes some basic knowledge about the concepts of decentralisation and blockchains and is mainly a linkage point to other articles.
What is Ethereum?
In a condensed summary…
Ethereum is a proof of work based public and permissionless blockchain system that validates, stores, and replicates transaction data on many computers around the world. Ethereum also has the capability of interpreting and executing computer code via it’s operating system “the “Ethereum Virtual Machine” using a smart contract system run by the computational participants in it’s network.
If some of that didn’t make sense…
An introductory article to proof of work can be found on Coindesk here. More of the Ethereum Virtual Machine will be explained below (at a high level). And more on smart contracts can be found in another article on this blog here.
Onto the technical features
The Ethereum software can be downloaded from the Ethereum organisation website and when installed on a node allows it to connect to the network, explore the blockchain, create and execute smart contracts and mine new blocks.
Adapted from the Official Ethereum Website…
Nodes
Nodes on Ethereum are just machines running the Ethereum software. These machines maintain the state of Ethereum and communicate with each other. The Ethereum network itself is the aggregate of all Ethereum nodes and their communications. The nodetracker on Etherscan displays the statistics of all the nodes running on the Ethereum network.
More information on nodes and networks can be found in the Ethereum Nodes, Clients and Networks article.
Mining
A miner creates blocks in the Ethereum blockchain by solving the cryptographic puzzle (proof of work). For a block to be added to the main blockchain, the miner must prove it faster than competiting miners. Miners add transactions to a block, with the goal of creating a new block with a valid hash that will be accepted by the network. Solved blocks are verified by full nodes who store the result.
The Ethereum protocol is only valid when there is one true blockchain (one true record of all the transactions). Thus the validity of blocks is determined by the GHOST (Greedy Heaviest Observed Subtree) protocol which states the blockchain with the most computation performed is the one and only valid blockchain.
Blocks
A block in Ethereum is a batch of transactions with the hash of the previous block at the top of the block. The blocks are linked together in a chain (called a blockchain). The hash is are derived from the contents in the block as an input and a hashing function (Keccak-256) as the output.
Any one change in a block will generate an entirely new hash. This makes the chain fraud resistent since one change in any block in history would invalidate all the subsequent blocks.
There will be a future article covering the contents of Ethereum blocks in more technical detail.
Uncle Blocks
To help reward miners for when duplicate block solutions are found because of the short block times, a smaller amount of ETH is given to creators of uncle blocks. An uncle is a smaller reward than a full block. If they are submitted later than the next block, the reward rapidly diminishes, ending at zero after seven blocks. Uncle block rewards make mining on lesser hardware or mining outside of the largest mining pools more cost effective.
There will be a future article covering Uncle Blocks in more technical detail.
Tokens
Ethereum tokens known as ETH are created via:
- Block reward — The reward for mining a block of ETH. Currently at 2ETH.
- Uncle block reward — If an uncle block is included in the next confirmed block (if it is reference) it receives the full Uncles Reward of 1.75 eth (7/8th of the current block reward). Each additional generation that passes before an uncle block gets included reduces the reward by 0.25 eth.
- Uncle inclusion reward — A miner who references an uncle also gets a payout of 0.0625 ETH (1/32 of the current block reward). One block can include up to two uncles.
All token generation is received by miners on the network. The inflation rate of ETH is aimed to be 18 million per year. A total of 72 million ETH was created initially prior to the launch of the network (composed of 60 million in the crowd sale and 12 million for future sale to fund development). This included the founders share alongside those sold to early adopters or investors.
Ethereum Virtual Machine
The Ethereum Virtual Machine is the global virtual computer whose state every participant on the Ethereum network stores and agrees on. Any participant can request the execution of arbitrary code on the EVM. Code execution change the state of the EVM.
More technical detail on the EVM, about state and implementation will be explored in a future article.
Accounts
An Ethereum account is an entity with an ETH balance that can send transactions on Ethereum. More detail on accounts is covered in the “Accounts” section of the “Smart Contracts” article on this blog.
Transactions
Examples of transactions on Ethereum:
- Send an amount of ETH from one account to another.
- Execute the code of the smart contract at address X in the EVM, with arguments Y.
More detail on transactions is covered in the “Transactions” section of the “Smart Contracts” article on this blog.
Smart Contracts
Ethereum was the first cryptocurrency to implement smart contracts. Smart contracts on Ethereum are run on the Ethereum Virtual Machine.
The “Smart Contracts” article in this blog covers the topic in more detail. The article also covers the concept of Gas in Ethereum.
Units
The smallest unit is a wei. There are 1,000,000,000,000,000,000 wei per ETH.
Networks
Public
Public networks are publically accessible (read, create or validate transactions) to anyone via the internet.
- Mainnet — The primary public Ethereum production blockchain, where the real transactions occur on the distributed ledger.
- Testnet — In addition to mainnet, there are public testnets. These are networks used by protocol developers or smart contract developers to test their developments in a production-like environment before deployment to mainnet.
Private
An Ethereum network is a private network if its nodes are not connected to a public network.
More information on nodes and networks can be found in the Ethereum Nodes, Clients and Networks article.