什麼是 Solana 虛擬機(SVM),它如何運作?
Solana 虛擬機(SVM)是高效能執行基礎設施,為 Solana 及相容區塊鏈上的智慧合約提供運算能力。SVM 將程式邏輯與狀態資料分離,並採用平行交易處理,為去中心化應用帶來極快的執行速度、低延遲與高擴展性。
Solana 虛擬機(SVM)是負責處理 Solana 程式並在全網套用其狀態變更的執行環境。程式會編譯為 Solana Bytecode Format(sBPF),並在沙箱化的執行環境中運行。交易會指明所呼叫的程式,以及每條指令可讀取或寫入的帳戶,讓執行環境取得載入狀態與排程相容工作所需的資訊。
SVM 將可執行的程式碼與可變的帳戶資料分離,並以運算單位(compute units)計量資源消耗。這套模型支撐了 Solana 的 Sealevel 平行執行環境,因為未要求衝突寫入帳戶的交易可以並行處理。SVM 是執行層,不是 Solana 的共識機制、驗證者用戶端或歷史證明(Proof of History)時鐘。
什麼是 Solana 虛擬機?
Solana 虛擬機(SVM)是在 Solana 上執行 智慧合約程式、處理交易指令的執行環境。不同於由智慧合約自行儲存狀態的系統,Solana 將程式碼與資料帳戶分開。交易會指定將使用哪些程式與帳戶,讓網路能平行處理彼此獨立的交易。
SVM 一詞也可指其他區塊鏈網路採用的 Solana 相容執行環境。這些網路可能支援類似的程式與開發者工具,但採用不同的共識、排序、 資料可用性或結算系統。因此,SVM 相容性描述的是執行環境,而非底層網路的安全模型。
Solana 虛擬機如何運作?
Solana 虛擬機依據交易中列出的程式與帳戶來處理每筆交易。
1. 載入所需帳戶: SVM 會確認付費者、簽署者、可寫入帳戶,以及交易所需的程式。
2. 執行指令: 指令依序透過相關的 Solana 程式執行,必要時這些程式也能呼叫其他程式。
3. 套用權限與限制: 執行環境在執行過程中檢查帳戶擁有權、簽署者權限、寫入權限與運算單位上限。
4. 驗證結果: 執行完成後,SVM 確認餘額與帳戶資料是否符合 Solana 的協定規則。
5. 提交交易: 若每條指令都成功,狀態變更會一併記錄。若有任一指令失敗,交易不會部分更新應用程式狀態。
由於交易會宣告存取的帳戶,Solana 能平行執行使用不同帳戶的交易,協助網路支援更高的吞吐量。
SVM 的主要優勢與應用場景有哪些?
SVM 是為需要可預期程式執行、且能受益於明確帳戶存取的應用而設計。其效能取決於執行環境的設計,以及交易是否競用相同的可寫入狀態。
1. 宣告式帳戶存取可實現平行排程。 交易在執行前列出所需帳戶,讓排程器能在不同處理器核心上執行互不衝突的交易,同時保護共享的可寫入狀態。
2. 程式與狀態保持分離。 一個無狀態程式可跨多個資料帳戶運作,支援可重複使用的應用邏輯,也讓開發者能為並行性規劃狀態,而不必複製程式碼。
3. 原子交易可組合多條指令。 一筆交易可依序呼叫多個程式,並將所有成功的狀態變更一併提交,或在某條指令失敗時拒絕整筆交易。
4. 運算單位讓資源使用明確化。 執行環境計量程式工作量,並允許交易要求適當的預算,協助驗證者限制執行範圍,同時讓使用者透過網路的費用機制表達優先順序。
SVM 程式與網路有哪些例子?
SVM 技術出現在 Solana 應用,以及重用 Solana 相容執行的網路中。這些例子在結算與基礎設施上各有不同,因此單憑支援 SVM 並不代表它們是同一個網路。
• Solana 原生程式。 System Program 負責建立帳戶,而投票、質押、運算預算與地址查詢表程式則提供 Solana 執行環境直接支援的核心功能。
• Solana 應用程式。 DEX、借貸市場、NFT 平台與遊戲部署 sBPF 程式,操作每條指令所提供之使用者、市場、金庫、鑄造與部位帳戶。
• Eclipse 執行。 Eclipse 採用基於 SVM 的執行環境,並透過與 以太坊相關的基礎設施結算,說明該執行環境如何置於不同的模組化 區塊鏈堆疊中。
• 本地 SVM 測試工具。 LiteSVM 等工具可重現相關的執行環境行為,供開發與測試使用,且不必讓每個測試案例都向運行中的驗證者叢集提交交易。
SVM 有哪些限制與風險?
SVM 的效能模型帶來特定的設計限制。開發者必須準確宣告帳戶、減少不必要的競用,並遵守執行環境的限制,而使用者仍面臨一般智慧合約與交易風險。
1. 共享的可寫入帳戶可能限制平行處理。 需要同一可寫入帳戶的交易無法安全地同時執行,因此熱門的全域狀態帳戶可能成為應用瓶頸,即使執行環境具備平行能力。
2. 程式開發需要 Solana 專屬知識。 開發者必須了解 sBPF 編譯、帳戶擁有權、程式衍生地址、跨程式呼叫、運算預算,以及與租金相關的帳戶要求。
3. 運算與帳戶限制可能拒絕複雜呼叫。 當交易超出運算預算、引用過多資源、不當擴增帳戶資料,或觸及呼叫深度與執行環境限制時,交易可能失敗。
4. SVM 相容不等於 Solana 安全性。 獨立的 SVM 鏈可能採用不同的驗證者、跨鏈橋、排序器、資料可用性或升級控制,形成與執行位元組碼無關的信任假設。
SVM 與 EVM 有何不同?
SVM 與 EVM 的差異主要體現在帳戶模型、位元組碼與處理並行性的方式。Solana 交易在執行前宣告帳戶存取,程式則在獨立的狀態帳戶上運作,讓 Sealevel 能平行排程互不衝突的工作。以太坊合約通常將程式碼與儲存放在同一地址,傳統 EVM 執行則依交易順序進行。兩種環境都要求各驗證節點產生確定性結果,但開發者工具、費用計量、狀態配置與相容性標準各不相同。
相關概念
1. 什麼是智慧合約?
2. 什麼是 Gas?
3. 什麼是驗證者?
4. 什麼是區塊鏈?
延伸閱讀
1. 2025 年頂尖的 Solana 虛擬機(SVM)專案有哪些?
2. 什麼是 Eclipse(ES)——以太坊上首個由 SVM 驅動的 Layer 2?
常見問題
SVM 是區塊鏈嗎?
不是。SVM 是處理程式與狀態變更的執行環境。Solana 將它與網路、共識、帳本儲存、費用規則與驗證者軟體結合,構成完整的區塊鏈。
SVM 使用什麼程式語言?
SVM 交易總能平行執行嗎?
SVM 程式可以變更任何 Solana 帳戶嗎?
還沒有帳戶?
立即註冊,開啟您的加密貨幣之旅