Boba Network logoBoba Network

Boba is an EVM-compatible Optimistic Rollup forked from Optimism and built by the Enya team as core contributors to the Boba Foundation.
Value Locked

$25.81 M

5.88%

Canonically Bridged
$25.81 M (100%)
Externally Bridged
$0.00 (0%)
Natively Minted
$0.00 (0%)
  • Tokens
  • Daily TPS
    0.0136.71%
  • 30D tx count
    21.02 K
  • Stage
    Stage 0
  • Type
    Optimistic Rollup
  • Purpose
    Universal
  • Chart

    ...

    Tokens

    Choose token

    Canonically Bridged Tokens (Top 15)

    Boba Token (BOBA)
    Ether (ETH)
    USD Coin (USDC)
    OMGToken (OMG)
    Wrapped BTC (WBTC)
    Tether USD (USDT)
    Dai Stablecoin (DAI)
    SushiToken (SUSHI)
    Fantom Token (FTM)
    Basic Attention Token (BAT)
    Frax (FRAX)
    ChainLink Token (LINK)
    Frax Share (FXS)
    BUSD (BUSD)
    UMA Voting Token v1 (UMA)
    Milestones

    Boba launches L2 on BNB

    2022 Nov 1st

    Boba launches on BnB.

    Learn more

    Call data compression

    2022 Oct 8th

    The Boba Tree From (v0.1.0) release introduces Brotli compression for call data.

    Learn more

    Boba launches L2 on Avalanche

    2022 Sep 21st

    Boba launches on Avalanche.

    Learn more

    Boba launches L2 on Moonbeam and Fantom

    2022 Jun 2nd

    Boba launches on Moonbeam and Fantom.

    Learn more

    Hybrid Compute

    2022 Mar 18th

    Boba’s proprietary technology enables dApps that trigger code executed on web-scale infrastructure.

    Learn more

    BOBA Token launched

    2021 Nov 18th

    BOBA token launched by OMG Foundation.

    Learn more

    Mainnet launch

    2021 Sep 20th

    Layer 2 Optimistic Rollup based on the Optimism codebase is live on Ethereum.

    Learn more
    Risk analysis
    Fraud proof system is currently under development. Users need to trust block Proposer to submit correct L1 state roots.
    Sequencer failureState validationData availabilityExit windowProposer failure

    State validation

    In development

    Currently the system permits invalid state roots. More details in project overview.

    Data availability

    On chain

    All of the data needed for proof construction is published on chain.

    Exit window

    None

    There is no window for users to exit in case of an unwanted upgrade since contracts are instantly upgradable.

    Sequencer failure

    Enqueue via L1

    Users can submit transactions to an L1 queue, but can’t force them. The sequencer cannot selectively skip transactions but can stop processing the queue entirely. In other words, if the sequencer censors or is down, it is so for everyone.

    Proposer failure

    Cannot withdraw

    Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen.

    Rollup stage
    Boba NetworkBoba Network is a
    Stage 0
    Optimistic Rollup.
    Learn more about Rollup stages
    Please keep in mind that these stages do not reflect rollup security, this is an opinionated assessment of rollup maturity based on subjective criteria, created with a goal of incentivizing projects to push toward better decentralization. Each team may have taken different paths to achieve this goal.
    Technology

    Fraud proofs are in development

    Ultimately Boba Network will use fraud proofs to enforce state correctness. This feature is currently in development and the system permits invalid state roots. Users have the ability to run a validator software and compute valid state roots locally, but cannot act on them on chain.

    • Funds can be stolen if an invalid state root is submitted to the system (CRITICAL).

    1. The incentive contract for verification proofs is disabled - Boba FAQ
    2. Checking Boba Mainnet for Fraud - Boba Optimism repository

    All transaction data is recorded on chain

    All executed transactions are submitted to an on chain smart contract. The execution of the rollup is based entirely on the submitted transactions, so anyone monitoring the contract can know the correct state of the rollup chain.

    1. Data Availability Batches - Paradigm Research
    2. CanonicalTransactionChain.sol#L219 - Etherscan source code, appendSequencerBatch function
    State derivation
    Node software

    Node software source code can be found here.

    Compression scheme

    They utilize a general-purpose data compression algorithm known as Brotli for calldata compression.

    Genesis state

    Genesis state file can be found here.

    Data format

    Refer to this link for the reference implementation.

    Operator

    The system has a centralized operator

    The operator is the only entity that can propose blocks. A live and trustworthy operator is vital to the health of the system.

    • MEV can be extracted if the operator exploits their centralized position and frontruns user transactions.

    1. Boba operates the only "Sequencer" node - Boba FAQ
    2. CanonicalTransactionChain.sol#L293 - Etherscan source code, "OVM_Sequencer" check

    Users can enqueue transactions

    Users can submit transactions to an L1 queue, but can’t force them. The sequencer cannot selectively skip transactions but can stop processing the queue entirely. In other words, if the sequencer censors or is down, it is so for everyone.

    • Users can be censored if the operator is offline or refuses to process the queue.

    1. CanonicalTransactionChain.sol#L201 - Etherscan source code, enqueue function
    Withdrawals

    Regular exit

    The user initiates the withdrawal by submitting a regular transaction on this chain. When the block containing that transaction is finalized the funds become available for withdrawal on L1. The process of block finalization usually takes several days to complete. Finally the user submits an L1 transaction to claim the funds. This transaction requires a merkle proof.

    • Funds can be frozen if the centralized validator goes down. Users cannot produce blocks themselves and exiting the system requires new block production (CRITICAL).

    1. The Standard Bridge - Boba documentation
    2. BondManager.sol#L31 - Etherscan source code, isCollateralized function

    Fast exit

    Users can initiate a fast exit which makes use of liquidity pools, and charges a small fee for the convenience. Users funds can then be withdrawn on L1 after only minutes.

    1. The LP Bridge - Boba documentation

    Forced exit

    If the user experiences censorship from the operator with regular exit they can submit their withdrawal requests directly on L1. The system is then obliged to service this request or halt all messages from L1, including all forced withdrawals and deposits. Once the force operation is submitted and if the request is serviced, the operation follows the flow of a regular exit.

    Other considerations

    EVM compatible smart contracts are supported

    Boba Network is pursuing the EVM Equivalence model. No changes to smart contracts are required regardless of the language they are written in, i.e. anything deployed on L1 can be deployed on Boba Network.

    1. Introducing EVM Equivalence
    Permissions

    The system uses the following set of permissioned addresses:

    This address is the owner of the following contracts: OVM_L1CrossDomainMessenger, L1StandardBridge, AddressManager. This allows it to censor messages or pause message bridge altogether, upgrade bridge implementation potentially gaining access to all funds stored in a bridge and change the sequencer, state root proposer or any other system component (unlimited upgrade power).

    Sequencer 0xfa46…c57F

    Central actor allowed to commit L2 transactions to L1.

    State Root Proposer 0x5558…bE80

    Central actor to post new L2 state roots to L1.

    Smart contracts
    A diagram of the smart contract architecture
    A diagram of the smart contract architecture

    The system consists of the following smart contracts:

    CanonicalTransactionChain 0xfBd2…c3Db

    The Canonical Transaction Chain (CTC) contract is an append-only log of transactions which must be applied to the OVM state. It defines the ordering of transactions by writing them to the CTC:batches instance of the Chain Storage Container. CTC batches can only be submitted by OVM_Sequencer. The CTC also allows any account to enqueue() an L2 transaction, which the Sequencer must eventually append to the rollup state.

    Can be upgraded by: Owner

    Upgrade delay: No delay

    StateCommitmentChain 0xdE73…41Ec

    The State Commitment Chain (SCC) contract contains a list of proposed state roots which Proposers assert to be a result of each transaction in the Canonical Transaction Chain (CTC). Elements here have a 1:1 correspondence with transactions in the CTC, and should be the unique state root calculated off-chain by applying the canonical transactions one by one. Currently only OVM_Proposer can submit new state roots.

    Can be upgraded by: Owner

    Upgrade delay: No delay

    ChainStorageContainer-CTC-batches 0x1714…1231

    Can be upgraded by: Owner

    Upgrade delay: No delay

    ChainStorageContainer-CTC-queue 0x5f00…CD8d

    Can be upgraded by: Owner

    Upgrade delay: No delay

    ChainStorageContainer-SCC-batches 0x1399…7d93

    Can be upgraded by: Owner

    Upgrade delay: No delay

    BondManager 0x6066…b627

    The Bond Manager contract will handle deposits in the form of an ERC20 token from bonded Proposers. It will also handle the accounting of gas costs spent by a Verifier during the course of a challenge. In the event of a successful challenge, the faulty Proposer’s bond will be slashed, and the Verifier’s gas costs will be refunded. Current mock implementation allows only OVM_Proposer to propose new state roots. No slashing is implemented.

    Can be upgraded by: Owner

    Upgrade delay: No delay

    The L1 Cross Domain Messenger (L1xDM) contract sends messages from L1 to L2, and relays messages from L2 onto L1. In the event that a message sent from L1 to L2 is rejected for exceeding the L2 epoch gas limit, it can be resubmitted via this contract’s replay function. The contract is pausable by Owner.

    Can be upgraded by: Owner

    Upgrade delay: No delay

    L1MultiMessageRelayer 0x5fD2…070B

    Helper contract that allows for relaying a batch of messages using L1CrossDomainMessenger.

    Can be upgraded by: Owner

    Upgrade delay: No delay

    L1MultiMessageRelayerFast 0x2d61…9622

    Helper contract that allows for relaying a batch of messages using L1CrossDomainMessengerFast.

    Can be upgraded by: Owner

    Upgrade delay: No delay

    Proxy__L1LiquidityPoolArguments 0x1A26…1a14

    Liquidity Pool manager for fast withdrawal facility. This contract can store any token.

    AddressManager 0x8376…F089

    This is a library that stores the mappings between names such as OVM_Sequencer, OVM_Proposer and other contracts and their addresses.

    Main entry point for users depositing ERC20 tokens and ETH that do not require custom gateway. This contract can store any token.

    Can be upgraded by: Owner

    Upgrade delay: No delay

    L1NFTBridge 0xbF31…a582

    Standard NFT bridge. The contract is pausable by Owner.

    Can be upgraded by: Owner

    Upgrade delay: No delay

    The current deployment carries some associated risks:

    • Funds can be stolen if a contract receives a malicious code upgrade. There is no delay on code upgrades (CRITICAL).

    Knowledge nuggets
    If you find something wrong on this page you can submit an issue or edit the information