Supra L1 的并行执行:如何实现极致性能
2025-05-28 10:00
在快速发展的 Web3 世界中,可扩展性始终是一项重大挑战。目前大多数区块链仍然停留在单线程执行模型,每次只能处理一笔交易。这造成了瓶颈,并限制了链上处理现实世界活动的能力。Supra 的诞生正是为了改变这一现状。
在 Supra,我们认识到要真正扩展 Web3 就需要采用并行执行,需要同时在不牺牲安全性或一致性的情况下运行多个交易。区块链并行执行听起来很简单,但实际情况却很复杂。如果交易没有经过精心排序和管理,结果可能会与用户的预期完全不同。正确做到这一点意味着要在速度、顺序和正确性之间取得平衡,同时最大限度地降低开销。我们通过三层并行执行设计解决了这个问题,为 Web3 带来了无与伦比的规模和效率。图 1:该图概述了 Supra 并行执行的总体方法,包括 (1) 网络设计和 (2) 用于实现交易处理并行化的专门算法。在传统的区块链中,每笔交易都必须按顺序执行。这确保了正确的顺序和结果,但也严重限制了吞吐量。当我们尝试扩展区块链应用时,无论是金融交易、去中心化交易所还是复杂的智能合约,单线程模型根本无法满足需求。问题在于:当两笔交易涉及同一数据(例如账户余额)时,它们的顺序至关重要。想象一下,一笔交易将代币从账户 A 发送到账户 B,而另一笔交易试图将代币从账户 B 发送到账户 C。如果第二笔交易先于第一笔交易发生,账户 B 中的余额可能会出错,从而导致整个系统崩溃。此类冲突必须谨慎处理,否则最终会导致区块链状态不一致且不可用。图 2:该图展示了顺序处理事务和并行处理事务之间的区别,说明了识别不相互依赖的事务以实现顺畅高效的并行执行的挑战。在 Supra,我们采用三层策略来应对这一挑战,该策略可以同时运行多个事务,而不会影响正确性。让我们来详细分析一下。我们从零开始设计 Supra L1 网络,旨在最大程度地提高并行执行效率。这不仅仅是并行化算法在起作用,网络结构本身也对我们以日益并行化的方式处理和执行交易起着关键作用。图 3:该图展示了 Supra Layer 1 的网络架构,其中包含部落和氏族设计以及 Supra 容器。它展示了网络如何在氏族和容器之间进行划分,这在我们的并行执行策略中起着关键作用。从最广泛的层面来看,Supra 网络被划分为不同的“氏族”。我们可以将整个网络想象成一个部落,部落又被划分为由节点组成的子委员会,这些节点被称为“氏族”,每个节点负责处理整体交易的一部分。这种结构允许网络同时处理跨不同“氏族”的多个不同批次的交易。Supra 将网络划分为多个“氏族”(Clan),实现了广义上的并行化,交易被划分到不同的“氏族”中,从而允许多个“氏族”同时处理,并提升整个网络的执行能力。每个“氏族”独立运行,处理分配给其的交易,同时维护整个网络的安全性和正确性。这种方法使我们能够大规模扩展任何给定时间可处理的交易数量。这是扩展的首要关键:将工作负载划分为可并行运行的独立负载。最后,每个氏族负责特定的虚拟机,虽然多虚拟机支持本身是 Supra 区块链的独特特性,但它也确保了每组交易在氏族内部单独处理。在此基础上,我们将为每个虚拟机引入了专门的并行化算法,目前已经针对 MoveVM 和 EVM 实行并行执行。Supra 的系统旨在预先分析交易,确定每笔交易将读取或写入区块链数据的哪些部分(例如账户余额)。这有助于网络避免冲突,因为它提前知道哪些交易可以安全地并行执行。现在,在大多数引入并行执行策略和算法以实现跨多个核心的确定性并行执行交易的区块链中,它们通常必须选择以下两种方法之一:读写无意识执行和读写感知执行。读写不经意执行方法在执行交易时,无需事先知道它们将与区块链的哪些部分(账户或数据)交互。冲突(两个交易试图更改同一数据)会在事后发现。这简化了实现并避免了预先分析的需要,使其适用于交易之间数据重叠程度较低的系统。然而,由于系统必须保守地假设所有交易都可能发生冲突,这显著限制了并行性,导致在发生冲突时频繁中止和重试。虽然简单,但这种模型在高需求场景下难以充分利用可用的计算资源。相比之下,读写感知模型会预先分析交易,以了解它们将读取或写入哪些数据。它会提前将这些信息发送给验证者,以最大限度地减少冲突。此外,我们还引入了新颖的冲突提取技术和简洁的数据结构,以最大限度地减少由此可能带来的开销。它们要求交易预先共享其数据依赖关系(它们将读取或写入哪些账户)。这些知识使系统能够识别非冲突交易并并行执行,从而大大提高效率并减少冲突。然而,这种方法会引入额外的计算和通信开销来收集和共享依赖关系信息。由于交易细节会与验证者共享,因此也可能引发隐私问题。 图 4:该图展示了读写无关方法和读写感知方法如何实现并行执行。读写无关方法通常会导致并行化阶数较低,因为它缺乏事务依赖关系的信息。读写感知方法能够更轻松地最大化并行化,因为它首先通过规范技术获取必要的信息。软件事务内存 (STM) 技术在传统领域中广为人知,用于在多个核心上并行执行程序。BlockSTM 将其应用于执行区块链交易的场景。其核心思想是乐观地在验证器节点的任何可用核心上并行执行交易,然后验证某个交易的执行是否由于与另一个交易的依赖关系而导致冲突。在 Supra,我们创新了一种基于 STM 的无调度器并行执行算法,其性能可与 Aptos 的 BlockSTM 媲美。在研究了读写无关和读写感知两种方法后,我们发现这是最佳的发展方向。它可以被视为一种混合方法,它为预设的事务执行顺序创建了一个“金发姑娘”规范。这将使我们能够高效地扩展并行执行,而不会造成过多的通信开销。我们正在对此设计进行广泛的评估。1.我们的算法对智能合约代码进行静态分析,以得出所请求交易的访问规范。2.然后,基于这些规范,构建一个冲突依赖集。这实际上能够识别哪些事务肯定不会相互冲突。3.这使得算法能够在可用核心中并行执行所有非冲突事务,利用访问规范来最大化并行化。 图 5:该图展示了新算法 (1) 获取事务的访问规范信息、(2) 识别事务之间的冲突和依赖关系并创建不冲突的事务集,以及 (3) 同时并行执行所有不冲突的事务的过程。事实证明,该技术经过高度优化,可高效处理事务冲突工作负载。此外,它还可以在必要时将读写感知规范作为输入,通过预先识别事务冲突来改进并行执行。最后,我们针对 EVM 和 MoveVM 分别优化了并行执行策略和实现,确保能够最大化并行性并从两个系统中获得最佳性能。在并行化的背景下,在网络中的每个氏族内,我们还将引入 Supra 容器,它可以提供细粒度的访问规范,以进一步增强整个网络的并行执行。Supra 容器为开发者和用户提供应用链式的体验,无需启动单独的区块链网络,例如 Polkadot Paracains、Cosmos Zones、Avalanche Subnets 或 Layer 2s。从技术上讲,Supra 容器是一组与单个 dApp 或一组相关 dApp 相关的智能合约。最重要的是,它们通过提供智能合约的门控部署、自定义 Gas 代币和 Gas 费用定价,促进 dApp 开发者的商业模式,并赋能其社区。更多详情,请参阅 Supra 容器白皮书。这会如何影响并行化?每个 Supra 容器都会在其专用的执行空间内有效地将大量交易分组。这些 Supra 容器内以及部署在其中的智能合约组中的交易可以并行执行,而无需彼此交互。这些也称为容器内交易。这为整个网络增加了一层并行化和效率。值得注意的是,MoveVM 和 EVM 对容器化访问规范的利用能力有所不同。某些跨容器事务可能无法像容器内事务那样并行化。通过分离经常交互的智能合约,Supra 容器使事务能够在氏族内部更高效地执行,而无需持续检查以避免冲突。每个 Supra 容器都有一套定义明确的访问规范,这意味着大多数智能合约事务只会调用相同预设合约中的函数。这不仅赋予了构建者和 Supra 容器所有者更多控制权,还能确保最大限度地减少跨容器调用,从而显著降低发生事务冲突的可能性。想象一下,这就像在手机上同时运行多个应用程序。大多数应用程序(事务)独立运行,只有在绝对必要时才会与其他应用程序交互。这种设置会创建标识符,以便更好地管理工作负载,从而实现更快、更高效的处理。例如,Web3 P2E 游戏可以完全在其自己的容器内运行。其大部分交易(例如游戏内购买、奖励和操作)均在内部处理。游戏仅在需要时与其他应用程序(例如用于交易游戏内代币和 NFT 的去中心化交易所)进行交互。这种分离可以避免不必要的数据重叠和冲突,从而进一步提升并行执行性能。Supra 的并行执行模型旨在最大限度地减少冲突并最大限度地提高效率。通过在多个级别(例如氏族、虚拟机和容器)组织事务,我们确保事务按逻辑分组,并可并行执行而不会相互干扰。图 6:该图进一步阐述了图 5 中最后一步的执行方式,展示了网络如何将所有非冲突事务排队,以便在可用的内核或处理器上同时并行执行。通过预先识别依赖关系,我们可以避免不必要的回滚和重试,从而使我们的系统比传统区块链更加高效。这使得网络能够自动分离需要特殊处理的交易,使整个流程更加精简、顺畅且无冲突。这种方法必将超越目前最先进的技术,因为最先进的技术通常需要节点之间进行更广泛的通信,从而导致性能瓶颈。Supra 的架构设计可垂直和水平扩展,确保网络增长时的灵活性和性能。- 垂直扩展:Supra 可以通过优化每个虚拟机 (VM) 来实现垂直扩展,从而处理更多交易和用户。通过提高吞吐量并引入高级优化,我们可以从每个虚拟机中获取更多算力,使其能够处理更多智能合约和交易,而无需添加新的基础设施。这意味着每个虚拟机(例如以太坊虚拟机或 Move 虚拟机)都可以高效地服务于越来越多的用户。
- 水平扩展:Supra 还支持通过添加更多虚拟机和容器来实现水平扩展。随着新的虚拟机(例如 SolanaVM 或 CosmWasm)集成到网络中,每个虚拟机都可以在自己的 Clan 上与其他虚拟机并行运行,从而分配工作负载。此外,容器化支持更细粒度的并行化,可以添加更多容器来管理特定类型的交易或智能合约,从而进一步提高跨不同工作负载的可扩展性。
通过将垂直扩展(优化每个虚拟机)与水平扩展(添加更多虚拟机和容器)相结合,Supra 可以满足 Web3 应用程序日益增长的需求,而不会影响性能或安全性。凭借 Supra 的三层并行执行模型,我们设计了一个 L1 网络,能够随着 Web3 的普及,以及其在互联网乃至全球的进一步发展,满足其大规模需求。通过在各个部落、部落虚拟机内部以及容器层级并行处理交易,我们可以在确保安全性和正确性的同时,处理海量交易。执行、共识和数据传播的分离,使系统更加高效,减少了通信开销,并实现了更快的最终确定性。这种架构是提升网络吞吐量、降低延迟的关键,能够在不牺牲性能的前提下,为 DeFi、NFT、游戏以及各种尚未出现的 Web3 应用释放新的可能性。Supra 代表着可扩展、高效的区块链执行的未来,并且即将为下一代去中心化应用赋能。我们追求的每一个设计决策和开发都围绕着一个目标——构建最具可扩展性和效率的区块链。凭借目前极具潜力的设计和成果,我们相信它很快就能为下一代去中心化应用赋能。(本文为【Supra 中文】原创内容,未经账号授权,禁止随意转载;如需转载,请在公众号消息栏发送“转载”关键字获得相关信息)Supra 是一个完全垂直集成且具备原生预言机、dVRF、跨链与自动化功能的新型 Multi-VM 区块链。旨在赋能开发者,让他们在单一核心基础设施上即可拥有高速、安全、可扩展的原生必要工具,构建下一代超级 dApp。【Supra 中文】也将持续为读者提供更有价值、更有深度的区块链行业内容跟干货。白皮书解读丨“无桥”跨链协议 --HyperNova
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。