什么是Solana虚拟机(SVM)?

2025-11-20 10:08   4   0  

虚拟机 (VM) 是一种虚拟化或模拟计算机系统的软件,它提供了一个隔离的执行环境,其行为类似于物理硬件。这个概念源于 IBM 在 20 世纪 60 年代对大型机系统的研究,该研究使多个用户能够在同一台物理机上运行不同的操作系统。虚拟机主要分为两类:系统虚拟机和进程虚拟机。前者提供了对真实机器的替代,而后者旨在在与平台无关的环境中执行程序。为了我们的目的,我们对系统虚拟机感兴趣,我们将它们称为“虚拟机”或简称为“VM”。

Solana 虚拟机 (SVM) 是当今区块链中最被误解的系统之一。与以太坊虚拟机 (EVM) 不同,EVM 明确地指代了一个操作码执行器,而 SVM 这个术语涵盖了整个交易执行管道,从 Banking Stage 调度器到 sBPF 字节码解释器本身。这种模糊性反映了 Solana 的架构差异:没有传统的规范可以孤立地定义“SVM”。唯一接近的规范与 Solana 虚拟机指令集架构 (SVM ISA) 有关,该规范描述了 sBPF 字节码必须如何执行,但没有说明更广泛的运行时。

“Solana 虚拟机”(SVM) 一词在社区内引发了激烈的争论,尤其是在网络扩展和其他构建在 Solana 之上的 Layer 区块链出现之后。争论源于该术语的范围:SVM 严格来说是低级 sBPF 解释器,还是它包含完整的交易执行堆栈?

狭义的观点将 SVM 视为类似于传统的虚拟机 (VM),例如 EVM 的操作码执行器。更具体地说,它是解释和 JIT 编译字节码的 eBPF 派生的虚拟机(rBPF,现在是 sBPF)。这种观点强调 SVM 是一个沙盒化的、基于寄存器的执行器,它处理指令,例如 ALU 操作或 Solana 特定的系统调用。从本质上讲,SVM 的灵感来自 Linux eBPF 的安全模型,但它是为区块链基础设施定制的。这与验证器代码中 SVM ISA(指令集架构)之类的短语相符,其中 SVM 是 VM 层。

广义的观点将 SVM 定义为 Solana 验证器的整个交易执行层。这不仅包括运行字节码,还包括上游组件,例如 Banking Stage 的调度器、计算单元预算和通过账户数据库(通常称为 AccountsDB)进行的状态更新。它是将原始交易转换为经过验证的状态更改的“运行时”。

出现歧义的原因是官方 Solana 通信将“运行时”与“SVM”交替使用,而没有一个明确的定义。安扎 (Anza) 为这场辩论增加了亟需的清晰度,在明确验证它的同时,也提倡一种务实、以行动为导向的、以工程为基础的观点。他们将 SVM 视为由 Bank 驱动的运行时,它提供 eBPF VM,这种框架提供了一个更广泛的、包含管道的视图,可用于形成 SVM 的正确定义。

这在 Anza 的官方 SVM 规范 中得到了正式确定,该规范将 SVM 定义为“负责交易执行的组件”,打包成一个独立的库,用于验证器、欺诈证明、侧链等等。

我们可以将 Solana 虚拟机定义为:

Solana 验证器中由 Bank 组件驱动的、解耦的运行时接口和交易处理管道,该管道协调并行指令和链上程序执行,从而提供一个定制的、基于 eBPF 的虚拟机,用于安全字节码的解释、JIT 编译和资源计量。


博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。