介绍
交易池,也称为“内存池”,是区块链上未确认交易的临时存储区域,用于等待确认和纳入区块。比特币的出现导致了内存池概念的引入。以太坊后来也将其纳入其架构中。当用户发起交易(例如两种代币之间的交换、在 DeFi 市场上交易或只是购买 NFT)时,交易会广播到网络并暂时保存在内存池中。
它会一直保留在那里,直到验证者确认并将其包含在新区块中。提交到内存池的交易根据其交易费用进行排列,gas 费用较高的交易通常会首先完成。这使得验证者优先考虑费用较高的交易,因为他们会收到 gas 费用作为他们挖掘的区块中包含的交易的奖励,因为区块被添加到区块链中。
内存池是区块链的关键组件,区块链利用内存池。内存池确保所有提交的交易都经过验证器处理和确认,除非交易因签名错误而无效,或发送者的钱包资金用尽。内存池创建了一个市场,允许用户选择适当的交易费用,以便在网络拥堵时更快地处理他们的交易。
以太坊和比特币的内存池中总共有 5 万到 20 万笔未确认交易。这通常取决于区块空间的可用性,并且大多数时候会导致网络出现一些瓶颈,例如吞吐量低和网络拥塞。以太坊和比特币使用八卦协议以点对点的方式在随机节点之间传播内存池。
Solana 主网上有 1,000 多个验证者,可以管理 130,000 个内存池。这意味着,在网络吞吐量为 65,000 的情况下,将执行 130,000 个内存池,而 Solana 每秒可以执行超过 4,000 到 4,500 个。Solana 是一种高性能区块链,被视为无内存池区块链,因为它从一开始就被设计为不依赖内存池;相反,它采用了一种不同的方法,因为它将所有交易消息推送到每个时隙的一组验证者,该验证者被标记为领导者。领导者每 4 个时隙替换一次,所有活跃的网络节点都事先知道领导者的时间表。Solana 提出的这个解决方案将交易消息缓存推送到网络边缘,称为Solana Gulf Stream 。
注意:默认情况下,Solana 交易必须包含最近的区块哈希,开发人员可以通过基本 API 调用轻松获取。Solana 区块哈希最多有 150 个槽。在此时间之后,它会变得陈旧,因此提及它的交易将被网络丢弃。这保证了未处理的交易不会滞留。区块哈希最近有助于交易重复数据删除。
湾流的历史
自推出以来,Gulf Stream 至少经历了两次重大升级——QUIC 和 Stake 加权 QoS。它也是核心协议的组成部分,由于 Solana 上的网络流量激增,近年来可以说是承受了最大的压力。从这个角度来看,当验证者担任领导者的角色时,他们可以预期入站流量会急剧增加,通常超过每秒 1 GB,因为整个网络都在向他们发送数据包。
快
最初,Solana 依靠 UDP 协议将交易消息从 RPC 节点发送到当前领导者。虽然 UDP 由于缺乏握手对话而快速高效,但它具有明显的缺点,例如数据传输、数据包排序和重复预防不可靠。这些限制在由 DDoS 攻击和垃圾交易造成的网络中断期间变得明显,特别是在 NFT 铸币等高需求事件期间。
Solana 将 QUIC 协议集成到其验证器提取过程中以应对这些挑战。与 UDP 不同,QUIC 提供可靠的数据传输,具有内置拥塞控制和数据包排序功能,可确保节点之间的通信更顺畅、更安全。此次升级显著提高了网络稳定性和弹性,防止了未来的中断,并优化了 Solana 在高交易负载下的性能。
QUIC 协议支持快速异步通信(如 UDP 协议),但具有与 TCP 类似的会话和流量控制。尽管 QUIC 协议在区块链领域的采用率较低,但它并不是 Solana 的万能解决方案,因为网络在多次 QUIC 握手期间仍会遇到拥塞问题。尽管该协议存在所有缺陷,但它也有一些优点,因为 QUIC 是一种安全的网络连接协议,无需两次握手(TCP 和 TLS),并且需要更少的数据包才能完成。它在关闭后可以持久耐用,从而提供更快的数据访问。
QUIC 可以通过流和会话票证重复使用会话,从而最大限度地减少客户端-服务器连接的数量并提供快速、安全的重新连接。它还支持连接迁移,允许连接在 IP 更改后继续存在,从而使移动用户体验更加流畅。QUIC 还旨在减少或降低拒绝服务 (DoS)、重放、反射、欺骗等攻击的影响。虽然它无法消除所有攻击,但它旨在使攻击更加困难。总体而言,QUIC 提供了更高效、更安全的网络连接体验。
权益加权 QoS
Solana 权益加权 QoS 是 Solana 网络上的一种实现,它允许领导者识别和优先处理通过质押验证者代理的交易,作为一种额外的 Sybil 抵抗机制。该机制于 2024 年初在 Solana 网络中实现。在此机制中,网络中质押额较高的验证者可以将大型交易消息包传输给领导者。
例如,持有 0.5% 股份的验证者可以抵御来自网络其余部分的 Sybil 攻击,并将最多 0.5% 的数据包传输给领导者。启用权益加权 QoS 后,持有 1% 股份的验证者将有权将最多 1% 的数据包发送给领导者。通过这种方法,持有更多股份的验证者可以保证获得更高质量的服务,从而防止质量较低的验证者(持有较少股份)故意淹没这些交易,从而增强整体 Sybil 抵抗力。
该机制的引入对 Solana 生态系统产生了重大影响,商业 RPC 基础设施运营商和交易所成为主要受益者。RPC 运营商可以与质押验证者达成协议,这将有助于他们实现更高比例的交易包含在区块中。同时,在同一基础设施上托管验证器和 RPC 节点的交易所或其他组织可以放心地在其系统中启用该功能,因为他们知道其基础设施上的 RPC 节点是可靠的。
Solana 与传统内存池架构之间的差异
Solana 和以太坊的内存池架构存在许多差异。
- 在以太坊区块链中,待处理交易保存在公共内存池中,并通过八卦协议分散到各个节点,直到被纳入区块。Solana 没有公共内存池。相反,待处理交易会被推送到当前领导者。
- 以太坊交易需要支付 gas 费,交易优先级通常与 gas 价格挂钩。Solana 交易需要为每个签名支付固定的基本费用(通常为 0.000005 SOL),并可选择包含优先费用以加快交易执行速度。
- Solana的默认验证器实现还提供连续的区块生成。交易不断进入验证器进行执行,然后生成区块,最终进行交易传播。在以太坊上,验证器或区块构建器会先暂缓待处理的交易,然后再以 12 秒为间隔生成整个区块。连续的区块制造意味着优先费用不能保证在区块中的位置。
- 以太坊依赖于 MEV-Boost 等外部拍卖,其中验证者竞标区块空间,矿工可以通过 MEV(最大可提取值)提取资金。这种拍卖类型占据主导市场份额(约占网络的 85%)。 Solana实施了协议外区块空间拍卖(Jito),其市场份额有所下降(约 25%)。这反映了 Solana 和以太坊在其生态系统中处理 MEV 和区块空间拍卖的方式的差异。
结论
在本文中,我们探讨了 Solana 独特的交易处理机制,重点介绍了其 Gulf Stream 协议以及它与以太坊等传统内存池架构的不同之处。我们重点介绍了 Solana 的持续区块生产、固定交易费以及创新地使用 QUIC 和 Stake 加权 QoS 来优化网络性能和安全性。