I have struggled to see what all the blockchain hype is about, so I decided I finally have to do my homework and read up on the algorithms and research in the topic.
I want to document my learnings here. I do realise that I'm behind many people in my understanding, so I expect my views to evolve as I read and think more. I plan follow up with a series of posts, this being the first one. These are my initial thoughts after reading the original whitepaper and a few related resources:
Blockchain ≠ decentralised technology
Blockchain is the protocol underlying the Bitcoin network. It is often positioned as the holy grail for any decentralised technology. There is talk about reputation systems, decentralised file storage, and loads of other things, all being enabled by blockchain. In my view this is misleading. We need to understand what it does well, and what it does not do.
Blockchain is an algorithm/protocol that solves a very particular problem of maintaining a decentralised log of transactions in a coherent and honest way. While this sounds general enough, it is fairly limited to maintaining transactions and state transitions. Trying to force the blockchain to other problems which are not naturally expressed as a state machines is possible but not always a good idea. There is a good reason we don't actually use Turing machines with very long tapes as computers: they can theoretically do anything, but they are marvelously impractical for most common applications.
Blockchain is certainly in its "if all you have is a hammer, everything looks like a nail" stage, and eventually it will grow out of it. The industry has misused hadoop/mapreduce/noSQL the same way in situations it was not meant for.
In fact, there has been a lot of research before and since the blockchain that address some of these peer-to-peer decentralised problems that people now hope blockchain will enable. These algorithms do it much more naturally and probably better than blockchain. Here is for example a decentralised algorithm for reputation networks, and another one for sharing storage and bandwith.
The real underlying concept that makes decentralised organisations/computations work is incentive compatibility, although barely anyone mentions this in the context of blockchain. Incentive compatible peer-to-peer mechanisms are games in which each participant is incentivised to be truthful and honest. Bitcoin works because staying truthful and following the protocol maximises your mining revenue.
The work on incentive compatibility predates the work on blockchain, see the two examples above. An old, common example is sealed second price auctions. Here, each buyer submits a single bid, secretly. The buyer with the highest bid gets the item but only pays the second highest bid. In this scenario, if you are a buyer, your best strategy is to honestly submit the maximum price you are willing to pay, as this maximises your chance of getting the item and you are guaranteed to get it at the best price possible. Any deviation from honesty will hurt your chances. This mechanism ensures that the fair market price of the item is correctly established.
So is Bitcoin/blockchain incentive compatible? Most people would say it is, and I assumed it was. However, to my surprise recent work hints that
blockchain mechanism is not fully incentive compatible
There may be dishonest strategies that allow minority pools to increase their mining revenues by deviating from the honest protocol.
It's the value of ฿ that makes it work
Cryptocurrency based mechanisms have an enormous chicken-egg problem:
- the scheme works because honest miners are compensated in coins
- but unless the coin has real-world value, the incentive doesn't work
- before the incentive system works, it's hard to attach any real value to coins
This dynamic is very similar to the network effects that investors love in startups, see e.g. Ryan Sarver's post. But then the same rules that apply to businesses must apply to cryptocurrencies. In particular,
network effects make it very hard for new players to enter, and naturally drive the market towards monopoly.
So this raises the question whether there is any room left for publicly traded cryptocurrencies other than Bitcoin. This in itself is a complex question that warrants further exploration.
Currently each CPU core running the bitcoin minig algorithm carries out useless calculation that is deliberately hard, just to prove that they are doing work. It's a bit like sitting in your office 9-5, but just checking your facebook all day without doing anything useful for your employer. Your proof of work is "I was sitting in front of my screen all day, therefore I should get paid". So currently tons of computers are running in parallel and working hard only to prove they are working hard. The resutls of the calculation are worthless outside the world of bitcoin.
I think one really interesting avenue of innovation is whether one can replace the currently useless proof of work calculations with something that is actually meaningful and carries value for someone outside the world of the currency. Could you use the pool of CPU that's currently faking work to solve travelling salesman problems for logistics companies? Or to break encrypted messages? Or to run massive quantum physics simulations? These are all of similar complexity to the current hash-based proof of work algorithm, but someone actually might care about the result. The challenge here is that it's hard to control the hardness of the problem, and to make sure everybody is working on problems or subproblems that are equally hard.
The purpose of this post was not to question the importance of blockchain or cryptocurrencies, rather to explore where its boundaries and limitations are as a technology. I think one really needs to understand the underlying concepts to tell apart meaningful applications from hypothetical ones where blockchain is not the answer. My takeaways:
People like to say blockchain is a technology that is independent of bitcoin, but the fact is that the liquid market for bitcoin is a large factor that keeps that blockchain growing. You can't have one without the other.
Blockchain is part of a larger body of research. There are other algorithms that solve specific problems like P2P shared storage directly, blockchain may not be the best way to implement these.
In a number of fields are said to be transformed by blockchain, the barrier to innovation isn't technology. Take for example voting systems: we have known for a while our democrating voting mechanisms are imperfect, susceptible to insincere tactical voting. Yet, when the UK tried to implement a technically superior voting system the nation decided against it.