Skip to content

IBC for roll up #1319

Closed
Closed

Description

@trinitys7

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 MsgUpdateClient sent 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 SignedHeader or valset spec. Is this an effort to make rollkit ibc compatible or just to imitate tendermint for abci compatible ?
    cc @nashqueue

Activity

  1. nashqueue commented on Nov 11, 2023

    @nashqueue
    Contributor

    Thank you for this comprehensive issue!

    Do you guys have plan for implemnting multiple sequencer / validator like mentioned in #220 in order to enhance rollkit security as well as ibc security.

    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

    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 SignedHeader or valset spec.

    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 .

    Is this an effort to make rollkit ibc compatible or just to imitate tendermint for abci compatible ?

    Both

  2. moved this from Backlog to Done in Evolveon Nov 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions