Use leaf hashes only
- Dominant language
- Go
- Stars
- 122
- Forks
- 53
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 5
Description
NMT is built on top of some existing data structure. It is used to prove the absence or presence of some subset of data. In the case of Celestia, it is proving shares within an extended data square.
As the square already contains the underlying data, it is an unnecessary allocation of memory to also store the entire data in the leaves. Rather, in `Push` the hash of the contents should be provided alongside the namespace ID. Note the hashing function for the leaves can be different for the hashing function used for the rest of the tree. Doing this will keep the tree as lightweight as possible.
Contributor guide
Research direction
Start at the NMT Push operation described in the issue and trace how leaf contents are stored and used for proofs. Verify the existing leaf and tree hashing paths, then confirm that supplying leaf hashes alongside namespace IDs avoids retaining the full data while preserving presence and absence proofs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- cryptography
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100