As discussed in a previous post, one of the primary goals for a Consensus Method is to facilitate “agreement” on the network. To come to agreement we need a majority of votes. However, determining this majority may not be as easy as you may think.
The difficulty in achieving Consensus in a networked system is actually a fundamental problem in Computer Science. There are various technical reasons for this. But we’re going to keep it simple in this post.
We will tackle one particular difficulty that may seem easy on first glance:
"How Do We Determine Who Represents The Majority?"
Let’s take a step back for a moment. Let’s think about how majority decision making is done in the “real” world.
Consensus In A Boardroom Office
Agreement is usually settled by the “rule of the majority”, right? We’d sit in a big boardroom office, and everyone (who matters) would vote by either a ballot-system or raising their hands.
It’s pretty hard to cheat. (You could try to raise two hands, I suppose. But you’ll probably be found out)
But this boardroom clearly represents a centralized system. How do we achieve this in a decentralized system - like a blockchain? Such a system has the following features:
- People Distributed Around The World
- People Are Pseudo-Anonymous – Using Their Computers To “Vote”
In the office boardroom, the majority is represented by people raising their hands. We need a way to determine the majority in a networked & decentralized system. Essentially, we need a way for people to vote in such a system – and to do so fairly.
Consensus Online: IP Addresses?
The first idea that comes to mind is : IP Addresses. Each IP address could represents one vote. Not bad – but it won’t work. It’s far too easy for someone create millions of Virtual IPs. A single person could spin-up several IPs around the world and cast a million votes to further his own agenda.
Proof of Work - a simplified example
Suppose we have a network of 1000 participants. Each of them are allowed one vote per IP Address. The participants have to come to a decision between Decision A and Decision B.
999 participants vote for Decision A. But John – a network participant – wants Decision B for his own agenda. He decides to create 1000 Virtual IPs and casts votes for Decision B from each one of them. The network now thinks it has a total of 2000 participants.
Consensus Online: CPU Power
The “One-IP-One-Vote” solution was simply not going to cut it. It was far too easy for people to manipulate the votes – and also face no consequence for doing so. Even failed attempts could be brushed off. We needed the following:
- Add a difficulty to casting vote
- Make it costly for attempting manipulation
That’s where Proof Of Work stepped in as a Consensus Method - Proof Of Work uses CPU Power to determine the majority decision.
In order to show their support, participants have to expend electricity. (They do so using by solving Cryptographic puzzles – which we will discuss in the this post. For now, all you need to know is that they have to expend energy in order to show who they support)
Therefore, the only way someone could manipulate the “votes” is by having a A LOT of CPU Power. Achieving this will cost them A LOT in:
- Initial hardware costs
- Ongoing electricity costs.
Longest Chain: Determining Majority Support
Note: I explain the Longest Chain using a simple analogy in a post here: The Longest Chain - A Simple Farmer's Analogy
This gives us another interesting (and important) feature. Each time a “block” is added to the blockchain, CPU Power/energy is consumed. Thus, every block preceding it also involved consumption of energy. These are essentially a “chain of blocks” (hence ‘blockchain’). These “chain of blocks” are representative of the TOTAL energy used for that chain.
With this, if there is ever a conflict of decision – we can simply look at the Longest Chain to determine which decision has majority support. Why? Because the longest chain has the most energy invested in it. And hence the most support.
Wrapping Up - Proof of Work
Just like any other system, decision conflict needs to be resolved by a majority vote. However, determining that majority can be difficult when dealing with a networked system. Proof Of Work adds a extrinsic cost to each vote (hardware and electricity). And thus making it increasingly difficult to manipulate the votes.
Energy is expended to show support on each “block” of data added to the ledger. As the ledger (blockchain) increases in size, more energy is expended. The longest chain serves as representation of the majority support.
In future posts I’ll go into a little bit more detail on the Cryptographic Puzzle and The Longest Chain. For now, I hope this post helps.
If you have any questions, don’t hesitate to shoot me an email or PM 🙂
Did you enjoy this post?
Help Us Keep Doing What We Do Best!
Tip Jar 🙂
Get my upcoming eBook for Free!
"The Mango Guide TO Understanding Blockchain"
Offer Valid For FIRST 500 registrations only