问题引发了计算机科学中古老的争论:哪种编程语言最快? 尽管这个问题缺乏明确的答案,但通常有两种方法可以回答它。首先,可以对不同语言和运行时的各种算法及其实现进行基准测试,并编译数据以比较一类算法的性能,如基准游戏所示。或者,第二种方法涉及在各种环境中实现相关程序并直接测量这些实现的性能。 在本节中,我们不关注哪个网络“最快”。相反,我们的目标是根据网络跟踪的计算单位(gas)来比较程序。 以下分析围绕以下观察展开:尽管每个网络都具有新颖的程序、相同程序的不同实现以及不同的使用级别,但用户操作概况的整体模式仍然相当一致。 这使我们能够将它们的使用情况结合在一起并计算函数,平均将一个网络上的Gas单位转换为另一个网络上的Gas单位。我们将尝试近似一个公式,将每个网络上的 Gas 消耗量与以太坊的 Gas 指标进行比较。 我们的结果不太可能是一个好的公式,特别是当网络在用户行为上存在差异时。然而,我们相信它提供了一种比较网络计算能力的新颖方法,为开发人员提供了“风中指”技术来评估其下一次部署的潜在位置。我们希望这项技术能够激励其他人构建更好、更细致的方法。 交易资源消耗(本机单位) 为了比较每个网络之间的交易构成,我们回填了以太坊、zkSync Era 和 Starknet 一周的交易。收集的所有数据均在 9 月 16 日至 9 月 23 日之间,Unix 时间戳介于1694847600和之间1695452400。下面列出了每个网络的块范围。 下表显示了该期间交易的资源消耗数据。gas_used在所有三个网络之间进行分析。重要的是要记住,不同网络之间的 Gas 构造方式根本不同,不能直接比较。 为了创建更准确的交易分配基准,我们排除了原生主网 ETH 转账(占交易量的 32.26%),因为 Starknet 和 zkSync Era 没有原生 ETH 转账,而此类转账仅占以太坊上智能合约流量的一小部分。大多数应用程序专门使用 ERC20 代币,并且 WETH 传输仍然记录在该数据中。 下表显示了未经过滤的以太坊 Gas 使用数据。但是,在后续部分中,我们将从所有以太坊发行版中排除本机传输。 Starknet 分布更加“尖刻”,因为在相同操作的所有执行中,gas 使用量保持一致。在 zkSync 时代,相同交易的 Gas 使用量根据 L1 Gas 价格而变化,从而导致分配更加平滑。对于以太坊来说,这种平滑可能是由于协议种类繁多以及每个 UOP 的实现不同而造成的。 每个网络的分布最集中于低端,这符合大多数交易涉及基本转账、ERC 操作和 DeFi 交易的预期。通过分析每个网络上的交易构成证实了这一点。 跨网络的交易类型的构成非常相似,主要涉及 DEX 上的转账和互换。尽管这些Rollup促进了新型应用程序的经济高效的链上部署,但观察到的大部分活动都是由于以太坊上现有应用程序的更经济实惠的部署而产生的。 这些图表并不表明应用程序使用比以前更多的计算的趋势。 关联Rollup之间的 Gas 使用情况 我们假设这些分布源自相同的“全局”用户意图分布。如果这个假设成立,我们预计柯尔莫哥洛夫-斯米尔诺夫 (KS) 检验为零。然而,网络的资源是以不同的单位来衡量的。我们通过定义资源使用直方图的函数并最小化 KS 测试的输出,使用 KS 应为 0 的期望来标准化单位。实际上,我们将 KS 检验视为要最小化的目标函数。附录 B 详细介绍了我们的方法。 结果是从 zkSync Gas 到以太坊 Gas 以及从 Starknet Gas 到以太坊 Gas 的近似映射。这使我们能够比较网络之间的交易成本,并为处理每秒计算量的比较奠定基础。 在最小化两个直方图之间的方差后,我们获得转换函数的系数输出。在以太坊 KDE 旁边绘制转换后的密度不仅揭示了分布之间的相似性,而且还突出了可以改进拟合的潜在领域。这是数据科学中非常有趣的练习,我们鼓励每个人探索这项研究的存储库并为改进我们的方法做出贡献。 第 4 节——Rollups收入 现在我们已经对第 1 层验证成本进行了分类和了解,计算盈利能力的下一步是检查Rollup收入。与 EIP-1559 之前的以太坊类似,rollups 通过交易费用来支付运营成本,交易费用通常以 ETH 计价。 以太坊上的 Gas 是阻止 DoS 攻击的主要机制。它通过根据操作码对网络的负载按比例分配操作码的成本来实现这一点。像这样的基本操作ADD()很便宜,仅消耗 3 个 Gas,而数据库查找等昂贵的操作可能会消耗 20,000 个 Gas。精心设计的 Gas Schedule 还可以减少最大执行时间的变化。这是因为每个区块都有一个gas limit,并且消耗与执行复杂度密切相关。 这一原则也适用于第 2 层网络,其中证明者和排序者的资源有限。为交易支付的费用必须与执行交易、发送数据可用性承诺、生成证明、验证证明以及 L1 Gas 的未来价格的复杂性成正比。这导致了一个复杂的方程式,确保Rollup用户支付的费用能够覆盖基础设施成本,同时保持较低的费用以改善用户体验。 乐观Rollup通常采用与以太坊主网密切相关的 EVM 实现,从而产生几乎相同的Gas机制。这包括准确复制操作码价格,如Optimism和 Base所示。另一方面,ZK-rollups 必须调整额外的操作,因为所有指令都必须通过 zkProver 运行。特别是在ZK环境下计算常用的哈希算法是计算密集型的,操作码价格也会相应调整。 这些变化具有有趣的设计含义。一个值得注意的例子是映射,它使用哈希从键中检索值。ERC 代币广泛利用映射;然而,与乐观Rollup相比,散列成本的增加使得标准 ERC 令牌在 ZK Rollup上的实现效率较低。Starknet 还使用 ~252 位字(felts)代替 EVM 兼容链中的 256 位字,进一步降低了标准实现的效率。因此,ZK-rollups 和 Optimistic rollups/以太坊主网之间标准和协议的优化实现可能会有很大差异。 StarknetGas计算 Starknet 使用一种与 EVM 不兼容的新型虚拟机。然而,Gas的概念保持不变,费用与消耗的资源成比例分配。每个 Starknet 交易都利用不同的执行资源,例如“步骤”、“内置程序”和“内存”。执行资源有一个加权公式,确保 L2 Gas 对证明生成复杂性和 L1 验证成本进行建模。最后,序列器被输入 L1 Gas价格的加权平均值。 如图 4.1 所示,Starknet 价格与以太坊 Gas 价格高度相关。这种对 Gas 价格的密切跟踪使得 Starknet 交易对于最终用户来说是可预测和可理解的。Starknet 的路线图上包含费用市场,这将导致这些图表出现分歧。虽然费用市场将允许用户指定其优先费用,但 L2 Gas 价格很可能始终具有由 L1 Gas 价格的函数确定的下限。 zkSync Era Gas计算 在 zkSync Era 上,区块基本费用保持非常稳定,在 Plonk 证明者生命周期的大部分时间内设定为 0.25gwei,并每隔几天根据 Boojum 证明者进行调整(目前约为 0.10gwei)。为了抵消 L1 Gas 价格的波动,直接消耗 L1 Gas 的操作码会被赋予动态 Gas 成本。例如,SSTOREzkSync Era 上的 Opcode 使用的 Gas 会更改每个区块,以反映以太坊上的 ETH 费用SSTORE。 算术和逻辑运算仅影响证明生成,并且不会线性增加验证成本。由于这种压缩,这些操作码消耗固定数量的Gas。 图 6.2 显示了动态资源定价。它在左轴上显示了 zkSync Era ERC20 交易的每日 Gas 消耗中位数approve(),并在右轴上绘制了 L1 Gas 价格。在以太坊主网上,approve()交易消耗固定的约 46,000 Gas,而在 zkSync Era 上,每笔approve()交易消耗数十万 Gas。值得注意的是,2023 年 5 月 5 日左右,zkSync Era 上的 ERC20 消耗的 Gas 量approve()超过 300 万。 虽然对于熟悉以太坊 Gas 结构的用户来说,这似乎违反直觉,但这种机制允许 zkSync Era 准确地建模其 L1 验证成本。鉴于某些操作具有可预测的 L1 Gas 成本,Era 区块链可以根据 L1 价格为每个区块设置操作码价格。有关 zkSync 费用机制的更多信息,请阅读他们的文档。 Layer 2 费用如何花费 用户支付的费用代表Rollup净收入。在图 6.3 中,我们绘制了这些费用支出的百分比明细(不包括中心化的链外成本)。Starknet 费用偶尔会超过 100%,这不是错误,而是表明 Starknet 有一天无利可图。 比较 zkSync Era 和 Starknet,很明显 zkSync 从收取的净费用中产生的利润比例更高。然而,他们的费用分配也截然不同。在 Starknet 上,大约 10% 的费用用于证明成本,而 zkSync 大约 25% 的费用用于证明成本。 ? 上述数据表明,数据可用性(DA)成本的下降将对 Starknet 和 zkSync Era 产生不成比例的影响。由于 Starknet 上花费在 DA 上的成本百分比远高于 zkSync Era,因此我们预计 EIP-4844 的费用削减对 Starknet 的影响将比 zkSync Era 的影响更大。 虽然 zkSync Era 目前拥有更好的整体压缩比,但上述数据和图 2.4 所示的固定成本让我们相信,在 EIP-4844 上线后,这种情况可能会发生变化。 Rollups盈利 现在我们对Rollup费用是如何产生的有了更好的了解,我们计划回填 Starknet 和 zkSync Era 的费用数据。我们可以通过产生的 L2 费用并减去每批的 L1 验证成本来估计Rollup利润(不考虑链外成本)。 Rollup的盈利能力仍然是一个悬而未决的问题。在接下来的部分中,我们将假设它们确实有利可图。此外,我们呼吁Rollup运营商发布有关其运营成本的数据。这些信息对于他们的社区至关重要,因为网络的寿命、去中心化程度以及设计优先级部分取决于运营盈利能力。请注意,计算证明的成本根据所选的证明系统的不同而有很大差异,并且包含此数据可能会从根本上改变下面的观察结果。考虑到这一点,我们敦促在其他情况下引用此数据时务必谨慎。 应用于利润数据的回归线说明了每日和累积盈利能力的趋势,这些回归的系数在图例中详细说明。Starknet 的日均盈利能力几乎保持不变,而 zkSync Era 的日盈利能力呈下降趋势。我们可以根据累积利润回归系数来估计每日收入:对于 Starknet,它为每天 11.94 ETH,对于 zkSync Era,为每天 36.79 ETH。 在右下角的子图中,我们绘制了每笔交易的利润。简单观察发现,Starknet 的利润差异明显较高,而 zkSync Era 则保持稳定的利润,平均每笔 L2 交易约 50,000 Gwei。我们假设 zkSync Era 的证明时间和 L2 费用结构可以更好地对 L1 成本进行建模,从而为用户带来更均匀的成本分配。然而,我们注意到这两个网络的费用设计都在不断发展,此时批评任何一个网络可能还为时过早。 验证者盈利能力 ZK-rollups 使用证明系统而不是 M of N 共识来保证完整性,通常需要 N 中的 1 诚实才能从有效性证明中受益。在撰写本文时,正在讨论和开发许多设计,以确保围绕Rollup的其他属性(例如活跃性和审查制度阻力)提供可接受的保证。无论使用何种机制,确定Rollup或任何网络的“足够”数量的验证器以确保所有属性得到保证仍然不清楚。尽管如此,我们可以尝试估计在现有Rollup盈利能力的情况下可以支持的验证器数量的上限。 ⚠️ 这种分析应该谨慎对待。Rollup 的盈利能力受到质疑,空投狩猎季节(在撰写本文时)可能会增加交易量。鉴于这些网络仍处于早期阶段并正在经历显着增长,目前尚不清楚当前的利润率未来是否会保持、增长或收缩。 首先我们计算一下Starknet和zkSync的日收益,分别为11.94 ETH和36.79 ETH。然后,假设验证者按比例获得奖励,我们计算每个人的年度奖励。 做一些粗略的计算,假设 ETH 价格为 2000 美元,有 100 个验证者,每个 Starknet 验证者每月的收入约为 7,200 美元,而 zkSync Era 验证者每月的收入约为 22,000 美元。这足以通过 EC2 租用 2-3TB RAM 和 100 多个 CPU 核心。因此,对于 Starknet 和 zkSync 时代来说,至少 100 个验证器的网络规模可能是可持续的。 让我们从**(诚然是慷慨的)假设开始,即以太坊的每个验证者收入是验证者价格的良好指标。以太坊验证者每年预计获得约 1.4 ETH 的收入,不包括 MEV 利润。下表尝试量化每个网络可以拥有的验证器数量,如果它为每个验证器分配与以太坊相同的收入。值得注意的是,许多网络正在考虑运营数百个验证器,这可以显着提高每个验证器的盈利能力。 虽然这些数字并未考虑到 Layer 1 MEV 收入或运营 Rollup 验证器的较高硬件成本,但它们清楚地表明 Rollup 正在产生(在撰写本文时)足够的利润来吸引大量运营商,与当前的情况保持一致Rollups 的野心。随着验证者、用户和交易数量的变化,这种计算可能会发生变化。然而,可以合理地预期,在当前情况下拥有数百个验证者是可能且合适的。我们再次强调当前Rollup运营商公布其服务器和证明者成本将带来的巨大价值。这种透明度将有助于验证者了解操作要求并加快去中心化的步伐。 第 5 节 — 分析 ZK-rollups 之外的 DA 成本 在查看了 zkSync Era 和 Starknet 之间的验证成本细分后,很明显数据可用性是目前有效性Rollup的主要成本。呼叫数据的每个非零字节花费 16 个 Gas(零字节花费 4 个 Gas),每天的Rollup发布量从几十到数百兆字节不等。主要Rollup的每日通话数据消耗总量经常超过 600 MB,有时达到超过 1 GB 的峰值。这种广泛的数据发布会导致 L1 膨胀,并增加 L2 运营的成本。在下一节中,我们将分析 EIP-4844 对Rollup成本的影响。 EIP — 4844 blob 子定价 每个 blob 消耗固定数量的blob_gas,每个块的目标为 3 个 blob (0.375MB),最多 6 个 blob (0.75MB)。Blob Gas费使用以下公式计算blob_fee_wei = blob_gas * blob_gas_fee。 对于每个区块,都有以下费用机制。如果连续多个块消耗的数据超过目标 Blob 数量,则 Blob Gas 价格将呈指数级上涨。该UPDATE_FRACTION参数设置为blob_gas_price两个块之间的最大增量为 12.5%。这excess_blob_gas将是一个跟踪Gas价格的累加器。 目前,每 128KB 的通话数据Rollup会产生约 0.2 至 0.6 ETH 的成本。以每个区块 3 个 Blob 为目标,以太坊的 DA 容量将约为每天 2.7GB,几乎是 2024 年 1 月观察到的峰值 DA 负载的两倍。由于 Blob 供应是固定的,因此 Blob Gas 的价格由需求决定。在 Dencun 硬分叉后的最初几周内,blob Gas可以忽略不计,直到 EIP-4844 的使用加速并且 2.7GB 供应得到充分利用。在此期间,rollup DA 的成本将比当前值低 26 个数量级。 下图显示了每次Rollup的主网调用数据每日平均费用。Calldata 帖子被分成 128Kb 块(blob 的大小),以近似 blob Gas 价格的上限。鉴于目前每 128kb 的费用约为 0.075ETH,这相当于大约 60 gwei 的 Blob Gas 价格。我们假设,如果 Blob Gas 价格迅速达到这些水平,Rollup可能会决定继续发布调用数据而不是 Blob,特别是考虑到永久持久性而不是两周的生命周期。 图 5.2 中提供的数据中的一个意外观察结果是每 kB 费用的变化。即使是基于相同技术堆栈的 Base 和 Optimism 也有不同的费用。 有两个因素可能导致这种差异:0x00字节数和波动的Gas价格。calldata 的非零字节使用 16 个 Gas,而零字节仅使用 4 个 Gas。由于零字节和非零字节都被考虑在内,如果网络 A 发送带有许多零的非常稀疏的 DA 承诺,而网络 B 发送带有很少零的非常密集的 DA 承诺,则与网络 B 相比,网络 A 的每 kB Gas 消耗量较低。 可能影响这种情况的另一个因素是需求定价。如果网络 A 制定了仅在前两个区块使用的 Gas 量少于目标之后才发送承诺的政策,那么它最终可能会避免高峰流量时间并平均支付较低的费用。这种策略会降低发展议程承诺的一致性,我们怀疑这是造成这种变化的根本原因。 虽然密集数据集和稀疏数据集之间的 Gas 成本差异可能是变异性背后的主要因素,但深入研究这一分析可能会很有趣。 结语 检查验证成本可以为Rollup操作提供有价值的见解。虽然压缩和扩展是经常讨论的话题,但评估已实现的成本和吞吐量可以切实洞察 Starknet 和 zkSync Era 的效率。应对所有Rollup执行此练习。 由于两个网络上的用户操作使用情况相似,我们的分析是有效的。只要这种情况持续存在,每秒 UOPS 就可以作为比较网络的可靠指标。然而,这引出了一个问题:将来Rollup会执行根本不同类型的计算吗?如果Rollup开始专业化,UOPS/秒将逐渐失去准确性。比较每秒的执行资源将提供更准确的指标。 此外,我们已经采取了初步步骤,通过创建一个在执行资源之间进行转换的函数来构建公平比较。我们希望我们的努力能够鼓励更多的调查使用类似的技术进行公平比较。我们相信,一旦建立了用于比较跨域执行资源的基线指标,它就可以取代每秒事务数(TPS)作为标准指标。 我们对当前 L1 支出和 L2 收入进行了高级分析,事实证明,这对于识别趋势和模式来说是一项有价值的练习。但是,它没有提供有关有效性Rollup的盈利能力的见解。我们再次强调公共数据的价值。如果 Rollups 公开其中心化基础设施成本和架构概述,将使研究人员、开发人员和运营商能够更清楚地了解不同 Rollups 的运营需求,从而加快去中心化的步伐。 在目前的状态下,EIP-4844 blob 将在信标链上仅保留两周。尽管这对于大多数情况来说可能已经足够,但我们怀疑某些Rollup可能旨在延长其数据可用性 (DA) 承诺的生命周期,从而切换到替代解决方案。而且,EIP-4844的供应量是固定的,随着blob需求的增加,其价格将持续上涨。相比之下,在专用 DA 网络上,供应可以根据不断增长的需求而扩大,从而提供具有长期价格优势的专用 DA 解决方案。EIP-4844 是否会成为Rollup DA 的标准,或者专用网络是否会随着时间的推移而盛行,还有待观察。 来源:金色财经lg...