In Bitcoin we trust: Blockchain 1.0

“A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution.” That is the first sentence of Bitcoin’s whitepaper written by Satoshi Nakamoto (pseudonym) and published in 2008. It neatly explained the rational why Bitcoin was created. The purpose of creating Bitcoin was to provide an alternative method to how the traditional banking systems operated.

The banking system that is in use today have not changed for several centuries. If Alice wants to transfer some money to Bob, she will do the following steps. Alice goes to her trusted bank. She then deposits the money into her bank account. She instructs the bank to transfer that money to Bob. The bank transfers the money into Bob’s bank account and takes a small fee for the service provided. Bob receives the money that Alice sent.

However, one nagging pain point of the banking system persists. People need to put their trust in the banks they use. Depositors need to trust that the bank they deposit their money with do not disappear or collapse overnight. They also need to trust that the bank execute transactions as specified and not make their own modifications. 

Banks and financial services companies have always and will continue to portray themselves as trustworthy. But are they really trustworthy? The Global Financial Crisis is a very apt example of their untrustworthiness. The crisis was primarily caused by the greed and irresponsibility of companies within the financial industry. In the years leading up to the crisis, banks were issuing subprime mortgages like there was no tomorrow. They then repackaged these loans into investment products to be sold to willing buyers worldwide. Despite taking on excessive risks, the major credit rating agencies still gave both Lehman Brothers and American International Group high investment grade credit ratings in the days prior to their collapse. 

The crisis showed to people why they should not trust the banks and financial services companies. After the crisis, phrases like “too big to fail” and “systemically important financial institution” started cropping up in conversations of those in the financial industry. People started to realise that too much power is centralised in the hands of a small, privileged group of financial institutions. But what better alternative do people have other than to use the banks? None was available.

Recognising this inherent lack of trust in the banking industry, Satoshi conceived a way to build a decentralised network that could achieve consensus without the need of any central controlling authority. In creating Bitcoin, he solved the “Byzantine Generals’ Problem”; a problem in computer science and distributed systems that was first described in 1982 and hitherto unsolved. The Byzantine Generals’ Problem is an agreement problem in getting a group of participants to agree on a consensus and yet be able to neutralise corrupt participants. With this problem solved, a decentralised network can be created where every participant can agree on the current state of truth.

With Bitcoin, people can now transact with each other in a decentralised fashion without needing to use a centralised bank as an intermediary. People can now join and leave Bitcoin’s network whenever they want without needing to seek permission from anyone or any organisation. The control that was once held by a select few “too big to fail” banks can now be in the hands of the people and that is a powerful thing. It used to be “in banks we trust”. Now, it is “in bitcoin we trust”.

In January 2009, Satoshi mined the first block of the blockchain and embedded a note stating “The Times 03/Jan/2009 Chancellor on brink of second bailout for banks.” That is the story of Bitcoin. 

General purpose blockchain: Blockchain 2.0

Blockchain protocols of the early days were designed around one particular purpose. Bitcoin is widely recognised as being Blockchain 1.0 as it was the first blockchain to be made. Its main purpose was to be a “peer-to-peer version of electronic cash”. However other than serving as “currency”, Bitcoin did not have other major functions. Another example will be Namecoin which was built primarily for domain registration.

The Bitcoin blockchain has its own programming language called Script. Script is not Turing-complete and cannot perform loops. This prevents spams from unnecessarily burdening the network as programme code cannot run forever without stopping. However, this also means that the network cannot theoretically solve all mathematical problems. Building generic decentralised applications on top on the Bitcoin blockchain will become difficult, if not impossible. A decade after the Bitcoin blockchain was created, it has not garnered other functionalities apart from being a decentralised mode of payment (currency).

Vitalik Buterin was initially a programmer involved with Bitcoin Magazine. Instead of having a blockchain protocol built for one purpose, Vitalik and his other co-founders wanted to leverage upon the power of generality. In late 2013, he pushed for Bitcoin to have a scripting language that enabled the development of generic decentralised applications. Having failed to get an agreement from the Bitcoin community, he and his co-founders, having this vision of general purpose blockchain in mind, decided to build a new blockchain called Ethereum.

They proceeded with creating a Turing complete scripting language called Solidity and built the Ethereum blockchain on it. The Turing completeness of Solidity now enabled projects to easily build decentralised applications and run smart contracts on top of the Ethereum blockchain. The vision of creating a general purpose blockchain was fulfilled. If Bitcoin was a pocket calculator with only one function, Ethereum was a smartphone with indefinite number of functions.

To prevent spam, Bitcoin used Script, a not Turing complete language that does support loops. In the case of Ethereum, spam is essentially prevented through a financial disincentive. Every computational step that is performed by the Ethereum network will require a payment of Gas. The more complicated the code is, the more Gas fees needs to be paid. To pay for Gas, users will pay in Ethereum’s native cryptocurrency called Ether (ETH). 

With its Turing complete language and its general purpose infrastructure, the Ethereum blockchain has become the most popular choice for launching smart contracts and decentralised applications. 

A type of smart contract that popularised Ethereum is ERC-20 Token Standard. ERC-20 is a technical standard used for smart contracts when implementing tokens on the Ethereum blockchain. It stipulates a simple standard set of rules for makers of tokens to follow. By following this standard, developers will know accurately the interactions between different tokens. To highlight the success of Ethereum as a general purpose blockchain, there are a total of 177,630 different tokens contracts at the point of writing (27th of March 2019) . 

Ethereum is Blockchain 2.0 because it advanced blockchain technology from being application specific to become general purpose. With a general purpose blockchain, anyone can now create their tokens by launching their own smart contract on the Ethereum based on the ERC-20 token standard. Anything and everything can now be tokenised easily.

Note: Smart contracts was first proposed by Nick Szabo in 1994. It is a computer protocol that will digitally facilitate, verify, or enforce the performance of an agreed contract without the need for an intermediary. Smart contracts are essentially terms of an agreement translated into computer code that is run on every node of the blockchain.