风险提示:理性看待区块链,提高风险意识!
玩转 Solana 一文掌握 Solana 核心概念
首页 > 业界 > 区块链 2024-06-06 23:30
摘要
2024年,Solana异军突起,TVL从年初的十亿美元飙升至如今的近五十亿美元,一跃成为第4大公链 。
币界网报道:

2024年,Solana异军突起,TVL从年初的十亿美元飙升至如今的近五十亿美元,一跃成为第4大公链。

与Ethereum相比,Solana以更快的速度和更低廉的费用为用户带来了更为优越的体验。其基于POH的共识机制和异步的交易执行模式为开发者提供了高吞吐量和低延迟的区块链性能,成为各种去中心化应用的首选平台。

BlockSec特别策划了《玩转Solana》系列文章,涵盖 Solana 基本概念、查看和分析 Solana 交易实用指南以及编写 Solana 智能合约教程等干货内容。

作为该系列的第1期,本文将深入介绍Solana网络中的关键概念,包括其运行机制,账户模型和交易,为大家编写出正确且高效的Solana合约打下基础。

eBPF:Solana交易的执行基石

为了编写和执行智能合约,区块链往往需要一套编程语言和图灵完备的计算环境。

熟悉Ethereum的朋友们应该知道,以太坊上的智能合约通常使用高级语言Solidity来编写,而Solidity编译产生的字节码则运行在一个叫做以太坊虚拟机的环境中。

Solana并没有选择开发全新的虚拟环境和语言,而是充分利用了现有的优秀技术。原本用于拓展Linux内核功能的eBPF(extended Berkeley Packet Filter)虚拟机被Solana选中并作为底层的执行环境。

那么,eBPF 相对于 EVM 有哪些优势?

相较于只支持解释执行的EVM,eBPF能够以即时编译(JIT)模式直接将字节码转换成处理器可以直接执行的机器指令,从而更高效地运行程序。

eBPF拥有一套高效的指令集和成熟的基础设施。开发者只需要使用Rust语言即可编写智能合约。LLVM编译框架提供了一个eBPF的后端,利用它可以直接将这些Rust语言编写的程序编译成可运行在eBPF虚拟机上的字节码。

Solana的账户模型

1. Solana账户结构

Solana上的数据以账户的形式存储。如下图所示,我们可将Solana中的所有数据视作一个庞大的键值对数据库。数据库的键是账户的地址,对于“钱包”账户(即由

Solana用户通过公私钥对直接控制的账户)而言,这个地址是使用Ed25519签名系统生成的公钥;而数据库的值是该账户的具体信息,包含余额和其它相关信息。

Solana使用名为AccountInfo的结构来描述一个账户,其组成如下图所示。

Solana中的每个账户均包含四个字段。这里我们对其进行逐一解释。

  • Data字段存储了该账户有关的数据。如果该账户为一个程序(即智能合约),则它存储的其实就是eBPF字节码。否则,Data中信息格式一般由账户创建者自行定义。

  • Executable字段用于标识该账户是否为程序。需要注意的是,与以太坊不同,Solana中的程序是可以更新的。

  • Lamports字段记录了该账户Solana代币的余额。Lamports实际上是SOL Token的最小单位(1 SOL = 10亿Lamports)。

  • Owner字段指示了当前账户的拥有者。在Solana中,任何一个账户都有一个“Owner”。例如,所有“钱包”账户的拥有者都是System Program,这是Solana网络上的一个特殊账户,负责账户创建等功能。账户拥有者是唯一能够修改账户数据和扣除Lamports余额的人(但任何人都可以增加Lamports,即向账户执行转账功能)。

2. 预定义的Solana账户

Solana拥有一套称作Native Programs的预定义运行程序,它们被部署在固定的地址上。随着Solana网络的升级,这些预定义的程序也可能会被更新。我们可以将这些程序理解成Solana网络下提供特定功能的API和库函数。

在Native Programs中,开发者经常需要与之交互的一个程序是System Program。System Program为开发者提供了一些指令(Instructions),我们可以把每条指令理解成是一个独立的方法。例如,开发者可使用CreateAccount指令来创建新的账户,或者使用Transfer指令将Lamports转账给其它账户。

