# 5.2.1 Random Sampling

The DA block contains a header and body. The header is relatively small and can be downloaded and checked directly, whereas the body is much bigger, which is the one needed to be sampled randomly to verify data availability.When a block is produced, it is sliced into * k* ∗

*fragments by size, and then 2*

**k***∗ 2*

**k***fragments are generated by applying the 2-dimension RS (Reed-Solomon) code. Then the Merkle trees are created for each row and column of each fragment, so there are 2*

**k***+ 2*

**k***= 4*

**k***Merkle trees.*

**k**These 4* k* Merkle roots are finally formed into one Merkle tree and the root of the tree is used as the root of the whole block, and we combine the root and other metadata into the header. Then the header and original body are broadcast through the P2P network. When other DA nodes receive the block, they will repeat the 2-dimension RS encoding the same way above and calculate the root, then accept it if it is the same as the one in the header.

The validators of the settlement layer receive the header from the DA block proposer and connect to at least one of the DA nodes. These validators randomly download s of the fragments and their Merkle paths to the block root. If all of those fragments can be acquired successfully, the sampling validator can confirm the availability of the DA block at a very high possibility.

That is also the minimal probability that one can correctly recognize an unavailable DA block. And if we have * N* active validators in the committee of the settlement layer and at most

*of them are malicious, which is less than*

**f***/3. Also, we need to collect*

**N***-*

**N***votes to confirm the DA block. Therefore, at least f+1 validators of the*

**f***-*

**N***honest ones are required to find out the unavailability to not confirm the invalid DA block. So the unavailable DA block will be recognized by the network at the probability below:*

**f**In NERO, we have * N* = 21,

*= 6, so the probabilities can be calculated under different*

**f***and*

**k***below*

**S**We can see that when * k* = 128 and

*= 15 any unavailable DA block will be revealed at the probability of almost 100%, and the sampling validator only needs to download*

**S****0.09**% of the original data in such condition.

Last updated