Gitcoin Grants 20!Donate here

L2BEAT Bridges is a work in progress. You might find incomplete research or inconsistent naming. Join our discord to suggest improvements!

Nomad logoNomad

Nomad is a general messaging bridge that uses optimistic verification to validate cross-chain bridging transactions.
This project is archived.
The Nomad token bridge contract has recently been exploited and currently is not operational.
  • Total value locked
    $5.72 K0.36%
  • Destination
    Various
  • Validated by
    Third Party
  • Type
    Token Bridge
  • ...

    Milestones

    Contracts hacked for $190M

    2022 Aug 2nd

    Risk summary
    The Nomad token bridge contract has recently been exploited and currently is not operational.
    Technology

    Principle of operation

    Nomad Bridge is a Token Bridge with ability to facilitate fast transfers via additional LP-provided liquidity. For deposits, it locks tokens in the escrow contracts on Ethereum and mints a “representation token” on the destination network. When bridging back to Ethereum tokens are burned and then released from the escrow on Ethereum.

    Third Party

    Messages on the source (home) chain are periodically signed by Updater. Updater cannot censor messages and if it refuses to attest them, it can be changed by the governance. Once message batch is attested, it is relayed to the destination (replica) by the permissionless Relayers. After the 30m fraud proof window messages can be delivered to the destination contract. During the fraud proof window, if malicious Updater tries to relay invalid message batch, anyone can submit a fraud proof to the source (home) chain slashing Updater and stopping home contract. On the destination messages cannot be stopped, so receiving contracts have to be independently notified to not process messages. Currently this mechanism is not implemented.

    • Users can be censored if updater fails to attest messages and governance does not change the Updater.

    • Funds can be stolen if updater manages to relay a fraudulent message batch.

    • Funds can be stolen if destination contract does not block receiving fraudulent messages.

    Destination tokens are upgradeable

    Note: This section requires more research and might not present accurate information.

    Tokens transferred end up as “representation tokens” some of them may be upgradable.

    • Funds can be stolen if destination token contract is maliciously upgraded (CRITICAL).

    Permissions

    The system uses the following set of permissioned addresses:

    Governor 0x9327…f68A

    Manages Optics V1 bridge components via GovernanceRouter contract. This is a Gnosis Safe with 3 / 5 threshold.

    Those are the participants of the Governor.

    RecoveryManager 0xda2f…986A

    Manages Optics V1 bridge recovery via GovernanceRouter contract. This is a Gnosis Safe with 2 / 3 threshold.

    RecoveryManager participants 0xea24…998A0xDE9c…59E40xCc20…d21d

    Those are the participants of the RecoveryManager.

    Permissioned account that can update message roots.

    Watchers can unenroll, i.e. stop receiving messages, from a given Replica.

    Smart contracts

    The system consists of the following smart contracts:

    Optics Home. This contract is used to send x-chain messages, such as deposit requests. Messages are regularly signed by the Updater.

    Optics Replica. This contract is used to receive x-chain messages, such as withdrawal requests, from Relayers.

    Optics Governance Router. Manages all Optics components. This contract can store any token.

    XAppConnectionManager 0xFe88…3B2F

    Contract managing list of connections to other chains (domains) and list of watchers.

    Optics Governance Router. Manages all Optics components.

    UpdaterManager 0x9272…f715

    Contract allowing Home to slash Updater. Currently does nothing, intended for future functionality.

    UpgradeBeaconController 0xdB37…fD7e

    Contract managing Beacons.

    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).