小学生也能看懂!Solana 的编程模型,究竟和 ETH 有啥区别?

foresightnews發佈於 2024-05-16更新於 2024-05-23

文章摘要

本文将以太坊作为比较对象,简要介绍 Solana 智能合约编程模型的特点。

本文将以太坊作为比较对象,简要介绍 Solana 智能合约编程模型的特点。


撰文:Foresight News,Alex Liu


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 的开发人员目前的理想选择。


参考链接


https://solana.com/docs

https://ethereum.org/en/developers/docs

https://www.anchor-lang.com/


熱門幣種推薦

你可能也喜歡

IOSG创始人:以太坊不需要再来一次技术信仰,它需要一次马斯克式的妥协

IOSG创始人Jocy撰文指出,以太坊当前的核心问题并非缺乏技术信仰或路线图,而是需要一个“马斯克式的妥协”——即创始人Vitalik需要更深入地理解商业现实,并亲自推动以太坊在现实世界中的杀手级应用落地。 文章认为,近期由前EF研究员和大型ETH持有方支持的ETHLabs等新机构的出现,是市场对以太坊基金会“无为而治”模式投下的不信任票。Vitalik与马斯克的根本区别在于,后者善于先吃透商业逻辑再驱动技术,而以太坊则习惯从技术和价值观出发,期待生态自行生长。在当下多链竞争、注意力向AI迁移的时代,这种模式的运气已不可持续。 作者指出,以太坊面临的真正威胁是注意力的流失,而不仅仅是其他区块链的竞争。解决方案在于构建一个清晰的、能吸引顶尖人才的现实世界应用叙事。尽管以太坊基金会正试图通过分散化治理(如多节点独立决策)来应对挑战,但这可能带来方向碎片化、凝聚力不足的新问题。真正的凝聚力不能仅靠共同持有ETH资产,更需要一个所有人都看得懂并愿意押注的共同目标。 文章最后强调,留给以太坊“俯身入局”、专注商业应用的时间窗口可能只有12到18个月,时间是其最无情的对手。创始人需要从仰望星空转向亲自下场,才能让理想之光真正照进现实。

marsbit1 小時前

IOSG创始人:以太坊不需要再来一次技术信仰,它需要一次马斯克式的妥协

marsbit1 小時前

交易

現貨
合約

熱門文章

什麼是 ETH 2.0

