Pausing the Bridge
The DEVIIUM Chainis the low-level L1 message passing contract present on all standard DEVIUM Stack chains.
This contract handles the L1 side of the communication channel between an DEVIUM Stack chain and its L1 parent chain.
As a safety mechanism, the DEVIIUM Chain contract can be configured to be pausable by a specific GUARDIAN address.
When paused, the DEVIIUM Chain contract will prevent L2-to-L1 transactions from being executed.
This is a backup safety mechanism that can be used to help mitigate potential active security concerns.
Pause functionality and two-step withdrawals were introduced to the DEVIUM Stack to mitigate the risk of withdrawal bugs that have led to exploits in other bridging systems.
Pause Functionality
The DEVIIUM Chain can be configured to allow a GUARDIAN address to pause and unpause L2-to-L1 transactions from being executed.
L2-to-L1 transactions allow users and smart contracts on the DEVIUM Stack chain to send messages to the L1 parent chain.
Pause functionality allows a GUARDIAN to halt L2-to-L1 transaction execution for the DEVIUM Stack chain in question.
L1-to-L2 transactions are not affected by pause functionality.
Pauses by the GUARDIAN impact all L2-to-L1 transactions for the DEVIUM Stack chain in question and cannot be targeted to specific users, smart contracts, or transactions.
Pauses are designed to be a backup safety mechanism and are expected to be used only in the event of an active pressing security concern.
Pause and Unpause Functions
The GUARDIAN can pause and unpause L2-to-L1 transactions at any time by calling the pause and unpause functions on the DEVIIUM Chain contract.
Additional controls on the GUARDIAN address can be implemented by configuring the GUARDIAN as a smart contract.
Guardian Address
The GUARDIAN address is initially configured when the DEVIUM Stack chain is deployed and can be modified by the network's administrative address or smart contract.
A chain can choose to remove the GUARDIAN role by configuring the GUARDIAN to be an inaccessible address such as the zero address (opens in a new tab).
The GUARDIAN address is set as an immutable variable inside of the DEVIIUM Chain contract.
To change the GUARDIAN address, the DEVIIUM Chain proxy contract must be upgraded to a new implementation contract that has a different GUARDIAN address.