Arbitrum
Summary
Arbitrum (opens in a new tab) is an EVM compatible Optimistic rollup.
- Arbiscan (opens in a new tab) is its chain explorer.
- The deployment addresses for its smart contract are found here (opens in a new tab).
- The gateway and verifier solution developed for the mainnet (Arbitrum One) chain can also be used for other Nitro stack chains (including AnyTrust and Orbit (opens in a new tab) chains).
High level overview
Arbitrum utilizes its BoLD dispute protocol (opens in a new tab) to allow for anyone to participate in the validation of Arbitrum's chain state. It further decentralizes Arbitrum whilst maintaining the requirement for only a single honest party to maintain the chain's integrity.
BoLD implements a disection based dispute resolution process refereed by an L1 contract. Parties go back-and-forth until an individual instruction that they disagree upon is discerned. Challenge periods are time constrained to 6.4 days, as is the length of a dispute. As such there is an upper bound of 12.8 days for finalization of Arbitrum chain state.
Verification
The Unruggable gateway Typescript prover implementation used for Arbitrum chains implementing BoLD is EthProver.ts.
The on-chain verification of generated proofs is handled by ArbitrumVerifier.sol which can be deployed with the _isBoLD constructor argument set.
Arbitrum utilises the same Patricia Merkle Trie structure as Layer 1 Ethereum for its storage and account tries. As such proof verification utilises SecureMerkleTrie.sol by proxy of our EthTrieHooks.sol library.