Attempting to explain the advantages and disadvantages of blockchain technology, in it’s current format, for developing solutions.
Over the last 6 months, we’ve been attempting to pull apart blockchain, from concept, to economics. This article is designed to record some of our thoughts about blockchain and why it’s useful, or not. If we have something wrong, inaccurate or out of date, let us know in the comments!
“Every disadvantage has its advantage” — Johan Cruyff
Why is blockchain useful?
The key advantages that Blockchain offers are:
Blockchain allows a wide variety of computers to take part in a network, distributing the computing power. For example, Amazon buys and maintains a private set of computing power for AWS, no-one but Amazon can contribute this. In contrast the blockchain organisation Ethereum allows almost anyone to contribute their computer to their network, simply by installing their software. Distribution helps to reduce risk in tampering, fraud and cyber crime. With more nodes able to take part, systems are very hard to “take down” via traditional brute force network attacks.
Blockchain allows digital transactions to happen between parties who do not trust each other. Imagine a digital coin stored in a file on your computer. You may copy and paste the file an infinite number of times. The value of this digital currency would close to zero. In the past, central authorities (banks) have acted as ledgers, keeping records of the number of coins each of us has available as a centralised Ledger, to avoid the problem of duplication.
By distributing the Ledger to many Nodes, and synchronising this Ledger via Consensus, blockchain allows parties who don’t trust each other, to believe that the transaction is real and not worthless. Over time, trust can be increased further, via shared processes and immutable records of transactions. This facilitates a massive range of potential digital transactions that couldn’t have happened before without a central authority managing them.
Once a transaction is agreed and shared across the distributed network it becomes close to impossible to undo. In fact, over time, it becomes harder and harder to undo. In a public ledger, like Bitcoin, this means that you can explore the blockchain and discover the number of Bitcoins in anyones account, or trace where funds were distributed to. In other scenarios, this could be used to track supply chains, or check who accessed certain files on a network.
Blockchain also supports the reduction in centralised monopolies or “middle-men” and removes costs. By distributing networks blockchain can find economies of scale, without single centralised investment. This increases competition in the market, by lowering the barriers to entry, putting pressure on all participants to become more efficient. Added to this, allowing peers to transact with no requirement for trust disrupts the current business practices of organisations who facilitate trust e.g. Banks. Transactions directly between peers, may lead to reduction in “middle-man” steps, further increasing market efficiency.
What are the challenges of blockchain?
Blockchain is not without it’s weaknesses:
Every Node runs the blockchain in order to maintain Consensus across the blockchain. This gives extreme levels of fault tolerance, ensures zero downtime, and makes data stored on the blockchain forever unchangeable and censorship-resistant. But all this is wasteful, as each Node repeats a task to reach Consensus burning electricity and time on the way.
This makes computation far slower and more expensive than on a traditional single computer. There are many initiatives that seek to reduce this cost focusing on alternative means of maintaining Consensus, such as Proof-of-Stake.
Blockchain networks require Nodes to run. But as many of the networks are new, they lack the number of Nodes to facilitate widespread usage. This lack of resource manifests as:
- Higher costs — as Nodes seek higher rewards for completing Transactions in a Supply and Demand scenario
- Slower transactions — as Nodes prioritise Transactions with higher rewards, backlogs of transactions build up
Over time, successful public blockchain networks will have to incentivise Nodes, whilst creating favourable costs for users, with transactions completed in a relevant timeframe. This balance is key to the economics of each blockchain.
The size of the block
Each transaction or “block” added to the chain increases the size of the database. As every node has to maintain a the chain to run, the computing requirements increase with each use. For large public implementations of Blockchain this has one of two affects:
- Smaller ledger — Not every Node can carry a full copy of the Blockchain, potentially affecting immutability, consensus etc.
- More centralised — There is a high barrier to entry to become a Node, encouraging a larger amount of centralisation in the Network, with bigger players able to take more control.
Neither of these scenarios is desirable, without considering the full implications, as it will likely affect the use cases for blockchain variants.
Many blockchains are run using token/currency models to fund development or manage the economics of Nodes. For example, Ether (ETH) is the currency used to pay for computing power (or Gas) on the Ethereum network. Therefore ETH is a currency for computing power.
Traditional currencies like USD, GBP, EUR (also called Fiat currencies) are generally linked to value of their respective economies e.g. GBP to the UK. These economies are well developed, regulated and stable. ETH is not. However, due to the potentially disruptive nature of Blockchains, people have taken to speculating on the value of the digital economies they create.
As these markets are subject to limited regulations, and are highly speculative they are prone to rapid fluctuation and manipulation, spiking transaction value. This presents particular risks when transacting from Fiat currencies into blockchain currencies. For example 1 ETH may cost ~$200 today, but ~$180 tomorrow, a 10% price fluctuation. Whilst this can create large rewards, it also presents high degrees of uncertainty for projects developed on public blockchain technology.
Hard and Soft Forks
Many blockchains and currencies decentralise their decision making. For example Bitcoin allows Nodes to “Signal” support for improvements to the core Software that run the network. This allows the blockchain to avoid centralised decision making, but also presents challenges when communities are divided about the best course.
When Nodes change their Software, there is potential for a “Fork” in the Chain. Nodes operating the new Software will not accept the same transactions as Nodes operating the old one. This creates a new blockchain, with the same history as the one it is built on.
Forks create significant uncertainty, as they have the potential to fragment the power of the blockchain network into lots of variants. They are also likely to be necessary, as without the capacity to update the Software, the blockchain is unlikely to be future proof.
Immutable Smart contracts
Once the smart contact is added to the blockchain, it becomes immutable, in that it cannot be changed. If there are flaws in the code that may be exploited by hackers, they are there forever. This is not a concern when a smart contract is not being used, but as smart contacts behave like accounts, they can be used to store large amounts of value.
This can create scenarios where hackers can exploit code flaws to send the contents of smart contracts to their own accounts. As the blockchain is immutable, these Transactions are very hard to undo, meaning large amounts of value may be lost forever.
Icons used under Creative Commons from the wonderful people at icons8.com