Every explanation for blockchain includes some magic hand waving to dismiss away how the chain supposedly cannot be tampered with, and whatever 'proof-of-work' is. I want to explain blockchain, by making an analog version of a blockchain that does not use computers.
To do this, we will use simple common household items:
- a video recorder
- a recording medium (memory, vhs, 35mm or whatever)
- video player (a TV screen that can play a short video)
- a whiteboard
- a bunch of coins clearly marked heads and tails
For the purpose of this analog blockchain, we will need to make only one absurd claim: While the recording medium does allow the video to be spliced and overwritten, we do not have the technology to edit a section of the picture. Of course with today's technology, I can easily edit-in and edit-out objects from a video footage. For the sake of our analog blockchain, we are going to have to assume we live in simpler times when such video editing video technology did not exist yet. Our technology allows us to play, record, and record over parts of the video.
Our blockchain resides in a video that is recorded. Every time you add more blocks to the chain, you record a few more seconds of video.
Blockchain of course involves writing a 'block' into the 'chain'. The block says things like "Alice gave $10 to Bob". To do this in our example, we simply write this message on the whiteboard. The few seconds of video that comprises a 'block' in our chain will prominently feature the whiteboard with the message clearly written on it. Simple as that, we have a block with a message. We can record many blocks by changing the message on the whiteboard and recording a few more seconds of video. But this is not a chain yet.
Blockchain also has a piece that refers to the previous block in the chain to ensure that the blocks are not out of order and that there are no missing or extraneous blocks. We will ensure this by making sure that the previous block (the few seconds of video recording) are played back during the current block. So next to the whiteboard that has the message for this block, there is also a video player: it will be playing the video from the previous block so you can see what the previous block was by looking at this block alone.
So each block is a few seconds of video showing a whiteboard with a message on it. Alongside that whiteboard is a tv screen showing the video recording of the previous block which has its own whiteboard with the message from the previous block as well as its own tv screen showing the previous block. We now have created a block chain!
The beginning block of the blockchain of course doesn't have a video feed to put next to the whiteboard, so the 'genesis' block is the only block that has a whiteboard, but no video of the previous block. Confirming validity of our blockchain: You can play the entire video in sequence and you will see whiteboard in one block; and the next block will have a new whiteboard and the previous-block's whiteboard will be visible in the 'previous block tv screen'. Keep in mind, the screen in the block that shows the previous block will have tinier version of the whiteboard from the previous-previous block, and an even tinier version of the previous-previous-previous block's whiteboard. This is the foundation of blockchain. If you try to overwrite part of the video with your own block that has its own whiteboard message, you will also have to overwrite all subsequent blocks.
Recording a whiteboard and a TV screen isn't hard. Up to this point, making the blocks is just a whiteboard and a TV screen. Overwriting all subsequent blocks after you make an alteration is tedious, but not particularly difficult. It takes only three seconds to record a block. A hundred new valid blocks can be recorded in just five minutes.
We have to make it artificially difficult for someone to create a valid block. So perhaps in addition to whiteboard and tv-screen, every single block will also feature the author of the block reciting the complete works of William Shakespeare. That would mean each block takes several days to prepare for one person, but it's also hard to verify because the verifier would also have to sit there and watch the block author perform a day's worth of reading to ensure it's a valid block. Validating our analog blockchain would take as much time as it took to create it; that is bad. The blocks need to be hard to create, but very easy to verify. We need some kind of infernal waste of time busy-work that is very easy to validate. This is where the coins come in!
In addition to the whiteboard and the tv screen, each block will be required to also prominently feature the block's author throwing a bunch of coins onto the floor and having all the coins land heads facing up. Let's suppose requirement is to throw ten coins onto the floor during the block recording. The odds of the coins all landing heads is very small and if the coins didn't all land heads up, author has to rewind the recorder and attempt to re-record the block again, until the coins all land heads up. It will take dozens of man-hours to create a valid block, but it takes only about 3 seconds to watch a video of coins all landing heads up. Now, we can watch the sequence of videos that are valid blocks, and see block after block of:
- whiteboard with message to the block
- tv-screen showing previous block's video
- and the block owners each throwing coins on the floor to have all the coins land heads up.
In a matter of seconds we can verify the authenticity of something that took thousands of work-hours to produce.
The next part is the distributed nature of a blockchain. This is easy... everybody, just copy the video! As you copy, you can also easily validate everything by watching the video to make sure you have a valid copy.
The blockchain miners are just people equipped with a whiteboard, a tv screen, a recorder, and a bunch of coins, and the short video of the latest block that was added to the chain. When a new whiteboard message arrives, each of the miners start attempting to record a new valid block by writing the message on the whiteboard, playing the last block on the tv, and tossing coins while recording.
As the number of miners increase, we also increase the complexity of the busy-work: so instead of just ten coins, our block requires a setup with thirty coins. If a valid block is defined as a block with thirty coins all landing heads, it would take ten million miners about a hundred tries each to generate a valid block. The miner that succeeds in recording the block with all the coins landing heads up can then show the valid block to all his peers and the world: It's easy to validate:
- the whiteboard must be there
- the tv playing back the the previous block must be there
- the coins get thrown and all land heads up
The only thing that makes my analog blockchain unfeasible is that with today's technology we can use video editing software to replace parts of the video. For example with video editing software, we can edit the message on the whiteboard without changing anything else, then we can edit the TV screen in the next block to make it match the whiteboard change, and the tv in the subsequent blocks as well. This isn't too hard to do with good video editing software, but as I mentioned in the beginning, you have to assume video manipulating technology hasn't been invented yet.
Hopefully now the reader has a clear understanding of blockchain. Today's blockchain uses proof-of-work from computers, but this computer equivalent of busy-work is not more complicated than a coin toss. Bitcoin miners do equivalent of tossing several dozen coins and hoping they all land heads up, and then retry billions of times per second.