Search

Search for projects by name

Facet logoFacet

Badges

About

Facet is a based rollup built on the OP stack. It uses FCT as its native gas token, which is mintable by spending gas on L1.


Value secured
$1.60 M13.4%
Canonically Bridged
$1.60 M
Externally Bridged
$0.00
Natively Minted
$0.00

  • Tokens
  • Daily UOPS
    0.000.00%
  • 30D ops count
    45.38 K

  • Stage
    Stage 0
  • Type
    Optimistic Rollup
  • Purpose
    Universal
  • Sequencer failureState validationData availabilityExit windowProposer failure

    Badges

    About

    Facet is a based rollup built on the OP stack. It uses FCT as its native gas token, which is mintable by spending gas on L1.


    Recategorisation

    158d
    22h
    24m
    16s

    The project will be classified as "Other" due to its specific risks that set it apart from the standard classifications.

    The project will move to Others because:

    The proof system isn't fully functional

    Consequence: projects without a proper proof system fully rely on single entities to safely update the state. A malicious proposer can finalize an invalid state, which can cause loss of funds.

    Learn more about the recategorisation here.

    Value Secured
    Canonical
    External
    Native
    Activity
    Facet
    Ethereum
    Onchain costs
    Calldata
    Blobs
    Compute
    Overhead
    Milestones & Incidents

    Facet Mainnet Launch

    2024 Dec 10th

    Facet launches at Ethereum block 21373000.

    Learn more
    Risk summary
    Risk analysis
    Sequencer failureState validationData availabilityExit windowProposer failure

    Sequencer failure

    Self sequence

    Users can self sequence transactions by sending them on L1. There is no privileged operator.

    State validation

    None

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

    Data availability

    Onchain

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

    Exit window

    None

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

    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
    FacetFacet 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 not enabled

    OP Stack projects can use the OP fault proof system, already being deployed on some. This project though is not using fault proofs yet and is relying on the honesty of the permissioned Proposer and Challengers to ensure state correctness. The smart contract system permits invalid state roots.

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

    1. L2OutputOracle.sol - Etherscan source code, deleteL2Outputs function

    All data required for proofs is published onchain

    All the data that is used to construct the system state is published onchain in the form of cheap calldata. This ensures that it will always be available when needed.

    1. Derivation: Batch submission - OP Mainnet specs
    2. BatchInbox - Etherscan address
    3. OptimismPortal.sol - Etherscan source code, depositTransaction function
    Operator

    There is no central operator

    There is no privileged entity that sequences transactions or produces blocks. This activity is permissionless and open to anyone.

    Users can force any transaction

    Because the state of the system is based on transactions submitted on the underlying host chain and anyone can submit their transactions there it allows the users to circumvent censorship by interacting with the EOA inbox on the host chain directly.

    Withdrawals

    Withdrawals are initiated on L1

    Users can initiate a withdrawal from the L1StandardBridge escrow by sending a transaction to the L1 contract, forcing the operator to either process it, halt all withdrawals or produce an invalid state transition. Deposits from the L1StandardBridge are disabled, and the use of the fast bridge is encouraged. There is no way to force the fast bridge operator (EOA) to process a withdrawal.

    • Funds can be lost if the fast bridge EOA operator signs an invalid withdrawal (CRITICAL).

    • Funds can be frozen if the operator halts withdrawals (CRITICAL).

    1. PausedL1StandardBridge.sol - Etherscan source code, disabled _initiateBridgeERC20 function
    Other considerations

    EVM compatible smart contracts are supported

    OP stack chains are 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 L2.

    1. Introducing EVM Equivalence
    Permissions

    The system uses the following set of permissioned addresses:

    Guardian is an actor allowed to pause deposits and withdrawals.

    Challenger EOA 1

    Challenger is an actor allowed to challenge or delete state roots proposed by a Proposer.

    Proposer EOA 1

    Proposer is an actor allowed to post new state roots of the current layer to the host chain.

    FacetSafeModule 0x3235…6BCF
    • Can act on behalf of FacetMultisig.
    • Can change the configuration of FacetEtherBridgeV6 (acting via FacetMultisig) - can withdraw all funds from the bridge.
    • Can change the configuration of AddressManager (acting via ProxyAdmin, FacetMultisig) - set and change address mappings.
    • Can change the configuration of SystemConfig (acting via FacetMultisig) - it can update the preconfer address, the batch submitter (Sequencer) address and the gas configuration of the system.
    • A Guardian (acting via FacetMultisig).
    • Can upgrade the implementation of OptimismPortal, SystemConfig, L2OutputOracle, SuperchainConfig (acting via ProxyAdmin, FacetMultisig).
    • Can upgrade the implementation of L1StandardBridge (acting via ProxyAdmin, FacetMultisig) - upgrading the bridge implementation can give access to all funds escrowed therein.
    • Module that allows the Safe to send Facet transactions.
    FacetMultisig 0xb2B0…C525
    • A Gnosis Safe with 2 / 3 threshold. It uses the following modules: FacetSafeModule (Module that allows the Safe to send Facet transactions), EthscriptionsSafeModule (Module that allows the Safe to interact with Ethscriptions).
    • Can act on behalf of ProxyAdmin.
    • Can change the configuration of FacetEtherBridgeV6 - can withdraw all funds from the bridge.
    • Can change the configuration of AddressManager (acting via ProxyAdmin) - set and change address mappings.
    • Can change the configuration of SystemConfig - it can update the preconfer address, the batch submitter (Sequencer) address and the gas configuration of the system.
    • A Guardian.
    • Can upgrade the implementation of OptimismPortal, SystemConfig, L2OutputOracle, SuperchainConfig (acting via ProxyAdmin).
    • Can upgrade the implementation of L1StandardBridge (acting via ProxyAdmin) - upgrading the bridge implementation can give access to all funds escrowed therein.
    EthscriptionsSafeModule 0xDB86…22cE
    • Can act on behalf of FacetMultisig.
    • Can change the configuration of FacetEtherBridgeV6 (acting via FacetMultisig) - can withdraw all funds from the bridge.
    • Can change the configuration of AddressManager (acting via ProxyAdmin, FacetMultisig) - set and change address mappings.
    • Can change the configuration of SystemConfig (acting via FacetMultisig) - it can update the preconfer address, the batch submitter (Sequencer) address and the gas configuration of the system.
    • A Guardian (acting via FacetMultisig).
    • Can upgrade the implementation of OptimismPortal, SystemConfig, L2OutputOracle, SuperchainConfig (acting via ProxyAdmin, FacetMultisig).
    • Can upgrade the implementation of L1StandardBridge (acting via ProxyAdmin, FacetMultisig) - upgrading the bridge implementation can give access to all funds escrowed therein.
    • Module that allows the Safe to interact with Ethscriptions.

    Can change the configuration of FacetEtherBridgeV6 - can sign arbitrary withdrawals for users.

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

    The system consists of the following smart contracts on the host chain (Ethereum):

    Official Facet implementation of the Ether Bridge. This contract stores the following tokens: ETH.

    1. Source code
    AddressManager 0x2D96…33aA

    Legacy contract used to manage a mapping of string names to addresses. Modern OP stack uses a different standard proxy system instead, but this contract is still necessary for backwards compatibility with several older contracts.

    The main entry point to deposit funds from host chain to this chain. It also allows to prove and finalize withdrawals. This contract stores the following tokens: ETH.

    Upgrade delay: No delay

    The main entry point to deposit ERC20 tokens from host chain to this chain. This contract can store any token.

    Upgrade delay: No delay

    Sends messages from host chain to this chain, and relays messages back onto host chain. In the event that a message sent from host chain to this chain is rejected for exceeding this chain’s epoch gas limit, it can be resubmitted via this contract’s replay function.

    FacetSafeProxy 0xC9F2…4d25

    Helper of the Safe Module that allows to send Facet transactions.

    Contains a list of proposed state roots which Proposers assert to be a result of block execution. Currently only the PROPOSER address can submit new state roots.

    Upgrade delay: No delay

    ProxyAdmin 0xe2A3…997C
    • Can be used to configure AddressManager - set and change address mappings.
    • Can be used to upgrade implementation of OptimismPortal, SystemConfig, L2OutputOracle, SuperchainConfig.
    • Can be used to upgrade implementation of L1StandardBridge - upgrading the bridge implementation can give access to all funds escrowed therein.

    This is NOT the shared SuperchainConfig contract of the OP stack Superchain but rather a local fork. It manages the PAUSED_SLOT, a boolean value indicating whether the local chain is paused, and GUARDIAN_SLOT, the address of the guardian which can pause and unpause the system.

    Upgrade delay: No delay

    EthscriptionsSafeProxy 0xeEd4…5095

    Helper of the Safe Module that allows to send Ethscriptions transactions.

    Value Secured is calculated based on these smart contracts and tokens:

    Main entry point for users depositing ERC20 token that do not require custom gateway.

    Can be upgraded by:

    Upgrade delay: No delay

    Main entry point for users depositing ETH.

    Can be upgraded by:

    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