• 【超完整懶人包】認識比特幣!原理與應用全面解析|動區新手村
  • Account
  • Account
  • BlockTempo Beginner – 動區新手村
  • Change Password
  • Forgot Password?
  • Home 3
  • Login
  • Login
  • Logout
  • Members
  • Password Reset
  • Register
  • Register
  • Reset Password
  • User
  • 不只加密貨幣,談談那些你不知道的區塊鏈應用|動區新手村
  • 動區動趨 BlockTempo – 最有影響力的區塊鏈新聞媒體 (比特幣, 加密貨幣)
  • 所有文章
  • 最完整的「區塊鏈入門懶人包」|動區新手村
  • 服務條款 (Terms of Use)
  • 關於 BlockTempo
  • 隱私政策政策頁面 / Privacy Policy
動區動趨-最具影響力的區塊鏈新聞媒體
  • 所有文章
  • 搶先看
  • 🔥動區專題
  • 🔥Tempo 30 Award
  • 加密貨幣市場
    • 市場分析
    • 交易所
    • 投資分析
    • 創投
  • 區塊鏈商業應用
    • 金融市場
    • 銀行
    • 錢包
    • 支付
    • defi
    • 區塊鏈平台
    • 挖礦
    • 供應鏈
    • 遊戲
    • dApps
  • 技術
    • 比特幣
    • 以太坊
    • 分散式帳本技術
    • 其他幣別
    • 數據報告
      • 私人機構報告
      • 評級報告
  • 法規
    • 央行
    • 管制
    • 犯罪
    • 稅務
  • 區塊鏈新手教學
  • 人物專訪
    • 獨立觀點
  • 懶人包
    • 比特幣概念入門
    • 從零開始認識區塊鏈
    • 區塊鏈應用
  • 登入
No Result
View All Result
  • 所有文章
  • 搶先看
  • 🔥動區專題
  • 🔥Tempo 30 Award
  • 加密貨幣市場
    • 市場分析
    • 交易所
    • 投資分析
    • 創投
  • 區塊鏈商業應用
    • 金融市場
    • 銀行
    • 錢包
    • 支付
    • defi
    • 區塊鏈平台
    • 挖礦
    • 供應鏈
    • 遊戲
    • dApps
  • 技術
    • 比特幣
    • 以太坊
    • 分散式帳本技術
    • 其他幣別
    • 數據報告
      • 私人機構報告
      • 評級報告
  • 法規
    • 央行
    • 管制
    • 犯罪
    • 稅務
  • 區塊鏈新手教學
  • 人物專訪
    • 獨立觀點
  • 懶人包
    • 比特幣概念入門
    • 從零開始認識區塊鏈
    • 區塊鏈應用
  • 登入
No Result
View All Result
動區動趨-最具影響力的區塊鏈新聞媒體
No Result
View All Result
Home 區塊鏈新手教學 以太坊

新手也能懂》Solana程式設計模型,究竟和以太坊有什麼區別?

Foresight News by Foresight News
2024-05-17
in 以太坊, 分散式帳本技術
A A
新手也能懂》Solana程式設計模型,究竟和以太坊有什麼區別?
198
SHARES
分享至Facebook分享至Twitter

本文將公鏈 Solana 與第二大公鏈以太坊進行對比,簡要介紹了二者在智能合約程式設計模型上的差異。
(前情提要: Vitalik 提新以太坊改進提案「EIP-7706」多維 Gas 概念如何釋放 L2 可擴充性)
(背景補充: Solana網路堵塞如何解?Helius:修復程式4/15推出、Firedancer升級可再提高交易量10~100倍)

本文目錄

  • 智能合約、鏈上程式
  • 帳戶模型、資料解耦
  • 程式語言
  • 總結

 

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

智能合約、鏈上程式

執行在以太坊上的程式被稱為智能合約,它是位於以太坊上一個特定地址的一系列程式碼(函式)和資料(狀態)。智能合約也是一個以太坊帳戶,稱之為合約帳戶,它們有餘額,可成為交易物件, 但是無法被人操控,被部署在網路上作為程式執行。

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

指令 (Instructions):指令是 Solana 鏈上程式的特有名詞。鏈上程式由指令組成,是執行特定操作的最小單位:每筆 Solana 交易中都包含一個或多個指令。

指令指定了要執行的操作,包括呼叫特定鏈上程式、傳遞帳戶、輸入列表以及提供位元組陣列。指令有計算限制,因此鏈上程式應該被優化為使用少量計算單元,或將昂貴的操作分成多個指令。

原生程式:提供驗證節點所需功能的原生程式。其中最著名的是 System Program,它負責管理建立新帳戶以及在兩個帳戶之間轉帳 SOL。

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 的開發人員目前的理想選擇。

📍相關報導📍

V神新提的EIP-7706詳解,梳理最新以太坊Gas機制

模組化當道!以太坊 EVM 的單體化架構為何已死?

科普|市值屢創新高,一文詳解 Cosmos 生態智能合約鏈 Juno Network

Tags: ETHEVMSolana公鏈區塊鏈技術智能合約

熱門文章

  • 俄羅斯聯邦安全局:一國民以加密貨幣資助烏克蘭軍隊,犯叛國罪判刑 7 年

    俄羅斯聯邦安全局:一國民以加密貨幣資助烏克蘭軍隊,犯叛國罪判刑 7 年

    70 shares
    Share 28 Tweet 18
  • 天橋資本創辦人爆料:參議院會批准比特幣儲備計劃!但購入100萬枚機會低

    269 shares
    Share 108 Tweet 67
  • 美國航空401(k)退休金指控貝萊德:太關注 ESG 導致投資表現不佳,法院判決出爐

    43 shares
    Share 17 Tweet 11

最新文章

馬克庫班考慮發迷因幣:賭狗快來吧!收入全捐財政部拯救美國債務

馬克庫班考慮發迷因幣:賭狗快來吧!收入全捐財政部拯救美國債務

2025-01-21
HashKey 三大牌照佈局完成:深度解析其全球化戰略

HashKey 三大牌照佈局完成:深度解析其全球化戰略

2025-01-21
馬斯克慶川普就職疑兩度「行納粹禮」遭轟,傳在白宮有個人辦公室、政府效率部(DOGE)成立

馬斯克慶川普就職疑兩度「行納粹禮」遭轟,傳在白宮有個人辦公室、政府效率部(DOGE)成立

2025-01-21

關於我們

動區動趨

為您帶來最即時最全面
區塊鏈世界脈動剖析
之動感新聞站

主題分類

訂閱我們的最新消息

動區精選-為您整理一週間的國際動態

  • 關於 BlockTempo

動區動趨 BlockTempo © All Rights Reserved.

No Result
View All Result
  • 所有文章
  • 搶先看
  • 市場脈動
  • 商業應用
  • 區塊鏈技術
  • 數據洞察
  • 新手特輯:比特幣超完整懶人包
  • 政府法規
  • 登入

動區動趨 BlockTempo © All Rights Reserved.