celestiaorg / celestiaorg/nmt

Use leaf hashes only

Open
#212 3 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.