Menu

  • Home
  • Trending
  • Recommended
  • Latest

分類

  • #2021 新年特輯
  • 100天區塊鏈挑戰
  • 2019 台灣區塊鏈產業指南
  • 2020 台灣區塊鏈產業年鑑
  • 2022 台灣年度最影響力人物榜
  • 2023 台灣年度影響力人物榜
  • 2023 新春特輯
  • 2024 TON Hacker House
  • 2024新春特輯
  • ABS 2018 專題報導
  • AI
  • CBDC是什麼?為何全球都在積極研究、有什麼優點與隱憂
  • Cefi
  • dao
  • dApps
  • defi
  • DePIN 如何開啟去中心化物理網路革命?
  • Entertainment
  • EOS
  • EOS insights
  • Gaming
  • Howto & Style
  • ICO
  • JiaJia
  • Layer 2
  • Libra
  • Movie
  • Music
  • News
  • nft
  • Plurality 多元宇宙
  • Starknet 空投落地,後續帶來什麼影響?
  • TON的崛起之路》背靠 Telegram 如何實現 Web3 大規模應用?
  • Uncategorized
  • Web3.0
  • 中國
  • 亞太
  • 交易所
  • 人物專訪
  • 以太坊
  • 以太坊
  • 以太坊 Dencun 坎昆升級將臨,你需要知道的所有事
  • 以太坊再質押協議為何成為最熱門賽道?
  • 供應鏈
  • 保險
  • 債券
  • 元宇宙
  • 全台最大詐騙案!Ace交易所涉垃圾幣詐騙
  • 全球加密貨幣監管最新動態統整
  • 其他國家
  • 其他幣別
  • 分散式帳本技術
  • 創投
  • 加密貨幣「詐騙手法」整理,學習如何保護你的資產
  • 加密貨幣市場
  • 區塊鏈平台
  • 區塊鏈新手全攻略,你需要知道的加密貨幣基礎
  • 區塊鏈新手教學
  • 區塊鏈活動
  • 區鍵禧
  • 即時新聞
  • 台灣
  • 哈希派
  • 國際組織報告
  • 多元宇宙Plurality有多重要?未來20年人類躍進關鍵
  • 央行
  • 娛樂平台
  • 安全
  • 專欄作者
  • 巴拉區塊事
  • 市場分析
  • 幣安與美國司法部達成 43 億美元和解,CZ認罪
  • 影片測試的分類
  • 快訊
  • 技術
  • 抓住空投爆擊!值得埋伏的項目、互動教學總整理
  • 投資分析
  • 挖礦
  • 推薦閱讀
  • 搶先看
  • 支付
  • 政府報告
  • 數位產權
  • 數據報告
  • 概念
  • 歐洲
  • 比特幣
  • 比特幣現貨ETF上市,真帶來了增量資金?
  • 比特幣第四次減半將臨,行情怎麼走?
  • 比特幣銘文大爆發,Oridinal 如何改變 BTC 生態?
  • 比特彭
  • 汪彪
  • 法規
  • 測試網
  • 灰度
  • 物聯網
  • 犯罪
  • 獨立觀點
  • 瑞波
  • 環境永續
  • 社交
  • 私人機構報告
  • 稅務
  • 穩定幣
  • 管制
  • 美國
  • 肺炎
  • 能源
  • 訴訟
  • 評級報告
  • 財金哥 & 區塊妹
  • 身份驗證
  • 遊戲
  • 鄧庶杭
  • 金融市場
  • 銀行
  • 錢包

Subscriptions

  • 零壹財經 01 binary
    01 Binary
  • 0xdt
  • 0xJigglypuff
  • aaaaYYYY
  • ABCDELabs

Recent News

  • 圖解多元宇宙》V神、Glen力推的Plurality是什麼?為何協作技術是人類社會進步關鍵
  • 精選文章搶先看!動區登入Access質押訂閱服務,解鎖寶貴資訊快人一步
  • ABS獨家專訪》Gitcoin共同創辦人Scott:台灣是現實與Web3治理的重要交匯點
動區動趨-最具影響力的區塊鏈新聞媒體
  • Home
    • Home Layout 1
    • Home Layout 2
    • Home Layout 3
  • Browse
    • News
    • Movie
    • Music
    • Technology
    • Howto & Style
    • Entertainment
    • Gaming
  • Features
    • Youtube Video
    • Vimeo Video
    • Dailymotion Video
    • Self-hosted Video
    • User Profile
    • Playlists
    • User-created Playlist
    • Favorite Playlist (Private)
    • Watch Later Playlist (Private)
    • All JNews Features
No Result
View All Result
  • Login
  • Register
UPLOAD
動區動趨-最具影響力的區塊鏈新聞媒體
No Result
View All Result
Home 區塊鏈新手教學 以太坊

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

Foresight News by Foresight News
2024-05-17
in 以太坊, 分散式帳本技術
726 7
0
新手也能懂》Solana程式設計模型,究竟和以太坊有什麼區別?
1k
SHARES
4.6k
VIEWS
Share on FacebookShare on Twitter

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

本文目錄

  • RelatedPosts
  • 以太坊聚合 L3 zkEVM 網路「zkLink Nova」 TVL 突破10億美元
  • 美國銀行探索區塊鏈:花旗、摩根大通、Mastercard…攜手測試代幣化資產結算平台
  • EIP-3074 後,惡意的簽名會導致以太坊錢包資金被耗盡?開發者親解惑
  • 智能合約、鏈上程式
  • 帳戶模型、資料解耦
  • 程式語言
  • 總結

 

RelatedPosts

以太坊聚合 L3 zkEVM 網路「zkLink Nova」 TVL 突破10億美元

美國銀行探索區塊鏈:花旗、摩根大通、Mastercard…攜手測試代幣化資產結算平台

EIP-3074 後,惡意的簽名會導致以太坊錢包資金被耗盡?開發者親解惑

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公鏈區塊鏈技術智能合約

Recommended videos

3:41

2019 Ubud Writers & Readers Festival: 8 reasons why you should come

2.5k Views
2024-06-12
    4:31

    Only Beyoncé Could Make Opera Gloves Cool

    2.5k Views
    2024-07-12
      2:49

      These Are the Spookiest Halloween Movies on Netflix

      2.5k Views
      2024-06-19
        精選文章搶先看!動區登入Access質押訂閱服務,解鎖寶貴資訊快人一步

        精選文章搶先看!動區登入Access質押訂閱服務,解鎖寶貴資訊快人一步

        2.5k Views
        2024-09-04
          Show More
          Copyright (c) 2019 by Jegtheme.
          • About
          • Buy JNews
          • Request A Demo
          • Contact
          No Result
          View All Result
          • Account
          • BlockTempo Beginner – 動區新手村
          • Change Password
          • Forgot Password?
          • Home 1
          • Home 2
          • Home 3
          • Jin-homepage
          • Latest
          • Login
          • Profile
          • Register
          • Reset Password
          • Trending
          • Users
          • Users List Item
          • 不只加密貨幣,談談那些你不知道的區塊鏈應用|動區新手村
          • 所有文章
          • 關於 BlockTempo

          © 2025 JNews - Premium WordPress news & magazine theme by Jegtheme.

          Welcome Back!

          Login to your account below

          Forgotten Password? Sign Up

          Create New Account!

          Fill the forms below to register

          All fields are required. Log In

          Retrieve your password

          Please enter your username or email address to reset your password.

          Log In

          Add New Playlist