📖 术语 🟢 通俗解释 🔰 新手

⚙️ Solana 虚拟机(SVM) SVM

运行 Solana 区块链上智能合约和应用的执行环境(也就是那台引擎)。它最大的特点,是把大量交易同时处理,而不是一笔接一笔地排队来。

💡
常见误解 — SVM 不就是 Solana 照搬的 EVM 吗?还真不是!以太坊的 EVM 是一次一笔、排成一队地处理交易,而 SVM 把互不冲突的交易并行跑起来。这是两套不同的设计,不是改个名字。
EVM(单通道) tx → tx → tx(按顺序) SVM(多通道) 🅿️声明账户说清要读/写哪些 并行执行不冲突 = 同时跑
🅿️ 每笔交易先声明自己要碰哪些账户 → ⚡ 互不冲突的就同时执行。两笔都要写同一个账户的交易,仍得排队等候。

🏬 一句话版 — 多开几条收银通道

想象一家超市只开了一条收银通道。哪怕大家买的东西完全不一样,也得乖乖排在前面那位身后。以太坊的 EVM 处理交易就是这副样子:一次一笔,按顺序来。SVM 则一口气开出很多条通道。只要两位顾客没在抢同一件商品,他们就能同时结账。把互不冲突的交易并行处理,正是 SVM 的全部用意,也正因如此,Solana 才能以极低的手续费每秒清算成千上万笔交易。

🅿️ 为什么每笔交易都得「报清要动哪些货架」

并行带来的速度并不是白来的。系统只有在确定两笔交易不会抢同一份数据时,才敢让它们一起跑。所以在 Solana 上,每笔交易都必须事先说清自己会读哪些账户、写哪些账户——就好比进门先告诉收银员你动过哪几排货架。负责读取这些声明、把互不冲突的活儿分进不同通道的运行时,叫做 Sealevel。一条简单的判断标准:只同一个账户的交易可以一起跑,但只要有一笔要共享账户,它们就得排队。

🧩 程序与账户 — 代码和数据分开放

在 Solana 上,智能合约叫做程序(program),而程序是无状态的:代码和数据各住各的。程序只是一段可执行的逻辑,真正的状态全都待在程序去读写的另一批账户里。EVM 的做法恰好相反,把合约的代码和它的存储捆在一起。正是这种分离,让并行访问成为可能——只要知道一笔交易会碰哪些账户,就能判断它能不能和别人共用一条通道。

角色是什么
⚙️ 程序(Program)智能合约的代码——无状态的逻辑,一般用 Rust 编写,编译成一种叫 sBPF 的字节码
📦 账户(Account)一个单独的存储槽,存放程序要读写的数据/状态
🛤️ Sealevel负责把互不冲突的交易分到多个 CPU 核心上同时跑的运行时

🌐 SVM 不只属于 Solana

SVM 是一套可复用的运行时,所以其他链也在它之上搭建。Eclipse 是一条跑 SVM、却把结算交给以太坊的 Layer 2Sonic SVM 则是一条主打游戏的 SVM Layer 2。换句话说,「SVM」正在变成一种更通用的技术标准,就像当年「EVM」之于整个以太坊世界那样。

🚦 新手会在哪儿真正碰到它

  • 🔄 在 Solana 的 DEX 上兑换 — 这次兑换就是一个跑在 SVM 上的程序
  • 🖼️ 在 Solana 上铸造 NFT — 同样是一次程序调用,由同一台引擎处理
  • 👛 使用 Solana 钱包 — 你签名的每一个操作,都由 SVM 来执行
  • 💸 手续费低、确认快 — 之所以让人觉得又便宜又快,靠的正是这套并行设计

📊 关于吞吐量,常见说法是「每秒数千笔 TPS」,但具体数字会因数据来源和网络状况而异。任何一个硬数字都该当成估算看,而不是写死的事实。

❓ 常见问题

SVM 不就是 Solana 版的 EVM 吗?
不是。EVM 一次只处理一笔交易,按顺序排队。SVM 则把互不触碰同一份数据的交易放在多个 CPU 核心上同时跑。这套并行设计才是核心区别,不是换个名字而已。
SVM 只有 Solana 在用吗?
不是。SVM 是一套可复用的运行时,其他链也在它之上搭建。比如结算到以太坊的 Layer 2「Eclipse」,以及主打游戏的 Layer 2「Sonic SVM」。「SVM」正像当年的「EVM」一样,逐渐成为更通用的标准。
用 Solana 上的应用,需要懂 SVM 吗?
不需要。你在不知不觉中就用上了 SVM。Solana 上每一次兑换、铸造 NFT 或钱包操作,背后都是一个跑在 SVM 上的程序。这套并行引擎,正是这些操作通常又快又便宜的原因。

🔗 相关术语 · 币种