xkcd.WTF!?

Image loading failed. try again

Blockchain

Blockchains are like grappling hooks, in that it's extremely cool when you encounter a problem for which they're the right solution, but it happens way too rarely in real life.

Explanation

This comic is a flowchart intended to help project leaders decide if their project needs a blockchain.

A blockchain is a data storage structure shared between various computers. Each block is digitally signed and includes the digital signature of the block before it, which makes it highly resilient against tampering. However, what sets blockchains in the context of cryptocurrencies such as Bitcoin apart from e.g. Merkle trees used in programs such as Git is that anyone can write to a blockchain. This is sometimes specified as a "public" or "permissionless" ledger or blockchain. In order to prevent the blockchain from being vandalized, various mechanisms are used to determine consensus about which additions to the blockchain are legitimate. Bitcoin and most cryptocurrencies use a "proof of work" system, where writing a block includes some task which is computationally difficult to perform but simple to verify, such as finding a magic number (called a "cryptographic nonce") that, when appended to the block, makes its hash value start with lots of zeroes. This results in a system which is, in ideal circumstances, extremely difficult to vandalize, as the attacker must find new nonce values for the block he wishes to modify and every succeeding block, and then broadcast the modified blockchain from enough nodes to convince the rest of the network to go along with it instead of the legitimate one.

In practice, in order to actually make this so-called "51% attack" unfeasible, the network needs to have as many legitimate actors using as much computing power as possible. This results in the Bitcoin network using approximately a million times more energy per transaction than Visa's network, while smaller cryptocurrencies have actually experienced 51% attacks and double-spending. For almost any practical project, there is no need to allow everyone in the world to have write access to a database, so it is generally quite acceptable to use a straightforward centrally-controlled permissioning system rather than proof-of-work or other decentralization schemes to restrict write access. This is why all branches of the flowchart lead to the answer "No".

Part of the joke is that the only question asked in the flowchart, "Are you making the decision using a flowchart you found?" has nothing to do with blockchains or any details of the project itself, and can only honestly be answered 'yes' (which is why the 'no' branch leads to a block reading "You definitely are" before leading to the final "No" answer). For a flowchart with a little more technical content, you can see Figure 6 (page number 42, page 53 of the PDF) of the Blockchain Technology Overview published by NIST. In particular, they conclude that blockchain is only potentially useful if you need a data store that must never be erased (not even for the sake of e.g. removing illegal or harmful content, which has been written into blockchains in the past), must be auditable, and where lots of people need to write to it (more than can feasibly be enumerated or controlled in any way) but none of them can be trusted to have administrative authority over it.

Presumably, if a project were in the rare category of truly needing a blockchain, that decision would be made by a technical expert who is not consulting this flowchart. This flowchart is probably intended as a "resource" for clueless project managers who have latched on to "blockchain" as a buzzword, such as the investors who tripled the stock price of Long Island Iced Tea after it changed its name to "Long Blockchain Corp." and professed a pivot into the blockchain space. As stated above, one of those real-world problems which is "solved" by blockchains is the libertarian ideal of creating a system which allows anyone to perform transactions while (hopefully) preventing anyone from double-spending their coins, much as physical cash does, but without relying on trusted third parties such as government regulators, banks, or mints. Even in that case, however, cryptocurrency exchanges are running into challenges with anti-money-laundering and know-your-customer regulations, which (among other things) ban certain actors from being served by banks, so they are having to use ordinary certificates, passwords, and identification documents, which are definitely not implemented via a blockchain.

In the title text block chains are compared to grappling hooks. These hooks are devices with several claws (hooks) attached to the end of a rope. A grappling hook is one of Link's weapons from the The Legend of Zelda series. Additionally, Luke Skywalker used a grappling hook to swing with Princess Leia across a chasm in the first Star Wars film, A New Hope.

Like Blockchains, grappling hooks are thus seen as a cool tool when they encounter a problem for which they are the right solution, like boarding an enemy ship... However, just like for blockchains, in real life there are very few cases where these hooks are the best solution for a given problem. As an example of a problem that is not well-solved by a grappling hook, see 2128: New Robot where an electrically-charged "search and rescue" robot has been equipped with such a hook.

Blockchain was previously mentioned in 2030: Voting Software, with Megan and Cueball expressing distrust in its use for electronic voting.

Flowcharts are a recurring theme in xkcd. If you are unfamiliar with them see 518: Flow Charts. Similar simple flowcharts like this comic, where there is only one reply has been used before like 1723: Meteorite Identification and 2026: Heat Index. See also the similar 1691: Optimization, where the flowchart, as it does here, asks if you are using flowcharts.