It's stunning to see the price of bitcoin rocket into the stratosphere. But almost equally surprising is the fact that so many software architects and solution developers, inspired by the bitcoin story, are looking for ways to integrate blockchain technology into their architectures.
In the healthcare industry, there is talk about consolidating patient records across hospitals using blockchain. The Republic of Georgia is using blockchain to verify property transactions. Governments are looking at using blockchain to verify the identity of their citizens or even to adopt a cryptocurrency of their own. From the energy sector to the media industry, there seems to be an unquenchable desire to find a problem for which blockchain architecture is a solution.
But the fact of the matter is: There is a big problem with bitcoin, and blockchain technology is at the center of that problem. The bitcoin story should be used as a caveat -- how not to build an application -- as opposed to being a template for how software projects should succeed.
Under the covers, bitcoin is simply a distributed ledger of accounts. A series of participants replicate, update and then validate changes made to the ledger, making sure they're valid and not fraudulent.
In terms of achieving those goals, bitcoin and its underlying blockchain architecture have been a success. Furthermore, the incentive-based participation structure -- in which nodes that help validate transactions are rewarded financially -- has managed to recruit a large number of participants, which is also a win for the cryptocurrency. But in terms of nonfunctional aspects of the technology, the losses greatly overshadow the wins, and this is where the big problem with bitcoin lies.
Beware the size of the blockchain
A minor issue with bitcoin is the rapidly growing size of the blockchain itself. Because the bitcoin blockchain holds a history of transactions, it has grown rather large. It currently sits at 146 GB in girth and will easily grow to over 200 GB before the end of 2018. And, oddly, bitcoin has grown this robustly throughout a period of time in which its adoption and daily use are still relatively small. Bitcoin handles approximately 350,000 transactions a day. Visa handles 150 million. For software developers looking to apply blockchain technology to use cases that handle large volumes of transactions, the potential size to which the blockchain might grow may put a limit on the usefulness of applying blockchain technology.
Even more troublesome than the potential size to which the bitcoin blockchain might grow is the amount of time it requires to create hashes and, subsequently, validate transactions when they occur. Currently, adding $100 to a bitcoin wallet through a service like Paxful or Coinbase takes approximately half an hour to process. That's a long time, especially compared to the subsecond processing time we experience with credit cards or debit machines.
Validating transactions has become a cumbersome and time-consuming process, a major problem in a world where customers expect instantaneous transactions. If a hospital is going to store patient data in a blockchain, will a life be put at risk if it takes 15 or 20 minutes to generate enough hashes to validate the incoming request and release information about a patient's drug allergies or existing medical conditions? If transactional processing time is important, blockchain technology might not be the right technology for the job.
Bitcoin needs more calories than Slovenia
Another big problem with bitcoin is the vast amount of resources transactions consume.
"It is said that the bitcoin network and the country of Slovenia consume equal amounts of energy on a daily basis," Gartner analyst Paul Vincent said.
By 2020, bitcoin might exceed the electrical consumption of Denmark. That's astronomical, not to mention completely unacceptable at a time when climate change threatens the long-term prospect of life on this planet.
Paul VincentAnalyst, Gartner
It should also be taken into account that there are only 17 million blockchain wallets in use worldwide. That's less than the population of Kazakhstan. Just how massive would the blockchain grow if all 325 million citizens in the United States had a wallet? How slow would transaction processing be if those users regularly moved currency in and out of their account? And just how devastating would the environmental impact be? And that's just the energy consumption of the bitcoin network. If blockchain technology starts creeping into the software solutions of every industry, there might not be enough energy in the existing grid to power them.
And while it was mentioned earlier that bitcoin's incentive-based participation structure has done a good job in recruiting data miners and transaction processors, there has been a scary trend towards consolidation in that field.
"Currently, 80% of all bitcoin data mining is performed by four miners based in China," Vincent said.
Furthermore, blockchain verification requires that no more than 50% of transaction processing should be done by one entity, lest it could ply the blockchain with fraudulent transactions and then use its majority stake to validate those fraudulent transactions. If that happens, the whole system would fail.
Currency or speculative asset?
And finally, while this isn't a technical issue, the bitcoin currency has fundamentally failed as a currency. The whole point of a currency is that its value remains somewhat stable over time. At the start of 2017, a bitcoin was valued at around $1,000. On Nov. 28, it hit $10,000, and by Dec. 7, it was at $17,000. A day later, it was back down to a $14,000 handle. Bitcoin is failing as a predictable store of wealth and is instead behaving like a speculative commodity.
I understand the current zeal for bitcoin. The idea of a cryptocurrency is intriguing, and watching the unpredictable price spikes is exciting. But from a technical perspective, bitcoin is a failure, and software architects would be wise to steer clear of its use on any projects they are designing.