多链现在已经成为现实。以太坊缺乏可扩展性,导致大规模迁移到新一代L1。这些L1大多使用EVM(以太坊虚拟机)与以太坊钱包和开发工具兼容。
但是Solana从一开始就完全重建了它的堆栈。Solana声称是现有最快的区块链。所以它导致了一个问题:Solana比EVM链快多少?
Solanal1区块链TVL增长,
图片来源:TheBlock。
首先,我们需要就如何衡量性能达成一致。自古以来,新区块链就声称其性能远高于以太坊。这是一个常见的老调。你会看到很多数字和匆忙的组合图来比较TPS(每秒的交易量)。不幸的是,这些TPS数字通常来自他们自己的营销材料,几乎都是胡说八道。
L1本身发布的大多数基准测试都测量了简单价值转移的TPS,并将货币从一个账户转移到另一个账户。简单的转移非常便宜,所以它会产生一个巨大的数字,每个人都喜欢一个巨大的数字。但事实上,区块链在这种传输中并没有遇到瓶颈,这反映了现实世界的使用模式。
此外,许多数字是在开发或测试网络而不是主网络上生成的。我们不能抽象地做任何事情:我们关心当前主网络的可能性。
事实上,TPS基准测试没有统一的方法。这种情况经常发生在基准测试中。这是一个混乱而令人担忧的领域,充满误导性营销,过度拟合/考试导向教学和作弊。
那么,我们应该如何实际测量L1性能呢?
这是一个棘手的问题,因为性能有多个维度。
首先,性能总是一种分散的妥协。与主网络环境相比,高度集中的测试和开发可以产生难以置信的数字。许多主网络在分散方面偷工减料,挤压了额外的性能。
然而,假设我们想忽视分散,只关注性能。众所周知,由于大多数新链的数据可见性较差,基准测试区块链的性能非常困难。
在过去的七年里,以太坊的性能得到了高度的研究和理解。但当你开始探索更新链时,它们中的大多数工具要少得多,观察能力差,而且仍在发展中。当你读到这篇文章时,这些基准可能已经过时了。
此外,基准测试总是随机的,充满了陷阱。你能做的最好的事情就是选择一个有价值的基准来衡量,然后尽可能仔细地确定你的结果。这就是我们将在这里尝试的。
但是性能是什么意思呢?性能有两个方面:吞吐量和延迟。
你可以看到区块链的性能,比如流过管道的水。交易是水——你想同时通过管道进行大量交易。但是管道的长度决定了它的延迟——如果交易需要很长时间来确认,即使很多交易可以一次确认,也不理想。
Solana延迟可细分为块时间(块间隔)和最终确定时间(块不会回滚)。测量块的时间和完成时间很容易。
但要实际测量吞吐量,你需要一个标准的测量单位。吞吐量是多少?
我们没有使用代币转移,而是检查了以太坊最昂贵的gas产品之一:Uniswapv2,并将其变成了一个非常简单的基准。如果你用Uniswapv2风格的交易填满整个块,你每秒能清算多少笔交易?
Solana选择这个基准是因为1)简单易测。2)每个区块链都有UniswapV2风格的AMM,3)是智能合约常用模式的典型例子。
对于大多数带有gas模型的区块链来说,这种粗略的练习应该非常简单。首先,找到区块gas限制和块时间,推导出链的gas/sec吞吐量;接下来,找到Uniswapv2风格的AMM,选择Swapethfortokens等效交易;最后,除以第二个数字,得出如果区块充满相同的AMM交易,会达到多少tx/sec。
注:这不是一个完美的基准!这很特别。它不考虑并行交易(因为Uniswap在同一池中的交易必须是线性的)。它不能代表每种使用模式。然而,智能合同的使用总是密集的,最常用的Daps通常是AMM。因此,在一组基准测试中,我们认为这有助于充分理解性能。
所以,不要迟到,让我们沿着列表往下看。
Solanauniswapv2每秒交易量:平均9.19,最大18.38。
平均出块时间:13.2秒(Pow,在Poison过程中随机挖块)
最终确定时间:66秒(约,ETH区块不是真正的最终确定)
假设和方法:在1500万gas的目标下,当以太坊与EIP-1559达到平衡时,以太坊每秒可以进行9.19笔交易;在3000万gas的限制下,每秒可以实现18.38笔交易(但如果保持在这里,成本会翻倍)。我们以swapexacthfortokens交易为代表链上的跳跃交易。假设区块制造商可以niswap完美填写1500万gas限制块,每笔交易需要123.658gas,这意味着我们可以将15m/123.658=~121.3交换到一个块。假设块每13.2秒到达一次,这意味着以太坊每秒处理121.3/13.2s=~9uniswapv2swap。
列表中类似计算其他EVM链。
(注:我们忽略了Rollup,因为所有智能合约L1都可以添加Rollup。
Solanaubeswap每秒交易次数:平均24.93,最大49.86。
平均块时间:5秒。
最终确定时间:5秒(Celo可立即完成PBFT风格协议)
假设:Swap交易代表交易,1000万gas目标和2000万gas限制。
SolanaQuickswap每秒交易次数:平均47.67,最大95.33。
平均出块时间:2.5秒。
最终确定时间:Polygon上有两个最终概念。
1.概率:这类似于大多数以太坊风格的区块链,标准链取决于最重的工作(最重的链)。在Polygon的情况下,Bor层(即区块生产者层)的最终确定性取决于困难的分叉。
2.可以证明,这类似于Tendermint/IBFT,绝对是标准链上的大部分签名。这发生在Heimdall层(Polygon的验证器管理和状态同步层)。这些检查点提交给以太坊。
重组和分叉可以发生在bor层,但不能发生在heimdall。检查点是bor链状态的快照。一旦包含在提交的检查点中,就不能重新组织(除非>=1/3的验证器不诚实)。检查点每25分钟提交一次。
假设:此swap交易代表交易,1500万gas目标和3000万gas限制。
SolanatraderJoe每秒交易:平均31.65次,但Avalanchec链可以处理足够的gas,每秒175.68次。
平均块时间:平均2秒(Avalanche没有领导协议,弹性块时间:只要你付出足够的最低成本,你就可以随时生成块。Avalanchec链在1秒内生成>10块。
最终确定时间:出块后约1.75秒。
假设:此swap交易代表交易,目前有800万gas限制。
Avalanche相对难以比较,因为它的区块生产机制与以太坊和POS链非常不同。Avalanche的最大吞吐量与以平均吞吐量非常不同。(EIP-1559链的平均吞吐量是以太坊的两倍。
SolanapancakeSwap每秒交易次数:194.60(币安智能链不使用EIP-1559,所以是固定数字)
平均块时间:3秒。
最终确定时间:75秒。
假设:此swap交易代表交易,限制8000万gas。
这结束了EVM区块链的基准测试——以太坊为模型的虚拟机区块链。由于所有EVM链都使用相同的gas模型,我们可以将gas/sec视为吞吐量的基准。实心条表示目标吞吐量,空心条表示限制。
Gas/secsolanaEVM链。
你可以想象你以绝对极限运行EVM。这种情况发生在货币安全智能链(BSC)(现更名为BNBChain)。如果你想从智能合同中获得更高的性能,你必须完全远离EVM。
每秒交易次数:273.34。
时间:590毫秒。
最终确定时间:13秒(Solana也发出了更快乐观的确认,但这些只能抵抗约4.7%的损坏。大多数应用程序都接受这个阈值。
这是我们计算这个数字的方法。这是一种愚蠢的方法。
首先,我们想为Solana找到一个等效的gaslimit。你在浏览器上找不到这样的数字。我们首先问了一些我们认识的Solana开发人员,但似乎没有人知道是否有这样的限制。所以我们卷起袖子,踏上旅程,找到答案。
首先,我们了解到Solana确实有类似gas的东西,叫做计算单位(CU)。从我们与验证人的对话来看,大多数人似乎认为Solana验证是在一段时间内尽可能多的包装交易,但实际限制是每个块只能包含4800万个CU。
其次,只有有限数量的CU才能在单个块中写入单个账户。这一限制是为了防止过多的交易被写入同一个账户,从而减少一个块的并行性——尽管这发生在大规模拥堵期间,例如,当所有交易在流行IDO期间竞争使用单个合同时。
每个账户的限制是1200万。如果我们遵循00万账户CU的限制,我们的理论限制是273.34swap/秒,主网590区块时间,每个orcaswap7408cu的成本。
这个数字似乎低于预期!为了让我们相信这个数字,我们希望通过经验来验证它。
为了确认我们正确测量了它的性能,我们决定直接测试Solana的垃圾邮件攻击。由于明显的原因,我们不想向主网络发送垃圾邮件,所以我们开发了Solana网络。
请注意,Solana的开发网络在较小的集群中运行,比主网快(380380毫秒和590毫秒),这将提高其性能。给380毫秒,我们应该期待每秒开发424.40个swap。
我们在开发网络上向OrcaSOL-ORCA交易发送垃圾邮件,查看我们可以在单个区块中执行多少Orcaswap,然后推断为最大吞吐量。
Solana试图实现Orcaswap184次,开发网块1067857次。
我们试图达到的最高数字是单个块中的184swap。假设块的时间是380毫秒,这给了我们484.21swap/秒的开发网络。(请注意块的时间不准确,所以这些数字有一些偏差。如果你在我们最多交易的三个块中获得平均值,看起来更像是每秒381次的swap,看起来更合理)。
这似乎证明了我们的分析方法是正确的(增量约为10-15%),所以这意味着Solana的主网可能会在AMM上执行273次Swap/秒左右。
当然,这只是一个测试,所以这是我们的代码——我们鼓励你使用它,并与我们分享你的结果。
我们在这里隐藏了很多细节。没有Blockdaemon朋友的帮助是不可能的。如果您想了解执行此操作所需的详细信息(以及对Solana内部结构的更深入了解),请查看第二部分。我们将介绍技术细节。
你可能会看到这一切并想知道:但我认为Solana通常可以执行3000TPS?
测量SolanaTPS的区块浏览器可能会被误导——它将内部共识视为其他区块链所没有的交易。
约80%的Solana吞吐量是共识新闻。此外,您还有大约600个TPS,其中大部分是非常便宜的Serum交易。只要你接触到足够的其他合同,Solana就能在生产中取得更高的性能。
SolanaMM测试:Uniswapv2风格的swaps/秒性能。
那么这一切的结果是什么呢?
首先,不要把这当福音。自己算。
其次,请记住,所有这些区块链都是移动目标。它们不断优化,技术发展迅速,任何基准都是即时快照。我们希望看到更多的独立组织创建标准化基准,但这是我们最好的尝试。
第三,请注意,区块链之间的性能差异没有宣传的那么大。以太坊和最佳链之间的性能差异约为10-25倍,而不是100倍或1000倍。没有人能从线性VM事务中获得如此优异的性能。这将需要更多的工作和优化。
第四,如果你想要真正的高性能,你必须放弃EVM。我们只测试Solana,但还有其他非EVML1,如NEAR和Tera。
但就像Solana一样,他们无法从围绕EVM的工具和生态系统中受益。(虽然NEAR有与EVM兼容的Aurora片段,但其他L1也试图开发类似的虚拟EVM实例。
第五,用户对非以太坊L1的性能不那么敏感。他们更关心生态系统的整体实力、良好的用户体验和低成本。这些区块链没有竞争力,除非在IDO或市场崩溃等罕见的高峰期,因为它们实际上不用于容量。
我们预计,随着时间的推移,所有主要L1的性能都将得到改进,因为开发团队将花费越来越多的时间来调整典型使用模式的性能。毫不奇怪,在早期,这些区块链中的每一个都没有得到很好的优化!
但总的来说,我的印象是以太坊是智能合约操作系统的MS-DOS。但是当前的区块链时代把我们带入了Windows95时代。
Windows95(右)
下一代区块链代表着显著的进步,但实现主流还有很长的路要走。
免责声明:作为区块链信息平台,本网站提供的信息并不代表任何投资暗示。
转载请注明:比特币区块链时代 » 区块链的性能该如何衡量?