SOL 是 Solana 这条公链的原生代币,在链上转账、和程序打交道都要用它付手续费,也可以拿去质押。Solana 手续费低,靠的是设计上的取舍:它把吞吐放在前面,走单链路线,用「历史证明(Proof of History)」给交易排时间顺序,再配合权益证明(PoS)。以太坊主网把去中心化和安全放在前面,扩容主要交给二层网络(L2)。
所以「Solana 和以太坊差在哪」,短答案是扩容路线不同。落到新手手上,差别更具体:手续费怎么算、地址长什么样、换到一种新代币为什么钱包里少了一点 SOL。下面按官方文档一样一样说。
SOL 用来干什么,最小单位是什么
SOL 在 Solana 链上有两个主要用途:付手续费,和质押。链上记账用的不是 SOL,而是它的最小单位 lamport:
1 SOL = 1,000,000,000 lamports(十亿)。
官方文档里的费用、押金都按 lamports 写。换成 SOL 就是除以十亿,下面几处换算都是这么来的。
一笔交易的手续费怎么算
Solana 官方文档的「费用」页把手续费拆成两部分:
| 部分 | 怎么算 | 钱去哪 |
|---|---|---|
| 基础费用 | 按签名计费,每个签名 5,000 lamports | 50% 销毁,50% 给验证者(validator) |
| 优先费用 | ceil(计算单元价格 × 计算单元上限 ÷ 1,000,000) lamports | 100% 给验证者 |
基础费用自己就能换算:5,000 lamports = 5,000 ÷ 1,000,000,000 = 0.000005 SOL。一笔只带一个签名的交易,基础费用就是这么多;两个签名就翻一倍。我不把它换成人民币或美元,SOL 的价格一直在变,换出来的数过几天就不对了。
优先费用是在基础费用之外另加的,付了它,网络拥堵时交易更容易被优先处理。举个示意的例子:计算单元价格取 10,000,计算单元上限取 200,000,优先费用 = 10,000 × 200,000 ÷ 1,000,000 = 2,000 lamports。加上一个签名的基础费用,这笔交易一共 5,000 + 2,000 = 7,000 lamports,也就是 0.000007 SOL。文档也写了,即将推出的 v1 交易格式会改成直接填 lamport 总数。
第一次换到一种新代币,为什么少了约 0.002 SOL
这是新手在 Solana 上常问的一件事。答案在官方文档的「账户」页:链上每个账户都要存一笔可退还的最低余额(免租金最低额),公式是:
(账户数据大小 + 128) × 3,480 lamports/字节·年 × 2 年,也就是每字节约 6,960 lamports。
一个地址第一次持有某种代币时,要为它建一个代币账户。原生 Token Program 的代币账户数据大小是 165 字节,代进去:
(165 + 128) × 6,960 = 293 × 6,960 = 2,039,280 lamports = 0.00203928 SOL,约 0.00204 SOL。Token-2022 带扩展的代币账户押金可能更高,以钱包提示为准。
这笔押金谁出?官方文档「创建代币账户」页写的是:创建指令里的付款方(payer)出这笔押金并签名,付款方可以不是账户的所有人。所以应用或转账方可以替收款人建账户、替它付押金。落到日常操作,分三种情况:
- 你自己在钱包里兑换或买入一种新代币:押金从你的 SOL 里扣。
- 别人给你转一种你没持有过的代币:一般是转出方或交易所出这笔押金。
- 你给一个没持有过这种代币的地址转账:要替对方押这笔钱。
这笔钱是押金,不是花掉了。以后不再持有这种代币,把这个代币账户关掉,押金可以退回来。也因为手续费和押金都用 SOL 付,钱包里要留一点 SOL:钱包里只有 Solana 上的 USDT、一点 SOL 都没有,那笔 USDT 就转不出去。USDT 本身是什么,可以看USDT 是什么?稳定币为什么能一直值 1 美元。
和以太坊放在一起比
| Solana | 以太坊 | |
|---|---|---|
| 扩容路线 | 单链追求高吞吐 | 主网偏重去中心化和安全,扩容主要靠二层网络(L2) |
| 共识与排序 | 历史证明(PoH)给交易排时间顺序,配合 PoS | 权益证明(PoS) |
| 智能合约 | 叫「程序」,多用 Rust 写 | 多用 Solidity 写 |
| 地址格式 | Base58,32–44 个字符,不以 0x 开头 | 0x 开头 |
| 原生代币 | SOL | ETH |
地址那一行对新手用处大。两条链的地址一眼就能分开:0x 开头的是以太坊这一类地址,Solana 地址是一串不带 0x 的字母数字。以太坊自己的设计,包括它和比特币的区别,可以看以太坊和比特币的区别:三处根本不同。
往 Solana 转币,容易错在哪
- 从交易所提 SOL,网络一定选 Solana。提币页的网络名称和你收款地址所在的链要对得上。
- 想在 Solana 钱包里收到 SOL,就别提到 0x 开头的地址。0x 开头是以太坊这一类的地址格式。有的交易所提供 BNB 智能链上的 SOL,收款地址就是 0x 开头,那不是 Solana 链上的地址。
- 钱包里留一点 SOL。手续费和代币账户押金都要用它付,原因见上一节。
这篇不谈价格,只说风险
SOL 值不值得买,我不在这里判断,也不做任何价格预测。能说的是几条摆在明面上的风险:
- 公链竞争。做高吞吐公链的不止 Solana 一家,生态和用户随时可能被分流。
- 历史宕机。全网停止出块的事故出现过不止一次,期间链上转账和交易都会受影响。
- 生态代币波动大。Solana 上新发的代币很多,涨跌都快。买之前先想清楚这笔钱能不能亏光。
几个常见问题
SOL 和 Solana 是一回事吗?
Solana 是这条公链的名字,SOL 是链上的原生代币,用来付手续费和质押。最小单位是 lamport,1 SOL = 1,000,000,000 lamports。
Solana 转账手续费是多少?
按 Solana 官方文档,基础费用按签名计,每个签名 5,000 lamports,也就是 0.000005 SOL,一半销毁、一半给验证者。另外可以加优先费用,按 ceil(计算单元价格 × 计算单元上限 ÷ 1,000,000) lamports 算,全部给验证者。
为什么换到新代币后 SOL 少了一点?
一个地址第一次持有某种代币时,要建一个代币账户,押进一笔免租金最低额。原生 Token Program 的代币账户是 2,039,280 lamports,约 0.00204 SOL;Token-2022 带扩展的代币账户押金可能更高,以钱包提示为准。自己兑换或买入时从你的 SOL 里扣;别人转给你时,一般是转出方或交易所出。关掉这个代币账户,押金可以退回。
SOL 能提到 0x 开头的地址吗?
想在 Solana 钱包里收到 SOL,就不能提到 0x 开头的地址。有的交易所提供 BNB 智能链上的 SOL,那种收款地址是 0x 开头;Solana 地址是 Base58 编码、32 到 44 个字符,不以 0x 开头。提到 Solana 钱包,网络要选 Solana。