Solana:高性能区块链的新架构
Abstract
本文提出了一种高性能区块链的新架构。Solana实现了一种名为Proof of History(PoH)的新型计时机制——一种用于验证事件之间顺序和时间流逝的证明。PoH用于将无需信任的时间流逝编码到账本中,创建一个历史记录,证明某个事件发生在特定的时间点。
关键创新在于PoH允许网络中的节点在无需相互通信的情况下建立事件的时间顺序。通过使用以顺序哈希链实现的可验证延迟函数,系统生成了一个加密时钟,提供了一种验证事件之间时间流逝的方法。这使得网络能够在保持去中心化和安全性的同时每秒处理数千笔交易。
PoH与Proof of Stake(PoS)共识机制集成。这种组合使得高度优化的区块链架构成为可能,验证者可以并行验证交易并高效地达成共识。该系统被设计为随摩尔定律扩展,利用硬件性能的提升来改善吞吐量,而不牺牲去中心化网络的安全保障。
Introduction
块链">区块链系统面临的根本挑战是在保持去中心化和安全性的同时实现高交易吞吐量。当前的区块链实现受限于其共识机制,这些机制需要节点之间进行大量通信来就时间和事件排序达成一致。这种协调开销创建了瓶颈,阻止现有区块链扩展以满足全球规模应用的需求。
核心问题是时间。在分布式系统中,节点不能依赖外部时钟,因为它们无法信任其他节点的时间戳是准确的。传统的区块链共识协议通过让节点进行大量通信来就当前状态和交易顺序达成一致来解决这个问题。这种通信开销从根本上限制了吞吐量,因为网络只能以节点就排序达成共识的速度来处理交易。
Solana引入Proof of History作为这个时间问题的解决方案。PoH提供了一种加密方法来证明事件之间已经过了一定的时间,而无需依赖来自潜在恶意行为者的时间戳。通过创建可验证的历史记录,PoH使节点能够独立处理交易,同时仍然能够证明事件发生的顺序。这一突破使网络能够并行化交易处理并大幅提高吞吐量。
关键洞察是,如果我们能创建一个无需信任的时间源,就可以从共识中消除协调瓶颈。通过PoH提供加密时钟,验证者可以并行处理交易,只需在确定规范排序时进行通信。这种架构转变使Solana能够实现之前在去中心化区块链中被认为不可能的性能水平。
Outline
本文描述了Solana的技术架构,重点介绍Proof of History如何实现高性能块链">区块链运行。文档首先解释PoH机制本身——顺序哈希链如何创建可验证的事件时间排序。我们详细说明使PoH安全的加密属性,并演示验证者如何高效地验证PoH序列。
然后,本文探讨PoH如何与Proof of Stake共识集成。我们描述Tower BFT,这是一种专门设计用于利用PoH时间属性的PoS算法。该集成允许验证者在特定的PoH时间戳上对账本状态进行投票,创建一个既快速又安全的共识机制。我们还解释了防止恶意行为的惩罚条件。
接下来,我们介绍Solana的网络设计和数据传播协议。Gulf Stream协议实现了无需内存池的交易转发,允许客户端直接向即将到来的领导者发送交易。我们描述领导者轮换如何工作以及网络如何在领导权更替时保持高吞吐量。
最后,我们讨论系统架构,包括Transaction Processing Unit(TPU)、Sealevel并行运行时和用于数据存储验证的Proof of Replication。性能预测表明,Solana可以在标准千兆网络上每秒处理超过700,000笔交易,并且吞吐量会随硬件改进而扩展。
Network Design
Solana的网络设计以轮换领导者系统为中心,验证者轮流产生区块。领导者负责将传入的交易排序到PoH流中,并将产生的区块发布到网络。领导者通过权益加权算法选出,轮换时间表提前已知,使网络能够优化交易转发。

