There's no shortage of hype surrounding blockchain technology. Just this week, former U.S. President Bill Clinton joined the chorus of praise for blockchain, remarking that the "permutations and possibilities of blockchain technology are staggeringly great."
So, does blockchain live up to the hype? The answer is a bit nuanced.
In this article, I offer a pragmatic view of blockchain technology without the noise of catchy marketing phrases or buzzwords. Many feel blockchain will take over the world, but it’s important first to develop a deeper, more technical understanding of what blockchain is before speculating on its potential in the long term.
In addition to breaking down what blockchain is and how it works, I'll assess its current pain points, possible solutions, and why decentralization may be difficult to maintain over time.
What is a blockchain?
First, let’s discuss, at a high level, what a blockchain is. A blockchain is public data ledger with the following properties:
Data is coupled (chained) together so that each new block points to a previous block
Each block must refer to the previous block to be valid
Data is distributed among all voluntary participants in the network (nodes)
Data is encrypted, making it secure and extremely difficult to change once chained together
Data is immutable once valid, as the network permanently timestamps the record or transaction once complete
Technically speaking, blockchain is a distributed database. It's a type of event stream where data is distributed in a peer-to-peer (P2P) manner with no central or governing authority.
A technical deep-dive
A blockchain can be split into several core functions: Network, storage, and logic. Let’s take a more in-depth look at these three functions.
Since blockchain has no governing authority, there are no "main" blockchain servers. Each participating node or powerful computer that runs a specific blockchain network becomes part of the network. Once you join the network, you receive a copy of the blockchain. That blockchain has digital records of every transaction that took place on the network and serves as proof for all of those interactions.
All data on the blockchain is transmitted in P2P fashion—similar to how torrent software works—because all nodes talk to the blockchain's protocol. These nodes don't require the same version of the software to communicate if they are using the same underlying protocol. It’s reasonable to consider that all nodes won’t be running the same or unmodified software.
Although all nodes must be connected to the blockchain network, not all nodes have to be connected to each another. The data flows through intermediaries until it reaches all parts of the network.
The diagram below illustrates how data is stored in the blockchain. You can see that the more data you add, the more difficult it gets to modify, as each block also contains a hash from a previous block. Alter the contents requires a change in the entire history, which in some cases isn't possible.
In the diagram above, we can see two data items:
Record: A record is any data item (e.g. a Bitcoin transaction is the record) on the network. It can be created by any blockchain client and sent into a network. It is distributed in a P2P manner, and eventually, each node gets a copy. Records don't mean anything until they're placed into a block. They can "float" around forever and only depend on the client and how it's implemented.
Block (of records): A block is a batch of verified records that are placed into a block. Blocks can be produced by any node and sent into a network to be added to a blockchain. It is up to a producer, otherwise known as miners, which records are added to a block. Alternatively, a producer may choose not to put any records into a block. Blocks are only accepted and added to a blockchain by other nodes if they pass verification checks, which are determined by the blockchain creator and completed by all participating nodes on the network. Lastly, once more than 50 percent of the nodes in the network accept or verify the transaction, it’s considered written. Blocks that are not written to a blockchain yet are considered to be “floating."
Next, the blockchain requires logic on how data is managed, verified and stored. In a P2P network, not all nodes are "friendly," so nodes should (in theory) have the ability to filter records and blocks. In doing so, the logic would ensure that only valid records are floating around and all nodes are reachable by more than one path. Since a blockchain uses heavy-duty encryption, nodes cannot change original records.
Logic should also make sure that it's difficult to create a denial-of-service (DOS) attacks by "unfriendly" nodes. In planning for a worst-case scenario, widespread security checks are completed on each node. Since there are multiple strangers participating as different network nodes, there are multiple security measures in place that help prevent DOS attacks, network manipulations and any cheaters out there:
Proof of work: A miner must solve a complex task and provide proof of the completed work. The task is easy to verify by other nodes and is linked to the previous block task. A simple example could be: Find the next number (in a block sequence) that is divisible by 9. The Bitcoin blockchain currently uses a proof-of-work protocol in the real world.
Proof of authority: Only miners that have valid certificates can produce blocks. In this case, nodes check if the block origin is from an "approved" list. For example, when a group of partners maintains a blockchain, they ensure correct behavior from their mining nodes.
Proof of stake: Miners that hold a large stake in blockchain—those that contain lots of virtual currency or assets—can produce more blocks. In theory, nodes that have a higher stake in the blockchain will do more to keep the network in good standing. The Ethereum blockchain is currently working toward a proof-of-stake protocol.
Any type of data can be kept in a blockchain, not just transactions. If we want multiple blockchains, it's logical to reuse network and storage parts and change the logic. This is what Ethereum tries to achieve. Instead of hard-coding the logic, they've built a virtual machine (VM) that stores its programs and state in a blockchain. This means that programs can be written that execute in a network and is verified by all nodes.
In this case, miners are nodes that execute the contracts and records their state into blocks. The contracts itself are also stored in a blockchain. In the case of Ethereum, Ether is the currency on the network required to execute a contract. A contract can only be completed if both parties fulfill the contract rules and have enough Ether—or gas—to complete the transaction.
This applies to the real world because you can model not just digital currency but also contracts that have expiry rules, escrow services, and more.
Put it all together
Let’s quickly review what we’ve learned thus far.
To start, a node in a network creates a properly formatted record with necessary data and sends it out to the P2P network. Each node relays records to their peers. Eventually, a record is replicated in the whole network and stored into temporary storage in each node. The miner nodes then select the records they want to add to a block, create a block, hash it and send it out to the network. All other nodes receive the block, verify it, and add to its chain.
The scenario listed above is the most common workflow in a blockchain. However, it’s reasonable to assume that that two miners might simultaneously create the next block.
As the miners work asynchronously, they can construct a block from a different set of records. In this scenario, a chain split will occur. Both blocks are valid at this point, but as time goes on and new blocks are coupled onto both, the longest chain will eventually prevail. Miners can choose which of the blocks to use as a previous block of records. This means that your record or transaction cannot be considered final until a certain number of blocks follow. In Bitcoin, it’s six more blocks.
In the illustration above, blocks 4’ and 5’ become unused history.
Real-world pain points
One of the most famous applications of blockchain is in a digital currency, such as Bitcoin. Bitcoin and other cryptocurrencies allow people to transact without any governing party securely and without censorship.
The diagram below illustrates multiple possibilities that the blockchain can enhance or provide:
In theory, everything above sounds great. Right? So why can't blockchain technology take over the world?
First, let’s discuss the general assumptions that are made when talking about blockchain, as well as the technical pain points we see today.
Storage becomes expensive
As we've seen above, all the data in a blockchain is distributed for every node. This means that a copy of a blockchain is multiplied by the number of nodes in a network. On the plus side, this makes it extremely hard to lose or forge records. On the other hand, storage becomes very expensive. As data in a blockchain is never deleted, it will grow indefinitely. For example, Bitcoin assumes that memory will follow Moore’s law and will grow together with the Bitcoin blockchain.
In addition, half of the nodes are considered "good guys." It’s important to have the majority of nodes working for the greater good of the network. Solutions like proof-of-work and proof-of-stake also prevent any malicious attacks.
Moreover, there are technical solutions like having full nodes that hold an entire blockchain in a more centralized manner, and light nodes that store only relevant pieces. However, security is sacrificed in the respect that full nodes become a central point of attack and monopolize network power quickly.
In current blockchains, miners have incentives for processing new blocks. In the future, those incentives may be gone and only the only payment that miners receive will come from P2P transactions. This means that miners will pick transactions that earn them something. As a result, transaction costs could rise due to the risk that the transaction will never be picked up.
Miners might evolve to apply fancy filtering schemes that are out of the user’s control unless they want to run a miner node themselves. As the technology and industry mature, it’s worth keeping an eye on how different blockchains incentivize miners and participating nodes.
Transaction speed will always be an issue, especially in today’s instant-gratification world. Traditionally speaking, P2P networking is intrinsically slow. All the distribution of data needs a lot of network chat to happen, which can take many minutes or even hours.
Transaction speed could be holding blockchain back from mainstream adoption, especially considering companies like Amazon execute millions of transactions a second using credit card processing. However, it’s promising to see that current blockchains like Bitcoin and Ethereum are improving their respective networks to handle higher transaction volumes. More specifically, according to Etherscan, a website dedicated to Ethereum blockchain transaction volume, the Ethereum network handled as many as 1.3 million transactions a day in January 2018.
In addition to the inherent network issues, network providers can also throttle bandwidth—something that’s relatively out of your control.
Here's something you’ve probably read or seen in the news about blockchain: Since solving blockchain equations and verifying blocks requires computing power—often in vast amounts—the energy needed to power these machines is extraordinary.
Since blockchain is a P2P network and storage, your node will always be sending, receiving, and verifying data that floats around. You will be using processing power and storage as long as you’re an active participant.
Indeed, as hardware and software evolve, the processing power required to mine will decrease. Until that happens, mining on the blockchain will likely require a significant amount of energy and resources.
One final pain point in the external dependencies in the blockchain. The data used in blockchain record creation and transactions today are scattered and served by different providers. If you need external information in blockchain smart contracts or programs, validation increases in complexity. For instance, an external party providing or hosting this information may be hostile or could return varying results to different users.
So, if we want fully autonomous and fast blockchain, all the data that is required for contracts and programs should reside in a blockchain.
Is a real-world blockchain feasible?
To some extent, yes!
There’s no one-size-fits-all resolution, but some of the technical challenges will have to be accepted and resolved. Thankfully for blockchain supporters, there are countless developers and thought leaders who are working to enhance blockchain networks around the world and evangelize its possibilities.
From a business perspective, the value proposition lies in whether your organization determines if it needs more than a database or data warehouse. There are hybrid approaches to blockchains now, which limit storage capacity and keep business agile.
Corporations around the world are starting to test the waters. The Mobility Open Blockchain Initiative (MOBI) is a new consortium founded by Renault, Ford, GM, and BMW, in conjunction with IBM, Accenture, and other technology partners. MOBI’s goal is to record car data onto a blockchain hosted by a network of vehicles.
More specifically, its first project, according to the organization's website, is to build a vehicle digital identity prototype or “car passport” that can track and secure a vehicle’s odometer and relevant data on distributed ledgers. This technology could reduce fraud in used car sales, as buyers would have an accurate vehicle history. In the future, car manufacturers could agree on a standard data recording, similar to how on-board diagnostics are currently recorded.
So whether or not the blockchain is right for you, the most important takeaway is this: Get to know the technology and determine potential gaps it could fill in your business. Future innovation lies around the corner, and your business needs to be well-positioned to capitalize at the right time.