首页 > 技术 > DragonflyCapital:如何衡量一条区块链的性能?
路安  

DragonflyCapital:如何衡量一条区块链的性能?

摘要:作者:GM 与 Haseeb Qureshi,Dragonfly Capital原标题:《The AMM Test: A No BS Look at L1 Performance》编译:DeFi之道多

作者:GM 与 Haseeb Qureshi,Dragonfly Capital

原标题:《The AMM Test: A No BS Look at L1 Performance》

编译:DeFi之道

多链现在已经成为现实。以太坊缺乏可扩展性,导致大规模迁移到新一代 L1。这些 L 大部分用于1 EVM(以太坊虚拟机)使它们与以太坊钱包和开发工具兼容。

但是 Solana 它的堆栈已经从头开始完全重建。Solana 声称是现有最快的区块链。因此,它导致了一个问题:Solana 比 EVM 链快多少?

SolanaL 区块链的 TVL 生长,图片来源:The Block

首先,我们需要就如何衡量性能达成一致。自古以来,新的区块链就一直声称它们的性能比以太坊高多少。这是一句老话。你会看到很多数字和图表的匆忙组合,比较自我报告 TPS(每秒交易量)。不幸的是,这些 TPS 数字通常来自他们自己的营销材料,几乎都是废话。

L 本身发布的大多数基准测试都测量了简单的价值转移 TPS——也就是说,将货币从一个账户转移到另一个账户。简单的转账非常便宜,所以它会产生巨大的数字,每个人都喜欢巨大的数字。但事实上,区块链在这种传输中并没有遇到瓶颈,这种活动也不能反映现实世界的使用模式。

此外,许多数字是在开发网络或测试网络上生成的,而不是在主网络上生成的。我们不在乎某人的软件能抽象地做什么:我们关心当前主网络的可能性。

事实上,对 没有统一的方法TPS 进行基准测试。这种情况经常发生在基准测试中。这是一个混乱而令人担忧的领域,充满了误导性营销、过度拟合/应试教学和作弊。

好的。所以我们应该如何实际测量 L1 性能呢?

这是一个棘手的问题,因为性能有多个维度。

首先,性能一直是分散的妥协。与主网络环境相比,高度集中的测试网络和开发网络可以产生不可思议的数字。许多主网络在分散化方面偷工减料,这挤压了额外的性能。

然而,假设我们想忽视分散化,只关注性能。众所周知,由于大多数新链的数据可见性较差,因此很难对区块链的性能进行基准测试。

7 在过去的7年里,以太坊的性能得到了高度的研究和理解。但当你开始探索更新链时,它们中的大多数工具要少得多,可观察性差,而且还在发展中。当你阅读这篇文章时,这些基准可能已经过时了。

此外,基准测试总是随意的,充满了陷阱。你能做的最好的事情就是选择一个有价值的基准来衡量,然后尽可能仔细地确定你的结果。这就是我们将在这里尝试的。

但是性能是什么意思呢? 性能有两个方面:吞吐量和延迟。

你可以可视化区块链的性能,比如流过管道的水。交易是水——你希望大量的交易同时流过管道。但是管道的长度决定了它的延迟——如果一个交易需要很长时间才能确认,即使很多交易可以一次确认,也不理想。

Solana延迟可细分为块时间(块间隔时间)和最终确定时间(块不会回滚时间)。很容易衡量块的时间和完成时间。

但要实际测量吞吐量,你需要一个标准的测量单位。吞吐量是多少?

我们没有使用代币转移,而是检查了以太坊中最昂贵的gas产品之一:Uniswap V并将其变成一个非常简单的基准。假如你用 Uniswap V2 风格的交易填满了整个块,每秒可以清算多少笔交易?

Solana我们选择这个基准是因为 1)它简单易测,2)每个区块链都有一个 Uniswap V2 风格的 AMM 在生产中,3)是智能合约常用模式的典型。

大部分都有gas模型区块链,这个粗略的练习应该很简单。首先,找到区块gas限制和出块时间,推导出链gas/sec吞吐量;接下来,找个 Uniswap v2 风格的 AMM 并选择一笔 SwapETHforTokens 等效交易;最后,将第一个数字除以第二个数字,如果它的块充满相同的 AMM 交易,它会达到多少 tx/sec。

注:这不是一个完美的基准!它是特殊的,它不考虑可并行交易(因为 Uniswap 在同一池中的交易必须是线性的),并不代表每种使用模式。但是,使用智能合同总是分配幂律,最常用 Dapps 往往是 AMM,因此,在一组基准测试中,我们认为这有助于全面了解性能。

所以,不要迟到,让我们顺着列表往下看。

