原文作者:web3朱大胆
原文来源:小猪Web3
CoinGecko 于 5 月 17 日发布的 《Fastest Chains》报告中显示,Solana 是大型区块链中速度最快的,最高日均真实 TPS 达到 1,504(已经去除了投票交易),Sui 是第二快的区块链,最高日均真实 TPS 达到 854,BSC 排名第三,但达到的真实 TPS 还不到 Sui 的一半。
从这份报告可以看出,性能最好的 Solana 和 Sui 都是非 EVM 兼容的区块链,更进一步,8 个非 EVM 兼容区块链的平均真实 TPS 为 284,17 个 EVM 兼容区块链和以太坊 Layer2 的平均 TPS 仅为 74,非 EVM 兼容区块链的性能是 EVM 兼容区块链的 4 倍左右。
本文将会探讨 EVM 兼容区块链的性能瓶颈,并揭开 Solana 的性能之道。
首先,我们泛化 EVM 区块链到一般区块链。一般区块链想要提升 TPS,一般有如下几种做法:
对于 EVM 区块链而言,由于限定了虚拟机,即交易的执行环境,因此最大的挑战在于交易执行。EVM 主要有两个性能问题:
如果站在执行优化的角度,EVM 还存在两大不足:
因此从虚拟机的选择上,高性能公链更多采用的是基于 WASM, eBPF 字节码或 Move 字节码的虚拟机,而非 EVM。例如 Solana 使用自己独特的虚拟机 SVM 和基于 eBPF 的字节码 SBF。
Solana 因其 PoH(Proof of History )机制以及低延迟高吞吐量而闻名,是最著名的「以太坊杀手」之一。
PoH 的核心是一个类似于可验证延迟函数(VDF)的简单哈希算法。Solana 使用一个序列预映像抵抗的哈希函数(SHA-256)实现,该函数持续运行,用一次迭代的输出作为下一次的输入。这个计算在每个验证者的单个核心上运行。
虽然序列生成是顺序和单线程的,但验证可以并行进行,从而在多核系统上实现高效的验证。虽然哈希速度存在上界,但硬件改进可能提供额外的性能提升。
PoH 机制作为可靠且无需信任的时间源,在网络内创建可验证且有序的事件记录。基于 PoH 的计时允许 Solana 网络以预定且透明的方式轮换领导者。这种轮换以固定的时间间隔进行,为 4 个槽(slot),每个槽目前设置为 400 毫秒。这种领导者轮换机制确保每个参与的验证者都有公平的机会成为领导者,是 Solana 网络维护去中心化和安全的重要机制,防止任何单个验证者在网络上获得过多的权力。
每个槽的时间段,领导者提出一个新块,其中包含从用户收到的交易。领导者验证这些交易,打包成一个区块,然后将该块广播到网络的其余验证者。这种提议和广播区块的过程称为区块生产,网络中的其他验证者必须对区块的有效性进行投票。验证者检查区块的内容,确保交易有效并遵守网络规则。如果一个区块获得了绝大多数权益权重的投票,则该区块被视为已确认。此确认过程对于维护 Solana 网络安全和防止双花至关重要。
当前领导者的时间段结束,网络不会停止或等待区块确认,而是会移动到下一个时间段,为后续领导者提供区块生产的机会,整个过程重新开始。这种方法可确保 Solana 网络保持高吞吐量并保持弹性,即使某些验证者遇到技术问题或离线也是如此。
由于 Solana 网络可以提前确认领导者,因此 Solana 不需要公共内存池来保存用户的交易。当用户提交交易时,RPC 服务器将其转换为 QUIC 数据包,并立即将其转发领导者的验证者。这种方法被称为Gulf Stream,它允许快速的领导者转换和交易的预执行,减少了其他验证者的内存负载。
Solana 的区块数据带入到内核空间,然后传递给 GPU 以进行并行签名验证,一旦 GPU 上验证了签名,数据就会传递给 CPU 进行交易执行,最后返回到内核空间做数据持久化。这种将数据划分为不同硬件部件的多个处理过程,称为流水线技术,能最大化硬件利用率,加快区块的验证和传输速度。
由于 Solana 的交易显式指定访问哪些账户,Solana 的交易调度器可以利用读写锁机制并行执行交易。Solana 交易调度器每个线程都有自己管理的队列,顺序且独立地处理交易,尝试锁定(读写锁)交易的账户并执行交易,账户冲突的交易会稍后执行。这种多线程并行执行技术称为 Sealevel。
领导者传播区块的过程,将 QUIC 数据包(可选地使用纠删码)划分为较小的数据包,并将它们分发给具有分层结构的验证者。这种技术称为 Turbine,主要是减少领导者的带宽使用。
验证者在投票过程中,使用一种针对分叉投票的共识机制。验证者无需等待投票即可继续进行区块生产;相反,区块生产者会持续监控有效的新投票,并实时将其纳入当前区块中。这种共识机制称为 TowerBFT,通过实时合并分叉投票,Solana 确保了更高效、更精简的共识流程,从而提高了整体性能。
针对区块的持久化过程,Solana 开发了 Cloudbreak 数据库,通过以特定方式对账户数据结构进行分区,以受益于顺序操作的速度并采用内存映射文件,从而最大限度地提高 SSD 的效率。
为减轻验证者负担,Solana 将数据存储从验证者转移到名为 Archiver 的节点网络。交易状态的历史记录被拆分为很多碎片,并使用纠删码技术。Archiver 用于存储状态的碎片,但不参与共识。
Solana 的愿景是成为一个其软件按照硬件的速度扩展的区块链,因此 Solana 充分利用当今计算机中可用的所有 CPU、GPU 和带宽能力,以最大化性能,理论最大速度能达到 65,000 TPS。
正是因为 Solana 的高性能和拓展性,让 Solana 成为处理高频交易和复杂智能合约的首选区块链平台,无论是年初的 DePIN/AI 赛道,还是近期火热的 Meme 赛道,Solana 都展现出巨大的潜力。
以太坊 ETF 推出后,Solana 也成为下一个 ETF 呼声最大的加密货币,尽管 SEC 仍将 Solana 列为证券,短时间内不会批准其他加密货币 ETF。但在加密市场,共识即价值,Solana 的共识或许正变得和比特币与以太坊一样坚不可摧。