\( \)

Table of contents

  1. Terminology
  2. Setting our north star
  3. Synchrony requirements

We often hear that based rollups are presented as the solution to fragmentation. At the same time, various initiatives, such as the Open Intents Framework are actively addressing interoperability challenges.

The goal of this series is to clarify the concept of composability, enabling a deeper understanding of the differences, limitations, and trade-offs among these approaches. This understanding will help shape Fabric’s objectives as we move forward.

Note: Much of the terminology used is influenced by the writings of Jon Charbonneau and James Prestwich.

Terminology

  • RAR_A: Rollup A
  • RBR_B: Rollup B
  • TL1T_{L1}: Transaction 1 on L1L1
  • TA1T_{A1}: Transaction 1 on RAR_A
  • TB1T_{B1}: Transaction 1 on RBR_B
  • BA1B_{A1}: Block 1 on RAR_A
  • BB1B_{B1}: Block 1 on RBR_B
  • Gateway: A third party with Constraint and Commitment submission authority granted by the L1 Proposer.
Term What it means (adapted from we’re all building the same thing)
Atomic All or nothing
Inclusion Transactions included when sequencing a rollup
Execution Transactions execute as intended on a rollup
Synchronous At the same time (slot height)
Asynchronous At a different time (slot height)
Composability Different contracts may access each other’s state and take actions dependent upon it
Universal Across rollups and the L1

Each of these terms can be thought of us building blocks that when combined provide different guarantees. The following are some examples of what is possible by combining these. In the later sections we’ll examine them in greater detail:

Combination Example
Atomic Inclusion TA1T_{A1} will be sequenced on RAR_A if and only if TB1T_{B1} is sequenced on RBR_B
Atomic Execution TA1T_{A1} on RAR_A will execute if and only if TB1T_{B1} on RBR_B executes as intended successfully
Asynchronous Composability TA1T_{A1} on RAR_A executes using state from RBR_B which whose state settles at a different slot
Synchronous Composability TA1T_{A1} on RAR_A executes using state from RBR_B all within the same slot
Universal Synchronous Composability TA1T_{A1} on RAR_A executes and then TL1T_{L1} on the L1 executes using state from RAR_A all within the same slot

Setting our north star

Since Fabric is concerned with accelerating based rollup development, it is important to explicitly define the goals that are achievable by going down this path. Given L2 to L2 synchronous composability is achievable without based sequencing, the overarching goal and value prop of based rollups is to achieve synchronous composability between the L1 and other L2s, which has been coined as Universal Synchronous Composability (USC).

As Justin Drake puts it:

In other words users can make arbitrary synchronous calls between [rollups], seamlessly interleaving execution across rollups. - Reddit AMA

Achieving this is only possible with based sequencing because L1 proposers are the only entity with a write-lock on the L1, which is necessary to guarantee they can simultaneously sequence the L1 and based rollups.

Synchrony requirements

If achieving USC is our goal, let’s first start with what’s required for synchrony.

cross-chain synchronous composability definitionally requires some type of shared sequencer for that slot height. Chains without one can only ever have asynchronous composability - Jon Charbonneau

The table below summarizes the requirements for synchrony. In the following sections we’ll understand that while based sequencing is a requirement for synchrony between the L1 and L2s, it isn’t sufficient for composability. For that we’ll need to introduce either cryptographic or cryptoeconomic solutions.

Synchrony between Requirement
L2<>L2 Shared L2 sequencer
L1<>L2 Based Sequencer
L2<>L3 + L3<>L3 Shared L3 sequencer

Note that a shared L2 sequencer includes your non-based interoperability solutions e.g., Espresso or the Superchain. Additionally, a shared L3 sequencer could be a shared L2 sequencer or more simply a centralized L2 sequencer (see Spire’s post).

> Step 1 - Atomic Inclusion


Table of contents