扩展到 10GB 无限区块:Avail 的水平可扩展性

Avail 旨在实现突破性的可扩展性,通过水平扩展的底层架构,支持多个区块链连接,实现无缝互操作。文章介绍了 Avail 将如何从 4MB/块扩展到 10GB/块,并将区块时间从 20 秒减少到 600 毫秒,同时保持无需许可的访问和密码学去中心化,实现这一目标的关键在于优化区块生成、验证和传播过程,通过三个步骤实现:优化承诺生成、委托计算和 SNARK 化非 DA 活动。

突破性的可扩展性是释放下一波区块链应用和统一当前碎片化生态系统的基础。Avail 的使命是赋能开发者构建可以水平扩展和轻松互操作的高吞吐量区块链应用,并由多个加密经济资产的安全保障,所有这些都无需依赖任何中心化基础设施。

在任何有意义的规模上实现这一目标的唯一方法是通过一个水平可扩展的基础层,多个区块链可以在其上连接,并具有无缝互操作性。实现这一点需要 Avail 的吞吐量从今天的水平(4MB/区块)呈指数级增长到 10GB/区块,并将区块时间从 20 秒减少到 600 毫秒。

本文开启了一个系列,深入探讨 Avail 雄心勃勃的可扩展性路线图和正在进行的技术变革。其核心是为每个节点维护无需许可的访问和加密去中心化,确保每个参与者都可以访问真正开放和去中心化的网络。

我们今天的状况 (4MB)

为了解释 Avail 如何达到 10GB 的区块大小,我们将围绕构成区块时间的三个关键阶段进行说明。即,区块生成、区块传播和区块验证。Avail 上的区块时间现在是 20 秒,允许每个阶段约 6 秒。一旦在 Avail 上生成区块,轻客户端 (LCs) 可以立即从消费级硬件中对其进行采样。最终确认发生在两个区块之后,大约在生产后 40 秒。但是,如果需要,LC 仍然可以对未最终确认的区块进行采样,从而使它们能够获得与数据可用性相关的全节点等效保证,而无需等待最终确认。

如今,生成区块和验证区块所需的时间几乎相同。这是因为区块验证本质上是重复区块生成的过程,以检查其是否正确。

Avail 区块中的组件包括:

  1. 非 DA 交易 例如,质押、AVAIL 代币余额转移等。
  2. DA 交易打包 在区块中排列 DA blobs,设置数据矩阵(blobs 在 Avail 区块中的设置方式)和其他操作。
  3. 生成承诺 计算承诺需要最多的时间,然后生成区块头。

根据标准节点要求,生成承诺需要 200-400 毫秒。DA 交易打包也需要几百毫秒,但这里需要注意的最重要的一点是,短期内增加区块大小没有主要的瓶颈。

短期扩展,实现 2 倍、4 倍、8 倍区块大小

增加区块大小的一种简单方法是在同一区块中打包更多的 blobs。这是今年早些时候从 2MB 扩展到 4MB所使用的方法,并且这将是我们短期内用来进一步增加区块大小的方法。

我们已经测试了 8MB 和 16MB,这将开始在测试网和主网上推出。

还有其他重要的因素需要考虑,因为区块大小的增加需要反映在网络的其他地方,包括它如何影响轻客户端 p2p 网络的性能、硬件钱包更新等等。

达到拐点:10GB 区块

当前的扩展方法最终将达到上限,需要一种全新的方法才能达到我们的 10GB 目标。

使用 Avail 当前的架构,最终会发生以下一种或多种情况:

  • 区块生成 将超过总区块时间的 ⅓,约 6 秒。
  • 区块验证 将超过约 6 秒。
  • 区块传播 将超过约 6 秒。

为了进一步提高吞吐量而减少区块时间只会加剧上述问题,使其成为实现 10GB 区块和 600 毫秒区块时间的不切实际的途径。

在这里,我们提出了一个 3 步计划来实现我们扩展 Avail 的最终目标,并实现 10GB 区块600 毫秒区块时间

步骤 1:优化承诺生成

如今,区块生产者会计算数据矩阵行的承诺。提交的 Blobs 可以填充部分行,跨越多行,需要在单元格级别跟踪 appID,并在摆脱当前扩展限制时创建其他小的但重要的复杂性。相反,我们将安排数据矩阵,使 blobs 包含数据 blob 和该 blob 的承诺。

此更改允许节点(区块生产者,但也包括 RPC)在交易提交到 mempool 后立即检查承诺。由于数据 blobs 没有状态访问权限,因此不存在状态争用,因此几乎所有对数据 blob 的健全性检查都可以在 mempool 级别完成。

通过此更改,区块生产仅需要区块生产者导入 blobs 及其承诺,按 appID 排序并创建区块头。值得注意的是,此更改不会引入新的安全假设,因为节点依赖于其自己的 mempool 健全性检查。

我们现在已经从区块生成路径中删除了承诺生成步骤,从而基本上消除了我们之前讨论的瓶颈。

步骤 2:委托计算

在这里,我们利用 DAS 和 Avail 独有的加密承诺 的强大功能。

假设每个 DA 交易都只是一个承诺,并且 mempool 仅接收和八卦承诺。此外,他们还对承诺背后的数据进行抽样,以增强对数据可用性的信心。这基本上就是 Avail 的轻客户端 (LCs) 今天所做的事情。

通过这种方法,我们基本上假设每个节点都是 LC,对提交的承诺进行抽样和验证,并就承诺的顺序达成一致。

然后,区块生成 将包括区块生产者已抽样的来自 mempool 的承诺。对于区块验证, 验证者只有在区块包含他们也独立抽样并获得高度信心的承诺时才会接受并签署区块。然后,区块传播 仅需要在区块生产后传播区块头。

这种设计大大降低了整个网络的计算开销和带宽要求。值得注意的是,虽然没有单个节点必然拥有所有数据,但所有数据都将以聚合形式在整个网络中可用。任何节点或用户始终可以直接从 p2p 网络下载他们想要的任何数据。

步骤 3:SNARK 化非 DA 活动

如上所述,Avail 还包含非 DA 活动,例如余额转移、质押等。如今,这些交易由所有完整节点根据我们正在摆脱的单片结构重新执行。通过从等式中删除此重新执行步骤,我们可以将水平可扩展性愿景变为现实,以实现区块链无法想象的规模,同时保留加密可验证的去中心化。

这是因为:

  • LCs(以及因此所有其他节点)可以通过 DAS 以一种信任最小化的方式断言链的任何分支的 DA 正确性。
  • LCs 依靠验证者共识来了解要遵循哪个顺序,也就是分叉选择规则。
  • LCs 当前无法在不重新执行非 DA 交易的情况下验证其正确性。

因此,我们必须 SNARK 化 所有非 DA 交易,以便 LCs 可以独立验证它们。从理论上讲,有很多方法可以做到这一点。但是,在实践中,需要考虑和解决多个权衡。

下一步是什么?

在本系列的下一篇文章中,我们将研究 LC 的升级,以使 Avail Stack 能够在此规模上支持去中心化应用程序。如果你有兴趣更详细地研究此开发路径的各个方面,无论是研究、开发还是测试,请通过 Discord 与我们联系。

Avail DA Avail 路线图 区块链可扩展性 新闻 传递区块 路线图 可扩展性 愿景

  • 原文链接: blog.availproject.org/sc...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Avail Project
Avail Project
Build with Avail DA, the validity proven data availability layer unifying Web3