How to update state between shards

Hi, i’m new with ethereum sharding, I’m confused with state update during shards, please correct me if i’m wrong and any advice would be appreciated.

According to Ethereum Sharding General Introduction :

Validators submit collation header to the root chain

Does this mean root chain only has collation header? if so, what if A spend 1 eth (let’s say A only has 1 eth) on shard M and spend same 1 eth on shard N? (double spend). Does shard N knows A’s state?

Each unit of ETH (and each object more generally) only exists on one shard at any particular time.

Hi buterin, thanks for replying.

Does this mean this is more like a side-chain?

Object only exists on one chain, if he wants to switch to other chain, it must settlement account on current chain, and then register to other chain.

For an object to be transferred to another chain, you need a cross-shard transaction. This should take a few minutes to process.

Any documents or resources about cross-shard transaction?

I think i found related docs.
Merge blocks and synchronous cross-shard state execution

Also Sharding FAQ and several approaches/discussions posts with “cross-shard” tag.

Thanks hwwang.:grinning: