Basic Transaction Flow
Last updated
Last updated
Comparing basic transaction flow between OP Stack (left) and Facet (right) is again a useful starting point for understanding key interactions with Facet architecture, specifically illustrating two key differences:
Facet's elimination of the centralized Sequencer
Facet users transacting directly on Ethereum L1
On a typical L2, users must change their wallet connection from Ethereum to the rollup's network. You see that above as the "Users" are positioned within the OP network. Users transact while on that separate network by sending transactions to the rollup's centralized Sequencer. Rollups typically do not have neutral sequencing. Instead, they have an allow list of EOAs who are privileged to sequence rollup transactions.
This is the “centralized sequencer” issue, where a single entity or a small group controls the transaction history relevant to the L2.
Those transactions are ordered and bundled by a centralized sequencer, which then sends the batch of L2 transactions to Ethereum as a single L1 transaction. L1 Validators then process these transactions alongside other native Ethereum transactions, finalizing them into blocks in Ethereum's transaction history. L2 nodes fetch L2 batches from Ethereum TX history (data availability) to derive the L2's state; this makes the L2 a "rollup." L2 users/dApps can query L2 nodes to read the rollup's current state.
With Facet, users stay on Ethereum. This native Ethereum user experience is a unique benefit for Facet. Users simply send regular Ethereum transactions containing Facet payloads (see Facet Transactions) to the Facet Inbox Address (0x000...face7
). Note - Facet eliminates the centralized rollup sequencer; each transaction is atomically-sequenced by Ethereum's native consensus mechanism (validators, searchers, builders), an approach known as "Based Sequencing."
”A rollup is said to be "based," or L1-sequenced, when its sequencing is driven by the base L1. More concretely, a based rollup is one where the next L1 proposer may, in collaboration with L1 searchers and builders, permissionlessly include the next rollup block as part of the next L1 block.”
- Justin Drake
Once Facet transactions are sequenced into L1 transaction history, the remaining architecture operates in similar way to conventional rollups. Facet nodes fetch Facet transactions from an Ethereum node to deterministically compute Facet state. Finally, Facet state can be queried by Facet users and dApps via Facet geth.