Blockchains Are Not Databases

Published: 2022-01-09
Tagged: essay web3

There's an argument popular among web3 skeptics that goes something like this: "Couldn't you do X using a plain old database?" Where X can be anything from counting votes to tracking NFT ownership.

It seems like a solid point until you notice the assumption at its core: that blockchains and databases are pretty much the same and so an apples-to-apples comparison is appropriate. But this assumption is wrong--these two technologies are nothing alike and can only substitute for each other rather awkwardly.

Whenever this argument is used, and it's used often, it leads to unproductive discussions that focus on the wrong things (eg. raw processing power) and reach correct-but-irrelevant conclusions like databases are really good at... database problems!. In other words, it's a mimetic trap that obscures the question all of us are interested in, which is some form of "What are blockchains good for?"

Now, to get out of this trap, we must understand that blockchains and databases are fundamentally different, which becomes clear when you consider how these tools are used in the real world.

Databases are deployed as instances or clusters. They are usually cared for by a group of specialists--developers, or, if you're lucky, database admins--who are responsible for everything from hardware to access control. Because of this, databases are nested deep inside organizations, and access to them is mediate through GUIs and APIs. (Have you ever encountered a database open to the Internet?)

Take this usage pattern, copy it a million times, and you get the world we know: an archipelago of closely guarded datastores, interconnected through APIs and spreadsheet-laden emails.

This world works alright. Cat photos and online orders get where they should and our lives are mostly better for it. But most data is inaccessible, especially the bits we produce about ourselves as we move through the digital world. Not only is it hard to extract, it's also hard to use in a meaningful way because the archipelago is not an easy place unless you're a business with a team of developers at your disposal.

Blockchains are something else. First, they provide a globally readable append-only log. There's no way to hide information on a chain short of encrypting it first. Second, they provide a globally writeable append-only log. This means no admins, no permissions that determine who can or cannot store information. There are limits, however, like the gas fee on Ethereum, which serve to prevent trolls/freeriders from flooding the system with spam. Finally, they are consistent and immutable, so what you see on the chain is what everyone else in the world sees too.

What all this gives us is something like a global consensus algorithm--think Raft or Paxos--with byzantine fault tolerance. And it's just sitting there, waiting for anyone to use it for whatever problems they can come up with.

And sure, you could sort of make it work like a database. But you could also make a database out of DNS or flat files or even a stack of index cards. Of course, none of them would be a match for a real database, yet they remain excellent tools for other problem domains.

Anyway, the point is that we've never had anything like blockchains before. There's a lot of uncertainty about what they're good for. There are, however, two things we can be certain of. First, blockchains and databases are not interchangeable. We can stop having this argument and move onto more productive discussions.

Second, and more importantly, blockchains offer us completely new usage patterns that we're just beginning to figure out. When we do, I bet they will transform the digital world at least as much as browsers did in the 90's.

And for the record, I don't doubt the datastore archipelago will continue to exist. It just won't be the only paradigm in town.


There aren't any comments here.

Add new comment