增加 Avail 的区块大小时的主要矛盾点,可以描述为承诺生成与证明生成和验证。
撰文:Avail
编译:Modular 101
Avail 测试网现已上线。随着用户开始将 Avail 融入链的设计中,一个常见问题是,「Avail 能处理多少交易?」这是一系列三篇文章的第二篇,将讨论 Avail 当前的性能,以及其在近期和长期内的扩展能力。你可以在《DA 的可扩展性 :Avail 目前的状态》中阅读第一部分。
在本系列的第一部分中,我们探讨了 Avail 目前的运作方式。在第二部分中,我们将清楚地表明,我们可以通过增加区块大小来迅速扩展。我们将详细说明这是如何实现的,以及为什么可以这样做。我们将介绍让 Avail 扩展超越简单地增加区块大小的概念。我们还将详细介绍在 Avail 区块生成和验证过程中,哪里需要进行干预以提高吞吐量。
好了,我们先来探索扩展 Avail 的最直接方式:增加区块大小。
当前的实验结果
在尝试 Avail 的不同区块大小时,我们了解到,Avail 数据矩阵中的行和列必须区别对待。
在 Avail 区块中:
- 行数 = 构建的多项式承诺数量
- 列数 = 多项式的度数(构建每个单个承诺的复杂性)
在轻客户端可以获得数据可用性保证之前,必须完成三件事:
- 必须构建承诺 - 正如本系列第一部分提到的,承诺由区块生产者生成,并使用 Avail 矩阵中的整行数据构建。
- 必须生成证明 - 对 Avail 数据矩阵中的每个单元格生成证明。尽管单个证明生成迅速,但我们必须注意增加行和列对需要生成的证明数量的影响。
- 必须验证证明 - 在 Avail 当前的模型中,轻客户端下载单元格的值、单元格的证明,并将它们与该单元格行的承诺中包含的信息进行比较,以验证他们下载了匹配的数据。
问题是,构建承诺所需的时间与处理证明所需的时间之间存在持续的权衡。随着 Avail 的区块大小增加,这一点尤其突出。
增加 Avail 的区块大小
增加 Avail 的区块大小时的主要矛盾点,可以描述为承诺生成(由验证者执行)与证明生成和验证(分别由全节点和轻客户端执行)。
区块数据矩阵中包含的行越多,区块生成时间越长。这是因为更多的行意味着出块者必须创建更多的承诺(可以将承诺视为更高级的状态根)。
相反,列越多,构建和验证证明所需的时间越长,因为我们正在处理更高度数的多项式。
例如,目前 Avail 有一个 256x256 的矩阵(约 6.5 万个单元格)。为了使区块大小翻倍,我们可以:
- 将列加倍,使其成为 256x512
- 将行加倍,使其成为 512x256
- 选择介于两者之间的某种比例
区块大小加倍应始终导致约 13.1 万个单元格,是我们现有的 6.5 万的两倍。
记住这一点,我们可以将 Avail 区块的大小从当前的 2MB 增加到 32MB。这在不久的将来是相当可行的。例如,一个 1024x1024 (32MB)的 Avail 区块需要 4 秒来生成承诺,4 毫秒来构建证明,以及 620 毫秒来验证证明。这些数字表明,一个 32MB 的区块可以在当前的 20 秒区块限制内生成承诺、构建所有证明并进行验证。
而且,还有足够的计算余地,可以将区块大小增加到 32MB 甚至更大。一个 128MB、尺寸为 64x65536 的 Avail 区块需要 7.25 秒来生成承诺,174 毫秒来构建证明,以及 55 毫秒来验证证明。
这为我们提供了一个现实的计算极限,即在 20 秒内,出块者生成承诺和全节点生成单元格证明。
尽管如此,当区块尺寸达到约 128MB 时,整个网络开始遇到带宽限制。用典型的互联网速度传播这样尺寸的区块,开始呈现出真正的挑战。这是所有数据可用性层都将面临的常见扩展瓶颈。
下面的数字展示了我们对 2MB、32MB 和 128MB 不同行列比例的区块大小的实验结果。您可以在这里找到我们的更多测试结果:https://github.com/availproject/avail/pull/46。
Avail 的设计方式如何保证低价格
在本系列文章中,我们关注了我们可以实现的技术方法,来让 Avail 网络每秒能够处理尽可能多的交易。在任何基于区块链的系统中,考虑激励的可扩展性也同样重要。
随着网络的增长,验证者将承担扩展的成本。如果 Avail 变得足够去中心化,验证者的利益将独立于 Avail 的利益。
请放心,随着 Avail 更加去中心化和持续增长,验证者将被激励去保持价格低廉。当达到每个吞吐量极限时,通过寻租验证者,在有足够增长时,有增加 gas 费的可能性。
然而,Avail 的设计促进了交易吞吐量的持续增长(和交易成本可负担),即使在一个完全去中心化的系统中也是如此。
如果在增加区块大小的同时保持每笔交易的成本不变,验证者最终将有机会赚取更多的总体收入。验证者可以接触到越来越多的用户群。我们不必像处理执行的区块链那样限制 Avail 可以支持的用户数量。计算约束不再是增长的限制因素。这意味着只要价格保持低廉,交易总量就会继续增加。
随着网络的增长,验证者能够捕获价值,还可以利用规模经济。
因此,我们用 Avail 创建的「市场」是一个能够为验证者网络提供持续增长,同时为用户提供持续低成本交易的市场。
编辑:web3528btc 来源:加密钱包代币