另外一个常见的Native Programs是BPF Loader程序。它是所有其它程序账户的拥有者,其负责部署、更新和执行特定的程序。当一个“钱包”账户需要更新它部署过的程序时,实际上就是通过委托BPF Loader程序来完成的,毕竟只有程序的拥有者才有直接权限修改数据。

除了Native Programs,Solana还提供了一组被称作Sysvar的账户。它们为Solana上的程序提供了与当前Solana网络状态相关的信息和全局变量,例如当前的时钟,最近的区块哈希等。

3. 账户租金

在Solana链上,每个账户需要保持一定数量的Lamports作为最低额度,这被称为租金。与现实生活中的租金概念不同,Solana上的租金是可以收回的。为了确保账户在链上的数据是可用的,账户需要持有相应数量的Lamports。租金的数额与账户在链上存储空间的大小相关。

任何试图将账户余额扣减至低于租金数额的交易都会失败,除非这笔交易直接将账户的余额扣减至零。这种操作表明该账户的租金已被收回,在交易执行结束时,Solana会通过垃圾回收清空相应账户的存储空间。

-?在浏览器中查看「Solana账户」

为了带领大家更好地理解相关概念,我们使用Solana提供的“HelloWorld”项目创建了一个程序账户,可以通过Solana的区块链浏览器Solscan来查看以下账户?的相关信息。

CJWhxB4qEWBv9eGYUkTN881bNDMDkLbzH1FmdwqLLhoe

如上图所示,我们首先可以看到,该账户已被Solana浏览器标明为“Program”。在创建该账户时从发送者的余额里扣除了一部分Lamports作为该账户的租金,故而我们可以看到其SOL Balance字段不为空。

其次,由于我们创建的是一个程序,其Executable字段为 Yes。这里可能有一个难以理解的地方,那就是读者也许会发现Data字段存储的是一个地址而非eBPF程序。我们在前面提到过,Solana允许更新程序,而它实际上是通过一种“代理”模式来实现的。由于Solana并不允许直接修改程序账户,所以它创建了一个数据账户用来存储eBPF程序,而在程序账户的Data字段只存储数据账户的地址。每当需要更新程序时,就只需修改数据账户中的Data字段。我们用Solscan查看Executable Data字段的账户可以发现它被标记为“Program Executable Data Account”,其Data字段存储了实际的程序:

回到上一张图片,我们可以发现在More info中Owner字段为BPF Loader,这与我们在上一节中的描述是一致的。

在Overview中还有一个名为“Upgrade Authority”的字段,它的含义是什么呢?

正如我们前面提到的,“钱包”账户是通过委托BPF Loader来更新程序的,而在更新之前,BPF Loader需要验证委托者是否拥有更新的权限。由于程序账户的Owner字段已经是BPF Loader,其自身已经没有空间来存储该信息了,因此Solana选择把这个信息存储在数据账户的Data字段中,这个信息实际上就是部署程序的钱包地址,也就是这里的“Upgrade Authority”。下图展示了程序账户与数据账户之间的关系,可以看到数据账户的Data字段由钱包地址和eBPF代码两部分信息组成。

Solana的交易和指令

在Solana中,用户同样通过签发交易(Transactions)来执行程序。其特别之处在于,Solana能够并行执行这些交易,这也是其能够提供闪电般交易速度的重要原因。接下来我们来看看Solana的交易是如何设计的。

一笔Solana交易由签名和消息主体组成。一笔交易可包含多个签名。交易的消息主体由四个部分组成,如下图所示。

消息的头部信息(Header)和账户地址数组(Compact array of account addresses)两个字段指定了交易涉及的所有账户以及账户在交易中的特征:包括该账户是否提供了签名以及执行过程中是否会被写入。利用这些信息,Solana能够验证相应账户提供的签名,并且能够并行地执行那些不触碰相同账户集合的交易。

最近的区块哈希(Recent Blockhash)是交易的时间戳。Solana网络会确保交易来自于最近的150个区块,否则交易会被认为过期从而不被执行。

