We hear every day how blockchain will change our lives and how revolutionary it is, but few people try to explain it in a way a non-programmer or non-computer scientist could understand it. This post will try to explain the blockchain technology without even using a single technical term from the computer space.
I will pick two objects which we will need: a book and a group of people(more than one person). Our group consists of two types of users: readers and writers/authors/editors. The readers read our book, and the writers have voting power on what gets saved in our book. Let’s think of a book with blank pages, where everybody writes down the truth. This book has its rules. You are not allowed to lie or write about controversial facts. Before a fact is written on the blank page, all editors check it for its plausibility, then it gets saved. The book has read only and write only rules, thus editing is not allowed, meaning if a fact is stored inside, then it stays there forever. If you are a reader, you don’t need to worry about the facts in this book, because every writer has already checked them, so you can be sure you read only accurate statements. As a reader, you don’t have voting power, so if you don’t agree with the story of the book, you just can stop reading it. Anybody is allowed to become a writer and check other people’s facts. This book has no single author, it is like a folk song, created by the community and it is endless(you can always add a new page at the end). People hope this book would be a bestseller so it could reach as many readers and writers as possible. Having more copies of the book ensures that it cannot be forgotten or lost throughout the history.
So let’s start with a couple of examples:
People start writing down the truth: the sky is blue, the snow is white.… It looks easy, right? Everybody who reads the book knows these facts have been checked before they were saved. But what happens if we start writing down more complex facts. Let’s state that Mount Everest is 8848 meters high. Before I write it down, all writers need to agree on that point. The people not sure about the exact height will look it up on the internet or read about it in an encyclopedia to confirm it and eventually will agree on the number.
Let’s assume you are a person who wants to fool everybody and slip a lie into our book and state that Mount Everest is 7690 meters high. If our book has only two writers(you and one additional editor) you may be lucky enough and manage it, because you need to convince only one person to have the majority of the votes. But what happens if we have a thousand authors? You will need to convince all of them, or at least the majority(more precisely 51%). Ok, let’s assume you are some rich genius and pay people to support you, manipulate the others or bring false editors whose only purpose is to say that Mount Everest is 7690 meters high. What happens now? If 51% of the participants agree you win and the fact gets saved. But wait, now people who read the book will be misinformed! What happens to the other 49% of writers who don’t agree with you? Additionally, some readers will stop reading the book because they won’t agree on that fact. These people have to change the title of the book and start their own book from now on. From the point of Mount Everest, we get a second copy of the book with all previous statements and with the right number(8848) saved in it. Now the two books exist but have different titles, and it is up to you which book you will prefer reading or editing.
After we understood the basic concept of a blockchain, I would like to dive in a little more. The blockchain is an open ledger(our book) and has all these participants in it, right? Now to get closer to how blockchains work we need to swap our readers and writers with computers. Yes, we have people sitting behind computers and the computers do the hard work about fact checking, and fact saving and this work is automated, so people don’t have to do anything about it after they configure their machines. In the previous paragraphs, we used obvious facts, but computers are not good at checking these statements. That’s why the only thing allowed in our book are numbers, lots of them because computers are only good with numbers. So if you have a fact to save in the book, you have to express it with numbers. Let’s take cash for example. I have USD 5 in my pocket. All computers agree on that. The sum gets saved in the book as truth. Now everybody knows by reading the book that I have five bucks in change. If I spend $2 of my change, the fact about my available money changes and my new balance gets saved in the book. The old balance stays in the book as a reference so people could check where I have my 3 dollars from. Now every financial interaction I had gets saved in this book. This is how Bitcoin works. Every transaction on the Bitcoin network(our book) gets documented and can be checked by anybody.
We’ve covered a lot of the basics. Let’s try to associate the things we’ve covered with the blockchain terminology:
- Our book with read only and write only rules which stores only true statements and has no single author(our folk song): “Shared, trusted, public ledger of transactions, that everyone can inspect but which no single user controls.”
- Bestseller: the blockchain is distributed across the world, the more copies it has the better
- Readers and writers: the readers are our users and the writers are the validators of the blockchain. In the case of Bitcoin they are called miners.
- The bad author who managed to cheat our book: “51% attack: a condition in which more than half the computing power on a cryptocurrency network is controlled by a single malicious miner or group of miners.”
- The second copy of our book: a hard fork: the creation of an alternative ongoing version of the blockchain. (Example Ethereum and Ethereum Classic)
- Our book title: Bitcoin, Ethereum, Monero, Dash…these are our different blockchains, each of them with its own rules and story
There is one term I did not cover in the text: the block of the blockchain. I may do a follow-up post on that.