Shard Chain Blocks vs Collators

I’m thankful to have come across this excellent blogpost “Ethereum Sharding: Overview and Finality” by Hsiao-Wei Wang, which helped to clarify things about the Sharding Specification.

I’ve now established that “Blocks” on a Main Chain are referred to as “Collations” on Shard Chains.

I also understand that Quadratic Sharding occurs when the Main Chain is broken into Periods that each comprise of say 5x Blocks each, and where each Block comprises the State Root of a Merkle Patricia Trie (MPT), which contains a Validator Manager Contract (VMC) that provides On-Chain Governance (Parliament) to allow Validators to Vote On-Chain. Users join with a Validation Code Address and are referred to as Validators (eligible to be chosen as a Collation Proposer) of Sharding Chains by Depositing their Stake in the VMC of the Main Chain. After their Validation Code Address is Recorded in the Global Validator Pool list they wait for their Validation Code Address to be Sampled by the VMC from the Validator Pool list, which converts them from being Validators into being referred to as a Collator (Collation Proposer) that Watches a specific Shard Chain for a specific Period. The Collator Validates recent Collations and sends a Transaction to the VMC on the Main Chain, which immediately records the Collation Header Hash on the Main Chain VMC as Proof that the Collation Header (of its associated Shard Chain State Root) is Valid (for the same Period that the Collator was Sampled to be a Collation Proposer).

Based on the above process, I think in the Introduction section of the Sharding Specification should be changed, where it says “… validator could theoretically at any time be assigned the right to create a block on any shard …”. I think it should instead state something like “… validator could theoretically at any time become a collator who is assigned the right to create a collation on a specific shard …”.

1 Like