I am confused about some of the more technical aspects of sharding and how it relates to rollups, hoping someone could help me out please. I understand the premise and basic structure of rollups and sharding, but technical specifics keep coming up that elude me.
- Sharding - When I read about it, it says that sharding means to split the state. I'm unsure of how this works. Given as the state means the accounts database of which the state root of its corresponding merkel-patricia-trie is the world-state, im not sure how this can be split? Wouldn't splitting it up mean that each shard only has a part of the merkle-tree, and how can it re-calculate the state-root to achieve consensus? What if you want to make a transaction involving 2 accounts of which their information is on different-shards? Do you need to use the cross-shard receipt protocols?
- Sharding Block verification? Vitalik's post about sharding asks the question about having a large number of validators validate blocks. While it makes sense to me that you could split-up the responsibility of validating blocks, doesn't that still create a bottleneck on the nodes that are putting together the blocks? Especially as the blocks still have gas-limits, and state size-growth is the issue? I'm confused on what exactly it means to have "executable" vs simple "data-storage" shards.
- Rollups - I'm confused about data availability, and why the rollups need the data. In my research people keep saying that rollups have a data-availability issue where the original data needs to be somewhere so that the rollup can be validated. However, if the rollup has to go on-chain alongside the original-data it's supposed to compress, i'm not sure how that makes scalability any better?
- Sharding as a data-availability layer? I'm still confused as to what this means, and how this relates back to my first-question about the function of shards. If the rollup is "parked" on the data-shard, how does it make it's way onto the chain itself, and what does it mean for it to be on the shard? Does this make the rollup-data stored independent of the state? Someone explained it to me kind of like this - The shards hold only data related to the rollup. Then the chain itself only contains a reference to which data shard the rollup is on. Because it's a reference not the data itself it's therefore smaller and the scalability goes up. This might be wrong and is kinda confusing as to how it relates back to an execution layer.
Any help would be greatly appreciated. I can't seem to find a great explicit answer to what it means to have sharding as a data-availability-layer for L2-Rollup systems.
Thanks
[link] [comments]
You can get bonuses upto $100 FREE BONUS when you:
π° Install these recommended apps:
π² SocialGood - 100% Crypto Back on Everyday Shopping
π² xPortal - The DeFi For The Next Billion
π² CryptoTab Browser - Lightweight, fast, and ready to mine!
π° Register on these recommended exchanges:
π‘ Binanceπ‘ Bitfinexπ‘ Bitmartπ‘ Bittrexπ‘ Bitget
π‘ CoinExπ‘ Crypto.comπ‘ Gate.ioπ‘ Huobiπ‘ Kucoin.
Comments