Solana和ETH編程模型的區別

5/22/2024, 7:43:04 PM
進階
技術
本文對比了Solana和以太坊的智能合約編程模型。Solana的鏈上程序與以太坊的智能合約相似,但Solana通過其獨特的帳戶模型和數據解耦方式,提供了不同的運行環境。Solana的帳戶模型將代碼和數據分開存儲,提高了安全性。Solana主要使用Rust語言開發智能合約,雖然性能和安全性高,但上手難度大。以太坊則主要使用Solidity,開發體驗更爲簡單和成熟。盡管Solana在開發難度上存在挑戰,但其高吞吐量、低成本和可擴展性使其成爲開發高性能dApps的理想選擇。

Solana 是一個旨在支持 dApps 的高性能區塊鏈平台,以其速度和可擴展性聞名,而這是通過獨特的共識機制和架構設計實現的。本文將以太坊作爲比較對象,簡要介紹 Solana 智能合約編程模型的特點。

智能合約、鏈上程序:

運行在以太坊上的程序被稱爲智能合約,它是位於以太坊上一個特定地址的一系列代碼(函數)和數據(狀態)。(哦豁,代碼數據耦合了)智能合約也是一個以太坊帳戶,稱之爲合約帳戶,它們有餘額,可成爲交易對象, 但是無法被人操控,被部署在網路上作爲程序運行。

而運行在 Solana 上的可執行代碼被稱爲鏈上程序(On-chain Program),它們能解釋每筆交易中發送的指令。這些程序可以直接部署到網路核心作爲原生程序,或由任何人發布爲 SPL 程序。

  1. 指令 (Instructions):指令是 Solana 鏈上程序的特有名詞。鏈上程序由指令組成,是執行特定操作的最小單位: 每筆 Solana 交易中都包含一個或多個指令。指令指定了要執行的操作,包括調用特定鏈上程序、傳遞帳戶、輸入列表以及提供字節數組。指令有計算限制,因此鏈上程序應該被優化爲使用少量計算單元,或將昂貴的操作分成多個指令。
  2. 原生程序:提供驗證節點所需功能的原生程序。其中最著名的是 System Program,它負責管理創建新帳戶以及在兩個帳戶之間轉帳 SOL。
  3. SPL 程序:定義了一系列鏈上活動,包括代幣的創建、交換、借貸,以及創建質押池、維護鏈上域名解析服務等。其中,SPL Token Program 用於代幣操作,而 Associated Token Account Program 等則常用於編寫其他定制程序。

你叫智能合約,我叫鏈上程序,大家說法不一樣,但都是指運行在區塊鏈上的代碼。張三李四王麻子都是人名,到底素質如何還得考察其他方面。

帳戶模型、數據解耦:

與以太坊類似,Solana 也是基於帳戶模型的區塊鏈,但 Solana 提供了一套不同於以太坊的帳戶模型,用不同的方式存儲數據。

在 Solana 中,帳戶可以保存錢包信息和其他數據,帳戶定義的字段包括 Lamports(帳戶餘額)、Owner(帳戶所有者)、Executable(是否爲可執行帳戶)和 Data(帳戶存儲的數據)。每個帳戶都指定一個程序作爲其所有者,以區分帳戶用作哪個程序的狀態存儲。這些鏈上程序是只讀或無狀態的:程序帳戶(可執行帳戶)只存儲 BPF 字節碼,不存儲任何狀態,程序會把狀態存儲在其他獨立帳戶(不可執行帳戶)中,即 Solana 的編程模型將代碼和數據解耦。

而以太坊帳戶主要是 EVM 狀態的引用,其智能合約既存在代碼邏輯,又需要存儲用戶的數據。這通常被認爲是 EVM 歷史遺留的設計缺陷。

不要小看這一區別!Solana 智能合約在根本上比具有耦合編程模型的區塊鏈(如以太坊)更難攻擊:

在以太坊中,智能合約「擁有者」是一個全局變量,與智能合約一一對應。因此,調用某個函數可能直接改變合約「擁有者」。

