Imagine you’re a general, camped outside a fortified city with your army. Your army isn’t strong enough to take the city without help. But you do have help: camped on other hills outside this city are a half dozen more generals, with their armies ready to attack. Attacking one army at a time will fail; taking this city will require at least three or four armies, and an uncoordinated attack will leave thousands dead outside the city gates. How do you coordinate an attack with the other generals? Now, how do you coordinate your attack if one of those other generals is Benedict Arnold? What happens when one of the generals is working with the enemy?
This situation is a slight rephrasing of the Byzantine Generals Problem, first presented in the ACM Transactions on Programming Languages and Systems in 1982. It’s related to the Two Generals Problem formulated a decade prior. These are the analogies we use when we talk about trust over a communications channel, how hard it is to transmit knowledge, and how to form a consensus around imperfect facts.
This problem was upended in late 2008 when Satoshi Nakamoto, a person or group of people, published a white paper on the ‘block chain’. This was the solution to double-spending in digital currency. Think of it as having a digital thing that only one person could own. As a test of this block chain technology, Bitcoin was launched at the beginning of 2009. Things got more annoying from there.
Now, blockchain is at the top of the hype cycle. Every industry is looking at blockchain tech to figure out how it will work for them. Kodak launched their own blockchain, there are proposals to use the blockchain in drones and 3D printers. Medical records could be stored on the blockchain, HIPAA be damned, and there’s a blockchain phone, for reasons. This doesn’t even cover the massive amount of speculation in Bitcoin itself; thousands of other cryptocurrencies have also sprung up, and people are losing money.
The blockchain is a confusing thing, with hashes and Merkle trees and timestamps. Everyone is left asking themselves, what does the blockchain actually do? Is there an independent body out there that will tell me what the blockchain is good for, and when I should use it? You’re in luck: NIST, the National Institute of Standards and Technology released their report on blockchain technology (PDF). Is blockchain magic? No, no it is not, and it probably shouldn’t be used for anything other than a currency.
For more than a decade, I have been a huge proponent of blockchain tech. I invented Bitcoin and recently I brought the blockchain to IoT devices for an augmented reality gaming experience. Snark aside, blockchain tech is important because it solves a problem, and one that is at the core of trust and verifiability in computing platforms.
However, the NIST report on blockchain tech is overbearingly accurate. There is little reason to use blockchain as a solution. It is, in fact, a solution looking for a problem. But to understand why the blockchain is a silver bullet in search of a werewolf, you first have to understand what a blockchain actually is.
The NIST report describes blockchains as such:
Blockchains are a distributed ledger comprised of blocks. Each block is comprised of a block
header containing metadata about the block, and block data containing a set of transactions and
other related data. Every block header (except for the very first block of the blockchain) contains
a cryptographic link to the previous block’s header. Each transaction involves one or more
blockchain network users and a recording of what happened, and it is digitally signed by the user
who submitted the transaction.
That’s a lot of verbiage. Here’s a definition that I think is better:
A blockchain is a linked list where each item in the list contains data and a hash of the previous item in the list. Appending to the list requires agreement by the majority of users.
That’s a fairly simple explanation. It doesn’t have anything to do with ‘ledgers’, a bonus because I have no idea what accountants actually do. It defines the blockchain using existing computer science paradigms. Its brevity belies its accuracy; it’s very hard to actually fault this simple definition for being inaccurate.
Besides defining what a blockchain actually is, what are the applications for a blockchain, and what does NIST think about them?
Instead of telling you why you don’t need a blockchain, the NIST white paper has a helpful guide on what makes a good use-case for a blockchain. If you have many, distributed users, a blockchain might be a good idea. If there a desire for a lack of a trusted third party, blockchains could work. If there is a need for a decentralized naming server, or a need for a cryptographically secure system of ownership, a blockchain might work. But there are caveats.
Take, for example, any one of the number of startups that want to reduce the cost of mailing or faxing medical records between doctors. They’re using a blockchain. This is a dumb idea, because medical records are covered under HIPAA and need to be kept private. Harry the HIPAA Hippo will be enraged when he finds his medical records available to everyone with access to this blockchain.
Another example. Let’s say you’re an electronics manufacturer, and you want to catalog the serial numbers of all your sub-assemblies and finished products. This is an admirable goal; more data means better process engineering. If you find a lot of warranty claims on products that have a subassembly manufactured after April 14th, you might want to figure out what changes were made to the production line on that day. But do you need a blockchain? Probably not. Databases exist, and there’s really no reason for anyone else to have access to that data.
But the future of the blockchain isn’t entirely bleak. There’s one use case where it excels — proving ownership of digital goods, like cryptocurrency, or Bitcoin, or Dogecoin. This can even be extended to proving ownership of digital lands or items; think of it as an unhackable City Hall in Second Life. This was the original intention behind the blockchain, but the hype has grown to unreasonable proportions. It can’t be applied to everything, and doing so is a waste of resources. For all those asking, ‘what can a blockchain do for me’, the answer is just cryptocurrency, with few exceptions. For everything else, just set up a database.