Blockchain: A Lesson in Obfuscation
By Jim Waldo, Gordon McKay Professor of the Practice of Computer Science
One can hardly throw a brick in Silicon Valley these days without hitting the CEO of a new blockchain startup. Whether it be cyber security, supply chain management, voting, or most anything else, it doesn’t matter what the question is. The answer is blockchain.
As the characters in The Hitchhiker’s Guide to the Galaxy discovered, knowing the ultimate answer isn’t much good without knowing the question. But there is no question associated with blockchain. Instead, the enthusiasm and hype around a hopelessly flawed technology leads us to another Theranos moment, when hope, enthusiasm, and vision bring us to the point of committing fraud on the non-technical public. We should know better.
Let me be clear that I’m not talking about some of the individual ideas behind blockchain. Having a public ledger that can’t be changed by using cryptographic hashing functions may be useful; it has been well known (under the name of a Merkel chain) for a considerable period of time.
Having a new consensus algorithm based on hashing to a value with a certain number of leading zeros is an interesting way of introducing randomness into the consensus, even if it makes the algorithm exceptionally inefficient and unnecessarily complex. Incentivizing people with a form of digital currency is something that has been around for decades. But putting these together with obfuscating labels like mining and odd claims like a system in which no one is trusted only adds mystery and hype. The result is a system that doesn’t scale, isn’t needed, and has as its main use cases activities that are illegal. All the excitement doesn’t make sense.
For those who want to dig in; I’ve made my technical objections in A Hitchhiker’s Guide to the Blockchain Universe, https://queue.acm.org/detail.cfm?id=3305265. In summary: the essence of the Blockchain mystique is one of least sensible consensus algorithms of the distributed computing world. It is inherently non-scalable (that’s what makes it random, which gives it its’ “trust-less” nature). It is wasteful. And it poses as the only alternative to a centralized system, which is simply wrong— there is a long history of distributed consensus algorithms that are widely used and form the basis for building de-centralized systems.
Proponents claim that you don’t need to trust anyone with blockchain. But using simple Merkel chains (where someone hashes the ledger and publishes that hash, which becomes the first entry in the next ledger) gives a result that can be easily verified by anyone who depends on the ledger. You may have to trust, but you can also verify.
In addition, proponents will also insist that you don’t need to trust those who are writing the code around blockchain; a community whose coding fiascos have been well publicized. As Tony Hoare, Turing award winner and inventor of quicksort, famously stated, “There are two ways of constructing a software design: one way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies”. Blockchain is a case of the latter; we have better alternatives that are the first.
It is time to admit that blockchain is a passing fad. Let’s have our private blockchains, but let’s call them what they are— Merkel chains. Let’s have unchangeable public ledgers, but let’s not waste the energy it takes to power a small country to have them, especially when they are available cheaply. And let’s stop this foolish talk of trust-free computing; Ken Thompson, co-inventor of Unix and the C programming language, showed us long ago that there is always trust somewhere.
There are plenty of real problems that need to be solved. Let’s not, as a technical community, score an own-goal. Let’s stop the madness and get back to doing something that is useful. Especially in the area of voting, there are lots of problems that we could help to solve that would actually help preserve our democracy and safeguard it from all kinds of interference, both foreign and domestic. Blockchain only adds a buzzword and contributes nothing to the solution. Let’s do real work that will give real help.