而在 Solana 中,智能合約的「擁有者」是與帳戶關聯的數據,而不是全局變量。一個帳戶可以有多個擁有者,而不是一對一關聯。攻擊者要利用智能合約的安全漏洞,不僅需要找到有問題的函數,還需要準備「正確」的帳戶來調用該函數。這一步驟並不容易,因爲 Solana 智能合約通常涉及多個輸入帳戶,並通過約束條件(例如 account1.owner==account2.key )來管理它們之間的關係。從「準備正確的帳戶」到「發動攻擊」的過程,足夠讓安全監控人員可以在攻擊之前主動檢測到創建與智能合約相關的「虛假」帳戶的可疑交易。

以太坊的智能合約就像是一個使用唯一密碼的保險庫,你只要得到了這個密碼,就能獲得完整的所有權;而 Solana 的則是一個有很多個密碼的保險庫,但想要獲取權限,你不但要想辦法搞到密碼,還要弄清楚這個密碼對應的編號,才能把鎖打開。

編程語言

Rust 是 Solana 上開發智能合約的主要編程語言。因爲它的性能和安全特性,使其適用於區塊鏈和智能合約的高風險環境。Solana 同時也支持 C、C++ 和其他語言(很不常見)。官方提供了 Rust 和 C 的 SDK 來支持開發鏈上程序。開發者可以使用工具將程序編譯成 Berkley Packet Filter (BPF) 字節碼(文件以 .so 爲擴展名 ),再部署到 Solana 鏈上,通過 Sealevel 並行智能合約運行時來執行智能合約的邏輯。

由於 Rust 語言本身上手難度高,且並不是爲區塊鏈開發定制,導致很多需求需要重復造輪子、代碼冗餘。(生產中許多項目採用 Backpack 聯創 Armani 創造的 Anchor 框架簡化開發)許多新創造的專用於區塊鏈開發的編程語言是基於 Rust 的,如 Cairo(Starknet)、Move(Sui、Aptos)。

生產中許多項目採用 Anchor 框架

而以太坊智能合約主要用 Solidity 語言開發(語法和 javascript 類似,代碼文件以 .sol 爲擴展名)。由於語法相對簡單以及開發工具更加成熟(Hardhat 框架、Remix IDE …)通常我們認爲以太坊的開發體驗更簡單爽快,而 Solana 開發的上手難度高。所以盡管現在 Solana 的熱度很高,事實上以太坊的開發者數目仍然是遠多於 Solana 的。

特定路況下,頂級賽車沒有改裝車跑得快。Rust 就像頂級賽車,有力地保證了 Solana 的性能和安全性,但非爲鏈上程序開發這條賽道而生,反而造成了駕駛(開發)難度的上升。採用基於 Rust 、爲鏈上開發定制語言的公鏈則相當於改裝了這輛賽車,使其更適應路況。Solana 在這點上處於劣勢。

總結

Solana 的智能合約編程模型是創新的。它提供了一種無狀態的智能合約開發方法,將 Rust 作爲主要編程語言,以及讓邏輯與狀態分離的架構,爲開發人員構建和部署智能合約提供了強大環境,確保安全性和性能,但開發難度較大。Solana 專注於高吞吐量、低成本和可擴展性,仍是尋求創建高性能 dApps 的開發人員目前的理想選擇。

聲明:

本文轉載自[panews],原文標題“我奶奶也能看懂:Solana的編程模型,究竟和ETH有啥區別?”,著作權歸屬原作者[Foresight News,Alex Liu],如對轉載有異議,請聯系Gate Learn團隊 “Gate Learn團隊”),團隊會根據相關流程盡速處理。

免責聲明:本文所表達的觀點和意見僅代表作者個人觀點,不構成任何投資建議。

文章其他語言版本由Gate Learn團隊翻譯, 在未提及Gate.io)的情況下不得復制、傳播或抄襲經翻譯文章。

分享

幣圈日曆