ETH 2.0:以太坊的新時代 介紹 ETH 2.0,廣為人知的以太坊 2.0,標誌著對以太坊區塊鏈的一次重大升級。這次過渡不僅僅是表面上的改造;其目標是從根本上增強網絡的可擴展性、安全性和可持續性。ETH 2.0 透過從能量密集型的工作量證明(PoW)共識機制轉向更高效的權益證明(PoS),承諾為區塊鏈生態系統帶來變革性的改變。 什麼是 ETH 2.0? ETH 2.0 是一系列獨特且相互連接的更新,專注於優化以太坊的能力和性能。這次全面改革旨在解決現有以太坊機制所面臨的主要挑戰,特別是交易速度和網絡擁堵問題。 ETH 2.0 的目標 ETH 2.0 的主要目標圍繞著改善三個核心方面: 可擴展性:旨在顯著提升網絡每秒可以處理的交易數量,ETH 2.0 希望突破目前約每秒 15 笔交易的限制,潛在地達到數千筆。 安全性:增強的安全措施是 ETH 2.0 的核心,特別是提高抵抗網絡攻擊的能力以及保護以太坊的去中心化精神。 可持續性:新的 PoS 機制旨在不僅提高效率,還大幅降低能耗,讓以太坊的運營框架與環保考量相符。 誰是 ETH 2.0 的創造者? ETH 2.0 的創建可追溯至以太坊基金會。這個非營利組織在支持以太坊發展方面發揮著關鍵作用,由著名的聯合創始人 Vitalik Buterin 主導。他對於更可擴展和更可持續以太坊的願景,是這次升級的推動力,並吸引了來自全球的開發者和愛好者的貢獻,共同致力於改善協議。 誰是 ETH 2.0 的投資者? 雖然有關 ETH 2.0 的投資者的具體信息尚未公開,但以太坊基金會已知方向來自區塊鏈及技術領域的各種組織和個人支持。這些合作夥伴包括創投公司、技術公司和慈善機構,它們共同致力於支持去中心化技術和區塊鏈基礎設施的發展。 ETH 2.0 如何運作? ETH 2.0 以引入一系列關鍵特性而著稱,使其與前身有所區別。 權益證明(PoS) 轉向 PoS 共識機制是 ETH 2.0 的標誌性變化之一。與依賴於能量密集型挖礦進行交易驗證的 PoW 不同,PoS 允許用戶根據他們在網絡中抵押的 ETH 數量來驗證交易和創建新區塊。這導致能量效率的提升,能耗降低約 99.95%,使以太坊 2.0 成為一個相當綠色的替代方案。 分片鏈 分片鏈是 ETH 2.0 的另一個關鍵創新。這些較小的鏈與主要的以太坊鏈平行運行,使得多筆交易可以同時處理。這種方法增強了網絡的整體容量,解決了困擾以太坊的可擴展性問題。 信標鏈 在 ETH 2.0 的核心是信標鏈,它協調網絡並管理 PoS 協議。它在某種程度上充當了組織者:它監督驗證者,確保各分片與網絡的連接,並監控整體區塊鏈生態系統的健康狀況。 ETH 2.0 的時間軸 ETH 2.0 的旅程標誌著幾個關鍵里程碑,描繪了這次重大升級的演變: 2020年12月:信標鏈的啟動標誌著 PoS 的引入,為 ETH 2.0 的遷移鋪平了道路。 2022年9月:“合併”的完成代表著以太坊網絡成功從 PoW 轉型為 PoS 框架,預示著以太坊的新時代。 2023年:預期分片鏈的推出旨在進一步增強以太坊網絡的可擴展性,鞏固 ETH 2.0 作為去中心化應用和服務的強大平台。 主要特性和優勢 改進的可擴展性 ETH 2.0 最重要的優勢之一是其改進的可擴展性。PoS 和分片鏈的結合使網絡能夠擴大容量,允許其處理的交易量遠超舊有系統。 能源效率 PoS 的實施對於區塊鏈技術中的能源效率來說是一個巨大的進步。通過大幅降低能源消耗,ETH 2.0 不僅減少了運營成本,還與全球可持續發展目標更加一致。 增強的安全性 ETH 2.0 的更新機制提高了網絡的安全性。PoS 的部署,加上通過分片鏈和信標鏈建立的創新控制措施,確保了對潛在威脅更高程度的保護。 降低用戶成本 隨著可擴展性的改善,交易成本也會明顯降低。預期增強的容量和減少的擁堵將轉化為用戶更低的手續費,使以太坊在日常交易中變得更可及。 結論 ETH 2.0 標誌著以太坊區塊鏈生態系統的一次重要演變。隨著其解決可擴展性、能源消耗、交易效率和整體安全性等關鍵問題,這次升級的重要性不言而喻。轉向權益證明、引入分片鏈以及信標鏈的基礎性工作,顯示出以太坊未來能夠滿足去中心化市場日益增長的需求。在一個由創新和進步推動的行業中,ETH 2.0 是區塊鏈技術在為更可持續和高效的數字經濟鋪路方面能力的見證。

180 人學過發佈於 2024.04.04更新於 2024.12.03

什麼是 ETH 2.0

什麼是 ETH 3.0

