
Story Time
To find out what Ethereum is, we need to go way back in time. Just as generation “Y” appeared on the scene in the early 80s, before digital privacy fears were even a thing, a computer scientist by the name of David Chaum published a paper that detailed a new form of cryptography. The information inside would be invisible to the outside user, and payments could be fully automated. In short he detailed a business to create a secure online currency that anyone could use (sound familiar?) Unfortunately for him it was unsuccessful, it never caught on, and the company ultimately went bankrupt.
However, this spark set alight the fuse of cryptocurrency innovation, and although a slow burner indeed, in the late 90s the world saw other cryptocurrency ideas, including proof-of work (which we will come to later), and using a reference to the previous transaction to help create the next… a chain if you will.
Again another decade passed, and in 2008 bitcoin.org was registered and the Bitcoin White Paper was released. In 2009 the first ever block of Bitcoins were mined, the Bitcoin software was released, and the first ever transaction of 10 BTC was sent from one address to another. 2010 was a big year for Bitcoin, exchanges were formed, and the first mining pools checked in for work. Bitcoin was born and blockchain was now cemented into the world.
It’s important to note that blockchain and Bitcoin are not the same thing. Blockchain is the technology and Bitcoin is the token (currency) that holds value. Knowing the origins is important, I realise we should be getting to the Ethereum part, but as it’s the second cousin twice removed; we are best to explore the technology behind blockchain before slapping on any extras, so bear with me.
Blockchain Explained
Problem to Solve
If someone would like to move money from A —> B, e.g. Spain to a friend in China, this typically requires a 3rd party (a middle man). The reason for this is if A was to pay B they have no way of knowing if B really is who they say they are, prove that the transaction ever took place, and in the case of exchanging money, that both A and B honored their side of the transaction.
This third party (normally a bank), plays this part perfectly well and securely transfers the money from A to B for a fee. It’s important to note that in most cases the middle party is
accepting the risk of A & B completing the transaction and currency market risk.
Humanity has accepted this method of transfer as it provides security for both parties and a centralised audit trail (ledger) that the transactions completed successfully. It only works
because there is a heavy factor of “trust” between both parties and the middle entity.
As well as a fee, the process can take a reasonable amount of time due to having complete all of the security checks.
Blockchain Evolves the Process
Blockchain aims to remove the third party, so payments (or information) is transferred directly between A and B for a small fee, and to process the transaction almost immediately (I say almost…).
Let’s imagine that all transactions between A and B are recorded in a book (ledger). This ledger will record all movements of money between both A and B, and records the sums remaining on each of their accounts. This is useful, as not only does it act as an audit trail but also if A has no funds remaining and A tries to move money to B, the ledger
wont allow it and the transaction will fail. Now imagine in the ledger, that each transaction is chained to the next. This keeps all transactions in order, and everyone that can view this central ledger can see the full history of events.
Now let’s take this central ledger. Being fully online, it is downloadable by anyone to store a copy on their machine. So both A and B now have there own copies of the ledger. The ledger has now become distributed (a distributed ledger) and we do not require the centralised ledger at all any more. Boom, problem solved… well, almost. As there are now multiple copies of the ledger, we must make sure that all copies are maintained, updated, and match in every way at all times. So, how do we do this?
Let’s start with another transaction on our newly created blockchain network. B wishes to transfer currency to A. B will broadcast the intended transaction to the network. Everyone
on the network can see the transaction appear but the transaction remains in a pending state, it will not be placed into the distributed ledgers until it is confirmed. But how do
we confirm B’s transaction?
This is where “miners” are needed. Miners are special machines (nodes) which also hold the ledger; any person’s machine can become a mining node. Let’s say that A and B have another friend C who takes up the job of a miner. C has a copy of the ledger and is going to compete with other miners to pick up the unvalidated transaction (B’s transaction to A in this case), validate it, and then place it into their ledger. Whichever miner wins the competition will also receive the financial reward (Bitcoin, Ether, or some other token).
To validate a transaction between A and B should be easy. C checks if B has the required funds and that A is the correct recipient. The second part, however, is slightly more process
intensive. Before the transaction is validated the miner must find a key that will enable them to lock the new transaction to the previous one in the chain.
Without going into too much detail (around SHA-256 hash functions and the predictability of computational time taken to mine a crypto… another article, another time) we can comfortably assume that the miner is guessing this key over and over until he finds the correct one that fits. Needless to say this can take a while, and this difficulty changes with the amount of miners available.
Let’s continue: now miner C has validated B’s transaction to A, and added the transaction to C’s own ledger. Next C must broadcast this to the rest of the network. The computational, process heavy aspect of finding a key is important, as when the other ledgers receive this notification they also receive the key C discovered. The key not only allows the nodes to add the transaction to the ledger but also acts as proof-of-work. This
system minimizes the chance that someone could forge or duplicate a transaction and now, all ledgers remain in sync. It’s important to note that miners typically will validate more than one transaction at a time and process them in blocks and add the entire block to the chain (a blockchain!).
In summary, the transaction was made between A and B quickly and cheaply. C received a small fee for the computational work and the distributed ledger and audit trail is available for everyone to see.
We have now created a blockchain technology, that can be used for all types of transactions. Hurray!
Ethereum
Ethereum first went live in 2015. It brought with it the idea that the blockchain could be used for things other than transferring value. But instead to create distributed applications (dApps) that would interact throughout the Ethereum network and that Ether (the Ethereum currency) would be the source of processing power. Whomever owned Ether would have the power to run their dApp on the network.
Above we discussed that transactions contain a certain amount of token (currency). Imagine now that as well as value, the transaction could store code too. These new types of transactions are called smart contracts, and allow the user to write code and distribute this code via transaction on the network.
These smart contracts can be used to execute automatically when certain criteria is met. The easiest analogy is a payment contract that releases payment equally amongst employees once work is complete. The address of the payees could be stored within the contract itself and payment would be fully automated. The smart contracts may also interact with each other, calling functions and transferring funds or information from one to another automatically.
I like to think of this as building an open source application with everyone building a library of APIs and packages, but the library is formed of contracts instead and they exist purely
on the Ethereum network.
Ethereum can also be used to create other tokens using the same protocol but a different blockchain, thus Ethereum’s value may fluctuate inline with other Ethereum based tokens, as they rely on the Ethereum network and thus Ether to operate. For now just know blockchain, Ethereum and a bunch of other coins are looking to disrupt many different markets, one of them being gaming. Teams are already working to be the first pioneers in dApps gaming, whether it be utility or gameplay based. Some of the industries ideas are amazing and if only a handful of these gems make it to market, there will be a greater
market shift towards game content sharing through a total ownership of the user’s game world.