L2BEAT Bridges is a work in progress. You might find incomplete research or inconsistent naming. Join our discord to suggest improvements!
This is a typical Token Bridge that locks tokens in the escrow contracts on Ethereum and mints tokens on the Ronin network. When bridging back to Ethereum tokens are burned on Ronin and then released from the escrow on Ethereum.
A Ronin Bridge service watches for events on Ethereum and transmits those events to a contract on Ronin chain (Axie Infinity chain). Designated group of weighted validators vote on the validity of those events, and when acknowledged, a “representation token” is minted on the Ronin chain. To withdraw tokens, user needs to deposit them to a contract on the Ronin chain, which will generate an event to be picked by the validators. When validators acknowledge the event, they generate signature, which can be submitted to the Ethereum bridge contract to finalize the withdrawal. Ronin V2 introduced multi-tier withdrawal limits dependent on the overall value of the transaction and the token used. The higher value of transaction, the more validators need to vote to approve withdrawal request. There is a separate group of actors called “governors” who are able to change thresholds, add/remove validators and update contracts. Each validator has a corresponding weighted governor account. There is also a daily withdrawal limit. If it’s crossed, an address from a list of “Withdrawal unlockers” needs to participate in the transaction.
Users can be censored if validators decide to not approve a token mint after observing an event on Ethereum (CRITICAL).
Users can be censored if validators decide not to sign withdrawal requests (CRITICAL).
Funds can be stolen if validators allow to mint more tokens than there are locked on Ethereum thus preventing some existing holders from being able to bring their funds back to Ethereum (CRITICAL).
Funds can be stolen if malicious validators generate signature of a fake withdrawal request (CRITICAL).
Funds can be frozen if withdrawal limits are misconfigured.
Tokens transferred end up as wrapped ERC20/ERC721.
List of operators that can validate incoming messages. Transfer needs to be signed by 70% out of 22 Operators.
List of governors that can update their corresponding operators, upgrade and change bridge parameters.
Admin of the Ronin Bridge, can change Sentry Account and accounts able to unlock withdrawals. This is a non-standard MultiSig with 2 / 3 threshold.
An address that can pause the bridge in case of emergency.
Contract storing all operators, governors and their associated weights. It is used to manage all administrative actions of the bridge.
Contract allowing PAUSER to pause the bridge.
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).