by @0xdabaojian
This post proposes a design for a consensus-based preconfirmation protocol with multiple concurrent proposers. It aims to enhance censorship resistance and experiment with multiple concurrent proposer schemes out of the protocol, potentially paving the way for future in-protocol implementations.
Current designs for preconfirmation protocol on L1 and L2(aka based preconfirmation) typically involve a single preconfirmer, be it the L1 proposer or a chosen delegatee. This design expands the single leader design by introducing a preconfirmer consensus set, drawing inspiration from FOCIL, Execution Consensus Separation and Multiplicity: A Gadget for Multiple Concurrent Block Proposers.
This design aims to increase censorship resistance by distributing the preconfirmation process across multiple entities for both L1 and L2 preconfirmations. It also serves as a testbed for multiple concurrent proposer schemes, which could inform future protocol-level implementations.
<aside> đź’ˇ Notes:
PartialBlock
that is a subset of L1 fullblock. In this regard, it bears reseblance to FOCIL, where inclusion list is only a part of the full block, and Multiplicity, where the design is not prescriptive about the block being built only with the “special bundles”PatialBlock
. be it TOB or BOB, is up for further discussion.A Fast Finality Preconfirmer Consensus Set:
Shared Mempool:
Current Slot Preconfirmer:
PartialBlock
.Conditional Tipping Mechanism:
Proposer Commitment Sidecar
Trusted Relay:
Block Ordering Algorithm:
Inclusion Threshold:
Proposer Opt-in via Restaking: Proposers stake in a restaking protocol to signal their participation in the preconfirmation system. This commitment ensures they'll honor their preconfirmations.
Note: Staking not only enable one proposer to become a PartialBlock
proposer, but also participate in PartialBlock
creation and attestation while other opt-in proposers are proposing