메인 콘텐츠로 건너뛰기
규범적 명세(Normative spec): OP Stack 컨트랙트 계층은(는) Optimism 개요 사양에 규범적으로 정의되어 있습니다. 이 페이지는 컨트랙트와 그 연결 방식에 대한 안내입니다. 각 컨트랙트의 동작과 인터페이스는 해당 사양 섹션과 소스 코드에서 정의됩니다.
OP Stack의 온체인 로직은 두 그룹의 스마트 컨트랙트에 있습니다. 하나는 Ethereum에 배포된 Layer 1 컨트랙트이고, 다른 하나는 모든 OP Stack 체인의 제네시스 상태에 존재하는 Layer 2 predeploy입니다. 이 페이지는 각 그룹의 용도를 설명하고 각 컨트랙트의 정식 정의로 안내합니다. 인터페이스, 파라미터, 릴리스별 버전은 다시 서술하지 않습니다.

Layer 1 컨트랙트

L1 컨트랙트는 체인의 bridge 유동성을 보관하고, 입금(디파짓)을 받고, 출금을 검증하고, 체인의 구성을 저장하며, 결함 증명(fault proof) 시스템을 통해 output 제안을 판정합니다. Optimism 개요 사양에는 이들이 어떻게 연결되는지 보여 주는 아키텍처 다이어그램이 포함되어 있습니다.

Bridging 및 메시징

입금은 계층화된 스택을 통해 체인으로 들어오고 출금은 이를 통해 체인을 떠납니다. OptimismPortal은 저수준 입금 및 출금 컨트랙트이고, L1CrossDomainMessenger는 그 위에 재실행 가능한(replayable) 메시지 전달을 추가하며, 토큰 bridge는 messenger 위에 놓입니다. OptimismPortal로 직접 보낸 메시지는 재실행할 수 없으므로, 사용자와 앱 개발자는 messenger 또는 bridge 인터페이스를 사용하는 것이 좋습니다.
Standard bridge는 모든 ERC-20 변형을 지원하도록 설계되지 않았습니다. 전송 수수료, 리베이스 로직, 차단 목록이 있는 토큰은 올바르게 작동하지 않을 수 있습니다. 안내는 Standard Bridge를 참고하십시오.

체인 구성

제안 및 결함 증명

L2 상태에 대한 주장은 신뢰 기반 output 제출이 아니라 분쟁 게임을 통해 누구나(permissionless) 제안하고 이의를 제기할 수 있습니다. 시스템이 처음부터 끝까지 어떻게 작동하는지는 결함 증명 설명을 참고하십시오.

레거시 및 지원 중단된 컨트랙트

  • AddressManager는 Bedrock 이전 시스템의 레거시 이름-주소 레지스트리입니다. L1CrossDomainMessenger가 여전히 이를 통해 주소를 확인하는 레거시 ResolvedDelegateProxy 뒤에 있기 때문에 남아 있을 뿐입니다.
  • L2OutputOracle은 결함 증명 이전의 신뢰 기반 output 제안 컨트랙트였습니다. 이 컨트랙트는 지원 중단(deprecated)되었으며, L2 output root 제안 사양에 따라 output 제안은 대신 DisputeGameFactory를 통해 이루어집니다.
  • ProtocolVersions는 노드 운영자에게 권장 및 필수 프로토콜 버전을 알렸습니다. 이 컨트랙트는 OP Stack 컨트랙트에서 제거되었으며, 이 컨트랙트가 제공하던 버전 관리 체계는 Superchain 업그레이드 사양에 계속 문서화되어 있습니다.

컨트랙트 업그레이드

L1 컨트랙트는 L1 컨트랙트를 버전이 지정된 세트로 배포하고 업그레이드하는 OP Contracts Manager (OPCM)을 통해 업그레이드됩니다. superchain-ops 워크플로는 내부적으로 OPCM을 구동하며, Security Council 서명이 필요한 체인을 위한 경로입니다. 다른 체인은 OPCM을 직접 호출할 수 있습니다. op-deployer는 초기 배포를 위한 도구로 계속 사용되지만, 그 업그레이드 명령은 OPCM으로 대체되어 지원 중단되었습니다. 자세한 내용은 지원 중단 공지를 참고하십시오. L2 predeploy는 Upgrade 19에서 도입된 L2 Contract Manager (L2CM)를 통해 업그레이드됩니다. 네트워크 업그레이드 시 합의 계층(consensus layer)은 L2 ProxyAdmin이 L2ContractsManager 컨트랙트를 delegatecall하도록 하는 네트워크 업그레이드 트랜잭션을 생성합니다. 이 컨트랙트는 모든 predeploy 구현을 하나의 원자적 트랜잭션으로 업데이트하며, 컨트랙트별 멀티시그 트랜잭션을 사용하던 이전 방식을 대체합니다. L2 Contract Manager 기능 페이지와 L2 업그레이드 사양을 참고하십시오.

