Ethereum Sharding guide for herald
What is sharding in blockchain networks?
Sharding is the technique of splitting a database into a bunch of segments to improve efficiency and application scalability.
Sharding is used in blockchain networks to increase network efficiency and better scalablility by dividing the workload to process transactions to different node validators.
[Image source](https://vitalik.ca/general/2021/04/07/sharding.html)
In the picture above, each shard chain is a mini-chain that operates independently, each has a unique transaction history and set of nodes to validate new transactions. Each shard chain submits a record of transactions to the Beacon chain.
What is Danksharding?
Danksharding is the new sharding design proposed for Ethereum, with a focus on the Ethereum rollup-centric roadmap. The main innovation introduced by Danksharding is the merged fee market: unlike regular sharding, in which shards have both different block and block proposers, only one proposer exists that chooses all transactions and all data that go into that slot in Danksharding.
To avoid large hardware requirements for validators and to remain decentralized when implementing Danksharding, a Proposer-builder separation (PBS) [1](https://notes.ethereum.org/@vbuterin/pbs_censorship_resistance) was introduced.
PBS separates the block processing and building workload into a list of block builders, then the block proposer will accept the block body from builders with the highest bid. So the workload for the block proposer here is reduced drastically, and all other validators and users can verify the blocks very efficiently through data availability sampling (DAS). Also, note that the proposers (and everyone else) don't know the contents of any exec block body submitted by builders.
What is proto-danksharding (aka EIP-4844)
Proto-danksharding (PDS) is a proposal to implement core changes, particularly transaction format - that would be needed for full Danksharding. EIP-4844 introduces a new transaction type - a blob-carrying transaction. A blob (Binary large objects) is extremely large (~128kB) and can be much cheaper than similar amounts of calldata. However, blob data is not accessible to EVM execution (the execution layer), the EVM can only view a commitment to the blob.
To learn more about commitment scheme: https://en.wikipedia.org/wiki/Commitment_scheme
The data blobs are represented as polynomials and then use a polynomial commitment scheme to commit to the data. Ethereum plans specifically to use KZG as its polynomial commitment scheme. This allows us not only to achieve a commitment to the data, but also to be able to efficiently check certain properties of the data blob without needing to read the entire thing.
Data Availability Sampling in Danksharding
The goal of DAS is that network participants can verify the data availability without the need to download a large amount of data.
This is a complex term that requires a lot of time to digest, so I will go deeper later.