ETH3.0 與 $eth 3.0:以深入分析以太坊的未來 介紹 在快速發展的加密貨幣和區塊鏈技術領域,ETH3.0,通常標記為 $eth 3.0,已成為一個備受關注和猜測的話題。該術語包含兩個主要概念,值得說明: 以太坊 3.0:這代表潛在的未來升級,旨在增強現有的以太坊區塊鏈的能力,特別集中於提高可擴展性和性能。ETH3.0 表情符號代幣:這個獨特的加密貨幣項目旨在利用以太坊區塊鏈創建一個以表情符號為中心的生態系統,促進加密貨幣社區的參與。 理解這些 ETH3.0 的方面不僅對加密愛好者至關重要,也對觀察數字空間中的更廣泛技術趨勢的人有所幫助。 什麼是 ETH3.0? 以太坊 3.0 以太坊 3.0 被認為是對已建立的以太坊網絡的擬議升級,自其誕生以來,它一直是許多去中心化應用程式(dApps)和智能合約的支柱。預想的增強主要集中於可擴展性——整合先進技術,如分片和零知識證明(zk-proofs)。這些技術創新旨在促進每秒交易數量的前所未有(TPS),潛在地達到數百萬筆,從而解決當前區塊鏈技術面臨的最重大限制之一。 這次改進不僅是技術性的,更是戰略性的;它旨在為以太坊網絡的普遍採用和未來的實用性做準備,因為該未來將面臨對去中心化解決方案日益增長的需求。 ETH3.0 表情符號代幣 與以太坊 3.0 不同,ETH3.0 表情符號代幣進入了一個更輕鬆和更具玩樂性的領域,通過將互聯網表情符號文化與加密貨幣動態相結合。該項目使用戶能夠在以太坊區塊鏈上購買、出售和交易表情符號,提供一個促進社區通過創造力和共同利益參與的平台。 ETH3.0 表情符號代幣旨在展示區塊鏈技術如何與數字文化交匯,創造出既有趣又具有經濟價值的使用案例。 誰是 ETH3.0 的創造者? 以太坊 3.0 對以太坊 3.0 的倡議主要由以太坊社區內的一個開發者和研究人員的聯盟推動,特別是包括 Justin Drake。他因對以太坊演變的見解和貢獻而聞名,Drake 在關於將以太坊轉變為新共識層的討論中是一個重要人物,這被稱為「Beam Chain」。 這種協作開發的方式標誌著以太坊 3.0 不是單一創造者的產品,而是集中精力促進區塊鏈技術進步的集體智慧的體現。 ETH3.0 表情符號代幣 關於 ETH3.0 表情符號代幣的創造者的詳細資料目前無法追溯。表情符號代幣的特性通常導致更分散和社區驅動的結構,這可以解釋為什麼缺乏具體的歸屬感。這與更廣泛的加密社區的精神相符,該社區的創新往往源於協作而非個人努力。 誰是 ETH3.0 的投資者? 以太坊 3.0 對以太坊 3.0 的支持主要來自以太坊基金會以及一個充滿熱情的開發者和投資者社區。這種基礎聯繫提供了相當程度的合法性,並增強了成功落實的前景,因為它利用了多年網絡運營建立的信任和可信度。 在快速變化的加密貨幣氣候中,社區支持在推動開發和採用中發揮了關鍵作用,將以太坊 3.0 置於未來區塊鏈進步的重要競爭者地位。 ETH3.0 表情符號代幣 雖然目前可用的來源並沒有明確提供支持 ETH3.0 表情符號代幣的投資機構或組織的具體信息,但這反映出表情符號代幣典型的資金模型,通常依賴於基層支持和社區參與。此類項目的投資者通常由因社區驅動的創新潛力以及在加密社區中發現的合作精神而受到激勵的個人組成。 ETH3.0 如何運作? 以太坊 3.0 以太坊 3.0 的區別特點在於其擬議的分片和零知識證明技術的實施。分片是一種將區塊鏈劃分為更小、更易管理的單元或「分片」的方法,這些分片能夠同時處理交易,而不是按序處理。這種處理的去中心化有助於避免擁堵,並確保即使在高負載下,網絡也能保持響應。 零知識證明(zk-proof)技術通過允許交易驗證而不揭示涉及的基本數據,增加了一層複雜性。這一方面不僅增強了隱私性,還提高了整個網絡的效率。還有討論將零知識以太坊虛擬機(zkEVM)納入此次升級,進一步擴大網絡的能力和實用性。 ETH3.0 表情符號代幣 ETH3.0 表情符號代幣通過利用表情符號文化的受歡迎程度而脫穎而出。它建立了一個市場,讓用戶參與表情符號交易,不僅僅是為了娛樂,也是為了潛在的經濟利益。通過整合質押、流動性供應和治理機制等特性,該項目營造了一種促進社區互動和參與的環境。 通過提供娛樂和經濟機會的獨特結合,ETH3.0 表情符號代幣旨在吸引多樣的觀眾,範圍從加密愛好者到隨便的表情符號愛好者。 ETH3.0 的時間表 以太坊 3.0 2024年11月11日:Justin Drake 暗示即將到來的 ETH 3.0 升級,重點是可擴展性改進。這一公告標誌著關於以太坊未來架構正式討論的開始。2024年11月12日:預期中的以太坊 3.0 提案將在曼谷的 Devcon 上公佈,為更廣泛的社區反饋和潛在的開發後續步驟奠定基礎。 ETH3.0 表情符號代幣 2024年3月21日:ETH3.0 表情符號代幣正式在 CoinMarketCap 上列出,標誌著其進入公眾加密領域,並增強了其基於表情符號的生態系統的可見性。 關鍵要點 總之,以太坊 3.0 代表了以太坊網絡內的重要演變,集中於通過先進技術克服可擴展性和性能的限制。其擬議的升級反映出對未來需求和可用性的主動應對。 另一方面,ETH3.0 表情符號代幣 encapsulates 加密貨幣領域中以社區為驅動文化的本質,利用表情符號文化來創建鼓勵用戶創造力和參與的平台。 理解 ETH3.0 和 $eth 3.0 的不同目的和功能對於任何對加密領域中正在進行的發展感興趣的人來說都是至關重要的。隨著這兩個倡議鋪展獨特的道路,它們共同凸顯了區塊鏈創新動態和多樣化的本質。

