> 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/how-it-works.md).

# 작동 방식

EVM 블록이 Solana 데이터 게시, ZisK 증명, 최종 정산을 거치는 과정을 따라가 보세요.

당신의 시퀀서는 JSON-RPC를 통해 EVM 트랜잭션을 받습니다. 서명, nonce, 자금, 가스를 확인한 뒤 수락된 트랜잭션을 도착 순서대로 실행합니다. 사전 확정을 반환하기 전에 서명된 서브블록과 그 트랜잭션을 내구성 있는 순차 로그에 기록합니다. 시퀀서는 체인의 블록을 생성하기 위해 reth를 내장합니다.

사전 확정은 시퀀서가 무엇을 수락하고 어떤 순서로 정렬했는지 알려줍니다. 이는 최종 Solana 루트가 아닙니다. 나머지 경로는 데이터를 게시하고, 이를 실행하면 주장된 상태가 나온다는 것을 증명합니다.

```
EVM 트랜잭션 -> 시퀀서 -> 순차 로그 -> 배처 -> Solana 인박스
Solana 인박스 -> derive -> reth-verifier -> 블록 + 위트니스
블록 + 위트니스 -> 프로버(ZisK 배치 게스트) -> 증명 + 루트
증명 + 루트 -> Solana 정산(PostRootProved) -> 최종 루트
```

## 블록에서 인박스 배치로

배처는 순차 로그에서 연속된 블록을 읽습니다. 이 예시는 `chain.toml` 배치를 60개 블록에서, 또는 첫 블록으로부터 60초 후에, 둘 중 먼저 도래하는 시점에서 닫습니다. 배치를 프레임으로 압축하고, 해당 프레임을 Solana에 인박스 청크로 게시한 뒤, 배치의 Merkle 커밋먼트를 최종 확정합니다.

인박스 커밋먼트는 체인 및 배치 ID, 시작 슬롯, 청크 수, 청크의 Merkle 루트, 그리고 배치의 입금 범위를 포함합니다. 인박스 배치를 최종 확정한다는 것은 그 데이터가 게시되었음을 의미합니다. 이것이 상태 루트를 최종화하는 것은 아닙니다. 체인 권한자가 배치 최종 확정에 서명합니다.

배처는 블록 번호를 건너뛸 수 없습니다. 정산도 순서대로 다음 배치를 처리합니다. 그래서 멈추었거나 버려진 배치가 이후 루트를 막습니다. 배처는 재시작 후 복구할 수 있을 때, 부분적으로 기록된 배치를 같은 번호로 이어서 처리합니다.

## 파생, 검증 및 증명

`파생` Solana에서 최종 확정된 인박스 배치를 읽습니다. 블록을 재구성하고 별도의 `reth 검증기` 노드가 이를 다시 실행합니다. 이 노드는 배치 프로버가 필요로 하는 실행 위트니스와 출구 프로버가 필요로 하는 상태 증명을 제공합니다. reth의 테스트 API를 실행하므로 공개 네트워크와 분리되어 있어야 합니다.

프로버는 각 최종 확정된 인박스 배치를 읽고, 검증기 노드에서 블록과 위트니스를 받아 ZisK에서 체인의 배치 게스트를 실행합니다. 게스트는 블록이 인박스 데이터와 일치하고 올바르게 실행되는지 확인합니다. 또한 결과 상태 루트를 포함한 배치의 공개 값을 커밋합니다. 귀하의 제네시스와 수수료 수령자는 이 게스트에 컴파일되므로, 각 체인은 고유한 게스트와 `programVK`.

프로버는 로컬에서 증명을 검증한 뒤, 다음을 보냅니다 `PostRootProved`. 정산 프로그램은 이 체인에 등록된 활성 검증 키와 그 키가 지정한 ZisK 릴리스를 확인합니다. 또한 증명의 공개 값을 체인 ID, 블록 범위, 이전 항목, 인박스 커밋먼트 및 주장된 루트와 대조해 확인합니다.

Veritas는 ZisK PLONK 증명을 위한 Rome의 검증기입니다. 정산은 그 검증 코드와 링크되어 이를 내부에서 실행합니다 `PostRootProved`; 별도로 배포된 Veritas 프로그램을 호출하지 않습니다. 유효한 증명은 다음을 기록합니다 `최종` 루트를 기록하고 같은 Solana 트랜잭션에서 최종성 헤드를 진전시킵니다. 퍼미션리스 체인의 제네시스 루트는 그 자체로는 최종이 아닙니다. 최초의 최종 루트에는 증명된 배치가 필요합니다.

## 경계를 넘는 자금

입금은 Solana에서 시작됩니다. 브리지 프로그램은 입금된 토큰을 입금자로부터 해당 체인의 볼트로 옮기고 번호가 매겨진 입금 기록을 추가합니다. 시퀀서는 최종 확정된 Solana 입금을 읽고 지정된 EVM 주소에 순서대로 크레딧을 부여합니다. 배처는 배치와 함께 입금 범위를 커밋합니다. 잔액은 해당 블록이 봉인될 때 체인에 나타나지만, 그 크레딧은 해당 배치의 루트가 Solana에서 증명되어야만 최종입니다.

출금은 체인의 출구 포털에서 시작됩니다. 포털은 메시지를 기록하고 네이티브 자산을 소각합니다. 출구 프로버는 그 메시지를 감시하고, 최종 루트를 기준으로 검증기 노드에서 Ethereum 스토리지 증명을 얻습니다. 로컬에서 그 증명을 확인한 뒤, 다음을 보냅니다 `ProveExit` Solana 정산으로.

정산은 포털, 메시지, 최종 루트 및 출구 한도를 확인하고, 같은 출구가 두 번 증명되는 것을 방지합니다. 그런 다음 출구 프로버는 브리지의 해제 트랜잭션을 보냅니다. 브리지는 증명된 출구를 소모하고 한 번의 원자적 트랜잭션으로 해당 체인의 볼트에서 수령자에게 지급합니다. 수령자는 증명된 기록에서 가져오므로, 해제를 보내는 사람은 이를 변경할 수 없습니다.

전체를 읽어보세요 [v0.3.0 아키텍처](https://github.com/rome-protocol/solana-zk-evm/blob/v0.3.0/docs/ARCHITECTURE.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/how-it-works.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.