Gulf Stream协议通过使客户端能够直接将交易转发给即将到来的领导者,消除了对传统内存池的需求。当客户端提交交易时,它会根据轮换时间表转发给预期的领导者。如果当前领导者无法处理该交易,则将其转发给下一个预期领导者。这种设计减少了确认延迟,并允许验证者提前执行交易,进一步优化吞吐量。
交易传播使用多层方法。客户端将交易发送给验证者,验证者将其转发给当前或即将到来的领导者。领导者将交易排序到PoH流中,创建总排序。排序完成后,领导者将PoH流和交易数据传输给验证者,验证者验证PoH序列并并行执行交易。
网络设计还包括Turbine区块传播协议,该协议将区块分解为更小的数据包,并以树形结构在网络中分发。这种方法在确保快速区块传播的同时最小化了单个验证者的带宽需求。结合PoH验证交易排序的能力,这种架构使Solana能够在不牺牲去中心化的情况下实现高吞吐量。
Proof of History
Proof of History是一种使用SHA-256实现的顺序哈希链形式的可验证延迟函数。PoH生成器持续计算SHA-256哈希,使用每个输出作为下一个哈希的输入。这创建了一个顺序链,其中每个哈希只能在前一个哈希计算完成后才能计算,从而建立可验证的时间排序。生成每个哈希的计算要求强制了事件之间的最小时间延迟。

PoH的关键属性是验证成本低但生成成本高。验证者可以通过将哈希序列分成段,独立并行检查每个段,然后验证各段正确连接来检查整个哈希序列。然而,生成必须是顺序的——不实际计算每个中间步骤就无法预测哈希链的输出。生成和验证之间的这种不对称性使PoH变得实用。

外部事件和交易数据通过混合到哈希链中插入PoH序列。当交易到达时,其哈希与当前PoH状态结合,创建一条记录证明该交易在序列的该点存在。PoH生成器定期记录检查点,发布当前哈希值以及自上次检查点以来计算的哈希数量。这些检查点使验证者能够高效地验证PoH序列,而无需重新计算每个哈希。

PoH序列作为整个网络的加密时钟。因为哈希链是顺序的且可验证的,任何节点都可以通过展示在该时间间隔内计算的哈希来证明两个事件之间经过了一定的时间。这消除了节点信任外部时间戳或相互协调以建立时间排序的需要,消除了传统区块链共识中的根本瓶颈。

Proof of History Sequence
Proof of History序列是一个连续的SHA-256哈希链,其中每个哈希依赖于前一个输出。序列从初始种子值开始,该值被哈希以产生第一个输出。此输出成为下一个哈希的输入,过程无限重复。生成器还维护一个计数器,跟踪计算的哈希总数,作为账本中事件的PoH"时间戳"。

