EspressoSystems / espresso-sequencer

96 stars 69 forks source link

Investigate NMT integration options #331

Closed nomaxg closed 1 year ago

nomaxg commented 1 year ago

In the sequencer block, we need an NMT namespaced by VM ID so that rollups can easily prove inclusion of transactions that belong to them.

philippecamacho commented 1 year ago

See Celestia's implementation: https://github.com/celestiaorg/nmt cc @nomaxg

nomaxg commented 1 year ago

@fkrell mentioned this Rust implementation as well: https://github.com/Sovereign-Labs/nmt-rs/tree/master/src, not sure if it is persistent yet (it uses in memorydb)

nomaxg commented 1 year ago

Proposal here: https://www.notion.so/espressosys/Namespaced-Merkle-Tree-Proposal-5eda9375ffb44c998ae2f795d1e9bcf1?pvs=4

sveitser commented 1 year ago

Here is the post about benchmarks of rescue vs poseidon: https://ethresear.ch/t/performance-of-rescue-and-poseidon-hash-functions/7161

Poseidon is (a bit less than) 3 times faster in these benchmarks.

The last comment mentions for their later, more optimized versions poseidon is about 4 times faster.

philippecamacho commented 1 year ago

Closing issue as it has been moved to the Done column for the Espresso Testnet V2 project.