摘要:Solana 靠 PoH 时间戳、并行执行的账户模型和本地化费用市场实现高吞吐。本文结合 Solana 中文文档和 Solana Explorer、SolanaFM 上的真实交易,讲清基础费、优先费与计算单元字段怎么核对。
Solana 快,不是靠某一个「黑科技」,而是几件设计叠在一起:用 Proof of History(PoH)给交易打上可验证的先后顺序,出块领导者(leader)提前排好,交易直接转发过去;再加上账户模型要求每笔交易事先声明要读写哪些账户,互不冲突的交易就能并行执行。手续费方面,Solana 按签名数收固定基础费,再按计算单元(CU)收可选的优先费,和以太坊的 EIP-1559 思路不同。本文用 Solana Explorer 上一笔真实转账把这些字段对上,不谈行情。
PoH 解决什么问题
分布式网络里最难的一件事是「大家对时间先后达成一致」。PoH 的做法是让 leader 连续不断地做 SHA-256 哈希:每一次的输出作为下一次的输入,这条哈希链只能顺序计算、不能并行加速,但任何人都能快速验证。交易被插进这条链的某个位置,就等于拿到了一个密码学时间戳。
- 先排序、后投票:验证者拿到的区块本身已经带好了顺序,投票只需确认,不必再来回协商顺序。
- leader 轮值表提前公开:钱包和 RPC 节点知道接下来是谁出块,交易直接发给即将出块的 leader,而不是先进入一个全网共享的内存池。
- 最终性来自共识层:当前主网的共识是基于 PoH 的 TowerBFT,浏览器里的「Finalized」表示该区块已获得足够质押的投票确认。
需要特别说明的时间点:Solana 的新共识协议 Alpenglow 已于 2026 年 9 月 24 日、25 日分别在测试网和开发网完成切换,用 Votor 取代 TowerBFT,并去掉 PoH 的 tick 节拍。截至本文发布(2026-09-26),主网(mainnet-beta)仍在运行 PoH + TowerBFT,Anza 表示观察期结束后才迁移主网,具体日期以 Anza 和 Solana 官方公告为准。所以本文讲的 PoH 机制对当前主网成立,但它正处在被替换的过程中。
账户模型:一切都是账户

Solana 把状态全部存在「账户」里,地址是 32 字节(通常显示为 Base58 字符串)。和以太坊不同,程序(智能合约)本身不存数据:代码在可执行的程序账户里,数据放在由该程序「拥有」(owner)的其他账户里。
| 字段 | 含义 | 在浏览器里对应 |
|---|---|---|
| lamports | 余额,1 SOL = 109 lamports | Balance (SOL) |
| data | 账户存的字节数据 | Allocated Data Size |
| owner | 哪个程序有权修改它 | Assigned Program Id |
| executable | 是否为可执行程序 | Executable |
| rent_epoch | 历史遗留的租金字段 | 一般不显示 |

普通钱包账户的 owner 是 System Program,数据长度为 0;而像 Token Program 这样的程序账户,Executable 会显示 Yes。每笔交易必须列出它会用到的全部账户并标明是否可写,运行时据此把不冲突的交易分配到多个线程并行执行(Solana 称之为 Sealevel)。这也是「热门账户」(例如某个热门交易对的池子)容易拥堵的原因:所有要写它的交易只能排队。
账户还要保持一个与数据大小成正比的最低余额(免租金门槛),账户被清空到 0 就会被回收,这和以太坊地址「永远存在」不一样。对比 TON 那种「每个合约一个账户、消息异步传递」的设计,可以看 TON 链怎么运作:分片、Jetton 与钱包地址格式。
交易费怎么算:官方公式

- 基础费:每个签名 5,000 lamports(参数 lamports_per_signature),一半销毁、一半给出块验证者。和交易复杂度无关。
- 优先费:可选,= ceil(CU 单价 × CU 上限 ÷ 1,000,000)lamports,100% 给验证者。CU 单价单位是 micro-lamports,通过 Compute Budget 程序的 SetComputeUnitPrice 指令设置。
- 注意是按 CU 上限收,不是按实际用量收。上限通过 SetComputeUnitLimit 设置;不设时,每条指令默认上限 200,000 CU,单笔交易最多 1,400,000 CU。
- 无论交易成功还是失败,费用都会扣。
实例:用 Solana Explorer 验算一笔转账
下面这笔是 2026-09-26 14:29(UTC+8)在 slot 450,594,031 确认的普通 SOL 转账。Solscan 在截图环境下无法加载交易数据,这里改用官方的 Solana Explorer 和 SolanaFM,同一个签名在任何浏览器里查到的内容一致。


代入公式:
- 基础费:1 个签名 × 5,000 = 5,000 lamports。
- 优先费:ceil(33,333 × 200,000 ÷ 1,000,000)= ceil(6,666.6)= 6,667 lamports。
- 合计:11,667 lamports = 0.000011667 SOL,与图4的 Fee 完全一致。
这笔交易实际只消耗了 450 CU,却按 200,000 的上限付了优先费。如果把上限设成接近实际用量(例如 450),同样的单价只需 ceil(33,333 × 450 ÷ 1,000,000)= 15 lamports 的优先费。这就是为什么成熟的钱包和交易机器人会先模拟交易、再按实际用量设置 CU 上限。
和以太坊的计费差在哪
| 对比项 | Solana | 以太坊(EIP-1559) |
|---|---|---|
| 基础部分 | 每个签名固定 5,000 lamports | Base Fee 随区块拥挤度浮动 |
| 销毁 | 基础费的 50% | Base Fee 的 100% |
| 加速手段 | 提高 CU 单价(优先费) | 提高 Priority Fee |
| 计量单位 | 计算单元 CU | Gas |
| 收费依据 | 优先费按 CU 上限 | 按实际 Gas 用量 |
以太坊那一侧的逐字段验算见 以太坊 Gas 费怎么算:Base Fee、Priority Fee 与 EIP-1559 字段对照。
实操:付 SOL 手续费前要准备什么
- 钱包里必须留一点 SOL 付手续费,只有 USDC/USDT 发不出交易;还要注意账户的最低余额要求,清空时钱包会提示。
- 从交易所提 SOL 时网络选 Solana。还没有账户可以用 币安 或 欧易 注册买入。
- 自托管钱包可用欧易 Web3 钱包(支持 Solana),创建时推荐码填 CHENGXULVTU,在 DEX 里 Swap 的步骤见 欧易 Web3 DEX 怎么 Swap。
- 拥堵时交易失败或迟迟不确认,一般是优先费不够或区块哈希过期,钱包重新签名发送即可;失败的交易同样会扣基础费。
想看 Solana 生态的背景资料,站内也有一篇早年的 灰度 Solana 研究报告全文,其中的数据反映的是当时情况,阅读时注意时间。
相关阅读
- 以太坊 Gas 费怎么算:Base Fee、Priority Fee 与 EIP-1559 字段对照
- TON 链怎么运作:分片、Jetton 与钱包地址格式
- 欧易 Web3 DEX 怎么 Swap:选链滑点与授权
说明:费用参数引自 Solana 官方文档(2026-09-26 查阅),交易数据为截图时的链上记录。Solana 正在推进 Alpenglow 等协议升级,共识和参数可能变化,以官方文档为准。本文不构成任何投资建议。
