celestiaorg/blobstream-contracts

Support proving share commitments

rach-id opened this issue · 0 comments

Currently, the blobstream contracts implementations only support proving a set of shares' inclusion to a data root tuple root. This allows building rollups that leverage the sequence of spans design.

However, proving share commitments is still no supported. This means that rollups that use a blob share commitment to reference their data won't be able to prove its inclusion.

Furthermore, as outlined in the blobstream rollups documentation, using the sequence of spans approach is more beneficial. So, the share commitment approach will not be used and there is no need to support it. However, if there are new ways to build products that make use of the share commitment, it would be nice to discuss them in this issue and decide based on that.

In case we decided to do the implementation, the following will need to be done:

  1. The verification part of https://github.com/celestiaorg/nmt/pull/260/files, which include the implementation of ComputeSubtreeRoot(), VerifySubtreeRootInclusion(), ToLeafRanges() needs to be ported in solidity.
  2. The CommitmentProof along with its verification will also need to be ported from https://github.com/celestiaorg/blobstream-node-api/pull/1/files to solidity
  3. We will need to implement the ability to generate the share commitment from the subtree roots to be able to authenticate the proofs