Imagine a group of 10 friends goes on a winter holiday together every year. How do they tackle the finances?
Scenario #1: One source of truth
The group of friends establish a common fund for food expenses, and elect one friend to keep track of the funds in their community wallet. They trust that person to keep a record of how much money each member of the group has contributed, how much was spent, when, and on what.
Having one “trusted” person keeping track of deposits and expenses in the community wallet would be analogous to the way most current web applications are run; a server-based accounting service where all of the other friends are the clients.
But what happens when the record keeper decides to go out partying at the local pub and modifies his record of contributions to the community wallet to appear that some of the friends still owe some money? With just one record in existence, there is no way to prove his misbegotten actions.
Scenario #2: Decentralized accounting
Due to the lack of transparency in the former case, the group decided to modify the way they keep track of the community wallet.
Now, every time someone contributes money or whenever some money is spent, everyone takes note of the state of the finances. This way, the next time someone goes out for a night of drinking and tries to falsify the record of the community wallet, it is clear as day who did it, and the other friends can banish them from the group.
The way of everyone keeping a record of every change to the community wallet is analogous to the way every node keeps the transaction data in the blockchain.
Blockchain transactions don’t necessarily contain monetary transactions. They may also contain data that enables decentralized applications, meaning everyone is able to see the changes that happened and who made them. Banishing the party animal friend could be compared to banishing the miner or confirmation node that tries to manipulate the data written on the blockchain.
Scenario #3: The chain splits in two
Suppose that each person tracking expenses individually on their own piece of paper proves to be cumbersome. While the group agreed that having decentralized accounting of funds is beneficial, some of the friends wanted to modernize the way they keep the ledger of the actions.
They proposed an upgrade of the method by which they keep the ledger, from paper form to a digital shared document with history tracking. However, a subset of the group doesn’t agree with the proposed upgrade to the expense and income tracking, because they are more comfortable with paper tracking.
After debating what to do, the group decide to split the community wallet in two. A total of 7 people will upgrade their ledger to digitally shared document, while 3 friends decide to keep using the paper tracking method.
This would be analogous to hard forks on a blockchain. When the community proposes a change to the blockchain network, the reasoning behind the change and a proposed solution of the change must be presented. What follows is debating about potential consequences of the change and presenting counter-arguments.
When the steps for implementing the change are agreed upon, the update is implemented and the chain splits into two.
One chain continues to use the same mechanics as before, and participants opposing the change are still able to use it. The second chain starts using the changed mechanics, while still keeping the records from before the fork and building on top of those.
What happens if the majority of record keepers abuse their power?
Splitting the community wallet in two introduces new unforeseen risks. What happens when the majority of the record keepers agree on abusing the records and taking advantage of the others?
In the smaller group of 3 friends, it's enough that 2 decide to go out for a night of rakija shots and germknodel, and modify their ledgers in a way that makes it seem as though the third friend didn’t contribute enough money. That way, that person must contribute an additional amount to even out the count. Since the majority of records show that, indeed, the third friend should contribute more, the only option they have is to either give more money or to exit the arrangement. Either way, the money spent on partying by the other two is lost.
Analogous to the majority of friends modifying their ledgers to take advantage of the third one is a 51% attack on a blockchain network.
If an attacker manages to gain 51% of the processing power of the network, they can then modify data stored on a blockchain to their advantage. While this is a highly unlikely scenario, it has happened before. The Ethereum Classic blockchain network (which is a result of a hard fork of the Ethereum blockchain network) suffered such an attack in 2019, resulting in the theft of 219,500 ETC cryptocurrency.
This illustrates the reason for caution when exploring alternative blockchains to power your decentralized application. Using blockchain technology can't solve all of your security and integrity problems. It provides a degree of integrity and security of your data as long as you are aware of the risks, and protect against them.
Used wisely, blockchain technology keeps data safer
The group of friends from this story used blockchain in the form of joint expense tracking to avoid arguments about money.
They used the decentralized way of storing a ledger of changes that was trackable and immutable because of the way it was kept. This way, they incorporated trust that was missing from the initial single-person tracking changes and having the sole authority of the community wallet.
Using blockchain offers the same advantages. As long as we realize the dangers to avoid, blockchain can increase the level of security of our applications and the level of trust in the data that our applications use – and even salvage your holiday funds and friendships along the way.
Is the illustration on top moving inexplicably? Maybe you've had too much rakija as well. Made by Elizabeta Lončar.