2267: Blockchain

Explain xkcd: It's 'cause you're dumb.
Jump to: navigation, search
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.
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 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 (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.


[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:]

comment.png add a comment! ⋅ comment.png add a topic (use sparingly)! ⋅ Icons-mini-action refresh blue.gif refresh comments!


I wonder if this is inspired by Jimmy Wales mocking the idea that Wikipedia should use blockchain on Twitter the other day: [1] 22:56, 12 February 2020 (UTC)

It might also be related to a 2018 paper by the NIST which included a flowchart to explain why you didn't need a blockchain [2] (Flowchart on page 42) 00:42, 13 February 2020 (UTC)
Wikipedia really has no need to secure data changes, that's the definition of a wiki. Is there ANY benefit AT ALL to changing that? 01:00, 13 February 2020 (UTC)
No, but according to blockchain enthusiasts, they have some sort of legal obligation to (in order to prevent piracy or illegal porn distribution, apparently). This is as ridiculous as it sounds. Probably not Douglas Hofstadter (talk) 01:23, 13 February 2020 (UTC)
Never mind that at least one blockchain has images of child abuse written into it... --NotaBene (talk) 02:06, 13 February 2020 (UTC)
Immutable signed history of every furtive access of illicit resources, coming soon to an interface near you! Who wouldn't want a global record of their porn, drug, & unlicensed content usage, written permanently for all to see?  ;S
ProphetZarquon (talk) 08:07, 13 February 2020 (UTC)
A similar flowchart is the first one in https://medium.com/@sbmeunier/when-do-you-need-blockchain-decision-models-a5c40e7c9ba1 -- 08:13, 13 February 2020 (UTC)

When I first saw this explanation I though "WTF, wall of text. TL;DR". Then I saw the comment of why it's still considered incomplete. And then I actually read the whole thing. And "unfortunately" I think all this is needed to explain the comic to someone who doesn't know what blockhains are, why they can be problematic and why they are not THE default solution to implement. So I'd vote for removing the incomplete tag. Elektrizikekswerk (talk) 09:13, 13 February 2020 (UTC)

So, as with the (current) bit of explanation of "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", there I was thinking that this would be exactly what you need for the democratic process of voting. (Despite this!) ;) 19:16, 13 February 2020 (UTC)

Maybe I should adjust that to read "administrative control" or something like that, because while it is true that lots of people need to cast ballots, there are still limitations on who is allowed to vote in any given election, so you need to bring in proofs of identity and residency, which the blockchain is poorly suited to handle. Why should everyone in the world have a say on e.g. a list of who is resident in my state? And if you're going to say that only some people have permission to modify that list, it doesn't need to be a blockchain.
You'll also still need to trust the companies making and operating the application, who haven't exactly had a great showing for themselves when it comes to handling governance of large organizations. --NotaBene (talk) 21:34, 13 February 2020 (UTC)
In most countries, there is additional specific requirement for voting: while only specific list of people are allowed to vote, it shouldn't be possible to verify how specific person voted. I think that blockchain won't exactly make this simpler. -- Hkmaly (talk) 01:09, 14 February 2020 (UTC) The real flow chart goes like this: Should I use block chain?-> Users of app cant be sure they can trust developer not to build a network that said developer could exploit for fraud and must therefore distribute the server between all users to be sure no one modifies the data, thus ensuring all transactions can be validated by anyone -> Yes: Otherwise NO!!!