Crypt...Oh! When a blockchain is actually useful
Blockchains are incredible and its designers geniuses, but let's separate the wheat from the chaff on the subject. Let's discuss when they're required and when they're a liability for your company.
Bitcoin is soaring again which means crypto startups are gaining renewed momentum. Let’s take a moment to highlight the legitimate utility behind crypto products and provide a framework for determining if your business truly needs a blockchain to succeed, of if it’s purely for marketing. Consider this a palate-cleanser between hype cycles.
First, when does building a product on the blockchain make sense? A few years ago I stumbled upon a comment on reddit by the user pihkal that has stuck with me. They said blockchains excel when two very narrow criteria are met:
The system must be decentralized.
Participants are adversarial.
I consider this comment very profound. If one but not both criteria are met, you might have fun building your product on a blockchain, but it is not and never will be required.
Let’s consider the case where something must be decentralized. Bittorrent is decentralized by design. If you want to download something and 100 other people already have it, why not download it directly from them? This kind of decentralized sharing works very well, and it’s become the most popular way to pirate content on the internet. Should we build a Bittorrent v2 using a blockchain? Well, let’s check the other requirement: are its participants adversarial? The answer is, no. Sure, maybe someone writes an implementation that tries to send bad chunks of data to its peers in the network, wouldn’t that be considered adversarial? Again, no, because every torrent includes an expected signature of the files being downloaded. Tamper detection is built into the Bittorrent protocol. When the signature doesn’t match the contents of a file, you can ban that one bad peer, and try again. You have all you need to ensure you’re receiving the correct data from peers in the network.
What is an example of a system with adversarial participants? Let’s consider payments. You’re selling handmade leather bags for $500 a piece. Someone approaches your table and quickly buys one. They send you the money through Venmo, and rush off. Maybe that was the easiest sale of your life, or maybe something was a little off. Either way, you don’t have to worry about it because we trust Venmo to protect us from fraudsters. That trust is earned by consistently doing the right over time. Should a bank fail, we trust the government to compensate us for those lost funds so long as it was FDIC insured; and as we’ve seen recently, they do a good job covering the non-insured funds too. Almost every transaction in the world operates on a centralized trust-based system like this, and it all works just fine.
So if payments do not require decentralization, why does Bitcoin meet the criteria? Bitcoin is not just a system for processing payments. The Bitcoin white paper clearly states its goal is to “allow online payments to be sent directly from one party to another without going through a financial institution.” Online payments without a bank’s protection: a payment system for situations when you cannot trust the centralized system. Bitcoin meets the requirements because, by definition, it cannot use a centralized financial institution for assistance—this means it must be decentralized—and, of course, payments are riddled with adversarial participants.
How does the use of a blockchain solve these problems? Bitcoin uses a public blockchain as its ledger. This means everyone can know from the genesis (first) block until present time, how much money any participant has. Imagine if the person who bought your handbag showed you a live-look at their bank account which shows a balance of $500. How do you know they haven’t already spent it? All that tells you is they had the money at some point very recently. Bitcoin knows a blockchain alone is not enough to achieve its decentralized payments goal, which is why they incorporated something in addition to a blockchain: hard work and time. Decentralized voting only requires consensus. To prevent one person from voting 5 million times and defrauding the network, Bitcoin requires each voter to find a solution to a hard math problem. This means your voting power increases with each computer you dedicate to finding a solution; however, since computers are relatively expensive, one person outvoting others is extremely difficult—practically impossible. These voters are called miners, and when one of them finds a solution, they share their results. If validated, other miners include it in their local copy of the ledger and the process starts anew. So, if someone pays you in Bitcoin, does that mean the transaction is settled after the block is mined? No, but almost. It’s possible for two miners to find a valid solutions (blocks) around the same time, which creates a temporary fork. That’s why Bitcoin requires miners to follow the longest chain. After 6 or so blocks, it becomes extremely improbable that a longer chain will emerge, so if the funds are still showing as paid after an hour, you are safe to consider the transaction complete.
I seriously doubt your customer at the farmers’ market would spend an hour at your table just to wait for the Bitcoin transaction to finalize, especially when Venmo is way easier and instantaneous. But, if you’re the Silk Road creating a marketplace for illicit items on the dark web, an hour probably doesn’t sound that bad. Or, maybe you need to support your family living in a foreign country whose banking system has been cut off from the country you reside in. When the doors to every financial institution have been closed to you, who can you trust? Bitcoin might be the only remaining option. It might very well be a godsend. There is a real need for online payments without using a financial institution, but that market is not a very big one.
Look, building a business on top of a new type database sounds really fun. The game theory component of their networks is also interesting to learn about. The architects of this stuff are true geniuses. But, if you’re building a business to make money, and you don’t require a blockchain, you are going to lose. Someone will build a centralized version faster than you, or a more agile decentralized version than your own. Plus, any crypto product that could instead be made using centralized tech probably already exists, is 1,000x more popular, and is 100x easier to use. Your crypto version cannot compete.
Nobody in their right mind would build their own SQL database for years before building a prototype of their actual product. Build only what you need to ship as fast as possible. Even if you read the tea leaves perfectly and have a multi-year head start on the next hot idea, remember, you won’t own your network and your customers may change the rules on you if they feel threatened. So, please don’t focus on the blockchain, focus on the things that make your beer taste better.
As Justin Timberlake’s character in the Social Network would have probably said:
Building the best crypto product? Drop the "crypto." Just "product." It's cleaner.
✌️
P.S. I have a few other blog posts planned on this topic. Let me know what questions you have, if any. Thanks for reading!