# 关键概念

构建在 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 的一种扩展，在每次代币转账时都会调用一个程序。Rome 使 EVM 智能合约能够充当转账钩子。

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

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

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

## Rome 概念

**Rome EVM 程序** — 包含 EVM 字节码解释器的 Solana 程序。按不同环境部署在特定的程序 ID 上。

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

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

**迭代执行（VmIt）** — 跨多笔 Solana 交易拆分执行的 EVM 交易，每一步执行约 500 条操作码。用于 BN254 pairing 等计算密集型操作。

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

**StateHolder** — 一个链上账户，用于在迭代执行步骤之间存储序列化的 VM 状态。

**Rome Proxy** — JSON-RPC 服务器（端口 9090），负责将以太坊 API 调用转换为 Solana 交易。你的 MetaMask 和 Hardhat 都连接到这里。

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

**Rhea** — 将交易从 OP-Geth 转发到 Solana 的内存池桥接器（仅在 OP-Geth 模式下使用）。

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

## 代币概念

**ERC20SPL** — 一种 ERC-20 包装合约，用于在 Rome EVM 中表示 SPL 代币。该包装器直接从底层 SPL 代币账户读取余额——无需单独状态。

**ERC20SPLFactory** — 一个工厂合约，在首次跨链时为任意 SPL 代币部署 ERC20SPL 包装器。

**规范代币注册表** — 将每种资产映射到单一的规范 SPL 铸币，以防止表示碎片化（例如，USDC 始终映射到 Circle 的原生 SPL 铸币）。

## 预编译合约

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

**系统程序预编译合约** (`0xFF...07`）— 从 Solidity 中进行 PDA 派生、base58 转换、账户创建。

**CPI 预编译合约** (`0xFF...08`）— 从 Solidity 中进行跨程序调用。可使用以下方式调用任意 Solana 程序 `invoke()` 或 `invoke_signed()`.

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

## 交易类型

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

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

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

## 部署模式

**单状态模式** — 用户直接连接到 Rome Proxy。设置更简单，延迟更低。由 Hercules 生成 EVM 区块并存储在 PostgreSQL 中。

**OP-Geth 模式** — 用户连接到 OP-Geth 以获得完整的以太坊 RPC 兼容性。Rhea 将内存池桥接到 Solana。Hercules 通过 Engine API 将区块提供给 OP-Geth。

## 下一步

* [执行模型](/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: 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:

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

The question should be specific, self-contained, and written in natural language.
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.