指令数组(Compact array of Instructions)是交易中最重要的部分,包含了一条或多条指令。一条指令实际上是对某个程序提供的一段例程的调用。指令由三个字段组成,如下图所示:

第一个字段Program ID Index指定了指令的接收者,即需要处理该指令的链上程序。它不直接存放一个32字节的地址,而是将该地址放在消息主体中的账户地址数组中。该字段使用一个字节的下标指明其在数组中的位置,实现了一种空间复用。

和第一个字段类似,第二个字段是由账户地址下标组成的数组(Compact array of account address indexes),它指明了处理该指令涉及到的所有账户。

最后一个字段是一段字节数组,它是程序处理该指令需要的额外信息,可以把它理解成函数的参数。

需要注意的是,Solana会按照顺序处理交易中的所有指令,并确保交易的执行是原子的。这意味着一笔交易中的指令要么全部失败,要么全部成功执行,不会出现部分指令成功执行而部分失败的情况。

-?在浏览器中查看「Solana交易」

我们使用另外一个Solana浏览器来查看前面创建程序账户的交易?。在Overview中能够看到Solana交易的签名、最近区块哈希等信息:
3uKQ85Lpsnwb5D6CgUntoMyJX3tSaeGb4pjUoMaMyNVqQNPp5PRG1kJEEEk3YNdWLYEMZGmoJ5Rowgon8hZzwL9D

而在Account Input中则列出了当前交易涉及到的所有账户以及相关账户在交易中的特征。我们可以看到除了发送者、程序账户等地址外,两个Native Programs和Sysvar账户也被包含进去了。

由于该交易是一个简单的程序创建交易,所以它只包含了两条指令,第一条指令的接收者是System Program,负责创建程序账户;第二条指令的接受者则是BPF Loader,负责将实际部署的eBPF代码写入到数据账户中,并将其地址写入到程序账户的Data字段。

总结

Solana上的智能合约采用Rust语言开发,并在eBPF虚拟机上运行。它遵循账户模型,链上的账户需要维持租金才能保证数据的可用性。交易由一条或多条指令组成,明确定义了依赖的所有账户,从而使得交易能够被并行处理,提高了吞吐量并降低了响应延迟。这些特点共同促进了Solana的快速发展,使其成为备受青睐的区块链平台之一。