項目進展
Etherex 將於 8 月 6 日推出代幣 REX。
REX
22.27%
2025-08-06
拉斯維加斯的稀有開發與治理日
Cardano將在拉斯維加斯舉辦稀有開發與治理日,時間爲8月6日至7日,活動包括研討會、黑客馬拉松和以技術開發及治理主題爲重點的小組討論。
ADA
-3.44%
2025-08-06
區塊鏈.Rio在裏約熱內盧
Stellar 將參加定於 8 月 5 日至 7 日在裏約熱內盧舉行的 Blockchain.Rio 大會。該節目將包括主題演講和小組討論,屆時將邀請 Stellar 生態系統的代表與合作夥伴 Cheesecake Labs 和 NearX 共同參與。
XLM
-3.18%
2025-08-06
網路研討會
Circle 宣布將於 2025 年 8 月 7 日 14:00 UTC 舉辦名爲“GENIUS Act 時代開始”的實時高管見解網路研討會。此次會議將探討新通過的 GENIUS Act 的影響——這是美國第一個針對支付穩定幣的聯邦監管框架。Circle 的 Dante Disparte 和 Corey Then 將主導討論該立法如何影響數字資產創新、監管透明度,以及美國在全球金融基礎設施中的領導地位.
USDC
-0.03%
2025-08-06
X 上的 AMA
Ankr將在8月7日16:00 UTC於X平台舉辦一次AMA,重點討論DogeOS在爲狗狗幣構建應用層方面的工作。
ANKR
-3.23%
2025-08-06

相關文章

區塊鏈盈利能力和發行 - 重要嗎?
中級

區塊鏈盈利能力和發行 - 重要嗎?

在區塊鏈投資領域,工作量證明(工作量證明)和權益證明(權益證明)區塊鏈的盈利能力一直是備受關注的話題。加密貨幣網紅Donovan寫了一篇文章,探討了這些區塊鏈的盈利模式,特別關注以太坊和Solana之間的差異,並分析了區塊鏈盈利能力是否應該成為投資者關注的重點。
6/17/2024, 3:09:39 PM
深入分析API3:利用 OVM 釋放 Oracle 市場顛覆者
中級

深入分析API3:利用 OVM 釋放 Oracle 市場顛覆者

最近,API3獲得了400萬美元的戰略資金費用,由DWF Labs牽頭,幾家知名風險投資公司參與其中。是什麼讓API3與眾不同?它會成為傳統神諭的破壞者嗎?Shisijun對預言機的工作原理,API3 DAO的代幣經濟學以及開創性的OEV網路進行了深入分析。
6/24/2024, 6:52:22 AM
密碼學稱FHE是ZK的下一步
中級

密碼學稱FHE是ZK的下一步

以太坊對規模的需求導致了Layer 2解決方案的發展,ZK/OP rollups成為關鍵參與者,形成了空期OP和多期ZK共識,突出了ARB,OP,zkSync和StarkNet作為主要競爭者。Web3 使用者只有在提供經濟價值時才優先考慮隱私。FHE 的加密成本進一步加重了已經很低的鏈上效率的負擔,只有當顯著的收益證明成本合理時,大規模採用才是可行的。對於需要公共區塊鏈但不願意披露所有資訊的機構客戶,FHE 的顯示和交易密文能力比 ZKP 更合適。
6/19/2024, 10:42:38 AM
什麼是重心 (COG) 振蕩器策略?
進階

什麼是重心 (COG) 振蕩器策略?

本文解釋了COG策略,包括其定義,工作原理,實現方法,優缺點以及實際示例,以幫助讀者有效地理解和使用該策略。
6/11/2024, 1:22:40 PM
渲染網路:連接全球 GPU 能量並龍頭 3D 渲染的新革命
中級

渲染網路:連接全球 GPU 能量並龍頭 3D 渲染的新革命

渲染網路利用智能合約構建去中心化的渲染服務生態系統,利用分散式計算資源。這個過程不僅提高了渲染效率,還降低了成本,提供了高品質的渲染結果,並實現了更高效的資源。利用率使建立者能夠經濟高效地訪問 GPU 資源。 轉貼原標題:渲染網路:連接全球GPU能量,龍頭3D渲染新革命
6/19/2024, 10:09:58 AM
在加密貨幣中,完全稀釋市值(FDV)是什麼?
中級

在加密貨幣中,完全稀釋市值(FDV)是什麼?

本文解釋了在加密貨幣中完全稀釋市值的含義,並討論了完全稀釋估值的計算步驟,完全稀釋市值的重要性以及在加密貨幣中依賴完全稀釋市值的風險。
10/25/2024, 1:37:13 AM
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!