System Overview
Last updated
Last updated
Cero network abstracts operations on DA and L1 networks in such a manner that, multiple DA & L1 networks can be added as extension to the existing framework while continuing to provide existing options. This allows a shared service to multiple ecosystems at once, even if there are using different L1s, DAs, or perhaps not using them at all.
Cero network relies upon the principle that a single sequencer can extend its service to the entire network in order to make most of its resources and commit continuity to the entire network. Cero public network has its own common ledger which forms on a common consensus model, while some Rollups are also free to setup Cero's dedicated network, which would just be a smaller set of nodes eith their selective participation. This flexibility has been chosen keeping in mind that many of the Rollup types, especially the private Rollups.
It is important to note that we have created the Cero codebase in a modular architecture which has shaped its core framework to support multiple settlement & DA layers. While it supports only one at the moment, we will make use of the same framework to support additional settlement & DA layers as well.
For a Rollup to communicate with the Cero network, following customizations are expected to be in place.
RPC Node - A Rollup stack's RPC component needs to integrate with Cero in order to forward transactions to the Cero network. It needs to bypass its own local or the centralized mempool of transactions and forward it to Cero's mempool instead to make the transaction forwarding and sequencing truly decentralized without any central service in between.
Rollup's Sequencer/Executor Node - Rollup's centralized sequencer, or better termed as executor node needs to have customizations such as -
For executing ordered transactions, it needs to strictly pick continuous transactions from Cero network based on preconfirmations, add them to its block without dispute, and execute them as well.
It is also important to customize the Rollup sequencer to start and cut its batches according to Cero's batches in perfect synchronization.
The Sequencer or its side components responsible to push data to L1 Rollup contract need to be modified as well according to the new interfaces of modeifed contract as described below.
Smart-contract Customizations - Rollup's contracts would also require customizations so to integrate with the Cero sequence contract. They no longer would receive the batch number and cut off from the Rollup sequencer, instead whenever information is pushed regarding batch like state root, L1 info tree, exit tree, etc. it should all be pushed against a specific batch number while the Rollup contract shall reference the Cero sequence contract instead for knowing the actual batch.
For a clear view of the data flow between the components, please look at data flow information and for more on smart contracts please look at L1 contracts section.