187 人學過發佈於 2024.04.04更新於 2024.12.03

什麼是 ETH 3.0

如何購買ETH

歡迎來到HTX.com!在這裡,購買Ethereum (ETH)變得簡單而便捷。跟隨我們的逐步指南,放心開始您的加密貨幣之旅。第一步:創建您的HTX帳戶使用您的 Email、手機號碼在HTX註冊一個免費帳戶。體驗無憂的註冊過程並解鎖所有平台功能。立即註冊第二步:前往買幣頁面,選擇您的支付方式信用卡/金融卡購買:使用您的Visa或Mastercard即時購買Ethereum (ETH)。餘額購買:使用您HTX帳戶餘額中的資金進行無縫交易。第三方購買:探索諸如Google Pay或Apple Pay等流行支付方式以增加便利性。C2C購買:在HTX平台上直接與其他用戶交易。HTX 場外交易 (OTC) 購買:為大量交易者提供個性化服務和競爭性匯率。第三步:存儲您的Ethereum (ETH)購買Ethereum (ETH)後,將其存儲在您的HTX帳戶中。您也可以透過區塊鏈轉帳將其發送到其他地址或者用於交易其他加密貨幣。第四步:交易Ethereum (ETH)在HTX的現貨市場輕鬆交易Ethereum (ETH)。前往您的帳戶,選擇交易對,執行交易,並即時監控。HTX為初學者和經驗豐富的交易者提供了友好的用戶體驗。

4.2k 人學過發佈於 2024.12.10更新於 2026.06.02

如何購買ETH

相關討論

歡迎來到 HTX 社群。在這裡,您可以了解最新的平台發展動態並獲得專業的市場意見。 以下是用戶對 ETH (ETH)幣價的意見。

活动图片