Solana 插槽与区块时间:400 毫秒的解析
Learn how Solana's 400ms block time works. Understand slots, epochs, Proof of History, and why Solana is faster than Ethereum and Bitcoin.
Solana 的插槽与区块时间相关但并不相同:插槽是预定给领导者生产区块的机会,部分插槽可能会被跳过。经常被引用的 400 毫秒数值是一个目标频率,而不是保证的区块间隔、确认时间或最终性承诺。
Solana 是一个专为高吞吐量、低成本应用设计的第 1 层区块链。由 Anatoly Yakovenko 共同创立,他曾是高通工程师,并在 2017 年的白皮书中引入了 Proof of History。Solana 于 2020 年上线主网,此后已成为定位为以太坊替代品且开发最活跃的平台之一。其原生代币是 SOL。Solana 最常因交易速度而与以太坊和比特币进行比较,本文将解释这种比较在架构层面上的实际含义。
目录
- 什么是 Solana 插槽与区块时间?
- 什么是 Solana 区块时间?
- Proof of History 如何提升 Solana 的速度
- Epoch (周期) 与领导者时间表
- Solana 区块时间 vs. 以太坊 vs. 比特币
- 真实的性能图景
- 交易最终性:400 毫秒对你而言的实际意义
- 为什么快速区块时间很重要:DeFi 与现实世界应用
- 技术规范一览
- 常见问题解答
- 关键要点
什么是 Solana 插槽与区块时间?
Solana 中的插槽是一个大约 400 毫秒的固定时间窗口(协议层常量),在此期间,一名指定的验证者可以生产一个区块。该时长大约是人类眨眼的时间。插槽是一个时间窗口,而不是一个区块。这两个词不可互换,理解其区别是本文其他所有内容的基础。
每个插槽都遵循相同的序列。一名被称为插槽领导者的验证者已提前被预指派给该插槽。插槽开启,领导者收集待处理交易,并生产一个包含这些交易的区块。随后,下一个插槽自动开始。此循环大约每秒运行 2.5 次。如果指定的领导者未能生产区块,该插槽将被跳过,网络将继续运行而无需等待。400 毫秒的插槽时长是由 Solana 的 Proof of History 时钟强制执行的,详见下文章节。
插槽是时间窗口;区块是实际的数据结构,包含在该窗口内产生的已确认交易。每个区块都占用一个插槽,但并非每个插槽都会产生区块。未产生区块的插槽被称为跳过的插槽,当发生跳过时,网络会无间断地继续运行。
在插槽之下是一个更小的单位,称为 Tick(滴答),它是 Solana 架构中最小的时间单位。每个插槽包含正好 64 个 Tick。每个 Tick 约为 6.25 毫秒(400 毫秒除以 64)。Tick 是 Proof of History 生成器使用的内部计时信号,终端用户不可见,但它们出现在 Solana 的 RPC API 和开发者文档中。
关键规范: Solana 目标插槽时长:~400 毫秒(0.4 秒)。按照每个插槽 400 毫秒计算,网络每秒最多产生 2.5 个插槽。
Solana 时间层级
| 单位 | 时长 | 每个父级的数量 | 功能 |
|---|---|---|---|
| Tick (滴答) | ~6.25 毫秒 | 每个插槽 64 个 | 内部 PoH 计时信号 |
| Slot (插槽) | ~400 毫秒 | 每秒最多 2.5 个 | 区块生产窗口 |
| Block (区块) | 可变的 | 每个插槽 1 个(产生时) | 交易数据容器 |
| Epoch (周期) | ~2 天 | 不适用 | 质押与时间表循环 |
什么是 Solana 区块时间?
Solana 的区块时间是连续生成的区块之间的平均间隔。目标区块时间约为 400 毫秒(0.4 秒),因为网络每个插槽产生一个区块。
插槽时间与区块时间相关但并不相同。插槽时间(400 毫秒)是 Solana 架构中每个时间窗口的固定时长。它不会改变。区块时间是实际产生的区块之间的平均间隔。当没有插槽被跳过时,区块时间等于插槽时间。在实践中,区块时间会略高一些,因为有些插槽根本没有产生区块。
400 毫秒的数值是一个目标,而非保证。跳过的插槽和多变的生产条件可能会使观察到的区块间隔变长,且结果会随测量窗口而变化。目前的插槽和区块计时应当被直接测量,而不是被总结为永久性的低于 500 毫秒的平均值。
目标区块时间:~400 毫秒(0.4 秒)
Proof of History 如何提升 Solana 的速度
Solana 比以太坊更快,是因为三项架构创新:
- Proof of History 消除了经典拜占庭容错系统所需的协调开销。
- Gulf Stream 无需内存池,即可将交易预先路由到即将上任的插槽领导者。
- Sealevel 在每个区块内并行处理数千个非重叠交易。
以下是对每一项的解释。
什么是 Proof of History?
Proof of History (PoH) 充当加密时钟:一种共享的、可验证的时间记录,让所有验证者能够就事件的顺序和时机达成一致,而无需等待彼此通信。
该机制分四个步骤运行:
- Solana 的 PoH 生成器产生一个顺序的 SHA-256 哈希链。
- 每个哈希输出都作为下一个哈希的输入。
- 由于 SHA-256 哈希无法并行计算,该链本身证明了已经过去了一段特定的计算时间。
- 任何验证者都可以快速验证序列,尽管生成该序列需要耗费实际的运行时间。
这种结构是一种可验证延迟函数 (VDF),最早由 Yakovenko 在其 2017 年的白皮书中描述。实际结果是:在传统的区块链系统中,验证者必须交换带时间戳的消息以就事件排序达成一致。这种往返通信会引入延迟。PoH 完全消除了这一需求。验证者信任加密记录,而不是等待往返的网络确认,这也是 Solana 的插槽能以 400 毫秒运行的核心原因。
一个重要的澄清:Proof of History 不是 Solana 的共识机制。Solana 使用 Tower BFT 进行共识,并使用质押证明 (PoS) 进行验证者选择。PoS 意味着验证者质押 SOL 作为抵押品,他们被指派为插槽领导者的概率与其质押权重成正比。PoH 提供了共享时钟,使这两个系统运行更快。
Tower BFT:区块如何在插槽内获得确认
Tower BFT 是 Solana 的共识算法,它是实用拜占庭容错 (Practical Byzantine Fault Tolerance) 的变体,经过优化以使用 PoH 时钟作为共享时间戳。Tower BFT 不要求验证者交换消息来达成区块排序的一致,而是将验证者的投票锚定在 PoH 序列的特定位置。
锁定机制通过指数退避运作。自验证者投票给特定分叉以来经过的插槽越多,切换到不同分叉的计算成本就越高。随着插槽的积累,验证者逐渐承诺于给定的历史,而这种渐进式承诺正是产生最终性的原因。Tower BFT 投票发生在插槽内和跨插槽之间,这种锚定插槽的投票正是将区块生产转化为已确认历史的关键。
Gulf Stream:为什么交易在每个插槽开启时就已就绪
Gulf Stream 是 Solana 的交易转发协议。由于领导者排班表是完全公开且提前计算的,验证者和客户端应用程序可以在插槽 (Slot) 开始前,将待处理的交易直接转发给下几个预定的插槽领导者。
这消除了对传统内存池 (Mempool) 的需求,即交易在被区块生产者选取前进行排队的持有区。在 Solana 上,交易通常在插槽开启前就已预先定位在领导者节点上。Gulf Stream 依赖于领导者排班表,这将在下一节中介绍。
Solana 的 Turbine 区块传播协议负责分发端:一旦在某个插槽内产生区块,Turbine 就会使用基于树状的结构在验证者网络中发送该区块,从而最大限度地降低每个验证者的带宽需求。Sealevel 是 Solana 的并行智能合约运行环境,它使成千上万个非重叠交易能够在一个区块内同时执行,是吞吐量容量的主要贡献者。
纪元 (Epoch) 与领导者排班表:Solana 如何在大规模下组织时间
什么是 Solana 纪元?
Solana 中的一个纪元是一个包含 432,000 个插槽的固定周期,按每个插槽约 400 毫秒计算,大约相当于主网中的 2 天实际时间。推导过程:432,000 个插槽乘以 400 毫秒等于 172,800,000 毫秒,即 172,800 秒,约为 48 小时。选择该数字是为了匹配质押奖励分配和领导者排班表计算的目标节奏;它是一个可配置参数,在开发网 (Devnet) 和测试网 (Testnet) 上有所不同。
在每个纪元边界都会发生三件事:
- 质押奖励根据验证者及其委托人在已完成纪元期间的参与情况分发给他们。
- 计算下一纪元的领导者排班表,确定哪个验证者将担任接下来 432,000 个插槽中每个插槽的领导者。
- 验证者集变更生效,意味着新质押的 SOL 变为活跃状态,并处理取消质押的请求。
纪元 = 432,000 个插槽 ≈ 2 天 | 插槽 = ~400 毫秒 | 每个插槽的刻度 (Ticks) = 64
领导者排班表如何分配区块生产者
领导者排班表是一个预先计算的分配列表,指明了在即将到来的纪元中,哪个验证者担任每个插槽的领导者(负责产生区块的验证者)。
该过程分为三个步骤:
- 在每个纪元开始前,网络会计算出接下来 432,000 个插槽中每个插槽的领导者验证者。
- 质押权重决定分配:质押 SOL 较多的验证者会获得成比例更多的插槽领导者分配。持有总质押 SOL 5% 的验证者将被分配大约 5% 的插槽。
- 完整的排班表在纪元开始前公开,网络上的每个验证者和客户端均可见。
由于排班表是完全公开且预先计算的,验证者和钱包可以在下几个领导者的插槽开始前直接将交易转发给他们。这就是 Gulf Stream 的运作方式:领导者排班表的可预测性使得无内存池的交易路由成为可能。
对可靠性的一个影响是:如果指定的领导者在其插槽到达时处于离线状态,该插槽将被跳过。排班表会继续移动到下一个分配的验证者,而不会暂停。
Solana 区块时间 vs. 以太坊 vs. 比特币:速度对比
Solana 约 400 毫秒的区块时间意味着在以太坊产生一个区块的时间内,它能产生大约 30 个区块。以太坊目前的区块时间约为 12 秒(2022 年 9 月合并后,权益证明架构)。比特币的目标是每 10 分钟一个区块,为了安全性和去中心化,这种速度被刻意优先考虑。在主要的智能合约平台中,Solana 的区块时间是最快的,约为 400 毫秒。
| 区块链 | 区块时间 (目标值) | 区块时间 (实际平均值) | TPS (理论值) | TPS (典型值) | 乐观确认 (Optimistic Finality) | 最终确认 (Full Finality) |
|---|---|---|---|---|---|---|
| Solana | ~400ms | 略高于 400ms | 65,000+ (Solana Labs) | 2,000-4,000 (非投票交易) | ~1-2 秒 | ~13 秒 |
| 以太坊 (合并后) | ~12 秒 | ~12 秒 | 15-30 | 15-25 | ~12 秒 | ~15 分钟 |
| 比特币 | ~10 分钟 (目标) | ~10 分钟 (变动) | 7 | 4-7 | 概率性 | ~60 分钟 (6 次确认) |
数据来源:Solana Labs 文档;以太坊基金会;比特币白皮书。以太坊数据反映了合并后(2022 年 9 月)的权益证明架构。
术语说明:以太坊的权益证明系统也使用“插槽”(12 秒)和“纪元”(32 个插槽,约 6.4 分钟)这些术语。这些与 Solana 的插槽和纪元定义完全不同。
区块链的可扩展性不可能三角在此提供了背景:在实践中,网络的速度和去中心化是相互制约的。批评者认为,Solana 的验证者硬件要求大大高于以太坊,这使得网络倾向于速度,但在一定程度上牺牲了去中心化。这仍是一个活跃的开发领域。
真实的性能图景:跳过的插槽与实际 TPS
400 毫秒的区块时间是一个目标。以下是实践中的真实情况,以及为什么真实的图景对任何评估 Solana 主张的人来说都很重要。
跳过的插槽:当 400 毫秒的时钟跳动而没有区块产生时
当指定的插槽领导者未能产生区块时,就会发生跳过插槽的情况,这通常是因为验证者离线或遇到网络问题。Solana 网络不会等待:它会立即进入下一个插槽,400 毫秒的节奏会不间断地继续。跳过插槽时不会丢失任何交易;待处理的交易仍留在队列中,并包含在下一个可用的插槽中。
数量上的影响是可以衡量的,但并不大。在正常网络条件下,Solana 的历史插槽跳过率在 3-8% 左右(来源:Solana Beach)。5% 的跳过率意味着大约每 20 个插槽中就有 1 个不产生区块,使平均区块时间在 400 毫秒目标的基础上增加约 20 毫秒。实际平均时间仍远低于 500 毫秒。这是网络的一个正常特性,而不是故障模式,这是大多数性能营销完全忽略的区别。
跳过的插槽和网络中断是不同的情况。在跳过的插槽期间,网络正常运行。在全面中断期间,插槽生产会长时间停止,并需要验证者协调重启。Solana 自主网发布以来经历过数次此类中断。这些事件促使了重大的基础设施改进,包括为交易转发实施 QUIC 以及部署 FiredDancer 验证者客户端。在拥塞期间(而非中断),无论需求如何,插槽安排都会保持其约 400 毫秒的节奏,尽管用户在区块空间被占满时可能会遇到交易掉线的情况。
有关当前的跳过率和时间数据,请参阅:Solana Beach 或 Solscan。
Solana 的实际 TPS vs. 65,000 TPS 的主张
65,000 TPS 的数字反映的是特定的设计场景,而非典型运行情况。了解三个不同的 TPS 数字是将真实评估与营销区别开来的关键。
- 理论峰值 TPS (65,000+): Solana Labs 的设计规范,基于最佳硬件、完整区块利用率和特定的交易大小概况。这代表了该架构理论上可以支持的水平。
- 观察到的总 TPS (通常为 3,000-5,000): 包括投票交易在内的测得吞吐量。验证者投票确认每个区块,这些投票交易占用了大量的区块空间。它们是真实的交易,但代表的是内部共识开销,而非用户活动。
- 非投票用户交易 TPS (通常为 2,000-4,000): 对于应用程序开发者和终端用户最有意义的数字。这是正常条件下实际由用户生成的交易量。
FiredDancer 是 Jump Crypto 开发的高性能验证者客户端,目前已在 Solana 主网部署并积极运行,旨在提高网络吞吐量,同时维持约 400 毫秒的槽位时间表。实际性能提升取决于采用率和网络状况。
交易最终性:400 毫秒区块时间对你意味着什么
400 毫秒的区块时间告诉你 Solana 生成区块的速度,但它并没有告诉你你的交易需要多长时间才能确认。这两者是不同的概念,大多数竞争对手都会对此含糊其辞。
交易在被视为不可逆之前会经历两个阶段:
乐观确认: 当绝大多数(超过三分之二)验证者质押已对包含该交易的区块进行投票时,交易即可达到乐观确认,通常在 1-2 秒内完成。对于大多数用途(发送 SOL、在去中心化交易所兑换代币、铸造 NFT),此确认级别已足够。大多数 Solana 应用将乐观确认视为操作标准。
最终确定: 交易在区块生成后约 32 个槽位(约 13 秒)后最终确定,此时 Tower BFT 锁定机制会使逆转在计算上变得不可行。这对于高价值转账、跨链桥或任何需要最终性的场景至关重要。
完整的确认路径:
提交交易 → 通过 Gulf Stream 预路由至即将到来的领导者 → 在一个槽位内包含在区块中 → 通过 Tower BFT 由验证者投票 → 乐观确认(约 1-2 秒) → 完全最终确定(约 13 秒)
Solana 交易需要多长时间?当你从钱包发送 SOL 或与 DeFi 协议交互时,通常会在 1-2 秒内看到交易确认。那是乐观确认,而不是原始的 400 毫秒区块生产间隔。你看到的面向用户的确认需要稍长一些时间,因为它需要累积验证者投票。400 毫秒的区块时间意味着区块会快速生成,为你的交易提供了多个短暂的包含窗口。
官方承诺级别文档:docs.solana.com/cluster/commitments.
为什么快速区块时间很重要:DeFi 和现实世界应用
区块时间直接且具体地影响链上应用。去中心化金融(DeFi)是指建立在区块链上、没有中心化中介的金融应用,包括去中心化交易所(DEX)、借贷协议和收益耕作平台(在 Solana 的术语中,智能合约称为程序)。
在一个区块时间为 12 秒的网络中,套利下单机器人有 12 秒的时间窗口来识别和利用市场间的价格差异,然后大多数用户才能做出反应。在 Solana 约 400 毫秒的区块时间内,该窗口压缩到不到半秒,从而使市场更有效,并减少了自动化参与者相对于普通参与者的优势。快速的区块时间还支持链上订单簿实现亚秒级价格更新,这类应用在较慢的链上由于订单提交和执行之间的延迟而变得不切实际。
区块时间也影响交易费用。以太坊 12 秒的区块时间造成了区块空间的稀缺:当需求飙升时,用户会在费用拍卖中竞争,并在拥堵期间成本急剧上升。Solana 由快速区块时间和 Sealevel 并行执行实现的高吞吐量,减少了对区块空间的竞争,并将费用通常保持在每笔交易低于 0.01 美元。然而,在极端拥堵期间,Solana 自有的费用市场可能会飙升。费用波动并非仅限于慢链。
除了 DeFi,快速区块时间还支持低延迟游戏和微交易支付系统,这些系统的每笔交易确认时间必须难以察觉。
更快的区块时间扩展了 Solana 可以有效支持的应用范围,这可能会影响开发者活动和网络采用。这种技术优势是否能转化为长期的网络价值是一个独立的问题,投资者会将其与采用率、开发者活动和代币经济学一起权衡。区块速度是该评估的一个输入项。
Solana 的速度伴随着一个公认的权衡:验证者的硬件要求远高于以太坊,批评者认为这限制了去中心化。这仍然是一个活跃的开发和辩论领域。
技术规格一览
下表汇总了 Solana 的核心时间规格,供快速参考。
| 规格 | 值 |
|---|---|
| Tick 持续时间 | ~6.25毫秒 |
| 每个槽位的 Tick 数 | 64 |
| 槽位持续时间 | ~400毫秒 (0.4秒) |
| 每秒槽位数 (理论最大值) | 2.5 |
| 每个 Epoch 的槽位数 (主网) | 432,000 |
| Epoch 持续时间 (主网) | ~2天 (~48小时) |
| 区块时间 (目标) | ~400毫秒 |
| 区块时间 (实际平均值) | 略高于 400 毫秒(请参阅实时数据) |
| 乐观确认 | ~1-2秒 |
| 完全最终确定 | ~32个槽位 / ~13秒 |
开发者可以使用 Solana JSON-RPC getSlot() 方法检索当前槽位编号(文档:docs.solana.com/api/http#getslot).
实时槽位和性能数据:Solana Beach | [Solscan](https://solscan.io
关于 Solana 槽位和区块时间的常见问题解答
Solana 中的槽位是什么?
Solana 中的槽位是一个固定的时间窗口,大约为 400 毫秒,在此期间,一名指定的验证者(槽位领导者)可以生成一个区块。槽位不等同于区块。当指定领导者未能执行操作时,该槽位将被跳过,网络会立即进入下一个槽位。
Solana 文档历来引用目标槽位持续时间接近 400 毫秒。实际的槽位和区块间隔会有所不同,并且跳过槽位的百分比需要日期、集群和测量方法;请使用实时数据,而不是假定固定的低于 500 毫秒的平均值。有关当前数据,请查看 Solana Beach。
一个 Solana Epoch 包含 432,000 个槽位,相当于主网上大约 2 天的实际时间(432,000 乘以 400 毫秒约等于 48 小时)。开发网和测试网使用较短的 Epoch。
槽位是可能生成区块的时间窗口(约 400 毫秒)。区块是包含已确认交易的实际数据结构。每个区块都占用一个槽位,但并非每个槽位都会生成区块。没有区块的槽位称为跳过的槽位。
三个架构创新协同工作:(1)历史证明(PoH)充当加密时钟,消除了经典共识系统所需的协调开销;(2)Gulf Stream 在槽位开始前将交易预路由给即将到来的领导者,从而消除了内存池;(3)Sealevel 在每个区块内并行处理数千个不重叠的交易,大大提高了吞吐量。
当一个槽位被跳过时,Solana 网络会立即进入下一个槽位。没有交易会丢失;它们仍然处于待处理状态,并将在下一个可用槽位中包含。约 400 毫秒的节奏会不间断地继续。在正常情况下,历史跳过率约为 3-8%,平均区块时间会增加约 20 毫秒。
在正常情况下,大多数 Solana 交易可在 1-2 秒内达到乐观确认。完全最终确定(当 Tower BFT 的锁定机制使交易在计算上不可逆时)大约需要 13 秒(约 32 个槽位)。对于日常用例,例如发送代币或在 DEX 上交易,用户体验到的是乐观确认。
Slot 时间(400 毫秒)是协议常量:每个时间窗口的固定持续时间。区块时间(Block time)是测量的平均值:实际生成的区块之间的间隔。当没有 Slot 被跳过时,两者相等。在实践中,由于存在跳块率(skip rate),区块时间略长于 Slot 时间。
Solana 相关指南
在 Bybit 探索 SOL
读者可以查阅 当前的 SOL 市场信息 或 SOL/USDT 现货市场. 这些链接提供市场信息和访问途径;它们并不验证任何技术主张,也不暗示 SOL 适合每位读者。
核心要点
- Solana Slot 是一个约 400 毫秒的时间窗口,在此期间一个验证者可以生成一个区块;Slot 与区块并不等同
- Solana 的目标区块时间约为 400 毫秒,但由于跳过的 Slot(历史跳块率为 3-8%),实际平均值略高
- 每个 Epoch 包含 432,000 个 Slot(主网上约 2 天);领导者调度表(leader schedule)在每个 Epoch 边界重新计算
- 历史证明(Proof of History)是一种消除协调开销的加密时钟,但它不是 Solana 的共识机制(Tower BFT 处理共识;权益质押处理验证者选择)
- Solana 实际的非投票交易 TPS 通常为 2,000-4,000;65,000+ 的数字是理想条件下的理论峰值
- 区块时间(400 毫秒)不等于最终性:乐观确认(optimistic confirmation)需要约 1-2 秒;完全最终性(full finality)约需 13 秒
- 极短的区块时间实现了 DeFi 应用、具有竞争力的费用结构以及在较慢链上无法实现的用例,同时也带来了公认的验证者硬件要求方面的权衡
实时性能数据请访问:solanabeach.io。技术文档请访问:docs.solana.com。
本文仅供参考和教育用途,不构成财务建议、投资建议,也不构成买卖或持有任何加密货币(包括 SOL)的推荐。加密货币市场具有波动性和投机性。读者在做出投资决策前应自行研究并咨询合资格的财务顾问。