Blockchain and Bitcoin may prove to be amazing innovations that change our daily lives, but I doubt they will materially impact our lives as they are being promoted currently. Here’s why.
The common way to describe Blockchain is something like: it’s a database, only instead of being run by one central computer you have to trust, it’s run by many different computers around the world. Alternatively, it’s a distributed ledger. One linear set of events/transactions managed by a distributed set of computers.
These descriptions are true, but they’re also misleading in their oversimplification. It’s that oversimplification that leads some to think the Blockchain will solve all of our problems. Because … decentralized!
OK, but distributed databases are not new. We’ve known for a while how to replicate a database with a sprinkle of cryptography to distribute the trust. The Merkle tree, a key component of Blockchain that lets you verify consistency of a large dataset quickly, was invented in 1979. The Hash chain, another key component of Blockchain that lets you create a tamper-proof chronology of events, was invented in 1981 (it’s used in things like git). You can build a distributed ledger with Merkle trees and hash chains. We’ve been able to do this since the 80s. So … what’s new?
Blockchain isn’t just a distributed database, it’s a very specific kind of distributed database where
- the database maintainers aren’t authenticated: anyone can be a blockchain maintainer without revealing who they are or having any kind of privileged relationship with other maintainers.
- the set of maintainers changes over time. New maintainers come in, existing maintainers leave, without central planning or predictability. The maintainers of the Bitcoin blockchain 5 years ago are very different from the maintainers today.
In other words: anyone can become a maintainer of the Bitcoin blockchain at any time, without asking for permission, with nothing more than computing power. Just start up the software and join the club. This is pretty amazing stuff. It wasn’t obvious, before Blockchain, that it would be possible to design such a distributed database with an amorphous untrusted set of maintainers where you just need half good guys.
(There’s another really cool trick in Bitcoin, which is the incentive system for database maintainers: they get rewarded in Bitcoin for doing their database maintenance part, which makes the whole system self-sustaining. Super cool, but off topic for today.)
It’s important to realize that the true Bitcoin/Blockchain innovation is actually in this very specific trust setting of a dynamically changing set of database maintainers. If your use case doesn’t call for that, if you can designate the maintainers at the start of your protocol and have them authenticate to each other, then you don’t need the full Blockchain toolkit. You need only fairly standard cryptography and your use case was achievable 20 years ago.
The credit for this article goes to Ben Adida and you can read more on his blog.