(IJCH) Sharding and Military Muster (or How to Explain Sharding as Simply as Possible)
(IJCH) Sharding and Military Muster (or How to Explain Sharding as Simply as Possible)
IJCH - Inside JaiChai's Head (meaning: My warped, personal opinions and musings)
From the Author:
Salutations.
I am JaiChai.
And if I haven't had the pleasure of meeting you before, I'm delighted to make your acquaintance now.
Limited scalability -The Bane of Blockchains
Current, traditional public blockchain protocols have an inherent limitation - all nodes must process every transaction to reach consensus.
This leads to two major problems: limited throughput and slow transaction times.
Bitcoin block times are 10 minutes, while Ethereum block times are about 14 seconds (Note: These times can be drastically longer during episodes of peak traffic).
Now compare that to the nearly instantaneous confirmations you get when using Visa or Mastercard. But these credit cards operate within a centralized, highly secure, permissioned network.
Public blockchains are just that - public. They are non-permissioned (meaning: anyone can participate without permission) and have to contend with all the malicious threats that come with the territory.
Of course, this means that they are naturally slower - mainly because of the tradeoff between low transaction throughput and a high degree of security.
And as the blockchain gets bloated, the requirements for storage, bandwidth, and computing power becomes an insatiable beast.
Sooner, rather than later, it becomes hard to handle and leads to a few, heavy resource nodes processing the majority blocks.
Can you say "Centralization"?
Granted, there are some Off-Chain solutions (e.g., the Lightning Network for Bitcoin and the Raiden Network for Ethereum).
See:
The Bitcoin Lightning Network and the Ethereum Raiden Network aim to provide an off-chain solution to turbo-boost transaction speed, lower costs, and enhance scalabiliy.
But "Sharding" is fast becoming a popular, viable solution for longterm scalability.
Sharding - An Alternative Solution for Fat Blockchains
Blockchain engineers strive for better functionality and security without the bottleneck - requiring every node to process all the transactions in the network.
In other words, authentic validation without centralization.
Blockchain sharding is derived from sharding in the traditional database world, except with the added burden of maintaining security and authentic validation among all the nodes within a decentralized setting.
Simply put, sharding is a "Divide and Conquer" strategy.
It's when the overall state of the blockchain is separated into different parts called "shards". Then each shard of the state is stored and processed by different nodes in the network.
As you can see, sharding is NOT the same redundant, "Winner Take All" situation that's built-in traditional Blockchain Mining protocols.
In fact, sharding is only feasible in Proof of Stake (PoS) consensus protocols because the small size of the shards makes them unacceptably vulnerable to compromise in Proof of Work (PoW) scenarios.
Why is Sharding Faster?
Imagine you have a humungous database for your blockchain (AKA: Ethereum). That bulky database makes searching for data slower; thus, shackling your scalability.
Sharding to the rescue.
It aims to complete thousands of transactions in a flash.
Divide and Conquer Explained
Divide and conquer is a strategy for achieving political or military control. (computing) An algorithm design technique applied to various algorithms, such as quicksort, that solve a problem by splitting it recursively into smaller problems...
Source
As mentioned earlier, sharding divides the task into smaller chunks - shards - and has multiple nodes work on it simultaneously (in parallel).
The Split
Not This One
This One - Your Database
In sharding, a horizontal partition is created on your data; effectively turning them into smaller tables that are stored on different database servers.
Why horizontal partitions vice vertical partitions?
Because of the way tables are designed:
When a vertical partition is done on a table, they become two completely different tables altogether.
They are essentially the same tables, but contain less, different data (Translated: easily searched, faster operations).
These smaller databases are shards of the larger database with identical table structures.
The takeaway?
Sharding makes processing faster by splitting a state into different shards.
The Military Muster Analogy
The term muster means the process or event of accounting for members in a military unit.
This practice of inspections led to the coining of the English idiom pass muster, meaning being sufficient. When a unit is created, it is "mustered in" and when it is disbanded, it is "mustered out".
A muster roll is the list of members of a military unit, often including their rank and the dates they joined or left. A roll call is the reading aloud of the names on the muster roll and the responses, to determine who is present.
Musters (in the sense of gatherings with roll calls) also take place in prisons.
Source
Imagine how long it would take to muster a thousand strong military unit one-by-one all by yourself.
Now imagine splitting up the group into smaller squads and having each leader muster the personnel simultaneously.
Get the picture?
By JaiChai
Thanks for stopping by.
About the Author
Believing that school was too boring, he dropped out of High School early; only to earn an AA, BS and MBA in less than 4 years much later in life – while working full-time as a Navy/Marine Corps Medic.
After 24 years of active duty, he retired in Asia.
Since then, he's been a full-time, single father and actively pursuing his varied passions (Writing, Disruptive Technology, Computer Science and Cryptocurrency - plus more hobbies too boring or bizarre for most folk).
He lives on an island paradise with his teenage daughter, longtime girlfriend and three dogs.
If you enjoyed my post, kindly: Upvote, Follow, Comment and Resteem.
"I appreciate all your support."
I was expecting something totally different here more military less blockchain provably because I had never heard of sharding.
But all up good analogy.
Congratulations! This post has been upvoted from the communal account, @minnowsupport, by JaiChai from the Minnow Support Project. It's a witness project run by aggroed, ausbitbank, teamsteem, theprophet0, someguy123, neoxian, followbtcnews, and netuoso. The goal is to help Steemit grow by supporting Minnows. Please find us at the Peace, Abundance, and Liberty Network (PALnet) Discord Channel. It's a completely public and open space to all members of the Steemit community who voluntarily choose to be there.
If you would like to delegate to the Minnow Support Project you can do so by clicking on the following links: 50SP, 100SP, 250SP, 500SP, 1000SP, 5000SP.
Be sure to leave at least 50SP undelegated on your account.