Author: Andras Nemeth
There has been an overwhelming buzz around blockchain. It has become a heated topic of discussion and area of investment (not to mention POC projects for commercial utilizations of the technology). Poor CTOs are forced to draft opinions on the technology. So what is going on? Is blockchain really better than sliced bread? Or will there be a lot of necks broken tumbling down into the Trough of Disillusionment?
What is the core idea contributed by the blockchain?
Blockchain is indeed one of the most ingenious ideas of the past 10 years. So what can it really do?
Imagine you have a system with some state and rules governing how the system can evolve.
E.g., you want a banking system with accounts and transfers. You want to make sure that in each transfer the usual rules hold: the amount deducted from one account is the same as the amount credited to the other. You want to make sure the owner of the source account has approved the transfer.
Now you want to actually implement this system using a computer. It is typically easy as pie. No need for ingenious ideas here. (Well, as easy or as complex as the state and the rules of your system. But typically, these rules and states pose no challenge to computers.)
The only problem is the following. Whose computer is going to run the above simple program? If it’s mine, then there is no way you can trust me. I might claim I run a program implementing the rules above, but maybe I actually run a slightly modified one which embezzles some amounts to my personal account here and there.
And here we are, this is exactly the core problem (the only problem!) blockchain is designed to solve.
Very basically, the idea is that everybody involved with the system has software which is able to model the evaluation of the system independently (i.e. clear transactions) and there is a (very) clever scheme which allows all the participants to agree on a shared, common understanding of the state all the time. (Well, with some small delays.) The common state is what is usually referred to as a distributed ledger.
Uhm, OK. That’s nice I guess. So why all the buzz?
If you haven’t noticed yet, this is a skeptical article about the blockchain buzz. Still, even I am happy to say that the implications of this technology can be game-changing. Basically, if users with need for any sort of bookkeeping are able to agree to use such a system (which is a big if by the way) then they can eliminate lots of centralized authorities (for better or worse). Corrupt, slow and plain annoying government officials keeping tracks of real estate? Good bye. Banks? Well, we might still need the parts where there is some actual intellectual output (e.g. credit scoring, investments, etc) but most of the accounting services can be shut down. One could say these changes are fundamental for a real free society. Another might prophesy that this would be just the first step for the apocalypse. Still, both would agree with the significant impact it would create.
Yet, the above paragraph seems like a gross understatement if we just read a few articles on the subject. Not only blockchain can change the history of mankind, but it can also help with (for God’s sake, please don’t read these):
To understand why this insane list of possible use cases we need to remember where we started: we have a system that can be modelled by a computer. Well, that’s pretty broad. The above are indeed all pretty fantastic use cases for computers!
So what are the possible problems which can be potentially solved within a blockchain framework? Almost anything! But among those problems, which are the ones where blockchain actually makes a difference? I mean where the same problem couldn’t be solved by a “normal” computer program? A very small fraction.
I think the above dichotomy is the core reason of the unreasonable hype around this otherwise great technology: it can be used for almost anything. Just in most cases, it doesn’t really make any sense to use it.
So is my problem blockchain-worthy?
No, it’s not.
Oh, sorry, I forgot to ask what your problem is. Actually, maybe it is, but the above answer is already a pretty good predictive model.
To find a problem where blockchain can actually make difference, you need something where:
To start out with a positive example, replacing SWIFT with a blockchain based solution to handle money movement among banks might be an option. Banks don’t love that they have to part with huge sums of money for the benefit of this little Swiss goldmine company. And they are actually professional entities with professional security aware IT teams, so they can probably be trusted with a private key.
But, say, a telco wants to use blockchain to store user interaction records and make it available to third parties, but only with some explicit user consent. First of all, there is no grievance here caused by the fact that the data is stored centrally by the telco. There is no ledger the telco might want to fake. The problem is the ownership of the data and permission of use. The users might not want the telco to be able to make decision on this on their behalf. The good news is that this problem can be solved easily via traditional encryption methods. Basically, records can be stored encrypted with keys owned by their users. No need for blockchain. (The bad news is that users can’t be trusted not to lose their keys. If this happens and the data is stored centrally then records can be deleted or re-encrypted with a newly issued key. If the data is stored in a distributed blockchain then the old version of the encrypted records will be non-erasable public knowledge forever as anyone can keep older versions of the blockchain.)
What blockchain is not really for
Finally, let me discuss a few common themes that come up in the bitcoin discourse. The common pattern is that they all have perfectly good blockchain-free solutions.
As long as a single computer system has access to all assets and conditions that play a role in a contract then it’s a trivial thing for a computer to enforce the precise and timely execution of that contract. This is almost what computers are for. So no, nothing new about that in blockchain. Of course, if you want the ledger the smart contract operates on to be not controlled by a single central entity, then you need blockchain. But the reason you need it is the distributed ledger NOT the ability to execute smart contracts. Of course, one can say that in an open, distributed ledger the breadth of assets present in a single system can become larger than in a single system controlled by a single entity. E.g. if the same blockchain would be used for money accounts and real estate then we could do smart contracts for real estate sales. But this is a very, very, very long term possible benefit. People tend to think if they introduce blockchain they can do smart contracts. Not true.
Nothing blockchain adds to this. We have perfectly good encryption methods from the seventies that solve the problem of identifying an entity as long as it’s able to keep hold of a private key. (Not true for everyday people by the way.) These very encryption methods are actually used in bitcoin (first real implementation of blockchain) to identify account “owners”. They work great. With or without blockchain. (Until they really make a quantum computer, that is.)
Innovative privacy sensitive data storage
Nope. Again, you can use standard cryptographic methodology to achieve this in a blockchain. Or you can just as well use the same cryptographic methodology on top of a plain mysql server. Same results. (To clarify, for the mysql solution you do need a central “authority” storing the data. But that authority will only see encrypted data, the same thing that _everybody_ sees in a blockchain based solution.)
Safe, distributed data storage
It’s very much like saying helicopters are great for drying hair. Indeed they are. Yet, there are simpler, safer, cheaper solutions out there.
Blockchain is great. Really. I mean it. But no, not everything is a fit for it.
(This article expresses the author’s personal opinion and does not represent the views held by Lynx Analytics Pte Ltd.)