发表评论
发表评论
暂无评论
    相关阅读
    币界百科
    币界资讯
    美国农场期货杂志旗下Pro Farmer发布6月2日-6月6日展望报告,从基本面及技术点位角度前瞻大豆、玉米、小麦、棉花价格。
    区块链
    2025-06-02 12:14:49
    三星即将与人工智能初创公司 Perplexity AI 达成一项重大交易。
    区块链
    2025-06-02 10:29:13
    SOL 凭借强劲的质押活动和不断上升的社交提及度克服了 ETF 的不确定性,预示着网络势头看涨。
    区块链
    2025-06-02 08:32:09
    美国证券交易委员会 (SEC) 在表示大多数加密货币质押不属于证券法管辖范围的第二天,对与质押相关的 ETF 表示担忧。
    区块链
    2025-06-02 08:28:29
    一位曾及时预测比特币价格的分析师认为,尽管 BTC 难以突破 110,000 美元的水平,但它正准备迎接巨大的上涨。
    比特币
    2025-06-01 21:40:46
    在加密货币的世界里,PERP交易正逐渐成为热门话题。对于许多新手来说,理解PERP交易的规则、机制和潜在风险至关重要。本文将为你详细剖析PERP交易的各个方面,从基本概念到实际操作,让你全面了解这一新兴的交易方式。无论你是想入场尝试,还是已经在交易中遇到问题,都能从本文中找到有价值的信息,为你的交易之路提供有力的支持。
    区块链书籍
    2025-03-07 18:01:34
    2025年虚拟货币市场持续蓬勃发展,其排名也发生了重大变化。比特币作为开创者和市场龙头,市值约1.98万亿美元,价格达100,309.15美元,霸主地位难以撼动。以太坊是智能合约先驱,随着以太坊2.0推进,性能和可扩展性不断提升。莱特币交易速度快、费用低,是小额支付利器。此外,2025年虚拟币排行榜前20名可能还包括币安币、瑞波币、卡尔达诺等。稳定币USDT和USDC因与美元挂钩,流动性和稳定性高,受投资者青睐。想了解更多虚拟货币信息,DYOR,紧跟市场动态。
    数字货币百科
    2025-03-07 18:26:26
    近期,Pi币在加密货币市场表现亮眼,成为焦点。2月27日其价格达2.98美元新高,虽随后受整体市场下降趋势影响,但3月3日价格大幅上涨,惊艳众人。据Concodex数据,Pi币在2025年3月可能见证大规模上升,预计高价达8.23美元,平均交易价4.89美元。Pi Network以创新方法重新定义加密领域规则,拥有超5000万用户社区,若克服当前挑战,实现更多交易所上市和去中心化,可能为数字金融设定新标准。
    矿业百科
    2025-03-07 15:01:22
    在虚拟货币市场持续发展的当下,2025年虚拟货币排行榜前十备受关注。比特币作为开山鼻祖,凭借稀缺性和高安全性稳坐龙头,市值约1.98万亿美元。以太坊不仅是虚拟货币,更是智能合约和去中心化应用平台,随着2.0升级,潜力巨大。莱特币以快速交易确认和低费用适合小额支付。币安币作为币安交易所原生代币,应用场景丰富,价值可能随交易所发展提升。了解这些排名前列的虚拟货币,能更好把握市场动态。
    矿业百科
    2025-03-08 09:19:37
    近期瑞波币(XRP)市场波动频繁,其回调可能性备受关注。在过去24小时内XRP曾飙升12.91%,自四天前低点已取得显著涨幅,2周来首次攀升至2.5美元。不过,著名加密货币分析师阿里·马丁内斯指出,XRP虽处于看涨模式,但存在回调风险,可能先回调至2.05美元,再突破2.73美元阻力位开启新一轮上涨。此外,瑞波币价格还受全球经济形势、技术发展、监管环境等因素影响。投资者需密切关注市场动态,合理评估风险。
    数字货币百科
    2025-03-07 15:24:34
    选择一个安全可靠的交易平台,就像给你的投资旅程系上安全带——它可能不会让你一夜暴富,但绝对能帮你避开深渊。今天,我将从六大核心维度,带你看透交易平台的挑选逻辑,手把手教你避坑。
    交易所知识
    2025-04-07 13:50:06
    在数字化资产交易日益繁荣的当下,加密货币交易所作为连接区块链世界与现实经济的重要桥梁,其影响力和重要性不言而喻。全球领先的加密货币交易所包括 OKX、币安、火币、Coinbase、KuCoin、Kraken、Gate.io、Gemini、Bybit 和 Bitstamp 等。这些交易所以其可靠性、安全性、广泛的交易对和低交易费用而著称,还提供如衍生品交易、杠杆选择、顶级流动性、稳定性、监管合规性和机构投资者选择等各种功能。投资者在选择交易平台时,应根据自身需求和交易风险进行合理选择,并采取有效的风险控制策
    钱包知识
    2025-03-03 20:48:29
    在加密货币的风云变幻中,PZM合约与VVV交易所官网备受关注。PZM币作为一个宣称公平、去中心化、便利且安全的加密货币,采用POS挖矿,平均出块时间59秒,代币总量60亿枚,流通量仅1%多一点。其24H价格有波动,在不同交易所也有相应的交易对和成交额。而VVV交易所官网背后的交易所,在加密市场有着独特地位,币安还曾上线其永续合约,最高杠杆可达25倍。深入了解PZM合约与VVV交易所官网,对于把握加密货币领域的新趋势、新动态有着重要意义,能让我们更好地洞察这一充满机遇与挑战的市场。
    交易所知识
    2025-03-03 21:21:55
    在加密货币交易的热潮中,S杠杆与DBR永续合约成为了备受关注的焦点。DBR永续合约作为创新的金融衍生品,允许交易者无需持有标的资产即可押注,且无到期日能无限期持有。S杠杆则能放大交易规模,让投资者有更多参与机会。不过,它们虽有全天候交易、放大交易规模和对冲风险等优势,但也面临清算、市场波动和杠杆风险等问题。比如BitMEX和Bitget等交易所的DBR永续合约交易,分别提供高达50倍和20倍的杠杆。对于投资者而言,深入了解S杠杆与DBR永续合约的特点和风险,才能在这场充满机遇与挑战的交易中做出更明智的决策
    币种知识
    2025-03-03 17:00:40
    在加密货币领域,CUDOS交易所与POLS交易所官网备受关注。CUDOS币是基于以太坊的加密货币,其借助去中心化云计算平台,为全球金融业、科技企业和学术界提供解决方案,有着高效性、安全性和可扩展性等优势。而POLS币也在众多交易所上架交易。CUDOS交易所和POLS交易所官网作为重要的交易平台,它们在市场中扮演着怎样的角色?又有哪些独特之处和发展潜力?让我们一起深入探究,了解其背后的奥秘与价值。对于关注加密货币交易的人士来说,这里有着丰富的信息和值得探索的内容。DYOR,全面了解相关信息,才能更好地把握加
    矿业知识
    2025-03-03 17:51:36
    推荐专栏
    Boss Wallet Web3 Econom Pass
    去中心化交易所
    一位相信价值投资的币圈KOL。稳定盈利的缠论野生交易员 #BTC行情分析师 #价值投资 #链上数据分析
    爱Web 3,爱生活,爱科技,爱炒币的老韭菜
    热门币种
    更多
    币种
    美元价格
    24H涨跌幅
    BTC比特币
    105,085.32 USDT
    ¥756,351.59
    +0.44%
    ETH以太坊
    2,497.83 USDT
    ¥17,978.13
    -0.66%
    USDT泰达币
    1.00 USDT
    ¥7.20
    -0.01%
    XRP瑞波币
    2.17 USDT
    ¥15.59
    +0.02%
    BNB币安币
    657.99 USDT
    ¥4,735.88
    +0.44%
    SOL
    155.86 USDT
    ¥1,121.80
    +0.5%
    USDC
    0.99940 USDT
    ¥7.19
    +0.01%
    DOGE狗狗币
    0.19110 USDT
    ¥1.38
    +0.42%
    TRX波场币
    0.27160 USDT
    ¥1.95
    +1.38%
    ADA艾达币
    0.67900 USDT
    ¥4.89
    -0.26%
    热搜币种
    更多
    币种
    美元价格
    24H涨跌幅
    Livepeer Token
    8.291 USDT
    ¥60.36
    -6.43%
    柚子
    0.6547 USDT
    ¥4.77
    +2.81%
    Horizen
    10.0092 USDT
    ¥72.87
    +7.83%
    Filecoin
    2.537 USDT
    ¥18.47
    -1.06%
    比特币
    105085.32 USDT
    ¥765,021.13
    +0.44%
    Mask Network
    2.6757 USDT
    ¥19.48
    +31.82%
    Uniswap
    6.099 USDT
    ¥44.40
    +1.54%
    狗狗币
    0.1911 USDT
    ¥1.39
    +0.42%
    PancakeSwap
    2.3416 USDT
    ¥17.05
    +2.57%
    以太坊
    2497.83 USDT
    ¥18,184.20
    -0.66%
    dYdX
    0.5476 USDT
    ¥3.99
    +0.16%
    币安币
    657.99 USDT
    ¥4,790.17
    +0.44%
    最新快讯
    更多
    一巨鲸疑似抛售逾75万枚MASK,致币价短时下跌17%
    2025-06-02 11:58:19
    某鲸鱼地址11小时前向Binance充值75.6万枚MASK导致币价下跌17%
    2025-06-02 11:57:02
    5月DEX现货交易量占比升至25%,创历史新高
    2025-06-02 11:54:16
    火币HTX将于6月2日18:30联合首发上线EDGEN(LayerEdge)
    2025-06-02 11:53:02
    Moonshot已上线FUCKCOIN,市值暂报1092万美元
    2025-06-02 11:51:02
    ZachXBT:Ross收到的300枚BTC疑似来自曾被标记的Jambler相关地址
    2025-06-02 11:46:09
    当前主流CEX、DEX资金费率显示市场处于中性偏看空
    2025-06-02 11:34:45