Repository navigation
Closed
Labels
Description
IBC for roll up
The goal of this is to make rollkit IBC-compatible so that a rollkit can IBC to other cosmos chain. This means we must have support for tendermint header and cosmos state-verify scheme.
- Mapping from rollkit header to tendermint header can be possible with just a modification of the signing byte that sequencer has to commit. The mapped tendermint header can be fetched via light block query (normaly used by relayer) as rollkit fully implemented tendermint full node api.
- Since tendermint header requires a defined valset and Rollkit right now has no actual valset as it is centralized and controlled by a sequencer which completely replace the role of the valset. The tendermint header used for IBC will be signed by the rollkit's sequencer. Along with that, the rollkit's sequencer will be ebstablished as the valset of rollkit chain on the counterparty chain's client.
- rollkit uses cosmos-sdk for the app layer. Therefore, it inherit cosmos state-verify scheme.
We haved successfully modified rollkit so that it can IBC to a cosmos chain. The changes we made are the followings:
- For tendermint light client compatibility:
- Have the sequencer sign the tendermint consensus vote
- Change ToABCICommit: add ValidatorAddress and timestamp field in CommitSig. This needed for the counterparty verifying of
MsgUpdateClientsent from rollkit chain.
- Update app hash in state at every block, currently the app hash is not being updated per block
Questions:
- Do you guys have plan for implemnting multiple sequencer / validator like mentioned in this issue in order to enhance rollkit security as well as ibc security.
- Rollkit right now has no concept of valset as it is centralized and controlled by a sequencer which completely replace the role of the valset. BUT the val set is still being mentioned in various places like the
SignedHeaderor valset spec. Is this an effort to make rollkit ibc compatible or just to imitate tendermint for abci compatible ?
cc @nashqueue
Reacted by Federico Kunze Küllmer
Activity
nashqueue commentedon Nov 11, 2023
Thank you for this comprehensive issue!
We already had a decentralized seq scheme implemented, which used a basic round robin leader selection. We decided that it is best not to improve this scheme, remove it, keep the centralized sequencer and instead delegate it to another entity. You can follow the discussion and proposed solution here: #1208
This is an artifact of Rollkit using types defined by cometbft . We are unfortunately using a bunch of names interchangeably like validator, aggregator , block producer and Seqeucner .
Both
IBC for rollkit (JTMB IBC) (#1424)