> For the complete documentation index, see [llms.txt](https://docs.rome.builders/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rome.builders/ko/rome-zk-evm/verification-key.md).

# 검증 키

체인별 배치 게스트를 빌드하고 ZisK 검증 키 등록을 요청하세요.

각 체인에는 자체 배치 게스트가 있습니다. 게스트에는 체인의 제네시스와 수수료 수령자가 포함됩니다. 배치 데이터와 실행을 확인한 다음, 솔라나 정산이 검증하는 공개 값을 커밋합니다. 게스트의 `programVK` 프로빙되는 프로그램을 식별합니다.

퍼미션리스 체인은 빈 검증 키 레지스트리로 등록됩니다. Rome이 해당 체인에 키를 추가하기 전에는 최종 루트를 게시할 수 없습니다. 체인 권한자는 등록 트랜잭션에 키를 포함할 수 없습니다. 이것이 Solana devnet에서의 v0.3.0 절차입니다.

## 게스트 빌드

출처 `deploy/rollup` v0.3.0 체크아웃에서는 릴리스 설정을 사용하세요 `ROME_ZK_TAG=v0.3.0`, `ROME_ZK_GUEST_TAG=v0.3.0` 및 `ZISK_RELEASE=1.3.1-alpha`. 실행 `./rollup init` 을 먼저 실행하여 제네시스와 체인 ID가 렌더링되게 하세요. 요청을 보내기 전에 체인이 등록되어 있어야 합니다. 그런 다음 다음을 실행하세요:

```sh
./rollup guest-build
```

이 명령은 ZisK 툴체인을 포함한 이미지를 빌드하고, 해당 태그의 롤업 및 게스트 소스를 복제한 뒤, 제네시스로부터 게스트를 빌드하고 체인 ID가 포함되어 있는지 확인합니다. 게스트 ELF의 SHA-256을 출력합니다. 생성된 메타데이터에는 그 해시, 제네시스 해시, 체인 ID, ZisK 릴리스 및 그 체계 번호가 기록됩니다. 이 릴리스에서 마지막 두 값은 `1.3.1-alpha` 및 `2`.

을 계산하려면 `programVK` 로컬에서, 빌드에는 일치하는 ZisK 증명 키와 약 36GB의 RAM이 필요합니다. 그 단계는 약 40초가 걸립니다. 그 단계를 건너뛰거나 키가 없으면, 빌드는 `ProgramVkNotComputed`를 보고합니다. 증명기는 `programVK`이 없는 메타데이터를 거부합니다. 증명을 시작하기 전에 일치하는 키로 계산하거나 Rome에 요청하세요.

같은 태그에서 같은 제네시스를 빌드하는 두 머신은 동일한 ELF 해시를 얻습니다. 제네시스가 바뀌면 다른 게스트가 되며, 제네시스는 체인 등록 후에는 변경할 수 없습니다. 빌드는 제네시스의 체인 ID가 체인의 ID와 다른 경우(`ChainIdMismatch`)와, 하나 이상의 계정에 잔액을 부여하는 제네시스(`GenesisFundedAccountLimit`).

## 를 Rome에 등록해 달라고 요청하세요

다음을 사용하세요 [검증 키 요청 양식](https://github.com/rome-protocol/solana-zk-evm/issues/new?template=vkey-request.yml). 체인 ID, 체인 권한자의 공개 키, 그리고 체인을 등록한 트랜잭션의 서명을 준비하세요. 게스트 태그와 생성된 메타데이터를 포함하세요: ELF 해시, 제네시스 해시, `programVK`, `zisk` 및 `체계`. 렌더링된 제네시스를 첨부하거나 붙여넣으세요. 제네시스가 담보된 잔액을 선언한다면, 일치하는 자금이 채워진 금고를 준비하세요. 다음을 포함하세요. `./rollup check` 키를 기다리는 항목을 제외하고 통과하는 결과.

Rome은 태그와 제네시스로부터 게스트를 다시 빌드합니다. 요청에 대해 체인 ID, 제네시스, ELF 해시 및 `programVK` 를 확인한 다음, 일치하는 ZisK 릴리스 아래에 키를 등록합니다. Rome은 키 등록 트랜잭션의 서명과 함께 이슈에 응답합니다. 키는 기록된 활성화 슬롯에서 사용할 수 있게 되며, 그 이후에 `./rollup check` 를 실행하세요. 증명기를 켠 상태에서는 `검증 키` 검사가 통과해야 합니다. 예치 가능한 키 검사도 통과해야 합니다.

Rome은 **완전한 요청을 영업일 기준 2일 이내에**등록합니다. 요청이 불완전하면 Rome은 누락된 사항을 알려줍니다. 영업일 기준 2일은 요청이 완전해진 시점부터 시작됩니다.

타이밍이 중요한 이유는 회수 기간이 키가 활성화될 때가 아니라 체인을 등록할 때 시작되기 때문입니다. v0.3.0 devnet의 기간은 6,480,000 슬롯, 약 30일입니다. 그 기간이 끝날 때 루트가 게시되지 않으면 누구나 체인을 회수할 수 있으며, 5 SOL 보증금은 국고로 들어갑니다. Rome의 레지스트리 권한자는 216,000 슬롯의 최소값에 따라 전역 기간을 변경할 수 있습니다.

활성화 후, 증명기에 일치하는 게스트, 메타데이터 및 ZisK 증명 키를 제공하고 `PROVER=on`, 그런 다음 다음을 실행하세요 `./rollup init`, `./rollup up` 및 `./rollup check`를 켭니다. 증명은 이 체인에 등록된 활성 키를 사용해야 합니다. 나중에 다른 ZisK 릴리스로 이동하려면 또 다른 게스트 빌드와 또 다른 등록 항목이 필요합니다. 다음을 참조하세요. [릴리스](/ko/rome-zk-evm/releases.md).

전체 요청 필드와 운영자 단계는 [v0.3.0에서 devnet 실행](https://github.com/rome-protocol/solana-zk-evm/blob/v0.3.0/docs/RUN-ON-DEVNET.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.rome.builders/ko/rome-zk-evm/verification-key.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
