Instead of giving you a definition, I will try to help you understand what problems Blockchain is solving.
Let’s say Eric is your best friend. He is traveling around the world and after a few days he is calling you: “Hey man, I m broke could you borrow me some money” “Hey, sure I will send it right away” Next you call your bank and ask them: “Hi, could you please send 1000$ from my account to Eric?” They answer: “Yes, of course” Now in the bank they open your account ledger to see if You have enough funds to send 1000$ to Eric. Because You are rich, the bank makes inscription in your account: 28.09.2019 10:00 You —–> Eric 1000$ *We are not gonna use any computer system. Only paper and pen, we go old-school. You are calling Eric: “Hey man, money is sent, you can withdraw it from the bank”
What actually happened in here?
You and Eric trusted the bank to make a transfer between your accounts. Physically, the money didn’t travel but the bank made a change in your accounts ledger. The only change was nessecary but not you neither Eric could do that. That’s the problem of our system. We trust the bank as a meddler for doing things which demand mutual trust. To bring chaos you just need to take down middle man or burn the ledger account. What will happen if the bank will write 1500$, instead of 1000$? Can we create a system in which we can do transactions without the bank? What does it mean by making transactions? It is the only inscriptions in the ledger. Can we create ledger between us instead of trusting the banks? Yes. The answer is Blockchain. Blockchain is a method which allows you to register transactions between users without a third party.
Blockchain is a distributed ledger
This method needs the right number of users which doesn’t want to trust any third party. Only then this group can function.
What is the right number? At least three.
Let’s say together with 9 other people you want to stop using the bank. All of you are in agreement that everyone will store all details about your accounts and transactions. Without storing your identities.
All of you at the beginning will have an empty ledger. After the transactions, you will fill up empty cards and collect them in the ledger (blockchain). All users of your distributed ledger takes out the empty card and get ready to write down the transaction. Let’s say User3 wants to send 10$ to User8. To complete transaction User3 must scream to everyone: “I want to send 10$ to User8, write it down” Everyone checks if User3 have enough funds to send 10$ to User8, if so they shall write down the transaction. 28.09.2019 User3 ——> User8 10$ Now the transaction is completed.
Next transactions go through
While time passes more users do transactions. Transactions are announced, checked and written down on cards. Let’s say you have space for 10 transactions on each cards. After 10 transactions, the card is stored in the ledger and you continue on filling up the cards. Before you put the cards into the ledger, you need to seal them with a special key which you choose with the rest of the users. Sealing each card gives security from being changed or replaced. The sealed card will endsl up in the ledger and it can never be changed. Users trust this security and trust what is on the card. Sealing the cards is reason why this system works. Now imagine a “Magic Machine” where from the left side you can insert box and from the right side you get same box with a different contents. Let’s say from the left you insert “5” and from right side you get: “acbc”.
5 =>=> acbc
However the machine changed the content of left side into “acbc”, nobody knows; and we can’t reverse it. Looking at the word “acbc” we can’t figure out what was inserted but every time we insert “5″ we will get “acbc”.
Now let’s insert “99”. This time from the right side came out “23bce1”. Wierd, but now we see that words which came out from the Magic Machine can also have digits. It was really hard to calculate the score. But it will be very easy to verify if the input will give us the same score. It is so called hashing function. Now we will use our Magic Machine for generating numbers to seal our cards.
99 =>=> 23bcel
Imagine you have two boxes and one with the numbers “5067″, while the second box is empty. Can we find the number that can be added to the second box that will give us a number starting from 000 after adding the first box…?
The best way to find it, is to insert all possible combinations. After a few thousands tries we will find number “5020” which after adding 5067 (5020+5067=10087) and inserting it to the Magic Machine gives the score that fullfills our requirements.
In this case number 5020 becomes a sealing key for 5067. Let’s say there is a card with number 5067, to seal this card, that no one can change, we seal it with 5020.
 + ?? =>=> 000...
+5020 =>=> 000...
If someone wants to verify if the card was modified he only needs to take the amount from card, add it to sealing key and insert it to Magic Machine. If he gets number starting from 000 card was untouched. If the number is different than required you can throw away the card because it was changed or it’s mistaken and we can’t use it.
To secure all our cards we will use similar system and then arrange them in folders.
To seal the cards with transactions registry you need to find out what number is added to the transaction list and inserted to the machine that will give a number starting from 000. After you calculate what number it is (you use your time and electricity for your machine), you can use it to seal your card. If anyone will try to change something on the card, the sealing key will help to verify their authenticity.
Now that you understand how securing the cards works with transaction registry, we can go back to the moment when you and your group filled up your card with 10 transactions and you run out of place.
Now what you need to do is find the sealing key for your card to put it into folder. First person which finds it pass the number to the rest of users. They check it by putting it into Magic Machine. If the number is correct everyone can set thier cards into folders. But what if User5 after checking the sealing key gives a different score than we need. The reasons could be:
- User could hear wrong informations about transactions announced in your network
- User could write wrong informations about transactions announced in your network
- User could try to cheat
No matter what is the reason, User5 have only one possibility, to throw away the incorrect card and copy the correct one from a different user to put it into the folder. If he doesn’t do it, he can’t confirm transactions anymore and can’t be part of your net. Majority of the users are choosing the sealing key.
Why every user is using his time and electricity for machine to calculate the sealing key, if anyone who do it first will announce the number for the rest of net? Can't they just wait until someone else do it?
Good question. Every user which delivers sealing key is awarded to compensate his costs (time+electricity). Imagine that User2 calculates scores for sealing card and is rewarded 1$ which are generated from thin air. To account of User2 is send 1$ whiteout deducting 1$ from different account.
This is how Bitcoin was created on distributed ledger called Blockchain.
For costs incurred for the network, users has been rewarded by Bitcoins. When enough users owned Bitcoins their value starts growing then more users wanted to own Bitcoin that raised it’s value again and again more people wanted to own it and so on… That’s how reward gave a reason to users to work for the network. After everyone puts down their cards to the folder, all of them take out a new card and everything starts from the beginning until infinity. Important: One card is a block of transactions and folder is a chain of blocks that’s why Blockchain But there is one more thing. Imagine that folder is full of cards. What will happen when I go back to the second card and make a change for my own favor? Sealing key will allow everyone to notice the change. But what if I calculate new sealing key for modified card? Do you remember the two boxes? One with number 5067 and the second one that is empty with the number you are supposed to calculate? In reality to calculate that on Blockchain instead of two boxes we have three: two with numbers and one to calculate.
The score from those three boxes goes through our Magic Machine and from the right side we get the number that needs to fullfil specific requirements.