在区块链等分布式网络中,同步交易的共同时间线是一项重大挑战。大多数区块链通过网络范围内的通信协调区块来实现这一点;然而,这种方法可能会造成延迟并减慢交易的最终性,尤其是当更多节点加入网络时。
Solana 的创始人 Anato Yakovenko 找到了一种解决这一“时钟问题”的方法,即引入一种提供交易历史记录的加密解决方案。通过为每笔交易提供可验证的时间戳,Solana 可以创建事件的加密顺序,而无需在时间或顺序上达成持续的网络共识。这种被称为历史证明的解决方案成为 Solana 与众不同的核心功能,使其能够实现高速运行,而不会损害去中心化。
Solana 已成为最受关注的Layer-1 区块链之一,这主要归功于其前所未有的交易速度和低费用。这个高性能平台的核心是一个创新概念:历史证明 (PoH)。
与比特币和以太坊等仅依赖工作量证明(PoW)或权益证明(PoS)等共识机制的区块链不同,Solana 将 PoH 与 PoS 相结合,以实现高吞吐量、低延迟的系统。

历史证明 (PoH) 的工作原理
历史证明的工作原理是建立一个加密时钟,为每笔交易加上时间戳,从而创建一个可以证明每笔交易发生时间的记录。
此过程使用可验证延迟函数 (VDF),在 Solana 中基于 SHA-256 哈希算法,以创建连续、顺序的哈希链。每个哈希都引用前一个哈希,形成唯一的时间线。

PoH 的独特之处在于,每个哈希都是可验证的,并且依赖于前一个哈希。这个哈希链本质上创建了一个“时钟”,网络中的所有节点都可以遵循该时钟,从而使它们无需直接通信即可就交易顺序达成一致。然后,节点可以按照预先排序的顺序验证区块和交易,从而加快整个过程。
PoH 如何加速 Solana 共识
PoH 允许 Solana 通过预先排序交易来实现更快、更高效的共识,实现快速的阻塞时间并每秒处理数千笔交易。
在传统的 PoS 或 PoW 系统中,区块是通过全网投票过程创建的,这需要对每个区块的时间戳和排序达成共识。
PoH 允许 Solana 通过预先排序交易来跳过此步骤,这意味着验证者可以在交易到达时处理交易,而无需等待网络范围的同意。这减少了所需的通信量,并使验证过程更快、更高效。
借助 PoH,Solana 可以更快地达成共识,因为每个节点都可以访问相同的可验证时间线。这实现了可预测且快速的出块时间——Solana 的出块时间通常为 400 毫秒,这比许多中心化系统都要快。通过解决同步问题,PoH 使 Solana 能够以高一致性每秒处理数千笔交易。
历史证明和权益证明之间的相互作用
PoH 提供了交易的时间线和顺序,而 PoS 则负责验证者的选择和网络安全。
在 Solana 的 PoS 系统中,验证者是根据他们在网络中的权益来选择的。权益越高,验证者被选中添加新区块的可能性就越大。这种权益加权选择过程通过将验证者的激励与网络健康状况相结合来确保网络安全。
PoH 和 PoS 无缝协作。具体方法如下:
- PoH 提供有序的事件列表,而 PoS 决定谁可以将它们添加到区块链。
- 当选的验证者(也称为“***”)根据 PoH 的时间戳收集和排序交易。PoH 和 PoS 之间的这种协同作用使 Solana 能够同时保持速度和安全性,而这种平衡对于许多其他区块链来说一直具有挑战性。

