If Data Sharding is already on the blockchain then how do we know that it is already implemented? Is there any example of such implementation to relieve the Blockchain Burden?
What you call "data sharding" has been already implemented in Bitcoin from the day one. In Bitcoin, transactions within one block often could be processed in parallel by a node.
Yes but there's a limit to how effective the concurrency is because of
Amdahl's Law.
It basically says "The performance speedup in a program is limited by the amount of time that the parallelize-able part uses".
So in this case the methods that verify the transactions inside the block can work in parallel, but there is a host of other things inside that process that can't be sped up:
- Time spent obtaining the block from a peer (even if multiple peers are queried at the same time, the code running the block retrieval runs at least once)
- Writing the block and chainstate to LevelDB
- For each UTXO in the block, rewinding the transaction history to check that it's indeed not spent
- All of the checks involved in
CheckBlock and
CheckBlockHeader functions must ultimately be performed in one way or another, so there will always be a minimum resource consumption associated with it.
Sharding is not going to make any of this go faster, assuming that theoretically the system had enough threads to verify a single transaction in a block per thread, if all this stuff is already running in parallel.
Yes. Notice, your argument highlights the fact that
All these points are relevant to blockchain networks. Databases don't necessarily have those steps and bottlenecks. Although blockchain network has a database under the hood, it's not everything. Some people oversimplify a blockchain network to a database which could be optimised by sharding. This viewpoint is inaccurate.
If some step of the process gets optimised, it doesn't mean the whole process gets optimised, especially, if optimisation of the one part goes ar the cost of other components.