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

# Khóa xác minh

Tạo một guest batch dành riêng cho chuỗi và yêu cầu đăng ký khóa xác minh ZisK của nó.

Mỗi chuỗi có guest batch riêng. Guest chứa genesis và địa chỉ nhận phí của chuỗi. Nó kiểm tra dữ liệu batch và việc thực thi, rồi cam kết các giá trị công khai mà quá trình đối soát Solana kiểm tra. Của guest `programVK` xác định chương trình đang được chứng minh.

Một chuỗi không cần cấp quyền đăng ký với một registry khóa xác minh trống. Nó không thể đăng root cuối cùng cho đến khi Rome thêm một khóa cho chuỗi đó. Cơ quan quản lý chuỗi không thể đưa khóa vào giao dịch đăng ký của nó. Đây là quy trình v0.3.0 trên Solana devnet.

## Biên dịch guest

Từ `deploy/rollup` trong bản checkout v0.3.0, hãy dùng cài đặt phát hành `ROME_ZK_TAG=v0.3.0`, `ROME_ZK_GUEST_TAG=v0.3.0` và `ZISK_RELEASE=1.3.1-alpha`. Chạy `./rollup init` trước tiên để genesis và chain ID được hiển thị. Bạn cần chuỗi được đăng ký trước khi gửi yêu cầu. Sau đó chạy:

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

Lệnh này xây một image với bộ công cụ ZisK, clone mã nguồn rollup và guest tại các tag đó, build guest từ genesis của bạn và kiểm tra rằng nó mang chain ID của bạn. Nó in ra SHA-256 của ELF của guest. Siêu dữ liệu được tạo ghi lại hash đó, hash genesis, chain ID, bản phát hành ZisK và số scheme của nó. Với bản phát hành này, hai giá trị cuối là `1.3.1-alpha` và `2`.

Để tính `programVK` cục bộ, bản build cần các khóa chứng minh ZisK khớp và khoảng 36 GB RAM. Bước đó mất khoảng 40 giây. Nếu bạn bỏ qua bước đó hoặc không có các khóa, bản build sẽ báo `ProgramVkNotComputed`. Trình chứng minh từ chối siêu dữ liệu nếu không có `programVK`; hãy tính nó bằng các khóa khớp hoặc yêu cầu Rome cung cấp trước khi bạn bắt đầu chứng minh.

Hai máy xây cùng một genesis tại các tag này sẽ nhận cùng một hash ELF. Genesis thay đổi nghĩa là một guest khác, và genesis không thể thay đổi sau khi chuỗi được đăng ký. Bản build từ chối một genesis có chain ID khác với chain ID của bạn (`ChainIdMismatch`) và một genesis cấp số dư cho hơn một tài khoản (`GenesisFundedAccountLimit`).

## Hãy yêu cầu Rome đăng ký nó

Hãy dùng [biểu mẫu yêu cầu khóa xác minh](https://github.com/rome-protocol/solana-zk-evm/issues/new?template=vkey-request.yml). Hãy chuẩn bị chain ID, public key của cơ quan quản lý chuỗi và chữ ký của giao dịch đã đăng ký chuỗi. Bao gồm tag của guest và siêu dữ liệu được tạo: hash ELF, hash genesis, `programVK`, `zisk` và `lược đồ`. Đính kèm hoặc dán genesis đã hiển thị. Nếu genesis khai báo một số dư được hậu thuẫn, hãy chuẩn bị vault được nạp tiền khớp tương ứng. Bao gồm một `./rollup check` kết quả đạt, ngoại trừ các mục đang chờ khóa.

Rome xây lại guest từ tag và genesis. Nó kiểm tra chain ID, genesis, hash ELF và `programVK` so với yêu cầu của bạn, rồi đăng ký khóa dưới bản phát hành ZisK tương ứng. Rome trả lời trong issue bằng chữ ký của giao dịch đăng ký khóa. Khóa trở nên có thể sử dụng ở slot kích hoạt đã ghi nhận của nó; hãy chạy `./rollup check` sau slot đó. Khi bật trình chứng minh, `khóa xác minh` kiểm tra này phải đạt. Kiểm tra khóa có khả năng nạp tiền cũng phải đạt.

Rome đăng ký một **yêu cầu hoàn chỉnh trong vòng hai ngày làm việc**. Nếu yêu cầu chưa đầy đủ, Rome sẽ trả lời những gì còn thiếu. Hai ngày làm việc bắt đầu khi yêu cầu được hoàn chỉnh.

Thời điểm rất quan trọng vì cửa sổ reclaim bắt đầu khi bạn đăng ký chuỗi, chứ không phải khi khóa của nó trở nên hoạt động. Cửa sổ devnet v0.3.0 là 6.480.000 slot, khoảng 30 ngày. Nếu không có root nào được đăng khi cửa sổ đó kết thúc, bất kỳ ai cũng có thể reclaim chuỗi và khoản ký quỹ 5 SOL của nó sẽ vào kho bạc. Cơ quan quản lý registry của Rome có thể thay đổi cửa sổ toàn cục, với điều kiện giới hạn tối thiểu 216.000 slot.

Sau khi kích hoạt, hãy cung cấp cho trình chứng minh guest khớp, siêu dữ liệu và các khóa chứng minh ZisK tương ứng, bật `PROVER=on`, rồi chạy `./rollup init`, `./rollup up` và `./rollup check`. Bằng chứng phải dùng một khóa đang hoạt động đã được đăng ký cho chuỗi này. Việc chuyển sang một bản phát hành ZisK khác sau này cần một lần build guest khác và một mục đã đăng ký khác; xem [Phát hành](/vi/rome-zk-evm/releases.md).

Các trường đầy đủ của yêu cầu và các bước dành cho người vận hành có trong [Chạy trên devnet ở 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/vi/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.