SolanaUniswap v2 每秒交易量:平均 9.19,最大 18.38(由于 EIP-1559)

平均出块时间:13.2 秒(PoW,因此,块是在Poisson过程中随机挖掘)

最终确定时间:66 秒(约,ETH 块不是真正的最终确定)

假设和方法: 1500万 gas 目标下,以太坊和 EIP-当1559 达到平衡时,以太坊可以每秒 9.19 次交易; 3000万 gas 限制下,每秒 18.38 次交易(但如果保持在这里,成本会翻倍)。我们会这样做的swapExactETHForTokens 交易用作具有代表性的链上一跳交易。假设区块生产者可以用 Uniswap 交易完美填充 1500万 gas 限制块,每笔交易费用 123,658 gas,这意味着我们可以 15M/123,658 = ~121.3 将一个交换放入一个块中。假设每 13个区块.2 秒到一次,这意味着以太坊每秒处理 121.3/13.2s = ~9.19 Uniswap v2 swap。

我们将对列表中的其他 EVM 链使用类似的计算。

(注:我们忽略了这种方法Rollup,因为所有的智能合同 L可添加1 Rollup。)

SolanaUbeswap 每秒交易次数:平均 24.93,最大 49.86(由于 EIP-1559)

平均块时间:5 秒

最终确定时间:5 秒(Celo 使用 PBFT 风格协议可立即完成块)

假设:本次swap交易代表交易,1000万 gas 目标和 2000万 gas 限制。

SolanaQuickswap每秒交易次数:平均 47.67,最大 95.33(由于 EIP-1559)

平均出块时间:2.5 秒

最终确定时间:Polygon 有两个最终概念

1.概率:这类似于大多数以太坊风格的区块链,其中规范链取决于最多的工作(最重的链)Polygon 的案例,Bor 层的最终确定性取决于困难的分叉。

2. 可以证明这类似于 Tendermint/IBFT,绝对大多数标准链签名。通过检查点发生在 Heimdall 层(Polygon 验证器管理与状态同步层)。以太坊提交了这些检查点。

可发生重组和分叉Bor 层,但不能发生在 Heimdall。检查点是 Bor 链状快照。一旦一个块包含在提交的检查点中,除非 >=1/3 验证器集不诚实)。检查点每 25 提交一次。

假设:此swap交易代表交易,1500万 gas 目标和 3000万 gas 限制。

SolanaTrader Joe 每秒交易:平均 31.但由于其弹性出块时间,在最大吞吐量下,Avalanche C 可以处理足够的链条gas每秒 175.68 次交易。然而,将吞吐量保持在这个水平将导致成本翻倍。

平均块时间:平均 2 秒(Avalanche 是一种具有弹性的无领导协议:只要支付足够的最低费用,就可以随时生成块。Avalanche C 在 1 秒内产生了 链>10 块时期.)

最终确定时间:出块后 1左右.75 秒

假设:此swap交易代表交易,目前 800万gas限制。

