What is a Bitcoin?
The most common definition of Bitcoin that floats around is “Bitcoin is a fully digital currency with no government to issue it and no banks needed to manage accounts and verify transactions.” This is sufficient for most of the people interested in trading it or use it in some form or other. For them Bitcoin is like PayTM, they have money stored in their wallets which can be transferred or withdraw when required.
That said, some of the curious minded ones might want to go a little further. How a currency wallet might exist without a backbone in form of government to back the currency (Rupees in this case) or PayTM to verify transactions. In order to understand how bitcoin works, let’s look at a story of four friends, how they transact among each other and how they might end up inventing their own version of blockchain.
Story of four friends
Aditi, Bobby, Chetan and Deepa are four friends, and they transact among each other frequently like paying their share of dinner bill or splitting other group expenses. Their transactions look like:
- Aditi pays Chetan ₹ 20
- Deepa pays Aditi ₹ 10
- Bobby pays Chetan ₹ 30
- Chetan pays Deepa ₹ 50
There can be large number of transactions and thus instead of exchanging real money every time they decided that everyone will log these transactions on a spreadsheet maybe an excel sheet, a google sheet or a plain old register. Anyone can announce a transaction and all the friends update that in their own spreadsheet. In accounting terms this spreadsheet containing list of transactions is also called ledger.
In the end of the month, they net all the transactions to calculate balances and settle by paying in real money.
On one of the settlement-days they all met on dinner.
Chetan: “We have been using this for quite a while now and it has been near perfect solution to exchanging money all the time.”
Bobby: “Oh, I’ll tell you, this has been a life saver. Exchanging money all the time is really cumbersome.”
Aditi: “You know, I was taking about this system with my close friend Esha, and guess what, she is also interested to join in. If she joins we’ll be able to transact with her as well. Isn’t that great?”
Deepa: “But she can’t join in”
Aditi: “Why so?”
Deepa: “Because we don’t trust her, and the whole system works when all the participants mutually trust each other. Which means for her to enter all of us must trust her and she should trust all of us.”
Aditi: “What do you think can go wrong?”
Bobby: “I agree with Deepa trust is really important. We all trust each other to announce or broadcast which is a better term, only valid transactions. For instance, if I say, ‘Deepa pays Bobby ₹ 50’, you all trust me that it’s a valid transaction and thus log it in your ledgers.”
Aditi: “You mean to say Esha would broadcast fraudulent transactions all the time?”
Bobby: “I am not saying she would, just that it’s a possibility. There is nothing stopping her from broadcasting say ‘Deepa pays Esha ₹ 50’ or ‘Aditi pays Esha ₹ 50’ every once in a while. Again, not doubting Esha but my point here is before bringing in a non-trusted entity we need to ensure that our system is full proof and as of now it is not.”
Chetan knows something about digital signatures and chips in, “I agree with you, that’s a possibility. But to safeguard our system how about we do this, whenever there is a transaction broadcasted it should be accompanied with sender’s digital signature. So, in case ‘Deepa pays Esha ₹ 50’, Deepa should add her digital signature to the message and then it can be sent to anyone. Additionally, everyone will verify the sender’s signature before updating the ledger. Any transaction without signature will be discarded, thus no one will be able to generate and broadcast fraudulent transaction.”
Bobby: “You mean like a bank cheque, where the sender’s signatures are verified before making the transaction?”
Chetan: “Exactly, but we’ll be using digital signatures.”
Deepa: “That would be a nice feature addition. Although I am still not convinced. Even if all the transactions are valid what’s stopping any one from defaulting. If Esha owes me ₹ 50 say at the end of the month what if she doesn’t up on the settlement day, how will I get my money back?”
Aditi: “Well I can pay, but I get your point we’ll have to make the system default proof.”
Bobby: “I guess that’s rather simple. How about we chip in some money at the start of the month say ₹ 100 and keep updating the balance every time. On every transaction we first check the balances and only if the balance is more than the transacted amount, the transaction will be accepted.”
Deepa: “You mean to say if I started with ₹ 100 and I paid ₹ 70 Chetan, my balance will be updated to ₹ 30. At this moment if I broadcast a transaction ‘Deepa pays Bobby ₹ 40’, this won’t be accepted as my balance is only ₹ 30.”
Bobby: “Yes, thus preventing overspending.”
Aditi: “I think that’s a must. Stretch your legs only as far as the blanket allows.”
Deepa: “I agree!”
Chetan: “I think that’s brilliant. If implement this, we can totally eliminate the need to settle and probably transact till eternity.”
Deepa: “I don’t get that.”
Chetan: “Think of it in this way, we settle at end of every month because it’s convenient for everyone. Now if everyone chips in before start transacting the money will always be in the system and to settle my account, I just need to interact with the system which I can do anytime. Because I am sure I can settle with the system anytime I might even choose not to settle at all.”
Aditi: “I get it. It’s like a bank account. I know my money is safe in the bank account and I can withdraw it anytime I want. Although I have the options to settle the balance with my bank by withdrawing all the money at end of the month, I prefer not to do that and instead just check the balance once in a while.”
Chetan: “Thanks, you put it even better than I even though off.”
Aditi: “Thanks. If I may take it even a step further, we can stop call it Rupees after all. I mean if I don’t intend to withdraw the money from the system, I may start calling it Ledger Money instead. Or even more fancy, Bitcoin”
Chetan: “I like that idea of a different currency, as long as we transact among ourselves, we can call it anything. Though let’s stick to Ledger Money. Bitcoin is too fancy for me, if I’d like fancy, I will rather change my name first, Satoshi seems a good option.”
Bobby: “That’d be cool. We’ll design a new logo for it too.”
Deepa: “Hold your thoughts. I am still not convinced. I don’t think its full proof yet.”
Aditi: “What are you thinking?”
Deepa: “I am not sure but what if someone instead of broadcasting the transactions sends selective messages to each user.”
Aditi: “Try that with an example again?”
Deepa: “Yes. So, let’s say Esha has to pay ₹ 50 to Deepa, she drafts and signs ‘Esha pays Deepa ₹ 50’ send it to everyone except Chetan. She drafts another message ‘Esha pays Deepa ₹ 20’, signed and sent to Chetan.”
Chetan: “So you are saying everyone updating their ledgers is not a good idea? How about we designate someone as a gatekeeper. Gatekeeper will be verifying and maintaining the register and others will just copy the content from them.”
Aditi: “That seems like an easy solution.”
Bobby: “No it’s not that simple, all the parties will have to trust the gatekeeper. This brings us back to square one, if the system requires trust to function, then it’s not a full proof solution.”
Aditi: “How about we keep on changing the gatekeeper.”
Bobby: “I think that might help, but can you elaborate how?”
Aditi: “OK, if same person remains the gatekeeper, they will have the power to validate transactions and might misuse use it, which is where trust comes in right?”
Bobby: “Yes.”
Aditi: “Now hear me out on this, what if we choose a different gatekeeper for every transaction or set of transactions. Say when a transaction is broadcasted, a gatekeeper will be chosen. The selected gatekeeper will validate transaction and then rebroadcast the validated transaction. Others will confirm the previous transact update their ledger only when a validated transaction is broadcasted. Along with current transaction link to previous transaction will also be broadcasted for others to detect fraud if any. Next transaction there will be a different gatekeeper who will do the above tasks to validate the next transaction.”
Bobby: “So if I get you correctly you are saying whenever there will be a transaction, following steps will be followed:
- Sender of the transaction will sign off the transaction.
- Any member can broadcast it.
- A gatekeeper will be chosen.
- Gatekeeper will validate the transaction
- Verify signatures
- Confirm there is no overspending
- Attach a link to previous transaction
- Add their own signature to confirm its validated
- Rebroadcast the validated transaction
- Other members when alerted with a validated transaction will:
- Confirm previous transaction is as per their ledger
- If yes add current transaction to their ledger
- Raise an alert in case of a mismatch
- All wait for new transaction.
Aditi: “Wow! Thanks for putting it all together. So yes, if a gatekeeper say Esha does all the required steps and sends a transaction ‘Esha pays Deepa ₹ 50’ to everyone but sends a different transaction ‘Esha pays Deepa ₹ 20’ to Chetan. It won’t be suspicious as of now, but during the next transaction say Bobby is the gatekeeper, he’ll do all the required steps and link previous transaction which is ‘Esha pays Deepa ₹ 50′”
Bobby: “And the moment Chetan hears ‘Esha pays Deepa ₹ 50’, he’ll speak up that the last transaction he received was incorrect and Esha the gatekeeper of last transaction will be questioned.”
Aditi: “Gosh! You nailed it.”
Chetan: “Oh dear! Let me wrap my head around it once again. We will a take a transaction or bunch of transactions and choose a gatekeeper. The gatekeeper after validating all the transactions, will create a block and add to it:
- Link to previous block
- Validated transaction
- Their own signature to confirm it is validated
This block will then be broadcasted. Upon receiving the block everyone will confirm previous transaction and if it’s not as per their records they will raise an alert. In essence each block being linked to previous block will create a chain which will help detecting any fraudulent transactions.”
Aditi: “We can call it blockchain.”
Deepa: “Wow! This discussion is turning out to be really ‘Momentous’ if I may say. I won’t be surprised if someone write about it in future.”
Chetan: “I guess we might be able to include Esha after all.”
Aditi: “I know, but let’s give ourselves some time to digest all the information. Maybe we will discuss it further in the next settlement dinner.”
Wrapping Up
Aditi, Bobby, Chetan and Deepa have a well-functioning transactions system in place, but it run on trust. Introducing a non-trusted member will break the system. Their goal is to make the system full proof so that trust is no longer required in the system. The add different features to remove trust requirement at each stage. Digital signatures prevent fraudulent transactions, adding money before transacting prevents overspending, and finally a gatekeeper and chain of blocks helps fraud detection. These friends are on the path of discovering their own blockchain but are just one step short. Remember they choose a gatekeeper to validate a block, how this gate keeper will be chosen is another question and no they can’t just choose randomly. But as Aditi said let’s discuss it further in the next monthly dinner.

1 Comment