> 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/zh/kuai-su-ru-men/key-concepts.md).

# 关键概念

构建 Rome Protocol 所需的核心术语和概念。

## Solana 概念

**程序** — Solana 中相当于智能合约的概念。程序是部署在链上的无状态可执行程序。Rome EVM 本身就是一个 Solana 程序。

**账户** — Solana 上的所有状态都存储在账户中。每个账户都有所有者（程序）、余额（lamports）和数据。不同于以太坊，代码和状态存储在不同的账户中。

**PDA（程序派生地址）** — 由种子和程序 ID 派生出的确定性地址。PDA 允许程序在没有私钥的情况下“拥有”账户。Rome 使用 PDA 将以太坊地址映射到 Solana 账户。

**CPI（跨程序调用）** — 一个 Solana 程序在同一笔交易中调用另一个程序。Rome EVM 合约正是通过这种方式与 Jupiter、Kamino、SPL Token 以及其他 Solana 程序交互。

**SPL Token** — Solana 的标准代币程序。相当于以太坊上的 ERC-20。Solana 上所有可替代代币（USDC、SOL 等）都是 SPL 代币。

**Token-2022** — 下一代 SPL 代币程序，支持 Transfer Hooks、Confidential Transfers 和 Permanent Delegates 等扩展。

**Transfer Hook** — Token-2022 的一种扩展，在每次 `transfer_checked` 调用时都会触发一个程序。

**ATA（关联代币账户）** — 针对特定钱包 + 铸币对的确定性代币账户。每位用户持有的每种代币都有一个 ATA。

**Lamports** — SOL 的最小单位。1 SOL = 1,000,000,000 lamports（10^9）。

**计算单元（CU）** — Solana 中相当于以太坊 gas 的概念。每笔交易都有计算预算（默认约 20 万 CU，最大约 140 万 CU）。操作会消耗 CU。

## Rome 概念

**Rome EVM 程序** — 包含 EVM 字节码解释器的 Solana 程序。每个环境都会部署到特定的程序 ID。

**链 ID** — Rome 上的每个应用都有自己的 EVM chain ID。这会创建相互隔离的 EVM 环境，但它们共享底层同一份 Solana 状态。

**原子执行（VmAt）** — 完全在一笔 Solana 交易内执行的 EVM 交易。用于大多数操作。

**迭代执行（VmIt）** — 跨多笔 Solana 交易拆分执行的 EVM 交易，每一步都会尽可能装入在一笔 Solana 交易计算预算内可容纳的尽量多的操作码（自适应，而非固定数量）。用于 BN254 pairing 等计算密集型操作。

**持有者账户** — 用于存储超过 Solana 1,232 字节交易大小限制的大型 EVM 交易（最高 80 KB）的链上缓冲区。由 SDK 透明管理。

**StateHolder** — 在迭代执行步骤之间存储序列化虚拟机状态的链上账户。

**Rome Proxy** — 将以太坊 API 调用转换为 Solana 交易的 JSON-RPC 服务器（端口 9090）。MetaMask 和 Hardhat 通过此处连接。

**Hercules** — 监控 Solana 上 Rome EVM 事件并生成兼容以太坊的区块数据的区块索引器。

**付款账户** — 代表 EVM 用户签名并支付 Solana 交易费用的 Solana 密钥对。由 Proxy 通过 payer 池进行管理。

## 代币概念

**SPL\_ERC20 / SPL\_ERC20\_cached** — 在 Rome EVM 内代表 SPL 代币的 ERC-20 包装合约。该包装器直接从底层 SPL 代币账户读取余额——无需单独状态。当前工厂部署的是缓存版本。

**ERC20SPLFactory** — 为任意 SPL 代币部署包装器的工厂合约。

**注册表** — 规范包装器、gas 代币和桥接配置由链下 [rome-protocol/registry](https://github.com/rome-protocol/rome-registry)管理；不存在链上的代币注册表合约。这样可使每种资产都映射到唯一的规范 SPL mint。

## 预编译合约

**标准以太坊预编译合约** — ecrecover (0x01)、SHA-256 (0x02)、RIPEMD-160 (0x03)、identity (0x04)、modexp (0x05)、BN254 ecAdd/ecMul/ecPairing (0x06-0x08)、Blake2f (0x09)。

**系统预编译合约** (`0xFF...07`）— Solidity 中的 PDA 派生和 base58 转换。

**CpiProgram 预编译合约** (`0xFF...08`）— 跨程序调用（`invoke` / `invoke_signed`）以及跨状态读取快捷方式。

**HelperProgram 预编译合约** (`0xFF...09`）— ATA/PDA 创建、SPL 转账以及 gas↔lamports 转换；用户通过 PDA 签名进行 SPL 操作的主要入口。

**Withdraw 预编译合约** (`0x42...16`）— 将 SOL 或 SPL 代币从 EVM 提取回 Solana。

缓存轨道系列（`0xff…04/05/06/0b`）为这些操作提供 CU 高效读取的镜像；合约会始终使用同一条轨道。

## 交易类型

**RheaTx** — 在单个 rollup 上执行的一笔 EVM 交易。最常见的类型。

**RemusTx** — 跨不同 rollup 的多笔 EVM 交易，原子执行。若任一交易失败，全部回滚。

**RomulusTx** — 将 EVM 交易与原生 Solana 指令合并为一次原子操作。最强大的类型——可在一笔交易中混合 Solidity 和 Solana。

## 下一步

* [执行模型](/zh/he-xin-gai-nian/execution-model.md) — 深入了解 EVM 交易在 Solana 上如何执行
* [代币互操作](/zh/he-xin-gai-nian/token-interop.md) — ERC-20 与 SPL 代币如何交互
* [限制条件](/zh/he-xin-gai-nian/constraints.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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.rome.builders/zh/kuai-su-ru-men/key-concepts.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
