2

All Ethereum blocks contain a stateRoot field - That is, the root hash of the world state trie. I have two questions about that.

From what I've understood through all the reading I've done on Casper CBC, there will be state changes occuring in parallel (that of each shard) so no one shard will have a correct global state (with regards to other shards) and be able to have a merkle proof of that state self-contained within the shard.

By this I mean, if I perform a state change in shard A, from block x - 1 to block x, and at the same time a state change occurs in shard b from block x - 1 to block x, the global state hashes of both shards would not match.

As such, does that mean cross-shard transactions are going to have to fit under the current tps rate? Considering they'd have to occur under a block that affects all shards, which would require every shard to temporarily join the main chain and then split back off?

2

From what I've understood through all the reading I've done on Casper CBC

I'm assuming you're referring to Vlad's Casper CBC paper? Vlad has proposed a number of sharding schemes but I don't think any of them have been formally published as of today.

does that mean cross-shard transactions are going to have to fit under the current tps rate?

In short, yes that is one way to put it. To rephrase a bit, assuming we have a tree-like sharding structure, any cross-shard transaction that routes through the root shard is going to be bottle-necked by the tps rate of the root shard.

which would require every shard to temporarily join the main chain and then split back off?

It depends on what you mean by "temporarily join". I'm assuming by "main chain" you are referring to the root shard. Vlad has proposed a tree-structured sharding scheme where you can create merge blocks across shards where there exists a branch between the shards. For example, assume a sharding structure with only three shards: a root shard R and two children shards A and B. In order to do a cross-shard transaction between A and B, you can create a merge block among R, A, and B.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.