探索Solana 智能合約程式設計模型

6/11/2024, 5:47:31 AM
新手
以太坊
Solana是一個高性能的區塊鏈平臺,旨在支撐dApp。它以其速度和可擴充性而聞名,通過獨特的共識機制和架構設計實現。本文以以太坊作為對比對象,簡單介紹Solana智慧合約程式設計模型的特點。

轉發原標題 '小學生也能看懂!Solana 的编程模型,究竟和 二餅 有啥區别?

Solana是一個高性能的區塊鏈平臺,旨在支撐dApp。它以其速度和可擴充性而聞名,通過獨特的共識機制和架構設計實現。本文以以太坊作為對比對象,簡單介紹Solana智慧合約程式設計模型的特點。

智慧合約和鏈上程式:

在以太坊上運行的程式稱為智能合約,一系列代碼(函數)位於以太坊和data(state)上的特定位址。(哦,代碼和數據是耦合的)智慧合約也是以太坊帳戶,稱為合約帳戶。它們有餘額,可以成為交易物件,但它們不能由人類控制,而是部署在網路上作為程序運行。

Solana上運行的可執行代碼稱為鏈上程式,它們可以解釋每個事務中發送的指令。這些程式可以作為本機程式直接部署到網路核心中,也可以由任何人作為SPL程序發佈。

  1. 說明:說明是Solana鏈上程式的唯一術語。鏈上程式由指令組成。它們是執行特定操作的最小單位:每個Solana事務中都包含一條或多條指令。指令指定要執行的操作,包括調用特定的鏈上程式、傳遞帳戶、輸入上架以及提供位元組陣列。指令具有計算約束,因此應優化鏈上程式以使用少量計算單元或將昂貴的操作拆分為多個指令。

“”

  1. 本機程式:這些程式為驗證節點提供必要的功能。最值得注意的是系統程式,它負責管理新帳戶的創建並在兩個帳戶之間轉移SOL。
  2. SPL計劃:這些計劃定義了一系列鏈上活動,包括代幣的創建,交易所和借出,以及質押池的創建和維護鏈上域名解析服務。其中,SPL代幣程式用於令牌操作,而關聯代幣帳戶程式通常用於編寫其他自定義程式。

你稱它們為智能合約,我稱它們為鏈上程式。不同的術語,但它們都是指在區塊鏈上運行的代碼。就像愛麗絲、鮑勃、約翰都是名字一樣,他們的實際素質需要從其他方面來評估。

帳戶模型,數據解耦:

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

Solana,帳戶可以保存錢包資訊和其他數據。帳戶定義的欄位包括 Lamports (帳戶餘額)、擁有者(帳戶擁有者)、可執行檔(是否為可執行檔帳戶)和數據(存儲在帳戶中的數據)。每個帳戶將一個程式指定為其擁有者,以區分帳戶用作狀態存儲的程式。這些鏈上程式是唯讀或無狀態的:程式帳戶(可執行帳戶)僅存儲 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在這裡處於劣勢。

Summary

Solana的智慧合約程式設計模型是創新的。它提供了一種無狀態的智慧合約開發方法,使用 Rust 作為主要程式設計語言和將邏輯與狀態分開的架構。這為開發人員提供了一個強大的環境來構建和部署智能合約,確保安全性和性能,儘管它帶來了更高的開發難度。Solana 專注於高輸送量、低成本和可擴充性,使其成為當前希望創建高性能 dApp 的開發人員的理想選擇。

免責聲明:

  1. 本文轉載自[遠見新聞]。所有版權歸原作者[Alex Liu]所有。如果對此轉載有異議,請聯繫Gate Learn團隊,他們會及時處理。
  2. 免責聲明:本文中表達的觀點和意見僅代表作者的觀點和意見,不構成任何投資建議。
  3. 文章到其他語言的翻譯由Gate Learn團隊完成。除非另有說明,否則禁止複製、分發或抄襲翻譯后的文章。

分享

目錄

智慧合約和鏈上程式:

帳戶模型,數據解耦:

程式設計語言

總結

幣圈日曆

項目進展
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

相關文章

3074傳奇後對以太坊治理的思考
中級

3074傳奇後對以太坊治理的思考

以太坊 以太坊改進提案-3074/以太坊改進提案-7702事件揭示了其治理結構的複雜性:除了正式的治理流程外,研究人員提出的非正式路線圖也具有重大影響。
6/11/2024, 7:21:16 AM
以太坊被低估了嗎?
中級

以太坊被低估了嗎?

儘管最近一些加密貨幣投資者對以太坊感到失望,認為其表現未能超過比特幣,但以太坊繼續展示持續的技術創新和市場優勢。
5/27/2024, 10:01:05 AM
什麼是海夫?您需要瞭解的有關HYVE的所有資訊
中級

什麼是海夫?您需要瞭解的有關HYVE的所有資訊

Hyve採用區塊鏈技術為零工經濟建立一個更公平的系統,自由職業者可以享受靈活的工作,更快的支付和社區治理,而企業則可以獲得頂尖人才。
6/21/2024, 12:59:47 AM
並行以太坊虛擬機(EVM):高性能區塊鏈的未來
新手

並行以太坊虛擬機(EVM):高性能區塊鏈的未來

本文詳細介紹了以太坊虛擬機(EVM)作為以太坊核心的操作,並探討了高性能 Layer1 區塊鏈在並行執行和虛擬機選擇方面的創新。未來,更多的Layer 1將實現以太坊虛擬機(EVM)並行升級或以太坊虛擬機(EVM)相容解決方案,以促進區塊鏈生態系統的多樣化發展。
6/12/2024, 2:07:57 PM
梅蒂斯:投資前景展望
中級

梅蒂斯:投資前景展望

Metis作為第一家採用分散式測序器的以太坊 Rollup,憑藉其獨特的價值主張、多方面的看漲催化劑和有競爭力的估值,在競爭激烈的Layer2領域確立了獨特的地位。
6/26/2024, 1:40:27 AM
流行的公共鏈Monad的簡要概述
新手

流行的公共鏈Monad的簡要概述

本文介紹了Monad,這是一種新穎的第1層區塊鏈,它利用權益證明(權益證明)共識機制和以太坊虛擬機(EVM)相容性。通過並行執行和超標量流水線技術,Monad顯著提高了事務處理效率和系統性能。本文詳細闡述了Monad的技術架構、性能優化和以太坊改進,預示著更高效、更去中心化的區塊鏈未來。它展示了Monad如何通過技術創新推動區塊鏈的發展,併為更高效和去中心化的未來奠定基礎。
6/7/2024, 6:45:44 AM
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!