Closed noot closed 1 year ago
I see this problem as being fundamentally similar to once Celestia has had to solve: how do you prove that a portion of the data is all of that portion of the data.
Celestia has created namespaced merkle trees for this purpose, what we call a chainid is fundamentally what they call a namespace. It seems to me that given we have the same problem, the same basic solution is probably the correct way forward? I also think this is broadly similar to your idea #4.
We should sync with some Celestia folks on this, in the short term we might want to do the dumb #1 as holdover
with #137, we are now using the rust sequencer. however, the transaction verification was removed to be done with this task.
Summary:
data_hash
, which is a merkle root of all the transactions in a block.Possible solutions:
data_hash
b. re-calculates and verifies the commitment using its batch of data c. verifies that the commitment was included inside the block'sdata_hash
this seems like a good solution, but we'll need to update the application validator logic to verify that the commitment txs are valid commitments before voting yes for that block.data_hash
is constructed - don't think we want to or need to go this route though