当需要将数据插入序列时(如交易哈希或验证者签名),使用确定性混合函数将其与当前哈希状态结合。例如,如果当前哈希状态是hash_n,我们想插入数据D,则计算hash_{n+1} = SHA256(hash_n || D),其中||表示连接。插入点与计数器值一起记录,证明数据D在序列的该特定点存在。
PoH序列的验证可以通过将链分成段来并行化。例如,验证者可能每10,000个哈希接收一次PoH检查点。要验证检查点之间的序列,验证者可以将10,000个哈希分成100个段,每段100个哈希,独立并行验证每个段,然后验证各段正确连接。这允许验证随可用CPU核心数水平扩展。
序列还支持高效证明两个事件以特定顺序发生。给定在计数器值n和m(其中n m)处的两个数据插入,任何人都可以通过检查这些点之间的哈希链来验证n处的事件发生在m处的事件之前。此属性使Solana能够创建网络中所有事件的可验证历史记录,而无需节点持续在线或信任外部时间源。
Timestamp
Proof of History作为去中心化时钟运行,在不依赖墙钟时间的情况下为事件分配时间戳。每个PoH哈希代表加密时钟的一个离散"滴答",计数器值作为时间戳。因为哈希链是顺序的且可验证的,这些时间戳是无需信任的——任何观察者都可以通过检查哈希链来验证时间戳的合法性。
在Solana中,每个验证者在充当领导者时可以生成自己的PoH序列。当验证者轮换领导权时,他们使用前一个领导者的最后确认检查点来同步其PoH序列。这确保了即使不同的验证者轮流产生区块,时间记录的连续性也得到保持。网络通过就接受哪些PoH序列作为官方账本的一部分达成共识来建立规范时间线。
系统通过领导者轮换和共识的组合来处理时钟漂移和硬件性能差异。如果恶意或故障的领导者试图以不正确的速率(过快或过慢)生成PoH时间戳,验证者可以通过将PoH滴答率与自己的本地PoH生成器进行比较来检测这一点。与预期速率的显著偏差表明存在问题,验证者可以拒绝PoH序列偏离网络中位数太远的领导者的区块。
这种时间戳机制解决了分布式系统中的一个基本问题:在没有受信任的中央机构的情况下建立共同的时间概念。通过使用PoH作为去中心化时钟,Solana使验证者能够在保持全局一致排序的同时并行处理交易。时间戳还为基于时间的功能提供了基础,如交易过期、定时操作和性能测量。
Proof of Stake Consensus
Solana的共识机制称为Tower BFT,是一种专门设计用于利用Proof of History时间属性的Proof of Stake算法。验证者质押SOL代币参与共识,并因正确验证区块而获得奖励。权益加权投票系统确保在网络中拥有更多经济利益的验证者在共识决策中拥有相应更大的影响力。
Tower BFT的核心创新是使用随每次连续投票呈指数增长的锁定期。当验证者对PoH哈希投票时,他们承诺在一定数量的PoH滴答内留在账本的该分叉上。如果他们对该分叉的下一个区块投票,锁定期翻倍。这为验证者继续在同一分叉上投票创造了强烈的经济激励,因为切换分叉需要等待早期锁定期到期。
具体来说,如果验证者在PoH时间戳t处对区块投票,则在2^n个滴答过去之前不能对冲突的分叉投票,其中n是他们在当前分叉上进行的连续投票次数。这种指数锁定机制使系统在允许快速最终性的同时抵御远程攻击。一旦绝对多数的权益在足够深度上对区块投票,该区块就被有效地最终确定。
惩罚条件强制执行诚实行为。如果验证者在应该被锁定的期间对两个冲突的分叉投票,他们将被惩罚——质押的代币被部分销毁,并从验证者集合中移除。这使得尝试模棱两可或其他拜占庭行为在经济上不合理。PoH的可验证时间戳与Tower BFT的指数锁定的结合创造了一个既快速又安全的共识机制,在保持传统BFT系统安全保障的同时,在几秒内实现最终性。
Streaming Proof of Replication
Proof of Replication(PoRep)是一种允许验证者证明他们正在存储账本数据而无需揭示数据本身或需要密集计算的机制。Solana实现了PoRep的流式版本,验证者持续证明他们正在复制块链">区块链状态。这对网络安全至关重要,因为它确保账本数据在验证者之间适当分布,而不是集中在少数位置。
PoRep机制通过让验证者使用从其身份派生的验证者特定密钥,以CBC(Cipher Block Chaining)模式加密账本段来工作。加密过程使每个加密块依赖于前一个块,创建一个对每个验证者唯一的链。这防止验证者简单地从彼此复制加密数据——每个验证者必须存储和处理原始账本数据才能生成其唯一的加密版本。

网络定期向验证者发出挑战,要求他们提供特定的加密块。因为加密是链式的,验证者必须存储所有前面的块才能生成正确的响应。验证者提交其加密块以及显示其在加密账本中位置的Merkle证明。网络可以快速验证此证明,而无需解密或重新加密数据。

这种流式PoRep方法与传统的存储证明系统相比开销较低。验证者可以在数据到达时进行加密,并以最小延迟响应挑战。系统还支持数据丢失时的恢复——如果验证者丢失了部分账本,可以从其他验证者重新下载并重新加密。PoRep与PoH时间戳的结合创建了一个完整的问责系统,网络可以验证数据的创建时间以及它在验证者网络中被正确存储。
System Architecture
Solana的系统架构被设计为流水线,交易处理的不同阶段并行进行。Transaction Processing Unit(TPU)是负责处理传入交易的核心组件。TPU由几个阶段组成:fetch(收集交易)、签名验证、banking(交易执行)和write(提交到存储)。每个阶段对不同的交易并行操作,类似于CPU流水线。

