ETHEREUM. ADVANTAGES OF ETHEREUM . FULL HISTORY OF ETHEREUM.
Important note: If you own more than $1,000 worth of cryptocurrency then you should definitely be using a hardware wallet instead of keeping coins on exchanges. I recommend a Trezor which you can buy for €89 directly from their website.
Introduction
Ethereum builds on blockchain and cryptocurrency concepts, so if you are not familiar with these, it’s worth reading a gentle introduction to bitcoin and a gentle introduction to blockchain technology first. This article assumes the reader has a basic familiarity with how Bitcoin works.
What is Ethereum?
Ethereum is software running on a network of computers that ensures that data and small computer programs called smart contracts are replicated and processed on all the computers on the network, without a central coordinator. The vision is to create an unstoppable censorship-resistant self-sustaining decentralised world computer. The official website is https://www.ethereum.org
It extends the blockchain concepts from Bitcoin which validates, stores, and replicates transaction data on many computers around the world (hence the term ‘distributed ledger’). Ethereum takes this one step further, and also runs computer code equivalently on many computers around the world.
What Bitcoin does for distributed data storage, Ethereum does for distributed data storage plus computations. The small computer programs being run are called smart contracts, and the contracts are run by participants on their machines using a sort of operating system called a “Ethereum Virtual Machine”.
How do you run Ethereum?
To run Ethereum, you can download (or write yourself if you have the patience) some software called an Ethereum client. Just like BitTorrent or Bitcoin, the Ethereum client will connect over the internet to other people’s computers running similar client software and start downloading the Ethereum blockchain from them to catch up. It will also independently validate that each block conforms to the Ethereum rules.
What does the Ethereum client software do? You can use it to:
Connect to the Ethereum network
Explore Ethereum’s blockchain
Create new transactions and smart contracts
Run smart contracts
Mine for new blocks
Your computer becomes a ‘node’ on the network, running an Ethereum Virtual Machine, and behaves equivalently to all the other nodes. Remember in a peer-to-peer network there is no ‘master’ server and any computer has equivalent powers or status to any other.
How is Ethereum similar to Bitcoin?
I think it’s easiest to understand Ethereum by exploring the similarities and differences between Ethereum and a simpler system, Bitcoin. So what are the similarities?
Ethereum has a blockchain
Like Bitcoin, Ethereum has a blockchain, which contains blocks of data (transactions and smart contracts). The blocks are created or mined by some participants and distributed to other participants who validate them.
You can explore this blockchain here: https://etherscan.io
Blocks form a chain by referring to the hash or fingerprint of the previous block. See a gentle introduction to blockchain technology for a primer.
Ethereum is public and permissionless
Like Bitcoin, the main Ethereum network is a public, permissionless network – ie anyone can download or write some software to connect to the network and start creating transactions and smart contracts, validating them, and mining blocks without needing to log in or sign up with any other organisation.
In general, when people talk about Ethereum they mean the main public permissionless instance (version) of the network. However, like Bitcoin, you can take Ethereum software, modify it slightly and create private networks that aren’t connected to the main public network. The private tokens and smart contracts won’t be compatible with the public tokens though, for now. For more on the difference between public permissionless and private permissioned networks, see confused by blockchains? Revolution vs Evolution
Ethereum has Proof-of-Work (PoW) mining
Like Bitcoin, mining participants create valid blocks by spending electricity to find solutions to a mathematical puzzle. Ethereum’s PoW maths challenge called Ethash works slightly differently to Bitcoin’s, and this allows common hardware to be used for mining. This reduces the efficiency edge of task-specific hardware known as ASICs, which are common in Bitcoin mining.
For more on mining see a gentle introduction to bitcoin mining.
On Ethereum’s roadmap there is a plan to move from electricity-expensive Proof-of-Work mining to a more energy-efficient Proof-of-Stake protocol called Casper, in a future release of the Ethereum software called Serenity.
Ethereum has an inbuilt cryptocurrency
Ethereum’s token is called Ether, shortened to ETH. This is a cryptocurrency that can be traded for other cryptocurrencies or other sovereign currencies, just like BTC. Its current value is around US$13 per ETH token (Oct 2016). Token ownership is tracked on the Ethereum blockchain, just like BTC ownership is tracked on Bitcoin’s blockchain, though at a technical level they track them in slightly different ways.
For more on cryptocurrencies and tokens see a gentle introduction to digital tokens.
How is Ethereum different to Bitcoin?
This is where it gets more technical and in many ways more complex.
Ethereum’s block time is shorter
In Ethereum the time between blocks is around 14 seconds, compared with Bitcoin’s ~10 minutes. This means that on average if you made a Bitcoin transaction and an Ethereum transaction, the Ethereum transaction would be recorded into Ethereum’s blockchain faster than the Bitcoin transaction getting into Bitcoin’s blockchain. You could say Bitcoin writes to its database roughly every 10 minutes, whereas Ethereum writes to its database roughly every 14 seconds.
Ethereum has smaller blocks
In Bitcoin, the maximum block size is specified in bytes (currently 1 MB) whereas Ethereum’s block size is based on complexity of contracts being run – it’s known as a Gas limit per block, and the maximum can vary slightly from block to block.
Currently the maximum block size in Ethereum is around 1,500,000 Gas. Basic transactions or payments of ETH from one account to another (ie not a smart contract) have a complexity of 21,000 Gas so you can fit around 70 transactions into a block (1,500,000 / 21,000). In Bitcoin you currently get around 1,500-2,000 transactions in a block.
Data-wise currently most Ethereum blocks are under 2 KB in size.
The Ethereum Virtual Machine can run smart contracts
Compared with Bitcoin’s primitive scripting language, the code that can be deployed in Ethereum and run as smart contracts is more advanced and familiar to developers. Smart contract code is run by something called the Ethereum Virtual Machine, which runs on the computers of all participants on the network. If you are familiar with Microsoft Excel macros (pieces of code run by Excel), then similarly smart contracts are pieces of code run by Ethereum’s Virtual Machine.
In many descriptions, Ethereum smart contracts are called “Turing complete”. This means that they are fully functional and can perform any computation that you can do in any other programming language.
ETH token issuance
How are ETH tokens printed or created? The biggest difference between ETH and BTC token generation is that BTC generation halves approximately every 4 years whereas ETH generation continues to be generated at a constant number every year (perhaps only until the Serenity version).
This is a lot more complicated than Bitcoin. In summary, the number of ETH in existence are:
Pre-mine + Block rewards + Uncle rewards + Uncle referencing rewards
Pre-mine
Around 72 million ETH were created for the crowdsale in July/Aug 2014. This is sometimes called a ‘pre-mine’. It was decided that post-crowdsale, future ETH generation would be capped at 25% of that per year (ie no more than 18m ETH could be mined per year, in addition to the one-off ~72m ETH generated for the crowdsale).
Block reward
Currently each block mined creates 5 fresh ETH. Doing the maths, if a block is mined every 14 seconds, and there are 31.5m seconds in a year (365x24x60x60), this means 2.25m blocks are mined per year. 2.25m blocks at 5 ETH per block = 11.3m ETH generated per year. This meets the commitment of less than 18m ETH generated per year.
Uncle reward
Actually it’s a little more than that. Some blocks are mined a little late and don’t form part of the main blockchain. In Bitcoin these are called ‘orphans’ and are entirely discarded, but in Ethereum they are called ‘uncles’ and can be referenced by later blocks. If uncles are referenced as uncles by a later block, they create about 4.375 ETH for the miner of the uncle (7/8th of the full 5 ETH reward). This is called the uncle reward. Currently around 500 uncles are created per day, adding an additional 2,000 ETH into circulation per day (~0.7m ETH per year at this rate).
Uncle referencing reward
And there’s a bit more too: A miner who references an uncle also gets about 0.15 ETH per uncle (maximum 2 uncles).
This model described above, where valid blocks are determined and miners are rewarded, is called the Ghost protocol (Greedy Heaviest-Observed Sub-Tree).
Future changes to ETH generation
It hasn’t really been decided yet what happens to issuance when Ethereum moves from Proof-of-Work (including the Ghost issuance rules) to Proof-of-Stake as the block-addition mechanism. The Proof-of-Stake mechanism will use a protocol called Casper (yes, as in the friendly ghost. Who says cryptonerds don’t have a sense of humour?). The rate of ETH issuance under Casper may very well be lower than it is now under Ghost.
Mining rewards
So, what do miners get for mining?
In Bitcoin, the miner of a block receives:
12.5 new BTC (currently. See a gentle introduction to bitcoin mining for more detail), plus
transaction fees from the transactions included in the block
In Ethereum, the miner of a block receives:
5 new ETH block reward (0r 4.375 new ETH for an uncle), plus
a small new reward for referencing up to 2 recent uncles (1/32 of a block reward ie 1/32 x 5 ETH = 0.15625 new ETH per uncle), plus
gas from contracts that were run during the block
Currently the average block has a gas limit of 1,500,000 Gas, and the network has an average Gas Price of 0.000 000 022 ETH, meaning that a miner might make 0.033 ETH in a ‘full’ block as the Gas reward. Note that the Gas from contracts are payments of existing ETH, not new ETH being created.
Other parts to Ethereum: Swarm and Whisper
Computers need to be able to calculate, store data, and communicate. For Ethereum to realise its vision as an unstoppable censorship-resistant self-sustaining decentralised ‘world’ computer, it needs to be able to do those three things fairly efficiently and in a robust way. The Ethereum Virtual Machine is just one component of the whole:
The Ethereum Virtual Machine is the ‘calculate’ element that can run contract logic
This is computation without relying on a central server.
Swarm is Peer-to-Peer file sharing, similar to BitTorrent, but incentivised with micropayments of ETH. Files are split into chunks, distributed and stored with participating volunteers. These nodes that store and serve the chunks are compensated with ETH from those storing and retrieving the data.
This is file storage without relying on a central server.
Whisper is an encrypted messaging protocol that allows nodes to send messages directly to each other in a secure way and that also hides the sender and receiver from third party snoopers.
This is communications without relying on a central server.
Ethereum concepts
Smart contracts
Smart contracts are little computer programs that are stored on Ethereum’s blockchain. They can be activated, or run, by funding them with some ETH. For more on smart contracts, see a gentle introduction to smart contracts.
Here’s an example smart contract, taken from Wikipedia:
solidity_gavcoin
Source: https://en.wikipedia.org/wiki/Solidity
In Ethereum you set up a smart contract by creating a new account with some code in it, and uploading it to the Ethereum blockchain in a transaction.
Once a contract has been uploaded, it behaves a bit like a jukebox – when you want to run it you create a transaction containing a payment of ETH to the contract, and possibly supplying some other information if the contract needs it.
Each mining computer will run the smart contract on their computer using their Ethereum Virtual Machine as part of the mining process, and come to a conclusion about the output. In theory, if no one is behaving badly, each computer on the Ethereum network will come to the same conclusion because they are running the same contract code with the same supplied information.
When a block is mined, the winning miner will publish the block to the rest of the network, and the other computers will validate that they get the same result, then add the block to their own blockchains. This is how the state of Ethereum’s blockchain gets updated.
Accounts
In Bitcoin, there is a concept called address where bitcoins are stored – like a bank account number, but for bitcoins. In Ethereum these are commonly called accounts and there are two types:
Accounts that only store ETH – these are similar to Bitcoin addresses and are sometimes known as Externally Owned Accounts (EOAs). You make payments from these accounts by signing transactions with the appropriate private key.
Here’s an example of an account that stores ETH:
https://etherscan.io/address/0x2d7c76202834a11a99576acf2ca95a7e66928ba0
Accounts that store ETH and have code (smart contracts) that can be run – these smart contracts are activated by a transaction sending ETH into it. Once the smart contract has been uploaded, it sits there waiting to be activated.
Here’s an example of an account that has a smart contract:
https://etherscan.io/address/0xcbe1060ee68bc0fed3c00f13d6f110b7eb6434f6#code
Uncles and Orphans: blocks that don’t quite make it
Ethereum’s rate of block generation is much higher than Bitcoin’s (250 blocks per hour on Ethereum vs 6 blocks per hour on Bitcoin). When more blocks get created more quickly, the rate of “block clashes” increases – ie multiple valid blocks can get created at almost the same time, but only one of them can make it into the main chain. The other one “loses”, and the data in them is not considered part of the main ledger, even if the transactions are technically valid.
In Bitcoin these non-mainchain blocks are called orphans or orphaned blocks and they do not form part of the main chain in any way and are never referenced again by any subsequent blocks.
In Ethereum they are called uncles. Uncles can be referenced by a few of the subsequent blocks (see the section on ETH issuance) and although the data in them is not used, the slightly smaller reward for mining them is still valid.
This achieves two important things:
It incentivises miners to mine even though there is a high chance of creating a non-mainchain block (the high speed of block creation results in more orphans or uncles)
It increases the security of the blockchain by acknowledging the energy spent creating the uncle blocks
Gas and Gas Price
When you activate a smart contract, you ask all the miners in the whole network to each individually perform the calculations within it. This costs them time and energy, and Gas is the mechanism by which you pay them for that service.
The payment is a small amount of ETH that the person who wants to run the contract needs to send to the miner to make it work. This is similar to putting a coin in a jukebox.
Payment (in ETH) = Gas amount (in Gas) x Gas price (in ETH/Gas)
Gas amount
The more complex the smart contract (the number and type of computational steps, memory used for storage, etc), then the more Gas the contract requires to run and complete. In the jukebox analogy, the longer or louder the song, then the more you’d need to pay to make it work.
Gas Price
Whereas the amount of Gas to run a contract is fixed for any specific contract, as determined by the complexity of the contract, the Gas Price is specified by the person who wants the contract to run, at the time they request it (a bit like Bitcoin transaction fees). Each miner will look at how generous the gas price is, and will determine whether they want to run the contract as part of the block. If you want miners to run your contract, you offer a high Gas Price. In this way it’s a competitive auction driven by how much someone is willing to pay to have a contract run.
Why Gas?
Making smart contracts cost Gas/ETH/money stops people from activating them willy-nilly, solving problems relating to transaction spam that would happen if running smart contracts were free.
ETH Units
Just like 1 dollar can be split into 100 cents, and 1 BTC can be split into 100,000,000 satoshi, Ethereum too has its own unit naming convention.
The smallest unit is a wei and there are 1,000,000,000,000,000,000 of them per ETH. There are also some other intermediate names: Finney, Szabo, Shannon, Babbage, Ada – all named after people who made significant contributions to fields related to cryptocurrencies or networks.
Wei and Ether are the two most common denominations.Smart Contract languages: Solidity / Serpent, LLL
There are three common languages smart contracts are written in, which can be compiled into smart contracts and run on Ethereum Virtual Machines. They are:
Solidity – similar to the language Javascript. This is currently the most popular and functional smart contract scripting language.
Serpent – similar to the language Python, and was popular in the early history of Ethereum.
LLL (Lisp Like Language) – similar to Lisp and was only really used in the very early days. It is probably the hardest to write in.
Ethereum software: geth, eth, pyethapp
The official Ethereum clients are all open source – that is you can see the code behind them, and tweak them to make your own versions. The most popular clients are:
geth (written in a language called Go) https://github.com/ethereum/go-ethereum
eth (written in C++) https://github.com/ethereum/cpp-ethereum
pyethapp (written in Python) https://github.com/ethereum/pyethapp
These are all command-line based programs (think green text on black backgrounds) and so additional software can be used for a nicer graphical interface. Currently the official and most popular graphical one is Mist (https://github.com/ethereum/mist), which runs on top of geth or eth.
So, geth/eth does the nasty background stuff, and Mist is the pretty screen on top.
History: Ethereum Timeline
Vitalik Buterin described Ethereum as a concept in a White Paper in late 2013. This concept was developed by Dr. Gavin Wood who eventually published a technical Yellow Paper in April 2014. Since then, the development of Ethereum has been managed by a community of developers.
A crowdsale to fund development took place in July and August 2014, and Ethereum’s live blockchain was launched on 30 July 2015.
Ethereum crowdsale
The development team was funded by an online sale of ETH tokens during July to August 2014 where people could buy ETH tokens by paying in Bitcoin, at an initial fixed rate of 2000 ETH for 1 BTC (currently in Oct 2016 1 BTC will buy you 50 ETH on the open market).
Crowdsale participants sent bitcoins to a bitcoin address and received an Ethereum wallet containing the number of ETH bought. Technical details are on Ethereum’s blog https://blog.ethereum.org/2014/07/22/launching-the-ether-sale/
A little over 60m ETH was sold this way for a little over 31,500 BTC, worth about US$18m at the time. An additional 20% (12m ETH) were created to fund development and the Ethereum Foundation.
Software Release codenames: Frontier / Homestead / Metropolis / Serenity
These are friendly names for versions of the core Ethereum software, a little like Apple’s OS X version names such as Mavericks, El Capitan, Sierra.
Olympic (testnet): Launched May 2015 – a testing release where coins are not compatible with ‘real’ ETH. A testnet still runs in parallel to the main live network so that developers can test their code.
Frontier: Launched 30 July 2015 – an initial live release with a way for people to mine ETH and build and run contracts.
Homestead: Launched 14 March 2016 – some protocol changes, more stability.
Metropolis: Future launch – moving from command-line to graphical interfaces.
Serenity: Future launch – moving from Proof of Work to Proof of Stake (Casper).
Summary
The vision of the Ethereum’s development team is to build an unstoppable censorship-resistant self-sustaining decentralised world computer that can perform calculations, store data, and allow communications.
There is a public permissionless open source version, and forks or copies of this have been taken and adapted for private network use. The public and private versions are attempting to solve different problems.
The technology is currently immature, but as more people use it, test it, develop it and build on it, it will improve and become more robust.
Ethereum is one of the most exciting technologies in the Blockchain space, so keep following its progress!Ethereum: More Than Just Money
The first thing about Ethereum is that it is not just a digital currency. It is a blockchain-based platform with many aspects. It features smart contracts, the Ethereum Virtual Machine (EVM) and it uses its currency called ether for peer-to-peer contracts.
Ethereum’s smart contracts use blockchain stored applications for contract negotiation and facilitation. The benefit of these contracts is that the blockchain provides a decentralized way to verify and enforce them. The decentralized aspect makes it incredibly difficult for fraud or censorship. Ethereum’s smart contracts aim to provide greater security than traditional contracts and bring down the associated costs.
The smart contract applications are powered by ether, Ethereum’s blockchain based cryptocurrency. Ether, as well as other crypto-assets, are held in the Ethereum Wallet, which allows you to create and use smart contracts. The system has been described by the New York Times as..
“a single shared computer that is run by the network of users and on which resources are parceled out and paid for by ether.”
Implement Smart Contracts With Your Own Cryptocurrency
Ethereum allows you to create digital tokens that can be used to represent virtual shares, assets, proof of membership and more. These smart contracts are compatible with any wallet, as well as exchanges that use a standard coin API. You can copy the code from Ethereum’s website and then use your tokens for many purposes, including the representation of shares, forms of voting and also fundraising. You can either have a fixed amount of tokens in circulation or have a fluctuating amount based on predetermined rules.
You Don’t Need Kickstarter When You Have Ethereum
One great feature of Ethereum is that it gives developers a means to raise funds for various applications. For your new project, you can set up a contract and seek pledges from the community. The money that is raised will be held until the goal is reached or until an agreed upon date. The funds will be released back to the contributors if the goal is not met, or go on to the project if it is successful. Kicking out Kickstarter means that the third party is taken out, along with their rules, and also the fees they charge (when you include processing fees, Kickstarter can take up to 10% of a project’s budget).
Skip the Traditional Management Structure With Democratic Autonomous Organizations
Not only can Ethereum help you source funding, but it can also help to provide the organizational structure to get your idea off the ground. You can collect proposals from the people who backed your project and then hold votes on how you should proceed. This means that you can skip the expense of a traditional structure, such as hiring managers and doing paperwork. Ethereum also protects your project from outside influences, while its decentralized network means that you won’t face downtime.
The Finer Details: Differences Between Ethereum and Bitcoin
There are also many smaller aspects that differ between the two blockchain-based projects. Bitcoin’s average block time is about 10 minutes, while Ethereum’s aims to be 12 seconds. This quick time is enabled by Ethereum’s GHOST protocol. A faster block time means that confirmations are quicker. However, there are also more orphaned blocks.
Another key difference between them is their monetary supply. More than two-thirds of all available bitcoin have already been mined, with the majority going to early miners. Ethereum raised its launch capital with a presale and only about half of its coins will have been mined by its fifth year of existence.
The reward for mining Bitcoin halves about every four years and it is currently valued at 12.5 bitcoins. Ethereum rewards miners based on its proof-of-work algorithm called Ethash, with 5 ether given for each block. Ethash is a memory hard hashing algorithm, which encourages decentralized mining by individuals, rather than the use of more centralized ASICs as with Bitcoin.
Bitcoin and Ethereum also cost their transactions in different ways. In Ethereum, it is called Gas, and the costing of transactions depends on their storage needs, complexity and bandwidth usage. In Bitcoin, the transactions are limited by the block size and they compete equally with each other.
Ethereum features its own Turing complete internal code, which means that anything can be calculated with enough computing power and enough time. Bitcoin does not have this capability. While there are certainly advantages to the Turing-complete, its complexity also brings security complications, which contributed to the DAO attack in June.
Ethereum and Bitcoin: Two Very Different Beasts
While many will compare the cryptocurrency aspect of both Ethereum and Bitcoin, the reality is that they are vastly different projects and have different intentions. Bitcoin has emerged as a relatively stable digital currency, while Ethereum aims to encompass more, with ether just a component of its smart contract applications.
Coins mentioned in post: