Title text: 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.
| This explanation may be incomplete or incorrect: Created by a Blockchain. Too wordy? Do NOT delete this tag too soon.|
If you can address this issue, please edit the page! Thanks.
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 ledger" or "public 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 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. This so-called "51% attack" has been performed against smaller cryptocurrencies, although not against the major cryptocurrencies such as Bitcoin and Ethereum.
Unfortunately, this proof of work algorithm requires that lots of specialized computer hardware needs to spend lots of time and energy computing hash functions, resulting in the Bitcoin network using approximately a million times more energy per transaction than Visa's network. 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 42) 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, must be auditable, and where lots of people need to write to it but none of them can be trusted to have control 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. 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 is 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.
- [A flowchart is shown. A rectangular block at the top has one line down to a diamond shaped block. From there lines go right and down from two of the edges. The line to the right immediately takes a turn and goes down to a rectangular block. From this block a line goes to the block to the left, which is also the one that the down line from the diamond points to, so both routes ends here. There are text in each of the four blocks and labels above the lines for the two options going out from the diamond.]
- [Start block:]
- Should your project use a blockchain?
- Are you making the decision using a flowchart you just found?
- [Right block:]
- You definitely are
- [From right block of if reply was:]
- [Result block:]
add a comment! ⋅ add a topic (use sparingly)! ⋅ refresh comments!