컨트랙트 릴리스

컨트랙트는 문서화된 버전 관리 정책에 따라 op-contracts/vX.Y.Z라는 이름의 태그가 지정된 모노레포 릴리스로 배포됩니다. 이 페이지는 릴리스를 추적하지 않으므로 다음 자료를 대신 사용하십시오.
구성 요소 이름 없이 v<semver>로 태그된 릴리스(예: v1.1.4)는 Go 코드 릴리스이며 스마트 컨트랙트를 포함하지 않습니다. 컨트랙트는 op-contracts/vX.Y.Z 태그에서만 배포하십시오.

Layer 2 컨트랙트 (predeploy)

Predeploy는 모든 OP Stack 체인의 제네시스 상태에서 고정되고 잘 알려진 주소에 배치된 컨트랙트입니다. precompile과 달리 일반적인 EVM 컨트랙트이므로 클라이언트 구현 간에 이식성이 유지되고 표준 도구에서도 확인할 수 있습니다. 대부분은 0x4200000000000000000000000000000000000xxx 주소 네임스페이스에 있으며 L2 ProxyAdmin이 소유한 프록시 뒤에 있습니다. Predeploys 사양은 정식 목록입니다. 이 사양은 predeploy 주소의 전체 표, 각 predeploy가 도입된 업그레이드, 지원 중단 상태, 프록시 사용 여부와 함께 각 컨트랙트의 규범적 정의를 관리합니다.

Bridging predeploy

L2 측은 L1 bridging 스택을 그대로 반영합니다. L2CrossDomainMessenger는 권장되는 고수준 메시징 인터페이스이고, L2ToL1MessagePasser는 나중에 L1에서 포함 여부가 증명되는 출금 메시지를 기록하며, L2StandardBridge와 L2ERC721Bridge는 L1 대응 컨트랙트와 짝을 이룹니다. OptimismMintableERC20Factory와 OptimismMintableERC721Factory는 bridge가 발행하고 소각하는 L2 토큰 컨트랙트를 누구나(permissionless) 생성할 수 있게 합니다.
원래 OP Stack 체인에 배포된 ERC-721은 ERC-721 bridge를 통해 bridging하지 마십시오. 이 bridge는 원래 L1에 배포된 NFT만 지원합니다.

수수료 및 시스템 predeploy

  • GasPriceOracle은 트랜잭션 수수료 중 데이터 가용성 부분을 추정하기 위한 파라미터와 헬퍼 함수를 제공합니다. 정확한 수수료 공식은 업그레이드마다 바뀌며 여기가 아니라 사양에 정의되어 있습니다. 설명은 트랜잭션 수수료를 참고하십시오.
  • L1Block predeploy는 프로토콜이 시스템 입금 트랜잭션을 통해 기록하는, 최신으로 알려진 L1 블록에 대한 정보를 제공합니다.
  • 수수료 볼트(SequencerFeeVault, BaseFeeVault, L1FeeVault, 그리고 Isthmus 업그레이드 이후의 OperatorFeeVault)는 트랜잭션 수수료의 구성 요소를 수집하여 설정된 수령인에게 출금할 수 있게 합니다. 운영 관련 세부 사항은 수수료 볼트를 참고하십시오.
  • ProxyAdmin은 다른 predeploy의 프록시를 소유하고 그 업그레이드를 제어합니다.
  • BeaconBlockRoot 컨트랙트(EIP-4788)는 L1 beacon block root를 제공하며, Ecotone 업그레이드 이후 사용할 수 있습니다.
  • WETH9는 결정론적 주소에 있는 표준 Wrapped Ether 컨트랙트입니다.

GovernanceToken

GovernanceToken은 Optimism 거버넌스에서 사용되는 OP 토큰으로, 투표와 위임을 지원합니다. 이 토큰은 토큰 인플레이션 일정을 강제하는 MintManager 컨트랙트가 소유합니다. 토큰의 사용 방식은 거버넌스 자료를 참고하십시오.

EAS (Ethereum Attestation Service)

EAS와 SchemaRegistry predeploy는 온체인 증명(attestation)을 발급하고 관리하기 위한 오픈 소스 공공재인 Ethereum Attestation Service 프로토콜을 구현합니다. EAS는 EAS Scan UI, EAS SDK 또는 온체인에서 직접 상호 작용할 수 있으며, 증명은 EAS API 또는 오픈 소스 인덱서로 인덱싱할 수 있습니다.

지원 중단된 predeploy

LegacyMessagePasser, DeployerWhitelist, LegacyERC20ETH, L1BlockNumber 컨트랙트는 Bedrock 이전 시스템과의 하위 호환성을 위해 상태에 남아 있지만, 지원 중단되었으며 사용되지 않습니다. 이들의 주소와 기록은 Predeploys 사양에 있습니다.

다음 단계