Table of Contents
The Security Council comprises a group of trusted parties with the responsibility of safeguarding the blockchain's security. They are minimally eligible for ensuring the blockchain's safety concerning the Fault Proof System, bridge operations, and contract upgrades. No single member of the Security Council can unilaterally execute actions. Instead, all actions are carried out through multi-sig transaction or governance processes.
When an undeniable bug occurs within the ZK Fault Proof System, assets locked in Layer 2 may be exposed to potential risks. To prevent this, the Security Council has the authority to rectify such issues. The Security Council intervenes in cases where two valid and contradictory ZK proofs exist (ZK soundness error) or fail to prove with a valid proof (ZK completeness error). Their intervention aims to prevent invalid outputs from being finalized, thereby safeguarding the assets locked in Layer 2.
If potential threats exposing Layer 2 assets within the Bridge, the Security Council possesses the authority to promptly
pause/unpause the bridge through a multi-sig transaction. The GUARDIAN
in the
KromaPortal.sol
is configured to be Security Council.
/**
* @notice Pause deposits and withdrawals.
*/
function pause() external {
require(msg.sender == GUARDIAN, "KromaPortal: only guardian can pause");
paused = true;
emit Paused(msg.sender);
}
/**
* @notice Unpause deposits and withdrawals.
*/
function unpause() external {
require(msg.sender == GUARDIAN, "KromaPortal: only guardian can unpause");
paused = false;
emit Unpaused(msg.sender);
}
All contract upgrades deployed on Layer 1 are conducted by the governance of the Security Council. These upgrades are proposed by a member of Security Council and are determined through the voting of these members. If a proposal passes, it typically has a 7-day timelock delay for execution.