Avalanche 由于其区块生产机制与以太坊和 相比,相对难以比较PoS 链条如此不同Avalanche,它以最大吞吐量执行的操作与以平均吞吐量执行的操作有很大的不同。(以太坊已经实现了 EIP-1559 链的平均吞吐量是其平均吞吐量的 2 倍。

SolanaPancakeSwap 每秒交易次数:194.60(币安智能链不使用 EIP-所以这是一个固定数字)

平均块时间:3 秒

最终确定时间:75 秒

假设:这个swap8000万 代表交易gas限制。

这结束了 EVM 区块链基准测试-以太坊为模型的虚拟机区块链。因为所有 EVM 链条使用相同的 gas 模型,我们可以 gas/sec 被视为吞吐量的基准。实心条表示目标吞吐量,空心条表示限制。

SolanaEVM链的Gas/sec

你可以想象你以绝对极限运行 EVM,这种情况是币安智能链(BSC)(现已更名BNB Chain)发生你想从智能合同中获得更高的性能,你必须完全远离 EVM。

SolanaOrca 每秒交易次数:273.34

块时间:590 毫秒

最终确定时间:13 秒(Solana 也发出了更快的乐观确认,但这些只能抵抗 4.7% 损坏。大部分 Dapp 都接受这个阈值。

这是我们计算这个数字的方法。这是一种愚蠢的方法。

我们首先想做 Solana 找到等效的gas limit。您在区块浏览器上找不到这样的数字。我们先问了一些我们认识的 Solana 开发人员,但似乎没有人确切知道是否有这样的限制。于是我们卷起袖子踏上了旅程。

先了解 Solana 确实有类似之处gas称为计算单位 的东西(CU)。大多数人似乎人的对话来看,大多数人似乎认为 Solana 验证是在区块时间内尽可能多地打包交易,但实际限制是每个区块只能包含4800 CU。

其次, 数量有限CU 可以在单个区块中写入单个账户。这种限制是为了防止过多的交易被写入同一个账户,从而减少一个区块的并行性——尽管这是在大规模拥堵期间发生的,比如流行的 IDO 期间,当所有交易都在竞争使用单个合同时。

每个账户的限制是 1200万。假如你遵循这个 1200万账户 CU 限制,主网上 590 毫秒的区块时间,每次 Orca swap的 74,408 CU 成本,我们得出的理论限制是 273.34 swap/秒。

这个数字似乎低于预期!为了让我们相信这个数字,我们希望通过经验来验证这种方法。

我们决定直接对 ,以确认我们正确测量它的性能Solana 进行垃圾邮件攻击测试。由于明显的原因,我们不想向主网发送垃圾邮件,所以我们针对 Solana 开发网。

请注意,Solana 的开发网运行在较小的集群上,因此比主网具有更快的出块时间(380 毫秒与主网的 590 毫秒),与主网相比,这将提高其性能。给定 380 毫秒的区块时间,我们应该期望开发网每秒清算 424.40 次swap。

我们在网上开发 Orca SOL-ORCA 交易发送垃圾邮件,以查看我们能在单个区块中进行多少 Orca swap,然后推断为最大吞吐量。

Solana在开发网块高度106784857 中,我们试图实现 184 次Orca swap

我们试图达到的最高数字是单个块中的 184 次swap。假设区块时间为 380 毫秒,在开发网络上实现 484.21 swap/秒。(请注意,块的时间不准确,所以这些数字有一些偏差。如果你在我们交易最多的 3 块中获得平均值,它看起来更像每秒 381 次swap,这似乎更合理)。

这似乎证明了我们的分析方法是正确的(约 10-15% 的增量),因此这意味着 Solana 主网可能在 AMM 上行大约 273 次swap/秒。

当然,这只是一个测试操作,所以这是我们的代码 - 我们鼓励您使用它,并与我们分享您的结果。

如果没有我们,我们在这里掩盖了很多细节Blockdaemon 朋友的帮助,这一切都是不可能的。如果您想了解实施此操作所需的详细信息(以及更深入地了解 Solana 内部结构),请查看 2 部分,我们将介绍技术细节。

你可能会看到这一切并想知道:但我认为 Solana 通常可以执行 3000 TPS?

区块浏览器测量 Solana 的 TPS 的方式可能会产生误导——它将内部共识视为交易,这是其他区块链所没有的。

Solana 大约80% 的吞吐量是共识。减去这些,你还剩下大约600 TPS,大部分都很便宜 Serum 交易。只要你接触到足够多的其他合同,Solana 在生产中也能达到更高的性能。

SolanaAMM 测试:Uniswap v2 风格的 swaps/秒 性能

那么这一切的结果是什么呢?

首先,不要把这当作福音。自己算。

其次,请记住,所有这些区块链都是移动目标。它们不断优化,技术发展迅速,任何基准都是即时快照。我们希望看到更多的独立组织创建标准化基准,但这是我们最好的尝试。

第三,请注意,这些区块链之间的性能差异并没有宣传的那么大。以太坊和最佳链之间的性能差异约为 10-25 倍,不是 100倍或 1000倍。没有人能线性化 VM 事务性能如此出色。这将需要更多的工作和优化。

第四,如果你想要真正的高性能,你必须放弃 EVM。我们在这里只对 Solana 进行了基准测试,但还有其他非 EVM L1,例如 NEAR 和 Terra,它们还实现了更高的性能。

但像 Solana 就像,他们不能围着 EVM 受益于工具和生态系统。(尽管 NEAR 拥有与 EVM 兼容的 Aurora 分片等 L尝试开发类似的虚拟化 EVM 实例。)

第五,用户现在对非以太坊 L1 的性能考虑并不那么敏感。他们更关心生态系统的整体实力、良好的用户体验和低成本。这些区块链目前还没有在性能上竞争,因为它们实际上没有用于容量,除非在罕见的高峰期,如 IDO 或市场崩溃。

我们预计所有的主要 L1 的性能会随着时间的推移而提高,因为开发团队会花越来越多的时间来调整典型使用模式的性能。毫不奇怪,在早期,这些区块链中的每一个都没有得到很好的优化!

但总的来说,我的印象是以太坊是智能合约操作系统 MS-DOS。但是现在的区块链时代把我们带入了 Windows 95 时代。

SolanaMS-DOS(左)到 Windows 95(右)

下一代区块链代表了显著的进步,但实现主流还有很长的路要走。

免责声明
世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。