签名验证使用GPU加速,GPU在验证交易签名所需的椭圆曲线加密操作方面效率很高。通过将这个计算密集型任务卸载到GPU,Solana可以在商用硬件上以每秒超过900,000次的速率验证签名。这种并行签名验证防止了即使在非常高的交易速率下加密验证成为瓶颈。

Sealevel运行时是Solana的并行智能合约执行引擎。与顺序执行交易的传统块链">区块链不同,Sealevel分析交易以识别它们访问哪些账户,并在多个CPU核心上并行执行不冲突的交易。访问相同账户的交易为保持一致性而顺序执行,但访问不同账户的交易可以同时运行。这种并行性之所以可能,是因为PoH建立了全局排序——验证者可以按任何顺序执行交易,只要按PoH指定的序列将其应用于状态。

架构还包括用于区块传播和存储的优化组件。Turbine区块传播协议使用纠删码将区块分解为更小的数据包,并以树形结构在网络中分发,最小化带宽需求。Archivers网络使用PoRep确保数据可用性,为历史账本数据提供去中心化存储。这些组件共同创建了一个系统,能够在保持区块链去中心化和安全属性的同时每秒处理数十万笔交易。
Performance
Solana的架构旨在实现随硬件改进而扩展的性能水平,遵循摩尔定律。在标准1千兆网络连接上,理论最大吞吐量约为每秒710,000笔交易,假设每笔交易176字节(包括签名和元数据)。此计算基于网络带宽作为主要瓶颈,计算瓶颈已通过并行化消除。
签名验证通常是块链">区块链性能的限制因素,通过GPU并行化加速。单个GPU每秒可以验证超过900,000个ed25519签名,超过网络吞吐量限制。这意味着签名验证不会限制系统性能——瓶颈转移到网络带宽和交易执行。对于只转移价值而不涉及复杂智能合约逻辑的简单交易,banking阶段可以以匹配网络输入速率的速率处理交易。
PoH生成器在专用CPU核心上运行,在4GHz处理器上每毫秒产生约4,000个哈希。在此速率下,PoH序列提供0.25微秒粒度的时间戳,足以每秒排序数百万笔交易。PoH生成的顺序性质意味着此组件不能并行化,但吞吐量足够高,不会限制整体系统性能。
随着硬件改进,Solana的吞吐量相应扩展。更快的网络、更强大的GPU和改进的CPU都有助于更高的交易速率。系统被设计为无需协议更改即可利用这些改进。这种可扩展性方法与受顺序共识机制根本限制的区块链形成对比,使Solana能够在保持安全性和去中心化保障的同时,实现之前在去中心化系统中被认为不可能的性能水平。
Conclusion
Proof of History通过解决限制分布式账本可扩展性的时间问题,代表了块链">区块链架构的根本性突破。通过创建可验证的加密时钟,PoH使验证者能够在不需要传统共识机制所需的大量通信开销的情况下建立事件的时间排序。这项创新消除了关键瓶颈,允许交易处理在网络中并行化。
PoH与优化的系统组件的集成——GPU加速签名验证、通过Sealevel的并行交易执行和高效的区块传播协议——创建了一个能够在商用硬件上每秒处理数十万笔交易的区块链。更重要的是,该架构被设计为随硬件改进而扩展,这意味着随着处理器变得更快、网络变得更强大,性能将持续提高。
Solana的设计证明了高性能和去中心化并非相互排斥。通过利用PoH作为共识和系统协调的基础,网络在保持去中心化区块链的安全性和抗审查属性的同时,实现了与中心化数据库相当的吞吐量水平。权益加权Tower BFT共识机制确保网络在实现快速最终性的同时抵御拜占庭行为者。
该架构的实现为区块链技术扩展到全球采用提供了实际路径。需要高交易吞吐量的应用——如去中心化交易所、游戏平台和金融系统——现在可以在不牺牲性能的情况下构建在真正去中心化的基础设施上。Proof of History为之前因可扩展性限制而不可行的新一代区块链应用打开了大门。
Related Whitepapers
XRP
The Ripple Protocol Consensus Algorithm
19 shared concepts · 2014
Bitcoin Cash
Bitcoin Cash: Peer-to-Peer Electronic Cash for the World
25 shared concepts · 2017
Ethereum
Ethereum: A Next-Generation Smart Contract and Decentralized Application Plat...
25 shared concepts · 2013
Tether
Tether: Fiat currencies on the Bitcoin blockchain
20 shared concepts · 2016
Bitcoin
Bitcoin: A Peer-to-Peer Electronic Cash System
13 shared concepts · 2008
Related Stories
Solana Whitepaper: How Proof of History Enables 400ms Blocks
Exploring Anatoly Yakovenko's novel clock mechanism that lets Solana achieve sub-second finality and process tens of ...
Origin StorySolana's Genesis: An Engineer's Obsession with Clock Synchronization
How Qualcomm engineer Anatoly Yakovenko realized that a verifiable clock could eliminate the communication overhead t...
Technical ExplainerProof of Stake Explained: Validators, Staking, and Slashing
Understanding how PoS blockchains replace energy-intensive mining with economic staking, and the mechanisms that keep...
Impact & LegacyThe Merge and Beyond: How Proof-of-Stake Solved Crypto's Energy Problem
Ethereum's switch from PoW to PoS cut its energy consumption by 99.95%. What this means for the industry's environmen...
常见问题
- 什么是Solana白皮书?
- Solana白皮书由Anatoly Yakovenko于2017年撰写,介绍了历史证明(PoH)——一种新颖的计时机制,能够在不牺牲去中心化的前提下实现高吞吐量的区块链处理。
- 什么是历史证明(Proof of History)?
- 历史证明(PoH)是Solana的核心创新。它利用SHA-256顺序哈希创建密码学时间戳,使验证者无需持续通信即可就事件的顺序和时间达成共识。
- Solana白皮书由谁撰写,是何时撰写的?
- Solana白皮书由前高通工程师Anatoly Yakovenko于2017年11月撰写。他将自己在分布式系统和电信领域的经验融入到历史证明机制的设计中。
- Solana的共识机制是如何运作的?
- Solana将历史证明(PoH)用于交易排序,并结合Tower BFT——一种针对PoH优化的实用拜占庭容错变体。验证者利用PoH时钟减少通信开销,从而实现亚秒级出块时间。
- Solana与Ethereum有何不同?
- Solana通过单层架构和并行事务执行(Sealevel)来优先保障吞吐量和低费用,而Ethereum则依赖Layer 2 Rollup进行扩展。Solana每秒可处理数千笔交易,手续费不足一美分。
- Solana的供应模型是什么?
- Solana初始供应量约为5亿枚SOL。它遵循一个反通胀的发行计划:初始年通胀率为8%,此后每年递减15%,直至达到1.5%的长期稳定利率。部分交易手续费将被销毁。
- Solana的主要用途是什么?
- Solana被用于DeFi、NFT市场、去中心化物理基础设施(DePIN)、支付、游戏及消费级应用。其高速度和低成本使其在高频交易和小额支付场景中广受欢迎。
- Solana解决了什么技术难题?
- Solana通过消除验证者传递时间戳的通信需求,解决了区块链吞吐量瓶颈问题。历史证明提供了可验证的时间流逝证明,从而在单一层上实现并行处理和高交易吞吐量。
- Solana的安全模型是如何运作的?
- Solana采用委托权益证明机制,验证者质押SOL后根据质押权重被选中。安全性依赖于经济激励——验证者若存在恶意行为将被罚没,而PoH时钟使伪造交易顺序的成本极高。
- Solana生态系统的现状如何?
- Solana已成为领先的智能合约平台,拥有活跃的DeFi和NFT生态。主要项目包括Jupiter(DEX聚合器)、Marinade(流动性质押)、Tensor(NFT市场)和Helium(去中心化无线网络)。由Jump Crypto开发的第二个验证者客户端Firedancer进一步提升了网络的去中心化程度。