Solana 是否兼容以太坊虚拟机 (EVM)?SVM 与 EVM 对比
Solana is not natively EVM compatible. Learn how Neon EVM enables Solidity on Solana, key differences between SVM and EVM, and which path is right for...
准确性说明:网络性能、验证者数量、费用、协议功能、钱包支持和第三方集成等会随时间变化。请将过时的数据视为历史快照,并核实当前的主要来源文档。
Solana 是否原生支持 EVM 兼容?否:Solana 使用 SVM 和不同的账户及执行模型。第三方环境可能提供部分 EVM 兼容性,但必须单独评估其架构、状态和工具支持。
Solana 不原生支持 EVM 兼容。它使用 Solana 虚拟机 (SVM) 和不同的执行模型。Solana 程序通常用 Rust 编写,并支持额外的工具链,而不是作为原生 EVM 字节码部署。Neon EVM 是一个与 Solana 相关的第三方 EVM 执行环境,不是原生 SVM 支持,也不是简单的代币桥接。
Solana 是否兼容 EVM?简短答案
Solana 是一个高性能的 Layer 1 区块链,意味着它是一个独立处理和最终确定交易的底层网络。它不使用以太坊虚拟机 (EVM)。相反,Solana 从头开始构建了自己的运行时,这种架构上的差异是为什么以太坊智能合约不能在 Solana 上原生运行的原因。
对于询问其以太坊钱包是否在 Solana 上工作、以太坊去中心化应用程序(dApps,运行在区块链而非中心化服务器上的软件应用程序)是否可以迁移到 Solana、或者 Solidity 开发者是否需要重新学习一切的用户:这两个网络在架构上是独立的。通过 Neon EVM 存在部分兼容性,本文其余部分将解释其具体含义。
什么是以太坊虚拟机 (EVM)?
以太坊虚拟机 (EVM) 是在区块链网络上处理和运行智能合约代码的计算引擎。智能合约是存储在区块链上的自执行程序,当满足条件时会自动执行预设规则。EVM 读取合同编译成的字节码并执行指令。
可以将 EVM 设想成一个特定的操作系统。任何运行该操作系统的计算机都可以运行相同的软件。采用 EVM 标准的区块链可以运行与以太坊相同的智能合约代码,并支持相同的开发者工具,而无需开发者重写任何内容。这就是加密货币中 EVM 兼容性的实际含义:代码和工具在链间的可移植性。
什么是 EVM 兼容?
当一个区块链能够执行 Solidity 编译的字节码并支持标准的以太坊开发者工具链时,它就是 EVM 兼容的。具体来说,Solidity 合约可以无需修改即可部署,并且像 MetaMask(钱包)、Hardhat(开发框架)、Truffle(部署套件)、Foundry(测试框架)和 Ethers.js(前端库)这样的工具都可以正常运行,无需重大更改。EVM 兼容性的问题是 Web3 开发者选择哪个区块链进行构建的核心,因为它决定了现有代码和技能是否可以直接转移。
采用 EVM 兼容的链包括以太坊本身(原始链)、Avalanche 的 C-Chain、BNB Chain(以前称为 Binance Smart Chain)、Polygon,以及像 OTK_3 和 OTK_5 这样的 OTK_4 网络。它们都采用了 EVM 标准,这意味着 Solidity 开发者可以以极低的障碍在其中任何一条链上进行部署。Solana 没有采用此标准。
Solana 是否原生支持 EVM 兼容?完整答案
采用 EVM 兼容的链包括以太坊本身(原始链)、Avalanche 的 C-Chain、BNB Chain(以前称为 Binance Smart Chain)、Polygon,以及像 Layer 2 和 Optimism 这样的 Arbitrum 网络。它们都采用了 EVM 标准,这意味着 Solidity 开发者可以以极低的障碍在其中任何一条链上进行部署。Solana 没有采用此标准。
Solana 是否原生支持 EVM 兼容?完整答案
Solana 不原生支持以太坊虚拟机 (EVM)。它使用不同的执行环境,因此 EVM 字节码需要单独的兼容层或执行环境。这是一个架构上的区别,而不是一个缺失的设置。
Solana 的原生开发语言是 Rust,一种系统级编程语言,因其性能和内存安全特性而被选中。Rust 并非 Solana 独有;它广泛用于系统编程和 WebAssembly 上下文。以太坊称之为智能合约,Solana 称之为程序(programs),这些程序主要用 Rust 编写,C 和 C++ 作为替代。为以太坊编写的 EVM 字节码不能在 Solana 上原生运行。
Solana 为何不原生运行 EVM
Solana 的创始人构建了自己的虚拟机,即 Solana 虚拟机 (SVM),也称为 Sealevel 运行时,以实现并行交易处理。EVM 一次只能顺序处理一个交易。Solana 的 Sealevel 运行时可以同时处理多个交易,这是其高吞吐量优势的核心来源。这种并行模型需要一个与 EVM 不同的架构基础。简而言之:SVM 使用基于 Rust 的程序和独立的账户模型;EVM 使用 Solidity 合约,状态存储在每个合约内部。这些设计差异将在下面的比较表中详细探讨。
Solana 通过历史证明 (PoH) 实现高吞吐量,这是一种不同于工作量证明 (PoW) 和质押证明 (PoS) 的计时机制。PoH 允许验证者无需持续协调即可就交易顺序达成一致,其设计在架构上与以太坊的共识模型不兼容。
对于钱包用户:MetaMask 和 Solana 的支持随时间而变化。请直接从 MetaMask 验证当前的原生或基于扩展程序的支持,并将 Solana 账户与 Neon EVM RPC 连接区分开。
Neon EVM 如何提供独立的 EVM 环境
Neon EVM 是一个与 Solana 相关的第三方 EVM 执行环境。它可能支持 Solidity 合约和以太坊工具链的部分功能,但当前部署状态、架构、兼容性、成本和限制必须单独验证。它不是 SVM 的原生 EVM 支持。
Neon EVM 是什么?
Neon EVM 由 Neon Labs(一家独立公司)开发和维护。它不是 Solana 基金会的官方产品。Neon Labs 将 Neon EVM 构建为一个部署在 Solana 之上的智能合约平台,为开发者提供了一个 EVM 兼容的接口。在底层,它会拦截以太坊格式的交易,将它们封装成 Solana 兼容的交易结构,并通过 Solana 的共识和运行时层进行路由执行。从开发者的角度来看,该接口看起来与其他任何 EVM 环境一样。实际的计算发生在 Solana 上。
这种架构创建了一个独立的 EVM 环境,而不是将 SVM 转换为 EVM。代币桥接、资产表示和合约执行是独立的问题,不应混淆。
源草案列出了以下以太坊工具作为与 Neon EVM 兼容。在依赖任何项目之前,请验证当前版本和限制:
- MetaMask:通过 Neon EVM 的 RPC 端点进行钱包连接
- Hardhat:合约编译和部署框架
- Truffle:开发和测试套件
- Foundry:智能合约测试框架
- Ethers.js 和 Web3.js:前端库集成
部署工作流程镜像了标准的 EVM 部署:Solidity 编译成 EVM 字节码,然后 Neon EVM 在 Solana 网络上处理它。使用 Ethers.js 或 Web3.js 的前端代码应能以最小的改动运行,但开发者应在边缘情况下测试行为差异,因为不能保证与原生 EVM 完全相同。
如何评估 Neon EVM 的就绪程度?
此源草稿描述了主网部署,但仅凭部署状态无法推断其已为生产环境做好准备。在将生产系统投入使用前,请审查当前的活动、发布、事件历史、审计、运营商依赖、RPC可用性、工具版本、费用和行为差异。
Neon EVM 也会独立于 Solana 的核心协议进行演进。开发者在决定生产环境部署前,应根据官方 Neon EVM 文档核实当前的功能、支持的工具版本和已知限制。团队应在上线前对 devnet 进行自己的尽职调查。
Solana 虚拟机 (SVM) 与 以太坊虚拟机 (EVM):主要区别
Solana 的 SVM 和以太坊的 EVM 在交易处理方式上存在最根本的区别。SVM 通过其 Sealevel 执行模型并行处理多笔交易,而 EVM 则一次性按顺序处理交易。这一单一的架构差异解释了两者之间吞吐量差距的大部分原因。
对于开发者而言,编程语言的差异是最直接的摩擦点。Solana 程序使用 Rust(或 C 和 C++)编写,而以太坊智能合约使用 Solidity 编写。Rust 提供了内存安全保证和性能优势,但其学习曲线比 Solidity 更陡峭,特别是对于来自 JavaScript 和 TypeScript 主导的 EVM 环境的开发者而言。而 Solidity 拥有更广泛的已审计合约库和更普遍的 Web3 开发者熟悉度。
下表比较了这两种运行时在开发者和产品团队评估选择路径时最重要维度的差异。关于 Solana 架构的详细信息,官方 Solana 文档是权威来源。
| 属性 | Solana SVM | 以太坊 EVM |
|---|---|---|
| 主要智能合约语言 | Rust (也支持 C, C++) | Solidity |
| 智能合约术语 | Programs | 智能合约 |
| 执行模型 | 并行 (Sealevel 运行时) | 顺序 |
| 状态存储模型 | 分离的账户结构 (无状态程序) | 合约内部存储 |
| 约略吞吐量 | 历史理论基准测试引用约 65,000 TPS;实际结果各异 | 历史基础层估计引用约 15–30 TPS;L2 执行结果不同 |
| 交易费用模型 | 基础费用和可选优先级费用;成本各异 | 可变 gas 费用;L2 费用模型不同 |
| EVM 字节码支持 | 否 (通过 Neon EVM 部分支持) | 是 (原生) |
| 主要开发者工具 | Anchor, Solana CLI, Rust 工具链 | MetaMask, Hardhat, Truffle, Foundry, Ethers.js |
| 原生钱包支持 | Phantom, Solflare | MetaMask, WalletConnect |
TPS 数据为近似值,可能因网络状况和测量方法而异。Neon EVM 改变了实际的 EVM 字节码支持情况,但并未使原生 SVM 程序兼容 EVM;请参见上文。
关于费用的说明:Solana 使用的费用模型与以太坊的 gas 系统不同。将 Solana 的交易费用称为“gas 费”会引入以太坊的框架,这并不适用;Solana 的费用计算方式不同,且每笔交易通常只需一小部分美分。
Solana 与 EVM 兼容区块链的比较
Solana 的非 EVM 架构将其与 Avalanche C-Chain、BNB Chain 和 Polygon 等 EVM 兼容的替代方案区分开来。每个链在开发者熟悉度、原始吞吐量和生态系统成熟度之间做出了不同的权衡。没有单一的链适合所有用例;正确的选择取决于团队最需要什么。
下表显示了 Solana 相对于主要 EVM 兼容链的位置。
| 链 | EVM 兼容? | 原生语言 | 约略 TPS | 主要差异化因素 |
|---|---|---|---|---|
| Solana | 部分 (通过 Neon EVM) | Rust | 历史理论基准测试引用约 65,000 | 并行 SVM 执行;实际数据因测量方法而异 |
| 以太坊 | 是 (主链) | Solidity | ~15–30 | 最大开发者生态系统和 DeFi TVL |
| Avalanche C-Chain | 是 | Solidity | ~4,500 | EVM 兼容的高性能 L1 |
| BNB Chain | 是 | Solidity | ~2,000 | 低费用;庞大的散户用户基础 |
| Polygon (PoS) | 是 | Solidity | ~7,000 | 以太坊侧链;低部署成本 |
TPS 数据为近似值,可能因网络状况和测量方法而异。
对于在 Solana 和 EVM 兼容链之间进行选择的开发者,核心权衡是明确的:Avalanche C-Chain、BNB Chain 和 Polygon 等 EVM 兼容链为 Solidity 团队提供了熟悉的开发环境,入门门槛极低;而 Solana 则在较低的费用和更高的吞吐量优势之间提供了选择,代价是学习 Rust 或通过 Neon EVM 进行路由。对于对 BNB Chain 如何专门集成到 MetaMask 工作流程感兴趣的团队,关于如何将 BNB Chain 添加到 MetaMask) 的指南详细介绍了该配置。
Solana 的非 EVM 架构并未阻止其建立一个庞大的原生开发者和去中心化金融 (DeFi) 生态系统。Solana 托管着活跃的去中心化交易所 (DEX) 协议,包括 Jupiter 和 Raydium,以及 Orca 等流动性聚合器,这些都建立在 SVM 之上,并独立于 EVM 基础的 DeFi 基础设施运行。EVM 兼容链因低门槛的工具迁移吸引了庞大的 Solidity 开发者社区,但 Solana 通过其架构实现的性能优势吸引了更多自己的开发者群体。
是否应该在 Solana 或 EVM 链上构建?开发者决策框架
选择 Neon EVM 还是原生 Solana 开发,或者直接选择 EVM 兼容链,取决于三个因素:团队现有的语言技能、性能要求以及你能从第三方依赖中吸收多少技术风险。下表将关键标准映射到两个 Solana 路径上。
| 标准 | Neon EVM 路径 | 原生 Solana 路径 |
|---|---|---|
| 语言要求 | Solidity (无需新语言) | Rust (大量学习投入) |
| 首次部署时间 | 快速 (现有工具链可用) | 较慢 (新工具链和思维模式) |
| 性能上限 | 受限于抽象开销 | 完全的 Solana 吞吐量 |
| 第三方兼容性依赖 | 是 | 无独立 EVM 层;仍依赖 Solana 协议和工具链 |
| EVM 工具链兼容性 | 完全 (MetaMask, Hardhat, Ethers.js) | 原生不支持 |
| 生态系统集成 | 部分 (Neon EVM 环境) | 完全 (原生 Solana dApp 生态系统) |
| 潜在适用性 | Solidity 团队;时间敏感的发布 | 长期 Solana 投资;性能关键型应用 |
三种场景涵盖了大多数评估 Solana 的团队:
场景 1:您的团队精通 Solidity 并正在评估一个更快的迁移路径。 在选择架构之前,请将 Neon EVM 与 EVM L2 和原生 SVM 重写进行比较。您现有的合约、部署管道和钱包设置可以最小改动地迁移。权衡之处在于接受 Neon EVM 的抽象开销,以及对一个独立于 Solana 核心演进的第三方协议的依赖。
场景 2:您的团队正在评估原生 SVM 开发。 比较支持的 Solana 工具链、账户模型、审计资源、操作要求和框架依赖。Anchor 是一个框架示例,而非通用要求。
场景 3:您的要求需要一个原生的 EVM 环境。 按兼容性、安全假设、结算、成本、操作和生态系统支持对 EVM 网络和 L2 进行比较。没有哪个网络或迁移路径是完全没有风险的。
快速决策指南:
- 熟悉 Solidity?根据相同的要求评估第三方兼容性、EVM L2 以及原生 SVM 重写。
- 正在评估原生 SVM 开发?比较当前的语言、框架和审计工具。
- 需要原生 EVM?使用相同的要求比较当前的 EVM 网络和 L2。
无论选择哪条路径,在任何主网部署之前,请先在 Solana devnet 上进行彻底测试。对于 Neon EVM 路径,在致力于生产架构之前,请先在 neonevm.org 验证当前的工具兼容性。
常见问题解答:Solana 与 EVM 兼容性
Solana 是否兼容 EVM?
Solana 本身并不兼容 EVM。它使用以太坊虚拟机 (EVM) 以外的 SVM,以及不同的账户和执行模型。Neon EVM 在此处作为第三方 EVM 环境出现;它并不会使 SVM 本身兼容 EVM。在依赖特定的 Solidity 或工具支持之前,请验证其当前的功能。
您能在 Solana 上使用 MetaMask 吗?
MetaMask 对 Solana 的支持随时间而变化。请直接从 MetaMask 验证当前的原生或基于扩展程序的支持,并将 Solana 账户与 Neon EVM RPC 连接区分开来。
Solana 使用什么虚拟机?
Solana 使用以太坊虚拟机 (EVM) 之外的 Solana 虚拟机 (SVM),也称为 Sealevel 运行时。SVM 在架构上与以太坊虚拟机 (EVM) 不同且不兼容。其主要设计优势是并行事务处理:SVM 同时执行多个事务,而 EVM 则一次处理一个。这种并行模型是 Solana 相对于以太坊主网吞吐量优势的核心来源。
EVM 和 SVM 之间有什么区别?
EVM 按顺序处理事务,使用 Solidity 作为其主要语言,并将合约状态存储在每个合约中。SVM 通过其 Sealevel 运行时并行处理事务,使用 Rust 作为原生语言,并将数据分隔到不同的账户结构中。这两种运行时使用不兼容的账户模型、编程语言和工具生态系统。
历史基准测试引用的 Solana 理论数字接近 65,000 TPS,而常用的以太坊主网估算值则低得多。这些数字并非实时的同类比较:事务定义、工作负载、投票流量、批处理、执行层和最终性阈值都很重要。当团队同时需要吞吐量和 Solidity 工具时,应单独评估以太坊 Layer 2 网络。
哪些区块链是 EVM 兼容的?
主要的 EVM 兼容区块链包括以太坊(源链)、BNB Chain(前身为币安智能链)、Avalanche C-Chain、Polygon (PoS)、Arbitrum 和 Optimism。这些链都支持 Solidity 合约和标准的以太坊开发工具链,无需修改。Solana 本身并不兼容 EVM;它使用 SVM。Solana 上的部分 EVM 兼容性可以通过 Neon Labs 构建的 Neon EVM 实现。
Solidity 智能合约可以在 Solana 上运行吗?
Solidity 编译的 EVM 字节码无法在 SVM 中原生运行。单独的 EVM 执行层可能支持 Solidity 合约,而原生的 Solana 程序则使用 SVM 兼容的工具链。请验证当前的语言和框架支持,而不是将单一的第三方环境视为唯一的可能路径。
Neon EVM 如何融入 Solana?
Neon EVM 由独立公司 Neon Labs 构建和维护,而非 Solana 基金会。它作为 Solana 网络之上的兼容层运行,让开发者能够部署 Solidity 合约并使用 MetaMask 和 Hardhat 等工具,而无需学习 Rust。它的工作原理是将以太坊格式的事务包装在 Solana 兼容的结构中,并将其通过 Solana 的共识层进行路由。请在 neonevm.org 验证当前的功能。
为什么 Solana 不兼容 EVM?
Solana 从头开始设计了自己的虚拟机,专门为并行事务处理和高吞吐量而优化。实现这些性能目标所需的架构选择从根本上与 EVM 的顺序执行模型不兼容。Solana 的创始人选择了性能优化而非 EVM 兼容性,这是一个深思熟虑的设计决定。SVM 和 Sealevel 运行时反映了这一优先级,而不是平台本身的缺陷。
对于 DeFi,Solana 是否优于以太坊?
Solana 提供更低的交易费用和更快的最终性,这有利于需要高频交易的 DeFi 协议。以太坊拥有最大的 DeFi 总锁仓价值 (TVL)、经受过最多实战检验的协议以及其生态系统中最深厚的流动性。EVM 兼容性使得将以太坊原生 DeFi 协议移植到其他 EVM 链变得更加容易。每个网络服务于不同的 DeFi 使用场景;正确的选择取决于协议的具体要求。
在 Bybit 探索 SOL
读者可以查看 当前的 SOL 市场信息) 或 SOL/USDT 现货市场.)。这些链接提供市场准入,并不证明 Solana、钱包或第三方协议适合每一位读者。
关键要点:Solana 与 EVM 兼容性
以下是关于 Solana 的 EVM 兼容性状态最重要的五个事实:
- Solana 本身并不兼容 EVM。 它使用以太坊虚拟机 (EVM) 以外的 Solana 虚拟机 (SVM),而不是以太坊虚拟机 (EVM)。
- Rust 是最常见的原生 Solana 开发语言。 如果没有单独的 EVM 兼容执行层,EVM 字节码无法在 SVM 中运行。
- 由 Neon Labs 构建的 Neon EVM 在 Solana 上提供部分 EVM 兼容性。 它是第三方层,不是官方的 Solana 基金会产品。它支持 MetaMask 和 Hardhat 等工具,以及 Truffle、Foundry、Ethers.js 和 Web3.js。
- MetaMask 对 Solana 的支持随时间而变化。 请直接从 MetaMask 验证当前的原生或基于扩展程序的支持,并将 Solana 账户与 Neon EVM RPC 连接区分开来。
- Solana 的非 EVM 架构是权衡性能后的刻意选择。 SVM 的并行执行模型赋予了 Solana 相对于 EVM 链的吞吐量优势。
Solana 和 Neon EVM 生态系统发展迅速。在做出基础设施决策之前,请根据官方 Neon EVM 文档和 官方 Solana 文档 验证当前的功能。