Solana的交易手续费体系相比以太坊更为高效,费用低廉,且提供可选的优先费用来提升交易处理速度。要深入理解Solana的交易手续费,我们需要从**手续费结构、计算资源(Compute Units)、局部费用市场(Local Fee Market)**等多个方面展开。
一.Solana 交易手续费的基本结构
Solana 交易手续费主要由两个部分组成:
基础费用(Base Fee):所有交易都需要支付的固定成本。
优先费用(Prioritization Fee,可选):为了提升交易优先级而支付的额外费用。
1.基础手续费(Base Fee)
计算方式:每笔交易的最低费用 = 5000Lamports / 每个签名
目标费用:通常设定为 10000 Lamports / 每个签名
换算关系:
1SOL = 10⁹ Lamports
10000 Lamports = 0.00001 SOL
费用分配:
50% 手续费被销毁(Burn),减少SOL总供应量。
50% 手续费支付给验证者(Validator)作为奖励。
特点:基础手续费是固定的,避免了类似于以太坊Gas价格波动带来的高昂成本。
2.优先费用(Prioritization Fee)
用户可以支付额外费用来提升交易的执行优先级,可以选择不给优先费用,这里类似于以太坊的 Priority Fee,但计算方式有所不同:
• 计算方式:
费用去向:100%优先费支付给验证者(根据SIMD-0096提案)。
如何设置:
SetComputeUnitLimit:设置计算单元上限(CU Limit)。
SetComputeUnitPrice:设置每个计算单元的价格(以微Lamports计价)。
默认情况:
如果未指定优先费,则CU价格默认为 0,不会额外支付优先费。
这也是为什么大部分钱包UI显示的交易费用极低(仅基础费)。
二.计算单元(Compute Units, CU)
Solana采用计算单元(CU)衡量交易所需的计算资源,类似于以太坊的Gas,但具有更低的费用和更高的执行效率。
1.计算单元的核心概念
每个Solana交易需要执行一定的指令,每条指令都会消耗计算单元(CU)。
交易的计算单元上限可配置,但有系统默认值:
最大限制:1,400,000 CU / 交易(1.4M CU)
默认限制:200,000 CU / 指令
可自定义:用户可以通过SetComputeUnitLimit指定更高的CU限制。
2. 计算单元价格(Compute Unit Price)
计算单元价格(CU Price)以 “微 Lamports” 计价:
1,000,000 微Lamports = 1 Lamport
通过 SetComputeUnitPrice 指令来调整计算单元价格。
特点:计算单元的价格由用户决定,默认值为0,即不会额外支付优先费。如果用户希望交易更快执行,可以手动提高计算单元价格。
三.Solana的局部费用市场(Local Fee Market)
与以太坊不同,Solana采用局部费用市场机制,这意味着:
不同的合约(程序)有独立的费用市场,不受全网 Gas 竞价影响。
热点交易(如NFT Mint、IDO)可能会提高优先费,但不会影响普通转账的费用。
案例分析:
以太坊的NFT热点 Mint 可能会导致整个链上的交易费用飙升。
Solana的局部费用市场确保了NFT交易不会推高整个网络的费用,普通转账仍然保持低廉。
优势:
提高了交易执行效率,避免全网资源竞争
降低了普通用户的交易成本,即使NFT交易很火,转账仍然便宜。
四.为什么复杂合约调用的费用仍然很低?
尽管Solana上的某些交易涉及复杂的合约调用(如DeFi Swap、NFT Mint),但手续费仍然很低,主要原因如下:
最低基础费用(Base Fee)极低
由于Solana的基础费用是固定的,每笔交易最低仅需 0.000005 SOL。
只有在计算单元(CU)消耗超标时,才会增加额外费用。
默认优先费(Priority Fee)为 0
大部分钱包(如 Phantom、Solflare)默认不启用优先费,因此用户看到的费用始终很低。
局部费用市场(Local Fee Market)优化
热点交易(如 NFT Mint、DeFi 交互)并不会影响整个网络的费用。
普通用户的交易不会因热点交易的存在而变贵。
并行执行提高吞吐
Solana采用并行执行,多个交易可以在同一个区块中并行处理,提高资源利用率,减少拥堵。
五.Solana和以太坊手续费对比
● Solana 的交易费用远低于以太坊,无论是普通转账还是复杂合约交互。
● 局部费用市场 确保热点交易不会影响全网交易费用。
● 用户可以选择是否支付优先费,费用灵活性更高。
六.如何设置计算单元限制和优先费代码示例
● Rust 代码示例
use solana_program::compute_budget::ComputeBudgetInstruction;
// 设置计算单元上限(300,000 CU)
let limit_instruction = ComputeBudgetInstruction::set_compute_unit_limit(300_000);
// 设置计算单元价格(1 微 Lamports/CU)
let price_instruction = ComputeBudgetInstruction::set_compute_unit_price(1);
● JavaScript 代码示例
const { ComputeBudgetProgram } = require('@solana/web3.js');
// 设置计算单元上限(300,000 CU)
const limitInstruction = ComputeBudgetProgram.setComputeUnitLimit({
units: 300_000,
});
// 设置计算单元价格(1 微 Lamports/CU)
const priceInstruction = ComputeBudgetProgram.setComputeUnitPrice({
microLamports: 1,
});
七.总结
●Solana交易费用极低,最低0.000005SOL,即使是复杂交易也不超过0.01SOL。
● 优先费是可选项,用户可自行决定是否提高交易优先级。
● 局部费用市场 使得热点交易不会影响全网费用。
● Solana的并行执行模型提高了吞吐量,进一步降低了交易成本。
Solana通过优化费用市场和执行效率,实现了低成本、高吞吐的区块链交易体验。
声明:本网站所有相关资料如有侵权请联系站长删除,资料仅供用户学习及研究之用,不构成任何投资建议!