After writing several posts about a neat feature in Azure SQL called system-versioned ledger tables, it reminded me about something I’ve wanted to say for a number of years now, outside of snarky tweets.
You don’t need a blockchain.
In the vast majority of use cases, you need a properly audited relational database system with ACID compliance and a good recovery strategy.
Aside: in my opinion cryptographic currencies are a scam, and whatever wealth you think you’re creating is costing you more in terms of energy, time, hardware and software. As with all pyramid schemes, the people who are going to get wealthy from it are already wealthy. Your currency is only worth what someone will trade real money for it, and while you’re busy burning up the planet to satisfy your own greed for fractions of an unsecured financial instrument, no good is going to come from it.
The term “blockchain” made its way into our collective consciousness via a so-called cryptocurrency called Bitcoin. With a bit of marketing and a bit of mystery, it made “blockchain” a hot new technology that needed to be applied everywhere.
Except it didn’t. There are very few times when your blockchain idea cannot be solved by a regular relational database. I know SQL is older than I am, and it isn’t cool to put it on your résumé anymore, but if all you’re trying to do is record an entry somewhere then please just use a regular table in a regular database, implement a decent auditing layer around it, secure your backups, and test data recovery regularly. There are millions of experts worldwide who know how to do this already as part of their regular day jobs, and we call them database administrators.
“But Randolph,” I hear the sly crypto kids cry, “you’re a database administrator so obviously you’re selling something.” To those imaginary tweeps I say “Pshaw!” Blockchain is a solution looking for a problem. I’d be far more wary of adopting an untested and irresponsibly environmentally unfriendly technology than putting down a small free MySQL, PostgreSQL, or SQL Server Express database to test out a proof of concept.
Even if it is truly the case that your design requires an offsite chain of cryptographically-generated hashes (like ledger tables for example), it’s nowhere near as intensive as a centralized blockchain burning the planet. Yes, I said it’s centralized. That’s kind of the whole reason it works. At least with ledger tables it’s decentralized. You get your own hash chain per database.
Here are some things blockchain is not good at:
- Voting. Well, this one is easy. Voting is meant to be anonymous, and if blockchains are completely transparent then there’s no anonymity. The only correct way to vote is to give someone a piece of paper and a pencil and a private area to make their secret vote, check off their name against a voters’ roll, and put their vote into a sealed box to be counted later. You can count the votes by machine, but always make sure you have the original paper copy for auditing purposes.
- NFTs. Non-fungible tokens are the biggest scam of this decade. You are paying the owner of a private database the privilege to own an entry in that database with no guarantee that the database will exist tomorrow, as an unsecured financial instrument. If you want to own art, pay an artist to make you something. It’s called a “commission.” In the old days before digital art, you were guaranteed of getting only one version of the artwork, unless we’re talking Picasso or Renoir or any of the other masters who kept painting the same thing over and over again slightly differently. If you want to be guaranteed that the artwork you’re paying for is unique, ask a lawyer to draw up a contract with the artist and commission them for the unique work.
- Cryptocurrency. The only reason cryptocurrencies like Bitcoin have any value is because people think it has value. There is nothing intrinsic about it. This is the tulip craze all over again, except you don’t even get the tulip bulbs, just an entry in someone else’s database that has no guarantees. There’s a reason our banking systems are globally regulated.
I anticipate that given the tone of this post I’ll draw a lot of attention in the comments. Rest assured that I will read and may share every single one but be warned that I may respond with some snark.
The image is a QR code linking back to this page.