규범적 명세(Normative spec): OP Stack의 Stage 1 보안 모델은(는) Stage 1 역할 및 요구 사항 사양에 규범적으로 정의되어 있습니다. 이 페이지는 각 역할과 그 위험을 설명하며, 사양 내용을 다시 서술하지 않습니다.
L1 Proxy Admin
L1 Proxy Admin은 대부분의 OP Stack 체인 시스템 컨트랙트를 업그레이드하는 데 사용할 수 있는 주소입니다.위험
- L1 Proxy Admin이 탈취되면 컨트랙트를 악의적인 버전으로 업그레이드할 수 있습니다.
- L1 Proxy Admin이 탈취되면 Standard Bridge의 ETH 또는 토큰을 제거하거나 잠글 수 있습니다.
- L1 Proxy Admin이 탈취되면 이 페이지에 설명된 위험을 완화하지 못할 수 있습니다.
완화 조치
- L1 Proxy Admin 소유자는 2-of-2 멀티시그입니다. 한 소유자는 Optimism Foundation의 5/7 멀티시그이고, 다른 소유자는 Security Council 멀티시그입니다.
주소
- Ethereum의 Optimism 거버넌스 체인:
0x5a0Aae59D09fccBdDb6C6CcEB07B7279367C3d2A - Sepolia의 Optimism 거버넌스 체인:
0x1Eb2fFc903729a0F03966B917003800b145F56E2
L2 Proxy Admin
L2 Proxy Admin은 L2에서 대부분의 OP Stack 체인 시스템 컨트랙트를 업그레이드하는 데 사용할 수 있는 주소입니다. L2 Proxy Admin 소유자는 L1ProxyAdmin 소유자의 별칭 주소(aliased address)입니다. 즉, L2 ProxyAdmin Owner는 L1 ProxyAdmin Owner와 동일한 주체이지만, 별칭 처리로 인해 주소가 다릅니다. 작동 방식은 다음과 같습니다.- L1 컨트랙트 주소가 주어지면, 별칭 처리된 L2 주소는
L1_contract_address+0x1111000000000000000000000000000000001111과 같습니다. 0x6B1BAE59D09fCcbdDB6C6cceb07B7279367C4E3b를 예로 들면,0x6B주소는 별칭 처리된 L2 주소이므로 원래의 L1 주소를 구하려면0x6B1BAE59D09fCcbdDB6C6cceb07B7279367C4E3b-0x1111000000000000000000000000000000001111을 계산합니다.- 그 결과 L1 컨트랙트 주소
0x5a0Aae59D09fccBdDb6C6CcEB07B7279367C3d2A가 나오며, 이는 L1 ProxyAdmin Owner인 Foundation + Security Council 소유의 2/2 Safe여야 합니다. - OP Stack 체인에서
0x6B1BAE59D09fCcbdDB6C6cceb07B7279367C4E3b의 개인 키를 가진 사람은 아무도 없습니다. 따라서 L2 ProxyAdmin 소유자가 트랜잭션을 보내는 유일한 방법은 L1의0x5a0Aae59D09fccBdDb6C6CcEB07B7279367C3d2A주소에서 입금(디파짓) 트랜잭션을 보내는 것입니다. - 계산에 도움이 필요하면
AddressAliasHelper라이브러리를 참고하십시오.
위험
- L2 Proxy Admin이 탈취되면 컨트랙트를 악의적인 버전으로 업그레이드할 수 있습니다.
- L2 Proxy Admin이 탈취되면 Standard Bridge의 ETH 또는 토큰을 제거하거나 잠글 수 있습니다.
- L2 Proxy Admin이 탈취되면 이 페이지에 설명된 위험을 완화하지 못할 수 있습니다.
완화 조치
- L2 Proxy Admin은 L1 Proxy Admin과 동일한 L1 계정이 제어합니다. 이는 주소 별칭(address aliasing)을 통해 가능합니다.
주소
이 주소들은 동일한 L1 Proxy Admin 주소가 제어합니다. 자세한 내용은 위의 설명을 참고하십시오.
- Ethereum의 Optimism 거버넌스 체인:
0x6B1BAE59D09fCcbdDB6C6cceb07B7279367C4E3b - Sepolia의 Optimism 거버넌스 체인:
0x2FC3ffc903729a0f03966b917003800B145F67F3
System Config Owner
System Config Owner는 Ethereum의SystemConfig 컨트랙트 내 값을 변경하는 데 사용할 수 있는 주소입니다.
위험
- System Config Owner가 탈취되면 일시적인 네트워크 중단이 발생할 수 있습니다.
- System Config Owner가 탈취되면 사용자에게 트랜잭션 수수료가 과다 청구될 수 있습니다.
완화 조치
- System Config Owner는 5-of-7 멀티시그입니다.
- System Config Owner는 향후 Security Council이 운영할 수 있습니다.
- System Config Owner는 L1 Proxy Admin이 교체할 수 있습니다.
주소
System Config owner는 체인별로 다르며, 어떤 주소가 설정되어 있는지는 Superchain Registry에서 확인할 수 있습니다.Batcher
설명
Batcher는 현재 OP Stack 체인의 Sequencer를 대신하여 트랜잭션 배치를 Ethereum에 제출하는 소프트웨어 서비스입니다. OP Stack 체인 node는 처리할 새로운 L2 트랜잭션 배치를 찾기 위해 이 주소에서 보낸 트랜잭션을 탐색합니다.위험
- Batcher 주소는 일반적으로 핫 월렛입니다.
- Batcher 주소가 탈취되면 L2 reorg 또는 sequencer 중단이 발생할 수 있습니다.
완화 조치
- Batcher 주소가 탈취되더라도 유효하지 않은 트랜잭션을 게시할 수는 없습니다.
- 탈취된 batcher 주소는 L1 Proxy Admin이 교체할 수 있습니다.
주소
Batcher 주소는 체인별로 다르며, 어떤 주소가 설정되어 있는지는 Superchain Registry에서 확인할 수 있습니다.Proposer
설명
Proposer는PermissionedDisputeGame 분쟁 게임(dispute game) 유형의 인스턴스를 생성할 수 있는 역할입니다.
PermissionedDisputeGame은 FaultDisputeGame에 치명적인 보안 취약점이 발견된 경우 대체 분쟁 게임으로 사용할 수 있습니다.
필요한 경우 인정되는(respected) 분쟁 게임 유형을 변경하는 책임은 Guardian 역할에 있습니다.
기능
PermissionedDisputeGame분쟁 게임 유형의 인스턴스를 생성할 수 있습니다.PermissionedDisputeGame분쟁 게임 프로세스에 참여할 수 있습니다.
위험
- Proposer 주소는 일반적으로 핫 월렛입니다.
- Proposer 주소가 탈취되면 유효하지 않은 상태 제안을 할 수 있습니다.
- 유효하지 않은 상태 제안은 7일 후 유효하지 않은 출금을 실행하는 데 사용될 수 있습니다.
완화 조치
- 탈취된 proposer 주소는 L1 Proxy Admin이 교체할 수 있습니다.
- 유효하지 않은 상태 제안은 7일 이내에 Challenger가 이의를 제기할 수 있습니다.
주소
Proposer 주소는 체인별로 다르며, 어떤 주소가 설정되어 있는지는 Superchain Registry에서 확인할 수 있습니다.Challenger
설명
Challenger는 Proposer 역할이 생성한PermissionedDisputeGame 인스턴스에 참여하고 이의를 제기할 수 있는 주소입니다. 이는 유효하지 않은 output root에 이의를 제기하는 op-challenger 서비스와는 다르다는 점에 유의하십시오.
기능
PermissionedDisputeGame분쟁 게임 프로세스에 참여할 수 있습니다.
위험
- Challenger가 탈취되면 유효한 상태 제안을 무효화할 수 있습니다.
- Challenger가 탈취되면 유효하지 않은 상태 제안에 이의를 제기하지 못할 수 있습니다.
완화 조치
- 탈취된 challenger 주소는 L1 Proxy Admin이 교체할 수 있습니다.
- 교체된 challenger 주소로 이의 제기를 실행할 수 있습니다.
주소
Challenger 주소는 체인별로 다르며, 각 체인의PermissionedDisputeGame에 설정됩니다.
OP Mainnet, Ink, Soneium, Unichain 및 각각의 Sepolia testnet은 대신 SuperPermissionedDisputeGame을 사용하며, 여기에는 Challenger 역할이 없습니다.
Guardian
설명
Guardian은 OP Stack 체인의 여러 시스템 컨트랙트를 일시 중지하는 데 사용할 수 있는 주소입니다. 이는 보안 우려가 있을 때 특히 출금 로직을 일시적으로 중단할 수 있게 해 주는 백업 안전장치입니다. Guardian은 진행 중인 보안 우려에 대응하기 위해OptimismPortal 컨트랙트의 다양한 측면을 관리할 수도 있습니다.
기능
- OP Stack 체인의 여러 시스템 컨트랙트를 일시 중지합니다.
- 특정 분쟁 게임 유형이 출금 실행에 사용되지 못하도록 비활성화합니다.
- 특정 분쟁 게임 인스턴스가 출금 실행에 사용되지 못하도록 비활성화합니다.
위험
- Guardian이 탈취되면 출금을 3개월 동안 일시 중지할 수 있으며, 그 이후에는 출금 일시 중지가 자동으로 해제됩니다.
완화 조치
- 탈취된 guardian 주소는 L1 Proxy Admin이 교체할 수 있습니다.
- 교체된 guardian 주소로 출금 일시 중지를 해제할 수 있습니다.
주소
- Ethereum의 Optimism 거버넌스 체인:
0x09f7150D8c019BeF34450d6920f6B3608ceFdAf2 - Sepolia의 Optimism 거버넌스 체인:
0xf64bc17485f0B4Ea5F06A96514182FC4cB561977
Mint Manager Owner
Mint Manager Owner는 OP Stack 체인에서 새로운 OP 토큰을 발행하는 데 사용할 수 있는MintManager 컨트랙트를 제어하는 주소입니다.
위험
- Mint Manager Owner가 탈취되면 임의의 양의 OP 토큰을 발행할 수 있습니다.
- Mint Manager Owner가 탈취되면 OP 토큰 발행을 막을 수 있습니다.
완화 조치
- Mint Manager Owner는 3-of-5 멀티시그입니다.