# Prysmatic Labs Main Sharding Reference Table of Contents ================= - Sharding Introduction - Basic Sharding Idea and Design - Roadmap Phases - The Ruby Release: Local Alphanet - The Sapphire Release: Ropsten Testnet - The Diamond Release: Ethereum Mainnet - Go-Ethereum Sharding Alpha Implementation - System Architecture - System Start & User Entrypoint - The Validator Manager Contract - Necessary Functionality - Depositing ETH and Becoming a Validator - Determining an Eligible Proposer for a Period on a Shard - Withdrawing From the Validator Set - Processing and Verifying a Collation Header - Validator Sampling - Collation Header Approval - Event Logs - The Validator Client - Local Shard Storage - The Proposer Client - Collation Headers and State Execution - Peer Discovery and Shard Wire Protocol - Protocol Modifications - Protocol Primitives: Collations, Blocks, Transactions, Accounts - The EVM: What You Need to Know - Sharding In-Practice - Fork Choice Rule - Use-Case Stores: Proposers - Use-Case Stories: Validators - Use-Case Stories: Supernodes - Current Status - Security Considerations - Not Included in Ruby Release - Bribing, Coordinated Attack Models - Enforced Windback - Explicity Finality for Stateless Clients - The Data Availability Problem - Introduction & Background - On Uniquely Attributable Faults - Erasure Codes - Beyond Phase 1 - Cross-Shard Communication - Receipts Method - Merge Blocks - Synchronous State Execution - Transparent Sharding - Tightly-Coupled Sharding (Fork-Free Sharding) - Active Questions & Research - Separation of Proposals & Consensus - Selecting Eligible Validators Off-Chain - Community Updates & Contributions - References