By Nick White
Source: Twitter
Data availability sampling is a major breakthrough in blockchain scaling, but it is difficult for many to understand.
Don't worry, it's actually quite simple. You can think of it like flipping a coin.
Suppose I have two coins, one is always heads and the other is either heads or tails.
I'll give you one of two coins. How do you know which coin I gave you?
very simple. You just need to toss the coin multiple times.
If the coin has only heads, it will always land on heads.
If the coin has both heads and tails, there is only a 50% chance of landing heads each time it is tossed.
So every time you toss a coin and it lands heads, you have 50% more confidence that it is a heads-only coin.
Repeat this process 20 times and you will be 99.9999% confident.
This is how data availability sampling works.
There are two types of blocks: data-available and data-unavailable blocks (same heads and tails and coins with both heads and tails).
A block producer gives you a block, and for your security you need to know which one it is!
how do you do it By sampling the block multiple times (tossing a coin).
Every successful sampling (coin lands heads) increases your confidence by 50% in getting a usable block of data.
You do this repeatedly until you are 99.99% confident that the block is valid.
Why is this a major breakthrough in blockchain scalability?
Larger blocks mean more throughput, however it also means nodes need to download more data.
Normally, to make sure a block is usable, you have to download the entire block.
Data availability sampling allows you to ensure that a block is available by downloading only a tiny sample of it.
If you have a 4MB block and you need 20 samples of 1kB each, you only need to download ~5% of the total block to be 99.9999% sure it's usable.
This is a 200x improvement.
Also, it becomes more and more efficient as the blocks get larger.
This is one of the core technologies we are building @CelestiaOrg and is a fundamental part of the modular blockchain stack.
To learn more, I recommend checking out our "Learn Modularity" page https://celestia.org/learn& .