celestiaorg / celestiaorg/celestia-node
More efficient block reconstruction in withholding attacks via chunk bitmap
- Dominant language
- Go
- Stars
- 996
- Forks
- 1.1k
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 34
Description
Right now, if there's a withholding attack, reconstruction occurs by full nodes "bruteforcing" light nodes with different chunk requests via bitswap, which is very slow for larger blocks, as for a 256x256 square, this would be 100,000+ chunks.
We can make the protocol more efficient by having full nodes ask light nodes for a bitmap of the chunks they have.
Full nodes would send light nodes a request `QueryKnownChunks` to a light node. The light node would respond with a bitmap where each bit would represent a different chunk, and if that bit is set to `1`, then the light node has that chunk. The full node would then be able to query the light node for the specific chunks it has, rather than bruteforcing them.
Contributor guide
Assessment
This issue has not been assessed yet.