I’ve always loved a good analogy as a way of explaining a technical concept to a non-familiar audience, here’s my blockchain analogy… possibly the best blockchain analogy you’ll ever hear:
You know how in a playground football game each player knows what the score is at any one time and you can’t change the score without convincing everyone playing that there’s a very good reason for doing so? Well in a very similar way, each node in a blockchain-based peer to peer network has an identical copy of the network’s ledger of events, and that ledger is immutable.
So both playground football and blockchain achieve a situation where you have multiple participants who have an agreed upon historical record of events and that record cannot be tampered with.
Byzantine Fault Tolerance
Byzantine Fault Tolerance is something you want to acheieve if you want to address the concerns raised in a type of game theory called the “Byzantine Generals Problem”. Which sounds really complicated but its actually just a way of getting a group of independent actors (who don’t naturally trust each other) to reach agreement on events that occur within the group (and in what order), despite their trustless relationship and in a way that is resilient to attempts to undermine that agreement. Attempts to undermine agreement might be things like actors in the group trying to alter the historical record for their own benefit or actors leaving the group. It is particularly useful for example, if the actors are people whose only point of connection is the internet and want to trade with each other without having to involve a centralised authority.
Blockchain is currently the most popular and widely implemented example of Byzantine Fault Tolerance in practice.
A More Technical Description
So using more technical terms blockchain can be described as a method for achieving immutable, decentralized and synchronised consensus in a peer-to-peer network via a distributed ledger.
Comparing a Non-Technical with a Technical Description
Blockchain is a software solution for reaching agreement within a leaderless group of peers that events have occurred, as they occur and that of these each events is recorded in an indisputable historical list which each peer has a copy of.
Blockchain is a software solution (protocol) for reaching agreement (consensus) within a leaderless (decentralized) group of peers (peer to peer), that events have occurred, as they occur (synchronised) and that of these each events is recorded in an indisputable (immutable) historical list (ledger) which each peer has a copy of (distributed).
Back To Playground Football
In a playground football game there is no referee (that would be a centralised authority) and yet the game is played successfully because it’s a group of kids playing a game where everyone knows the rules, and they play by those rules because otherwise they’re not “playing football”. When a kid fouls in some way a decision is quickly made amongst the kids as to whether to act upon the foul, or simply let the game continue by passive consent (consensus is constantly achieved). The “ledger part” is the current score that all the kids are keeping in their heads, and every kid doesn’t actually need to see each goal being scored as long as they all agree what the current score is.
The ledger is immutable because a single kid cannot change the score without convincing a majority that his view of events is the right one.., the analogy does get a little stretched at this point but in my experience kids are real sticklers for the rules, and it’s pretty hard for one kid erroneously convince everyone that they scored when they actually didn’t. The kids also get the advantage that players can leave and the score remains the same, and as many new kids can join the game as the current players allow as long as they too accept the current score.
And it’s in that way, that all those games of footie in the playground were actually examples of a peer to peer network achieving immutable, synchronized and decentralized consensus via a distributed ledger!!
And that’s a good way of understanding how blockchain does what it does at a high level.
What about a chain of blocks? What about Merkle Trees?
“How” blockchain does what it does, involves chaining together blocks of data to form that ledger, but explaining how blockchain works is the not purpose of this analogy.
What about “smart contracts”?
Although smart contracts and blockchain often go hand in hand, a system doesn’t need to have smart contracts to be a blockchain. Smart contracts are a way of defining the set of rules as the basis that each blockchain will operate on and introducing outside data (often pulled in by an “Oracle”) into the blockchain. Smart contracts are one way of getting your blockchain to incorporate and act upon certain GPS data feeds, live financial trading data feeds, the latest weather feeds etc etc.
What about Bitcoin?
Blockchain is not Bitcoin and Bitcoin is not Blockchain. Bitcoin is one implementation of Blockchain plus a few extra rules and incentives thrown in to make it a cryptocurrency.
Great blog, Martin – I agree it is a great analogy.