Skip to content

Commitee-based security for optimint rollups without BFT #220

Closed

Description

@musalbas

We may want to implement functionality to allow optimint rollups to have committee-based security, whilst at the same time avoiding the need to use a full-fledged BFT protocol such as Tendermint BFT, because optimint already uses an underlying data availability layer such as Celestia for ordering of blocks.

Suppose a rollup has (a) a set of block producers, and (b) a leader selection algorithm that picks one block producer from the set, to produce block n.

After block n is created, all of the other block producers check the validity of block n and sign the block if they attest that all the transactions in the block are valid. If there are enough signatures (e.g. say 2/3), then the block is considered approved by the committee.

These signatures could be broadcast over the P2P network, rather than being posted on-chain, thus the committee-based confirmation could be immediate. If the committee double signs conflicting block headers of a same height, then this ought to cause clients to abort and revert back to social consensus, similar to Tendermint. Alternatively, the signatures could be posted on-chain in rollup block n+1, thus creating a canonical chain in the case of conflicting block headers (thanks to the total ordering provided by the data availability layer), with no need to revert back to social consensus.

This design has similarities to Narwhal, except that validators sign to attest to the validity of the block, not just the availability.

Activity

  1. liamsi commented on Jun 30, 2022

    @liamsi
    Contributor

    Alternatively, the signatures could be posted on-chain in rollup block n+1, thus creating a canonical chain in the case of conflicting block headers (thanks to the total ordering provided by the data availability layer), with no need to revert back to social consensus.

    This would be very much like the tendermint blocks/headers look like. If the goal here is to have compatibility with tendermint IBC clients. this appraoch would be favourable. The signatures materialize in the next block as LastCommit:
    https://github.com/tendermint/tendermint/blob/60881f1d06cf69bfc1fb2a27c18d0e4061fc19d7/types/block.go#L47
    and they are committed to in the header here:
    https://github.com/tendermint/tendermint/blob/60881f1d06cf69bfc1fb2a27c18d0e4061fc19d7/types/block.go#L343

  2. nashqueue commented on Mar 17, 2023

    @nashqueue
    Contributor

    Alternatively, the signatures could be posted on-chain in rollup block n+1

    Why does it have to be n+1 and not n?

    These signatures could be broadcast over the P2P network, rather than being posted on-chain, thus the committee-based confirmation could be immediate.

    Could it be both to have the benefit of both?

  3. musalbas commented on Mar 27, 2023

    @musalbas
    ContributorAuthor

    Why does it have to be n+1 and not n?

    I think it could be n.

    (I'm wrong about the committee-based confirmation having immediate finality btw--I believe that'd require BFT.)

  4. Manav-Aggarwal commented on Jun 27, 2024

    @Manav-Aggarwal
    Member

    Closing since committee-based approaches aren't a priority.

  5. musalbas commented on Jul 7, 2025

    @musalbas
    ContributorAuthor

    AFAIK this is now being worked on again. @Manav-Aggarwal can you link the new issue?

  6. tac0turtle commented on Jul 9, 2025

    @tac0turtle
    Contributor

    the issue needs to be updated but this was the original #2308

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