作者:Avi Zurlo 来源:nil 翻译:善欧巴,金色财经
自从 Rollups 兴起以来,区块链扩展一直集中在模块化与整体式的争论上。最初,这种二分法是推理区块链可扩展性的有用心理模型,但两个阵营都已经超越了它。
如今,模块化与整体式的对比给我们的可扩展性思维模型带来了不必要的限制。
那么,还有什么选择呢?
在本文中,我们展示了水平与垂直扩展始终是区块链可扩展性的基础框架,并解释了采用水平与垂直如何带来更好的扩展解决方案。
了解模块化与整体式
首先,一些定义:
模块化 链将区块链的核心功能分为不同的层。
单片链将所有核心功能集成到一个互连的层中。
我们可以将“层”视为等同于“机器”——整体链有一个运行所有任务的验证器节点,而模块化链有多个(2-3)个运行不同任务的全节点。
例如,Rollup 通常有两个操作节点:用于执行的 Rollup 全节点和用于结算 + 数据可用性(DA)的以太坊全节点。validium 可能会利用三个操作节点:用于执行的Rollup全节点、用于结算的以太坊全节点以及用于 DA 的替代数据可用性层全节点。
模块化将区块链的任务划分为至少两个全节点。通过这样做,模块化区块链在构建每个区块时可以利用多台机器的计算能力。
这是水平缩放的一种形式 。
模块化对于考虑区块链扩展很有用,因为它是一种水平可扩展性。
另一方面,大多数单一阵营选择通过软件优化、实现并行虚拟机、数据管道、更快的网络协议和(最值得注意的是)更强大的硬件来扩展。从本质上讲,单体链试图从单个全节点中挤出尽可能多的计算能力。
这是垂直缩放的一种形式 。
批评者表示,这种方法趋于集中化:如果依靠增加单个节点的能力来扩展,则不可避免地会遇到底层硬件的物理限制,并被迫增加硬件要求以进一步扩展。
然而,这种批评是错误的,因为并非所有的整体链都仅仅依赖于垂直扩展。
例如,Near 是一个基于分片网络架构构建的整体 L1 区块链。这意味着近全节点负责所有任务(即执行、结算和数据可用性), 但 它们只负责近全局状态的一小部分。因此,Near 通过根据状态而不是任务划分工作来利用多台机器的力量(就像模块化链一样)。
我们可以看到,整体链和模块化链在它们实现的扩展技术方面都不受限制。两者都可以水平和/或垂直缩放。
此外,模块化与整体式的争论始终植根于水平与垂直扩展框架。从严格的技术角度来看,模块化偏向水平扩展,这是其设计所固有的,而整体偏向垂直扩展。
现在我们已经成功推出了模块化链,额外的扩展优势不再在于“更加模块化”。 现在的焦点是链如何利用水平或垂直扩展技术。
采用水平与垂直心理模型使我们能够轻松推理每个链在此过程中所做的权衡。
重构对话:水平与垂直扩展
垂直拓展
垂直扩展会增加每个节点的硬件利用率或硬件要求。在区块链中,这通常是通过并行虚拟机(即多线程进程)等软件优化来完成的。
这里一个流行的例子是 EVM 与 SVM。
EVM 顺序执行事务,而 SVM 并行执行事务。SVM 通过利用更多的 CPU 核心来实现这一点,因此 SVM 每秒可以比 EVM 处理更多的事务。注意:这种类型的垂直缩放是 Eclipse L2 背后的基础。
在权衡方面,垂直扩展受到可用硬件的限制,由于硬件需求的增加而趋于集中化,并且与水平扩展相比可扩展性较差。
水平拓展
另一方面, 水平扩展通过将工作负载分散到多个节点上来增加系统可以访问的机器数量。如前所述,模块化链本质上是将任务分配到多台机器上。然而,链通常可以通过分片实现更大程度的水平扩展 。
=nil;这里提供了一个有用的例子。
去年11月,=nil;基金会推出了一种名为 zkSharding的可证明分片架构,它是新的以太坊 L2 =nil; 的基础。=nil; 设计的核心是将其全局状态划分到多个分片上。每个分片均由 =nil 的去中心化委员会运营;构建区块并管理跨分片交易的验证者。此外,每个分片都会生成一个有效性证明,该证明会发送到主分片进行聚合,然后在以太坊上发布和验证。=无;通过两种方式利用水平扩展的力量:
这两种技术都减少了任何单台机器需要承受的负载,并提高了网络的总体可扩展性。
那么,横向扩展的权衡有哪些呢?归结为两点:网络和共识的复杂性以及机器或分片之间的异步通信。
以太坊可扩展性的最终游戏
水平或垂直扩展均不限于模块化或整体架构。这就是为什么水平与垂直扩展框架提供了更多空间来探索新的解决方案,使模块化区块链更具可扩展性。
例如,一种选择是垂直缩放模块化堆栈的一层。一种流行的方法是实现并行虚拟机,从而扩展执行吞吐量。如上所述,Eclipse 正在利用 SVM 和其他Rollup(例如 Starknet)实现 BlockSTM 来实现并行化。
但是,垂直扩展总是受到单台机器的限制,我们不能打破物理定律。
一种解决方案可能是选择通过分片进行水平扩展。
当前的模块化设计才刚刚开始触及水平扩展的全部潜力。通过分片,我们可以利用任意数量机器的能力(而不是按任务分割 2-3 台机器)。
换句话说,许多机器可以并行运行相同类型的任务。这就是以太坊和 Celestia 希望分别通过 Danksharding 和数据分片实现的目标。但是,分片本质上并不局限于数据可用性层 - 它也可以与执行相结合(如 =nil; L2 的情况)。
如果我们将通过模块化堆栈实现的水平扩展与分片提供的水平扩展相结合,我们将获得可用计算能力的大幅增加。
区块链可扩展性的最终目标将合并水平和垂直扩展, 从而产生具有并行虚拟机的分片区块链。