Are You Sure the Answer's Blockchain?
There’s a huge industry promoting and selling blockchain technology and if you listen to some people it’s the answer to everything. I wrote an article some time ago asking; “What’s So Good About Blockchain?” which I think labels me more “sceptic” than “evangelist” however I do see some specific circumstances where blockchain is a good answer.
The news is full of blockchain adoption stories, however there are very few that actually add value to the enterprise. So before you listen to the next salesman that comes through your door (and IBM have over 1000 people working on blockchain) remember this rule of thumb;
If your requirements are fulfilled by today’s relational databases, you’d be mad to use a blockchain.
Let’s face it the big products like Oracle and MySQL have been deployed and improved over many years; they contain some of the most thoroughly tested, debugged and optimised code in existence. They run on millions of servers and successfully support trillions of queries. They are performant, been upgraded and stood the test of time. Blockchain on the other hand has very few products, is relatively immature and is haunted by performance issues and limitations.
So, is there a use case for blockchains?
Absolutely, but unless the requirements dictate the following three properties, it’s the wrong answer;
1. Multiple writers
Blockchains are a technology for databases with multiple writers. In other words, there needs to be more than one entity which is generating the transactions that modify the database. If you’re looking at an accounting system where the only updates are generated internally this isn’t the solution for you.
2. Absence of trust
Blockchains are a technology for databases with multiple non-trusting writers. In simple terms it means that one user is not willing to let another modify database entries which it “owns”. Similarly, when it comes to reading the database’s contents, one user will not accept as gospel the “truth” as reported by another user, because each has different economic or political incentives.
So the problem, as defined so far, is enabling a database with multiple non-trusting writers. And there’s already a well-known solution to this problem: the trusted intermediary. That is, someone who all the writers trust, even if they don’t fully trust each other. This is how banking works; everyone trusts the bank to control the accounts and ledger, unsurprisingly, your bank will never let you modify their database directly.
Blockchains remove the need for trusted intermediaries by enabling databases with multiple non-trusting writers to be modified directly. No central gatekeeper is required to verify transactions and authenticate their source. Instead, the definition of a transaction is extended to include a proof of authorisation and a proof of validity. Transactions can therefore be independently verified and processed by every node which maintains a copy of the database.
But the question you need to ask is: Do you want or need this disintermediation? It will lower costs and increase speed if you don’t.
In conclusion, blockchain is an emerging if overhyped technology. It will undoubtedly find its niche and will develop into a useful technology that supports many solutions. My warning to the reader however, is not to be taken in by the hype and to be absolutely clear why it’s necessary before setting out on an expensive adoption crusade.