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.
Here goes:
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.
Preach, brother! I’ve been telling people that cryptocurrency is a scam for years now exactly for the same reasons you outlined… Although, not as publicly as you just did 😀
Here are my disagreements:
“Blockchain is a solution looking for a problem”…what blockchain solves is “trust”. If a business has some process where they want to, either publicly or with defined business partners, share data in a manner where I can GUARANTEE it can’t be altered…that can’t be done with a database. The theory being each partner can maintain a copy of the chain, and it is immutable. Blockchain is NOT a database. It has no query language. So most orgs solving the trust problem will copy the chain’s transactions into a database. So, you kinda need both. There are lots of business problems that require “trust”. Here’s one: https://www.supplychaindive.com/news/blockchain-test-food-trust-nestle-gerber-baby-food/529390/. It’s possible ledger tables could replace blockchain to solve the “trust” problem…but they are functionally very similar so you’d be saying “ledger tables are a solution looking for a problem” then.
“irresponsibly environmentally unfriendly technology”…possibly. You assume that all blockchains are Proof of Work like bitcoin or ethereum formerly was (it is moving to Proof of Stake). The overwhelming majority of blockchain-based apps do NOT run on ethereum, they are Proof of Stake or something similar. PoS just means that there is no nonce that is constantly being generated by hot GPU-based mining rigs. So, in a PoS (and there are other, similar, permissioned blockchain schemes)…the environmental impact scales with the usage of the system…just like any other compute system…even SQL Server. No company uses ethereum due to the high gas fees, but…even a permissioned blockchain (for writes) can be exposed publicly to establish the “trust”.
“Yes, I said it’s centralized. ” I’m sorry but this is just inaccurate. If it was centralized, as you claim, then a single “master” node going down would bring down the whole system. But that has never happened. When new transactions/blocks are created they are published to the local node…eventually the local nodes have to resolve concurrency conflicts when the network gets huge (CAP theorem stuff). there is a mechanism to do this built in. Kinda like p2p repl…admittedly it scales horribly.
“adopting an untested…”: be careful. Blockchain apps are the most tested apps in existence. Why? Because once a chain is deployed, or even just a smart contract, it CANNOT be changed. It’s immutable right? So that means if you do inject a bug you look bad and destroy “trust”, and you’re possibly losing a lot of money. Lots of stories on the web where ppl lost millions of ether.
“The only reason cryptocurrencies like Bitcoin have any value is because people think it has value.” And how is that any different from the US Dollar? Or even gold? Wampum? Diamonds?
Oh friend. I can’t say I disagree with all of this, but blockchain networks certainly have their place.
It simply isn’t the answer to everything or even many things, but for decentralized applications it works well.
In addition, the crypto ecosystem has and is creating real wealth and opportunity for millions of people. It is also shining a light on very broken financial systems that we seem to just accept as broken, because that’s what we’ve always had.
Are block chains the world’s most inefficient databases? Sure.
Are there applications where they make sense and *are* needed. There are over $2T in the crypto and DeFi ecosystems right now that answer that question with a resounding… YES!
Comments are closed.