IBC Precheck, ABCI++ and DAS

Traditional IBC clients require non-interactive proofs for incoming packets.

Henry De Valence proposed adding a functionality to IBC to enable interactive proofs to be layered on top of non-interactive proofs.


I’m proposing a variant of IBC recheck concept for Celestia rollups where the validator set can opt into running Celestia light nodes for rollups and interactively check that Celestia validators have published the data.

This type of light client can be implemented in any Cosmos SDk chain > 0.50 by adding an opt in process block hoot that queries Celestia light nodes over RPC before pre-voting a block that contains an client update for a chain that is Celestia PreCheck enabled.

ABCI++ enables validators to run local validator specific code before a block is confirmed. This can be used for price oracles, order matching or other use cases. Celestia IBC recheck is another example of this kind of local processing.

My motivation for this post is provide documentation of this idea. I’m not working on it and if anyone wants to take it up please feel free. Happy to help if there are questions.


Hey @zmanian, check out this prototype that implements the idea via VoteExtension. It can be generalized further to support IBC prechecks via middleware it may provide

1 Like