# 为什么选择 Rome？

已有多个项目将 EVM 兼容性引入 Solana。Rome 采用了一种根本不同的方法。

## 核心差异化优势

### 1. 通过 CPI 实现原子可组合性

Rome 是唯一一个 Solidity 合约可以在同一笔交易中调用 Solana 程序的 EVM 环境。一个 Solidity 函数可以：

```solidity
// 全部在一笔原子交易中：
int256 price = IPyth(PYTH).getPrice("SOL/USD");        // 读取 Pyth 预言机
uint256 quote = IJupiter(JUPITER).getQuote(USDC, SOL);  // 获取 Jupiter 报价
IJupiter(JUPITER).swap(USDC, SOL, amount, minOut);       // 执行兑换
IKamino(KAMINO).deposit(SOL, collateralAmount);          // 存入 Kamino
```

如果任一步骤失败，整笔交易都会回滚。没有部分执行，没有竞争条件。

### 2. 单一状态

在 Rome 上，一个 SPL 代币及其 ERC-20 表示形式本质上是同一个底层账户。当某个 Solidity 合约转移 USDC 时，移动的是实际的 SPL USDC——而不是包装副本。

这意味着：

* **没有流动性碎片化** — Solana DeFi 和 EVM DeFi 共享同一流动性池
* **没有跨链桥风险** — 由于没有跨链桥可供利用，因此不存在跨链桥被攻击的风险
* **实时可组合性** — EVM 合约会立即看到 Solana 状态变更

### 3. 应用主权

Rome 上的每个应用都拥有自己的 EVM 环境：

* **自定义链 ID** — 你的应用就是一条独立链
* **自定义 Gas 代币** — 任意 SPL 代币，通过 Meteora LP 池定价
* **Gas 收入** — 费用归属于你的应用，而不是 Rome 协议
* **完整的 EVM 工具链** — 你的用户使用 MetaMask 连接，你的开发者使用 Hardhat

### 4. EVM 中的 Token-2022 Transfer Hook

Rome 是唯一一个可以让 EVM 逻辑驱动 Token-2022 Transfer Hook 的平台。当有人在 Jupiter、Raydium 或任何 Solana DEX 上转移 Token-2022 资产时，一个 Solidity 合规合约可以作为转移钩子执行——KYC 检查、制裁筛查、版税强制执行，全部用 Solidity 实现。

## 何时使用 Rome

**在以下情况下使用 Rome：**

* 你希望 EVM 合约能够直接访问 Solana DeFi（Jupiter、Kamino、Drift、Meteora）
* 你正在为 SPL 代币构建合规基础设施（Token-2022 hooks）
* 你希望在 Solana 上拥有一条主权 EVM 链，并使用你自己的 Gas 代币
* 你正在迁移需要 Solana 高速与流动性的以太坊合约
* 你需要跨 EVM 和 Solana 程序的原子化操作

**在以下情况下考虑其他方案：**

* 你只需要标准的 Solana 程序（使用原生 Solana/Anchor）
* 你需要以太坊主网结算（使用传统 L2）
* 你需要不经由 EVM 执行的跨链消息传递（直接使用 Wormhole/Hyperlane）

## 接下来

* [架构](/zh/ru-men/architecture.md) — Rome EVM 如何在 Solana 内部运行
* [快速开始](/zh/ru-men/quickstart.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/why-rome.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.
