
Arbitrum
Website | arbitrum.iooffchainlabs.com |
---|---|
Social media | @OffchainLabs@arbitrumoffchainlabsdiscord.gg |
Documentation | developer.offchainlabs.com |
Explorer | arbiscan.ioexplorer.arbitrum.io |
Source code | github.com/OffchainLabs/arbitrumgithub.com/OffchainLabs/arb-os |
News
Description[Edit][Issue]
Arbitrum is an Optimistic Rollup that aims to feel exactly like interacting with Ethereum, but with transactions costing a fraction of what they do on L1.
Risk summary
Funds can be stolen if…
Funds can be lost if…
Funds can be frozen if…
MEV can be extracted if…
Technology
Fraud proofs ensure state correctness[Edit][Issue]
After some period of time, the published state root is assumed to be correct. For a certain time period, usually one week one of the whitelisted actors can submit a fraud proof that shows that the state was incorrect.[1][2]
- Funds can be stolen if none of the whitelisted verifiers checks the published state. Fraud proofs assume at least one honest and able validator (CRITICAL).
All transaction data is recorded on chain[Edit][Issue]
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.[3]
Operator
The system has a centralized sequencer[Edit][Issue]
While proposing blocks is open to anyone the system employs a privileged sequencer that has priority for submitting transaction batches and ordering transactions.[4][5]
- MEV can be extracted if the operator exploits their centralized position and frontruns user transactions.
Users can force any transaction[Edit][Issue]
Because the state of the system is based on transactions submitted on-chain and anyone can submit their transactions there it allows the users to circumvent censorship by interacting with the smart contract directly.[3]
Withdrawals
Regular exit[Edit][Issue]
The user initiates the withdrawal by submitting a transaction on L2. 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.[7][8]
- Funds can be frozen if the centralized validator goes down. Users cannot produce blocks themselves and exiting the system requires new block production (CRITICAL).[6]
Tradeable Bridge Exit[Edit][Issue]
When a user initiates a regular withdrawal a third party verifying the chain can offer to buy this withdrawal by paying the user on L1. The user will get the funds immediately, however the third party has to wait for the block to be finalized. This is implemented as a first party functionality inside Arbitrum's token bridge.[9]
Other considerations
EVM compatible smart contracts are supported[Edit][Issue]
Arbitrum uses the Arbitrum Virtual Machine (AVM) to execute transactions. This is similar to the EVM, but is independent from it and allows fraud proofs to be executed.[10]
- Funds can be lost if there are mistakes in the highly complex AVM implementation.
Permissioned Addresses[Edit][Issue]
The system uses the following set of permissioned addresses:
- Arbitrum MultiSig 0xC234…0941 (MultiSig)The admin of all contracts in the system, capable of issuing upgrades without notice and delay. This allows it to censor transactions, upgrade bridge implementation potentially gaining access to all funds stored in a bridge and change the sequencer or any other system component (unlimited upgrade power). It is also the admin of the special purpose smart contracts used by validators.
- MultiSig participants 0x0C88…CE1e (EOA), 0x68aF…6e12 (EOA), 0x8042…951B (EOA), 0xf7FA…59c6 (EOA), 0xc19A…e972 (EOA), 0xc73b…5075 (EOA)These addresses are the participants of the 4/6 Arbitrum MultiSig.
- Sequencer 0xcCe5…0513 (EOA)Central actor allowed to set the order in which L2 transactions are executed.
- Validators 0xa8c3…fc4f (EOA), 0x9919…f089 (EOA), 0xF76d…0858 (EOA), 0xDdfF…69cD (EOA)They can submit new state roots and challenge state roots. Some of the validators perform their duties through special purpose smart contracts.
Smart Contracts[Edit][Issue]

The system consists of the following smart contracts:
- ProxyAdmin 0x171a…d7c4This contract is an admin of most other contracts allowed to upgrade their implementations. It is owned by a 4-of-6 multisig.
- Main contract implementing Arbitrum One Rollup. Manages other Rollup components, list of Stakers and Validators. Entry point for Validators creating new Rollup Nodes (state commits) and Challengers submitting fraud proofs.
- Main entry point for the Sequencer submitting transaction batches to a Rollup.
- Entry point for users depositing ETH and sending L1 --> L2 messages. Deposited ETH is escowed in a Bridge contract.
- Contract managing Inboxes and Outboxes. It escrows ETH sent to L2. This contract stores the following tokens: ETH.
- ProxyAdmin (2) 0x9aD4…0aDaThis is a different proxy admin for the three gateway contracts below. It is also owned by a 4-of-6 multisig..
- Router managing token <--> gateway mapping.
- Main entry point for users depositing ERC20 tokens. Upon depositing, on L2 a generic, "wrapped" token will be minted. This contract can store any token
- Main entry point for users depositing ERC20 tokens that require minting custom token on L2. This contract can store any token
- L1DaiGateway 0xD3B5…3011Custom DAI Gateway, main entry point for users depositing DAI to L2 where "canonical" L2 DAI token managed by MakerDAO will be minted. Managed by MakerDAO.
- L1Escrow 0xA10c…9400DAI Vault for custom DAI Gateway managed by MakerDAO. This contract stores the following tokens: DAI.
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).
References
- Executing and Securing the Chain - Arbitrum documentation
- Note: onlyValidator modifier
- Submitting Transactions - Arbitrum documentation
- Validators - Arbitrum documentation
- If the sequencer is malicious - Arbitrum documentation
- Mainnet for everyone - Arbitrum Blog
- L2 to L1 Messages Lifecycle - Arbitrum documentation
- Rules for Confirming or Rejecting Rollup Blocks - Arbitrum documentation
- Tradeable Bridge Exits - Arbitrum documentation
- AVM - Arbitrum documentation