首席验证者在 Solana 区块创建中的作用
在 Solana 上,会选出一个主要验证者(或“***”)在给定时间段内创建区块。该验证者负责根据 PoH 时间线组织和标记交易。
通过利用 PoH,***可以将每笔交易按照特定顺序排列,从而无需其他验证者主动验证交易序列。
一旦首席验证者创建了区块,它就会被其他节点验证。
由于区块已经遵循 PoH 时间线,因此验证速度更快、效率更高。首席验证者的角色对于 Solana 的可扩展性至关重要,因为它可以确保快速创建和确认区块。
这是将 PoH 与 PoS 结合在一起的共识主题流程,从而实现高吞吐量、低延迟的区块链。
- 步骤 1: Solana 上的验证者***是根据权益加权系统选出的,其中拥有较大 Solana 的验证者太阳199.67 美元权益持有者更有可能被选为***。这意味着在网络上投入更多的实体更有可能负责区块生产,从而促进激励措施与网络安全的协调。
- 第 2 步: PoH 共识机制为***设置轮换时间表。该时间表是提前知道的,每个***都会被分配一个“时段”,这是一个短暂的时间段(约 400 毫秒),他们将在这段时间内收集交易并生成一个区块。这种可预测的轮换使验证者能够预测他们何时将担任***,从而更容易为即将到来的职责做好准备。
- 步骤 3:在其指定时段内,***从网络收集交易。PoH 机制使***能够使用唯一的加密签名对每笔交易进行时间戳记,从而创建有序的交易序列。此排序是 PoH 不可或缺的一部分,允许其他节点以正确的顺序验证和确认交易。
- 步骤 4:***将有序交易组织成一个区块,并嵌入与 PoH 序列一致的时间戳。此序列充当历史记录,可确认交易顺序,而无需每个验证者单独就每笔交易达成共识。PoH 时间戳还可作为交易实时处理的证明,从而提供可验证的账本。
- 步骤 5:区块创建后,***使用 Solana 的 Turbine 协议将其广播到网络的其余部分。Turbine 将数据分成更小的数据包并分发给验证者,确保即使在交易量很大的情况下也能高效传播。
- 步骤 6:其他验证者收到区块并根据 PoH 序列进行验证,确认时间戳顺序与预期的历史记录一致。由于交易已由***预先排序,因此验证者可以快速检查顺序,而无需进行额外的通信进行排序,从而加快验证过程。
- 步骤 7:验证区块后,将其添加到区块链中,最终确定交易记录。然后,***的角色轮换到下一个预定的验证者,该验证者开始收集下一个时隙的交易。这个循环继续下去,使 Solana 能够实现连续的区块生产并保持高吞吐量。
Solana 上的其他创新:Turbine 和 Pipelining
除了 PoH,Solana 还采用了 Turbine 和 Pipelining 等其他技术创新来进一步优化性能。
大型网络中的数据传播可能会变得缓慢且拥塞,从而导致瓶颈。 Turbine 通过将数据分解成更小的部分并并行传输到节点来解决此问题,类似于BitTorrent 拆分文件的方式。 这有助于保持低延迟和高吞吐量,尤其是在全球网络中。
Solana 的流水线架构允许交易处理的不同阶段同时运行。这种跨资源处理任务的划分使交易能够连续流动而无需等待,从而提高吞吐量并提高系统效率。
通过将 Turbine 和 Pipelining 与 PoH 相结合,Solana 可以快速处理交易,而不会遇到传统区块链面临的常见瓶颈。
为什么 Solana 没有内存池
内存池是未确认交易的暂存区,大多数区块链使用它来管理待处理交易。然而,由于 PoH,Solana 没有传统的内存池。在 Solana 的系统中,交易一进入网络就会被打上时间戳,这样就可以实时处理。
这种实时处理消除了对内存池的需求,因为交易无需排队等待——它们要么被立即接受和排序,要么被丢弃。通过移除内存池,Solana 减少了延迟并确保以最小的延迟处理交易,这是保持其高速性能的关键因素。
PoH 是否允许 Solana 在没有内存池的情况下运行?
PoH 独特的时间戳功能使得 Solana 无需内存池即可运行。
由于 PoH 为交易提供了内置序列,因此验证者可以立即处理交易,而无需临时存储它们。这种即时排序简化了交易流程,并允许网络处理大量交易,而无需增加管理内存池的复杂性。
虽然这种方法带来了令人印象深刻的速度优势,但它也需要仔细管理验证者职责和网络安全以防止拥塞。 Solana 的设计平衡了这些元素,使其成为生产中速度最快的区块链之一。
区块***——Solana 的 PoH 共识模型中的中心化载体?
在 PoH 机制中频繁选择相同的验证者作为***可能会使区块生产集中化,从而潜在地减少验证者的多样性并增加与 MEV 提取相关的风险。
由于***负责组织和排序交易,因此他们在网络中扮演着至关重要的角色。如果经常选择相同的少数验证者作为***,可能会导致一小部分资源充足的验证者对区块生产产生过大影响。这可能会降低积极参与区块创建过程的验证者的多样性。
由于区块***对交易有唯一的管理责任,他们还可以使用最大可提取价值 (MEV)交易来管理额外收入。然而,与速度较慢的链不同,链的速度已经降低了 MEV 的可能性。然而,这是 PoH 机制的风险之一。