Blockchain In Plain English
This is not yet another post, written by a tech geek, to another tech geek. The knowledge gap between the blockchain space and the community is getting wider day by day. The aim of this series is to explain how Blockchains work in the simplest manner, so that an average person can easily understand it.
There will be 4 posts:
Enough chit chat, letâs start! One of the best ways to understand blockchains, is to design one ourselves (no worries, itâs really simple). Imagine we are Natoshi Sakamoto (that was an attention test). And we are gravely wounded by the centralization. Our every individual cell is hating the authorities. Why? Because authorities can manipulate the reality (the documents, transactions, in short: the information). And authorities themselves, are the ones who are verifying these information. You go to the government to prove your document is not fake. So it is extremely easy for the authorities to cheat, lie, or manipulate the information.
Side note: money is becoming a digital asset, in other words: information. Hence, the danger is becoming even greater.
Second side note: If you want to read a comparison between decentralized vs. centralized systems, here it is
If we can find a way to store information and relay it, in a secure way, that does not require verification from authorities, we will solve this problem! Woohoo, utopia!
Everybody knows Microsoft Word, right? And we can use it as a great starting point for our metaphor.
There is a very important assumption in all blockchain systems: The majority is honest. For the sake of simplicity, letâs have one more assumption for now, that we will get rid of later: Everyone is an angel, nobody is capable of lying :)
Here is our imaginary scenario:
So these 5 men, tries to implement their distributed ledger (yet another fancy word for a blockchain). They will use Word for that. And remember, these 5 people are angels, hence, cannot lie. Here is what they should do:
If they all do these steps, in the end, all of them should end up with the same Word document. Salâs Word (accounting book) should be identical to Joeâs.
Sal: Hey Joe, your coffee does smell delicious!
Joe: Wanna sip? 5 dollars, please.
Sal: I thought we were friends⊠Here, 5 dollars (sips from Joeâs coffee).
Everybody enters a new record in their word document:
-5 from Sal's account, +5 to Joe's account.
Joe, John and James
Sounds ridiculous, right? This is exactly whatâs happening at the core of blockchains when all the other important details are eliminated.
What is the difference between this Word ledger, and banking:
After Sal paid Joe 5 dollars, just for a sip, he is storming mad! He goes to Brian, says: âBrian, you know what? Joe really pissed me off. Why donât you and I add 1 million dollars to our balances? So that, Joe will be poor compared to us.â âI agree, Joe deserved it. Ok, but what about James and John?â
âI donât care, their name also starts with âJâ.â
âMakes sense.â
So, Brian and Sal, happily modify their word document like the following:
+1000000 dollars to Sal, +1000000 dollars to Brian
.
Brian being a little bit smart, figures out: âSal, where did that 1000000 dollars come from? If that is a transaction, there should be some account losing 1000000 dollars, transferring that to mine, so that I can add 1000000 dollars to my account. This looks ridiculous now.â
Sal agrees: âYouâre right. Letâs undo that 1000000. Just delete the transaction that I paid Joe 5 dollars for the coffee sip thenâ.
5 minutes later, their old friend Pete burst into their cafe: âGuys, Iâve made up my mind! Being in the same cafe for the rest of my life with my friends will be the best thing I can do with my life! Can I join you?â.
Now, a big problem arises: There are 2 versions of the Word documents (the honest one, and the one with Sal did not pay 5 dollars to Joe). But Pete does not know which version is the honest one. Joe, John and James say, their version is the correct one. Sal and Brian say the opposite. Each party is accusing the other party of lying.
Thanks to our assumption of the honest majority, Pete can figure out the altered version. This probably did not satisfy you (at least, it shouldnât have), since there are only 6 people in here, and it is easy to manipulate the majority in this case. Imagine hundreds of thousands of people using this system worldwide. How can you accomplish convincing the majority to play along with your lie? Practically impossible. Still not satisfied? Good, our protocol will be much more secure than just trusting the majority.
Letâs complicate the situation a bit. Pete is dead because his chair broke and he hit his head to the corner of the table. Reasonably, all the other 5 people are now scared. So they went home. Sal and Brian apologized to others and converted back to the honest ledger. Now, whenever someone will send money, he should broadcast that to everyone, for others to update their own ledger.
Pete
Sal is kind of too lazy to make his own coffee, and he buys them from Brian and Joe. But he is broke at the moment, have only 7 dollars, and can afford only 1 more coffee. His addiction to coffee and laziness surpasses his ethics. And instead of broadcasting, he does the following:
Send a message to Joe and John, that he pays 7 dollars to Joe, to buy a new coffee â
so Joe and John update their ledger as:
-7 from Sal's account, +7 to Joe's account
.
Brian and James do not know about this transaction.
Sal simultaneously sends another message to Brian and James, that he pays 7 dollars to Brian, to buy a new coffee â
so Brian and James update their ledger as:
-7 from Sal's account, +7 to Brian's account
.
Joe and John do not know about this transaction.
Effectively, Sal purchased 2 coffees for 7 dollars. In other words, he double-spent his money! And the majority was honest. Remember that blockchains have members from worldwide, and connection issues can happen. With the potential conflicting transactions, and connection issues, there is no efficient solution besides global ordering. If we can order the transactions globally somehow, Sal canât double-spend (because one of his transaction will be issued before the other one, and his second transaction will be rejected due to insufficient balance).
It is obvious that our protocol is not safe at the moment. In the next article, by solving this double-spending problem, we will force Sal to get up and make his own coffee.