Solana 机制设计和架构深度解析
作者:Pavel Paramonov 来源:X,@paramonoww 翻译:金色财经
过去的六个月,我阅读了无数关于 Solana 机制设计和架构的文章和文档。我将最重要的信息汇总在一篇长文中。内容涵盖机制设计、费用市场、MEV 等主题。
以下是对所有问题的解答:
Solana 的共识模型:
‣ Solana 的历史证明(Proof of History, PoH)共识模型本质上是“权益证明(Proof of Stake)+ 时间变量”。
‣ PoH 实质上是网络的时钟,用于跟踪事件及其顺序(不需要验证者就时间达成共识)。
‣ Solana 没有内存池(mempool)。
‣ 目前,大多数验证者使用由 @solanalabs 提供的 Solana 客户端中的调度器实现。不过,验证者也可以选择运行不同的区块构建算法。
‣ 时间变量允许为每次轮换分配领导者,这些领导者将负责生产区块。
详细机制:
-
当某验证者被选为领导者时,它负责生产新区块并将其提议到网络中。
-
领导权以固定间隔(称为槽,slots)在验证者之间轮换。
-
每个槽持续 400 毫秒,在这段时间内,验证者可以生成一个区块。槽是按顺序一个接一个地进行的。
-
每个槽都会分配一位领导验证者,用以提议新区块,其他验证者对区块的有效性进行投票,最终确认区块。
-
如果验证者错过了其分配的槽,网络将继续处理下一个槽。
特点与流程:
-
Solana 使用基于分叉的投票机制,而不是单个区块的投票。验证者会连续生成区块,并实时添加有效的投票。
-
验证者和委托者可以在一个周期(epoch)内质押或撤销质押 SOL 代币。
-
根据质押的 SOL 数量,验证者在共识过程中的参与度将在周期开始时确定。
Solana 的质押模型:
‣ Solana 在每个周期(epoch)结束时处理质押更新,每个周期大约持续 2-3 天,由 432,000 个区块(槽)组成。
‣ 下一个周期的验证者调度表基于更新后的质押信息确定。
验证者的三大主要收入来源:
-
交易手续费
-
协议奖励(通胀)
-
最大可提取价值(MEV)
‣ 领导者收到的区块奖励包含基础费用和优先费用的 50%(其余 50% 被销毁)。
‣ 更长的区块时间可能会减少年度奖励,因为周期数量减少,从而影响 $SOL 的总体分配。
‣ Solana 为每个周期计算通胀生成的 SOL 奖励池,并根据上一周期的投票和质押状态分配奖励给验证者和质押者。
Solana 的质押模型:
‣ Solana 在每个周期(epoch)结束时处理质押更新,每个周期大约持续 2-3 天,由 432,000 个区块(槽)组成。
‣ 下一个周期的验证者调度表基于更新后的质押信息确定。
验证者的三大主要收入来源:
-
交易手续费
-
协议奖励(通胀)
-
最大可提取价值(MEV)
‣ 领导者收到的区块奖励包含基础费用和优先费用的 50%(其余 50% 被销毁)。
‣ 更长的区块时间可能会减少年度奖励,因为周期数量减少,从而影响 $SOL 的总体分配。
‣ Solana 为每个周期计算通胀生成的 SOL 奖励池,并根据上一周期的投票和质押状态分配奖励给验证者和质押者。
Solana 的投票模型:
‣ Solana 对验证者没有严格的最低 SOL 要求,但参与共识需要一个投票账户。
‣ 验证者对槽领导者的提案进行投票,这需要一个投票账户,并为每次投票支付交易费用。
‣ Solana 的链上投票机制为每次投票收取交易费用。较高的 $SOL 价格会因交易费增加而提高验证者投票的运营成本。
费用详情:
-
每次投票成本为 0.000005 SOL,验证者在每个周期大约花费 2-3 SOL 进行投票。
-
一个周期持续 2-3 天,每年大约花费 300-350 SOL,折合每天约 1 SOL。
Solana 的费用市场:
‣ Solana 的费用机制包括两个部分:基础费用和优先费用。
‣ 费用被拆分为分配给验证者和销毁的部分,但现有机制存在一些局限性:
-
它未能激励高效使用资源或对齐各方激励。
‣ 创建新账户需要支付费用(租金豁免费)。
-
费用按固定费率计算,每 MB 存储需支付 6.96 SOL。
-
该费用分配到新创建的账户中,若账户被删除可取回。
局限性:
-
基础费用未考虑实际计算单元(CU)使用 -> 导致资源浪费
-
优先费用较弱 -> 仅在拥堵时有效
-
验证者只获得费用的 50% -> 激励不足(依赖通胀补贴)
基于质押权重的服务质量(SWQoS):
‣ 在网络拥堵情况下,SWQoS 机制可用于优先处理某些类型的交易。
‣ SWQoS 根据验证者的质押数量优先处理网络流量,防止低质押验证者通过垃圾交易淹没网络。
连接类型:
-
开放连接:公共使用
-
基于质押权重的连接:保留给验证者使用,RPC 节点可通过信任关系利用验证者连接。
优势:
-
提升有质押验证者的交易性能
-
增强网络韧性
-
提高 Sybil 攻击抵抗力
挑战:
-
质押集中化风险
-
验证者与 RPC 节点之间的信任问题
-
小型验证者的进入壁垒
‣ SWQoS 优先考虑网络访问,而优先费用优先考虑交易排序
关于节点与验证者:
‣ 所有验证者都是节点,但并非所有节点都是验证者。
‣ 节点的类型:
-
验证节点:负责签名和投票
-
RPC 节点:处理钱包和 DEX 请求
‣ 交易会指定可写账户:
-
影响相同账户的交易按顺序处理;
-
影响不同账户的交易可顺序或并行处理。
Solana 的流动质押(Liquid Staking):
‣ Solana 采用委托权益证明(Delegated PoS, DPoS)。
‣ 用户将 SOL 质押到验证者池中,并可以获得 LST(流动质押代币)。
‣ 质押奖励直接与借贷收益竞争:
-
如果借贷收益高于质押奖励,验证者可能会撤回资金,可能对网络安全产生影响。
LST 代币的两种类型:
-
奖励型代币或再基础代币。
-
用户质押 10 SOL 至质押池,获得 10 个 LST 代币。
-
质押池将这些 SOL 分配给多个验证者,获得 vSOL。
-
这些 vSOL 代表验证者的质押奖励。
-
LST 代币由这些 vSOL 支持。
-
验证者 LST 代币(专属代币)。
-
用户质押 10 SOL 至验证者 LST,获得 v_lstSOL 代币,代表其质押 SOL 的权益。
-
验证者将质押池内的 SOL 质押至 Solana 网络,获得 sSOL。
-
这些 sSOL 代表验证者对质押 SOL 和相关奖励的权益。
Solana 的 MEV:
‣ 当前区块的领导者对区块生产和调度有完全控制权。
‣ 领导者被激励通过优先费用处理交易,但未必强制执行。
‣ MEV 对 Solana 的负面影响:
-
超过 50% 的计算资源被浪费在失败的套利尝试上。
‣ Solana 没有公共内存池(mempool),交易直接转发给当前和下一个领导者。
Ethereum MEV 与 Solana MEV 的区别:
区块生产方式:
-
Solana 的默认验证者持续生产区块,流畅处理和包含交易。
-
以太坊则按 12 秒为一批次处理交易。
MEV 的影响:
-
以太坊:
-
网络费用高
-
区块空间减少
-
用户被夹击和抢跑
-
Solana:
-
搜索者通过垃圾交易尝试挤入交易。
-
失败的交易浪费计算资源。
-
少数搜索者获得大部分利润。