개요
무허가 결함 증명은 OP Stack 보안 모델의 핵심 구성 요소입니다. 누구나 유효하지 않은 상태 제안에 이의를 제기할 수 있게 하여, 신뢰할 수 있는 제3자에 의존하지 않고도 L2에서 L1으로의 출금이 올바르게 이루어지도록 보장합니다. 이 기능을 활성화하려면 체인 운영자가 필요한 absolute prestate 및 preimage 파일을 생성하고 유지 관리해야 합니다. absolute prestate는 결함 증명 프로그램의 초기 상태에 대한 커밋먼트이며, preimage는 이 프로그램 상태를 직렬화한 바이너리 표현입니다. 이 파일들은 op-challenger 도구가 유효하지 않은 주장에 이의를 제기할 때 분쟁 게임(dispute game)에 참여하는 데 필수적입니다.사전 요구 사항
시작하기 전에 다음이 준비되어 있는지 확인하십시오.- Docker 실행 중
superchain-registry 체인의 공식 prestate 해시
superchain-registry는 레지스트리에 포함된 체인에 대한 공식 absolute prestate 해시를 관리합니다. 이 prestate에는 prestate가 생성된 시점에 superchain-registry에 있던 체인들의 구성이 포함됩니다.중요: 다음과 같은 경우 superchain-registry에 등록된 prestate가 체인에 적합하지 않을 수 있습니다.
- prestate가 생성된 이후에 체인이 레지스트리에 추가된 경우
- prestate가 생성된 이후에 체인의 구성이 업데이트된 경우
absolute prestate 생성
1
저장소 클론 및 태그 버전 체크아웃
먼저 Optimism 모노레포를 클론하고 op-program에 적합한 릴리스 태그를 체크아웃합니다.
2
(선택 사항) 체인 구성 및 genesis 파일 제공
superchain-registry에 포함되지 않은 체인의 경우 체인 rollup 구성 파일과 L2 genesis 파일을 제공해야 합니다.
rollup.json과 l2-genesis.json을 모노레포의 optimism/op-program/chainconfig/configs/<L2_CHAIN_ID>-rollup.json 및 optimism/op-program/chainconfig/configs/<L2_CHAIN_ID>-genesis-l2.json에 각각 추가하십시오.3
absolute prestate 생성
모노레포의 루트에서 다음 명령을 실행합니다.명령 출력의 마지막 부분에서 다음 로그를 확인할 수 있습니다.출력에는 프로덕션 및 실험적 prestate 해시가 표시됩니다.
- Production prestates: 64비트 버전 Cannon의 현재 프로덕션 absolute prestate 해시인
Cannon64prestate가 포함됩니다. 무허가 결함 증명에는 이 해시를 사용해야 합니다. - Experimental prestates: 개발 중이며 아직 프로덕션 사용 준비가 되지 않은 버전의 prestate가 포함됩니다.
4
preimage 파일 준비
prestate를 생성하면 preimage 파일이
op-program/bin/prestate-mt64.bin.gz에 위치합니다. 정확한 이름은 버전에 따라 다를 수 있습니다. 이 파일의 이름에 prestate 해시가 포함되도록 변경합니다.<cannon64-prestate-hash>를 출력에 표시된 실제 Cannon64 absolute prestate 해시 값으로 바꾸십시오. 이 파일은 op-challenger 인스턴스가 접근할 수 있는 위치에 업로드해야 합니다.absolute prestate를 사용한 배포 및 구성
absolute prestate 및 preimage 파일을 생성한 후에는 다음 작업을 수행해야 합니다.1
preimage 파일 업로드
op-challenger 인스턴스가 접근할 수 있는 위치에 preimage 파일을 업로드합니다.
2
op-challenger 구성
생성된 prestate를 사용하도록 op-challenger를 구성합니다. prestate를 제공하는 방법은 두 가지입니다.
1
옵션 1: HTTP URL 사용
prestate 파일이 웹 서버에 호스팅되어 있다면 해당 파일이 포함된 디렉터리의 URL을 제공하기만 하면 됩니다.
HTTP URL을 사용하는 경우 볼륨 마운트가 필요하지 않습니다. challenger가 필요에 따라 prestate 파일을 다운로드합니다.
2
옵션 2: 로컬 파일 사용
prestate 파일을 로컬에 저장한 경우 이를 볼륨으로 마운트하고
file:// 프로토콜을 사용해야 합니다.로컬 파일을 사용하는 경우 prestate 파일이 마운트된 디렉터리에 있고 해시로 올바르게 이름이 지정되어 있는지 확인하십시오(예:
0x03eb07101fbdeaf3f04d9fb76526362c1eea2824e4c6e970bdb19675b72e4fc8.bin.gz).- 최신 op-challenger 버전을 사용하고 있는지 확인하십시오. 릴리스 페이지를 참조하십시오.
- 체인이 상호운용성(interoperability) 기능을 사용하는 경우
op-program/chainconfig/configs디렉터리에depsets.json파일을 추가해야 합니다. - 이 파일에는 의존성 집합(dependency set) 구성이 포함됩니다. interop이 활성화된 체인에 이미 구성된 것과 동일한 의존성 집합 정의를 사용하십시오.
다음 단계
- 무허가 결함 증명으로 마이그레이션 가이드를 확인하십시오.
- 결함 증명 설명을 읽어보십시오.