Metis Andromeda is an EVM-equivalent solution originally forked from Optimism OVM. Since April 2024 hashes of data blobs are posted to EOA similarly to OPStack chains. It uses a decentralized Sequencer pool running Tendermint consensus and MPC module to... sign transaction batches.
$245.36 M
1.39%
Metis Andromeda is an EVM-equivalent solution originally forked from Optimism OVM. Since April 2024 hashes of data blobs are posted to EOA similarly to OPStack chains. It uses a decentralized Sequencer pool running Tendermint consensus and MPC module to... sign transaction batches.
Data hashes posted to EOA
2023 Mar 15th
Hashes to data blobs are now posted to EOA address instead of CanonicalTransactionChain contract.
Currently the system permits invalid state roots. More details in project overview.
Transaction data is kept in MEMO decentralized storage.
There is no window for users to exit in case of an unwanted regular upgrade since contracts are instantly upgradable.
Only the whitelisted proposers can publish state roots on L1, so in the event of failure the withdrawals are frozen.
For additional security, any staked Validator can challenge invalid state root submitted by the Sequencer. Other Validators will then act as referees in an interactive challenge game. Dishonest Validator majority can push invalid state root on-chain, and potentially slash honest Sequencer.
Funds can be stolen if an invalid state root is submitted to the system (CRITICAL).
Transaction data is not stored on-chain, rather it is recorded in off-chain decentralized storage MEMO from MemoLabs. Data hashes are posted to an EOA address.
Funds can be stolen if sequencer withholds data for more than seven days while at the same time submits fraudulent state root (CRITICAL).
As of April 2024 Metis uses a permissioned sequencer pool running a Tendermint consensus. Once consensus is reached on a block, an MPC address is used to submit a block hash to Ethereum. The infrastructure to manage the MPC is offchain and not trustless because Ethereum does not verify the validity of MPC address.
MEV can be extracted if the operator exploits their centralized position and frontruns user 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.
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).
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.
Metis uses the Optimistic Virtual Machine (OVM) 2.0 to execute transactions.
Funds can be lost if there are mistakes in the highly complex OVM implementation.
Central actor allowed to commit transactions to L1.
This is a Gnosis Safe with 4 / 9 threshold. This address is the owner of all the upgradable contracts of the system. 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).
Those are the participants of the Metis Multisig.
Central actor to post new state roots to L1.
Those addresses can challenge the state roots submitted by the state root proposer.
This contract implements a voting scheme with which the majority of Verifiers can challenge malicious state roots proposed. There are no whitelisted verifiers, hence this contract is not used in practice.
The Canonical Transaction Chain (CTC) contract is an append-only log of transactions which must be applied to the OVM state. Given that transactions batch hashes are sent to an EOA address, it allows any account to enqueue() a transaction, which the Sequencer must eventually append to the rollup state.
The State Commitment Chain (SCC) stores a list of proposed state roots in a linked ChainStorageContainer contract. Only a permissioned state root proposer (MVM_Proposer) can submit new state roots.
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.
Oracle specifying user fees for sending L1 -> Metis messages and other parameters for cross-chain communication.
This is a library that stores the mappings between names such as OVM_Sequencer, OVM_Proposer and other contracts and their addresses.
Contract that allows METIS_MANAGER to switch Sequencer.
Main entry point for users depositing ERC20 tokens and ETH that do not require custom gateway. This contract can store any token.
Contract acting as an escrow for METIS tokens managed by LockingPool.
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).