Why are we keeping so much extra data inside a block? Isn't it a waste of space?

Created by Mayank Singhal, Modified on Mon, 06 Jun 2022 at 06:04 PM by Mayank Singhal

Redundancy of data is extremely important to give data availability guarantees. Suppose we have 4 data chunks. If the block producer wants to hide a particular chunk out of the 4 data chunks, then being a light client, the probability of querying a data chunk at random and selecting the exact chunk the producer wants to hide is 1/4. Now suppose the block producer erasure codes the chunks such that 4 chunks are extended to 8 chunks in a way that any 4 out of 8 chunks are sufficient to generate the entire data. Now, to even hide a particular chunk, the producer needs to make sure 5 out of 8 chunks are hidden, otherwise, revealing even one more chunk reveals the entire data. Now, a light client randomly querying a chunk has a probability of 5/8 of choosing a data chunk that the producer wants to hide, hence having a much higher chance of catching a data hiding attempt, even with a single query. 

Repeating such querying multiple times allows us to amplify the probability of detecting data availability attacks. Hence, redundancy is very important, even if it comes at the cost of increasing storage and communication bandwidth requirements.



Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select atleast one of the reasons

Feedback sent

We appreciate your effort and will try to fix the article