Bitcoin, blockchain, Ethereum, gas, …
A new breed of snake oil purveyors are peddling “blockchain” as the magic sauce that will power all the world’s financial transactions and unlock the great decentralised database in the sky. But what exactly are bitcoin and blockchain?
Bitcoin is a system for electronic transactions that don’t rely on a centralised or trusted third-party (bank or financial institution). Its creation was motivated by the fact that digital currency made of digital signatures, while providing strong ownership control, was viable but incomplete solution unable to prevent double-spending. Bitcoin’s proposed solution was a peer-to-peer network using proof-of-work (in order to deter network attacks) to record a public history of transactions that is computationally impractical for an attacker to change if honest nodes control a majority of CPU power. The network is unstructured, and its nodes work with little coordination and don’t need to be identified. Truth (i.e. consensus on longest chain) is achieved by CPU voting, i.e network CPUs express their acceptance of valid blocks (of transactions) by working on extending them and rejecting invalid blocks by refusing to work on them.
Satoshi Nakamoto’s seminal paper “Bitcoin: A Peer-To-Peer Electronic Cash System” has references to a “proof-of-work chain”,“coin as a chain,” “chain of ownership”, but no “blockchain” or “block chain” ever make an appearance in it.
Blockchain (which powers Bitcoin, Ethereum and other such systems) is a way for one Internet user to transfer a unique piece of digital asset (Bitcoins, Ether or other crypto assets) to another Internet user, such that the transfer is guaranteed to be safe and secure, everyone knows the transfer has taken place, and nobody can challenge the legitimacy of the transfer. Blockchains are essentially distributed ledgers and have three main characteristics: a) decentralisation, b) immutability and c) availability of some sort of digital assets/token in the network.
While decentralisation consensus mechanisms offer critical benefits, such as fault tolerance, a guarantee of security (by design), political neutrality, they come at the cost of scalability. The number of transactions the blockchain can process can never exceed that of a single node that is participating in the network. In fact, blockchain actually gets weaker (only for transacting) as more nodes are added to its network because of the inter-node latency that logarithmically increases with every additional node.
All public blockchain consensus protocols make the tradeoff between low transaction throughput and high-degree of centralisation. As the size of the blockchain grows, the requirements for storage, bandwidth, and computing power required to fully participating in the network increases. At some point, it becomes unwieldy enough that it’s only feasible for a few nodes to process a block — that might lead to the risk of centralisation.
Currently, the blockchain (and with it, Bitcoin, Ethereum and others) challenges are:
- Since every node is not allowed to validate every transaction, we need nodes to have a statistical and economic means to ensure that other blocks (which they are not personally validating) are secure.
- Scalability is one of the main challenges. Bitcoin, despite having a theoretical limit of 4,000 transactions per second (TPS) currently has a hard cap of about 7 transactions per second for small transactions and 3 per second for more complex transactions. An Ethereum node’s maximum theoretical transaction processing capacity is over 1,000 TPS but processes between 5-15 TPS. Unfortunately, this is not the actual throughput due to Ethereum’s “gas limit”, which is currently around 6.7 million gas on average for each block. Gas is the computation cost within Ethereum, which users pay in order to issue transactions or perform other actions. A higher gas limit means that more actions could be performed per-block. In order to scale, the blockchain protocols must figure out a mechanism to limit the number of participating nodes needed to validate each transaction, without losing the network’s trust that each transaction is valid.
- There must be a way to guarantee data availability, i.e. even if a block looks valid from the perspective of a node not directly validating that block, making the data for that block unavailable leads to a situation where no other validator in the network can validate transactions or produce new blocks, and we end up stuck in the current state (reasons a node is offline include malicious attack and power loss).
- Transactions need to be processed by different nodes in parallel in order to achieve scalability (one solution is similar to database sharding, which is distribution and parallel processing of data). However, blockchain’s transitioning state has several non-parallelizable (serial) parts, so we’re faced with some restrictions on how we can transition state on the blockchain while balancing both parallelizability and utility.
- End-users and organisations (such as banks) have hard time or don’t want to use blockchain (despite many having used or using distributed ledgers). To do a simple Bitcoin transaction requires a prior (quite a few exceptions) KYC check just to sign up on one of many crypto trading or exchange platforms. “The Rare Pepe Game is built on a blockchain with virtual goods and characters and more,” explains Fred Wilson of USV. “And it shows how clunky this stuff is for the average person to use.”
- There is lot of hype, around blockchain which sets wrong expectations, misleads investments and causes lots of mistakes. Bloomberg reports that Nasdaq is seeking to show progress using the much-hyped blockchain. The Washington Post lists Bitcoin and the blockchain as one of six inventions of magnitude we haven’t seen since the printing press. Bank of America is allegedly trying to load up on “blockchain” patents. Also, due to its volatility, uncertain status (can it be considered a legal tender such as normal fiat money or is it security, etc?), there is much instability of holding crypto assets.
- Contrary to common belief, disintermediating financial institutions, so the reasoning goes, multiple parties can conduct transactions seamlessly, without paying a commission. However, according to one research, cost savings might be dubious as moving cash equity markets to a blockchain infrastructure would drive a significant increase of the overall transaction cost. Trading on a blockchain system would also be slower (at least in foreseeable future) than traders would tolerate, and mistakes might be irreversible, potentially bringing huge losses.
- To drive massive adoption which will induce further technological advancement, a killer app on blockchain or Ethereum would be a must. Despite much invested resources and efforts globally, So far there doesn’t seem to be one, but there arguably is potential in few areas such as digital gold, payments and tokenization.
- Blockchain’s immutability might pose a problem for specific types of data. The EU ‘right to be forgotten’ requires the complete removal of information, which might be impossible on blockchain. There are other privacy-related concerns that people might want to remove or forgotten such as previous insolvency, negative rankings, and other personal details that need to change.
To conclude, I think Ethereum is furthers along compared to PoW-based public blockchains. Ethereum is still orders of magnitude off (250x off being able to run a 10m user app and 25,000x off being able to run Facebook on chain) from being able to support applications with millions of users. If current efforts are well executed, Ethereum could be ready for a 1–10m user app by the end of 2018.
However, there are less-known alternative models that are much more scalable. Once scalability issues are solved, everything will become tokenized and connected by blockchain.