> 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/pt-br/rome-zk-evm/verification-key.md).

# Chave de verificação

Crie um batch guest específico da chain e solicite o registro de sua chave de verificação ZisK.

Cada cadeia tem seu próprio guest de lote. O guest contém o genesis da cadeia e o destinatário das taxas. Ele verifica os dados e a execução do lote e, em seguida, registra os valores públicos que a liquidação da Solana verifica. Do guest `programVK` identifica o programa que está sendo provado.

Uma cadeia sem permissão se registra com um registro de chaves de verificação vazio. Ela não pode publicar uma raiz final até que a Rome adicione uma chave para essa cadeia. A autoridade da cadeia não pode incluir uma chave em sua transação de registro. Este é o processo da v0.3.0 na devnet da Solana.

## Compile o guest

De `implantar/rollup` no checkout da v0.3.0, use as configurações de release `ROME_ZK_TAG=v0.3.0`, `ROME_ZK_GUEST_TAG=v0.3.0` e `ZISK_RELEASE=1.3.1-alpha`. Execute `./rollup init` primeiro para que o genesis e o ID da cadeia sejam renderizados. Você precisa da cadeia registrada antes de enviar a solicitação. Em seguida, execute:

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

O comando cria uma imagem com a toolchain ZisK, clona as fontes do rollup e do guest nessas tags, compila o guest a partir do seu genesis e verifica se ele carrega o seu ID de cadeia. Ele imprime o SHA-256 do ELF do guest. Os metadados gerados registram esse hash, o hash do genesis, o ID da cadeia, a versão do ZisK e o número do seu esquema. Para esta versão, esses dois últimos valores são `1.3.1-alpha` e `2`.

Para calcular `programVK` localmente, a compilação precisa das chaves de prova do ZisK correspondentes e de cerca de 36 GB de RAM. Essa etapa leva cerca de 40 segundos. Se você pular essa etapa ou não tiver as chaves, a compilação informa `ProgramVkNotComputed`. O provador recusa metadados sem `programVK`; calcule-o com as chaves correspondentes ou peça à Rome antes de começar a provar.

Duas máquinas compilando o mesmo genesis nessas tags obtêm o mesmo hash do ELF. Um genesis alterado significa um guest diferente, e o genesis não pode ser alterado após o registro da cadeia. A compilação recusa um genesis cujo ID de cadeia difere do ID da sua cadeia (`ChainIdMismatch`) e um genesis que atribui saldo a mais de uma conta (`GenesisFundedAccountLimit`).

## Peça à Rome para registrá-lo

Use o [formulário de solicitação de chave de verificação](https://github.com/rome-protocol/solana-zk-evm/issues/new?template=vkey-request.yml). Tenha em mãos o ID da cadeia, a chave pública da autoridade da cadeia e a assinatura da transação que registrou a cadeia. Inclua a tag do guest e os metadados gerados: hash do ELF, hash do genesis, `programVK`, `zisk` e `esquema`. Anexe ou cole o genesis renderizado. Se o genesis declarar um saldo lastreado, tenha o vault financiado correspondente pronto. Inclua um `./rollup check` resultado que passa, exceto pelos itens à espera da chave.

A Rome recompila o guest a partir da tag e do genesis. Ela verifica o ID da cadeia, o genesis, o hash do ELF e `programVK` em relação à sua solicitação e, em seguida, registra a chave na versão correspondente do ZisK. A Rome responde na issue com a assinatura da transação de registro da chave. A chave se torna utilizável no slot de ativação registrado; execute `./rollup check` depois desse slot. Com o provador ativado, o `chave de verificação` verificação deve passar. A verificação da chave com capacidade de depósito também deve passar.

A Rome registra uma **solicitação completa em até dois dias úteis**. Se uma solicitação estiver incompleta, a Rome responde com o que está faltando. Os dois dias úteis começam quando a solicitação estiver completa.

O momento importa porque a janela de resgate começa quando você registra a cadeia, não quando sua chave se torna ativa. A janela da devnet v0.3.0 é de 6.480.000 slots, cerca de 30 dias. Se nenhuma raiz for publicada quando essa janela terminar, qualquer pessoa pode resgatar a cadeia e o depósito de 5 SOL vai para o tesouro. A autoridade de registro da Rome pode alterar a janela global, sujeita a um mínimo de 216.000 slots.

Após a ativação, forneça ao provador o guest correspondente, os metadados e as chaves de prova do ZisK, ative `PROVER=on`, depois execute `./rollup init`, `./rollup up` e `./rollup check`. A prova deve usar uma chave ativa registrada para esta cadeia. Mudar depois para uma versão diferente do ZisK exige outra compilação do guest e outra entrada registrada; veja [Versões](/pt-br/rome-zk-evm/releases.md).

Os campos completos da solicitação e as etapas do operador estão em [Execute na devnet na v0.3.0](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/pt-br/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.
