What are the differences between heterogenous sidechains and shards?
Heterogeneous side chains are independent blockchains that are running the same version of the Casper protocol, but with slightly different options, such as bond amounts, and transaction costs. Providing for native support for heterogenous side chains enables ‘customization’ of the system to support specific requirements such as IP rules (content stored on servers must be located geographically in country), or high performance chains that may be more centralized, but provide greater transaction throughput and lower confirmation times. We envision a chain explorer that will help dApp developers choose which side chain they wish to send their transaction to. Each side chain will have its own genesis block. Tokens in the side chain will be ‘backed’ by the native staking token of the Casper blockchain in the same way currency is ‘backed’ by gold. Only token transfers of the native staking token are supported in cross-chain transactions. Code cannot migrate. Each side chain could have its own governance also if desired.
Shards distribute the load across nodes in the network, but do not provide heterogeneity. All the nodes in a shard are part of a single chain. Theoretically, any transaction, including code can move across shards. Sharding as described in Vlad’s Standford presentation - is still very much in research, and CasperLabs does not plan on implementing sharding as part of our initial production launch. One can envision though, that each side chain could choose to implement sharding at some future date when it is ready. We see this as a natural evolution of the protocol over time.