公链的那些功用指标,都代表了什么?

本文来自 a16z 

原文作者:Joseph Bonneau

由 Odaily 星球日报译者 Katie 辜编译。

功用和可扩展性是加密范畴备受评论的应战,与 L1 项目和 L2 解决计划有关。可是,咱们没有规范化的指标或基准。数据陈述的方式往往不一致且不完整,这使得精确比较项目变得困难,并常常模糊了实践中最重要的内容。

咱们需求一种更细致和完全的方法来衡量和比较功用——将功用分解为多个组件,并在多个数据轴上比较权衡。本文界说了区块链功用底子意义和概述了其存在的应战,并供给了评价区块链功用时需求牢记的辅导准则和关键准则。

可扩展性 vs. 功用

首要,可扩展性和功用具有规范的计算机科学意义,在区块链中经常被误用。功用衡量体系当前能够完成的方针。正如咱们下面即将评论的,功用指标或许包含每秒买卖数或买卖承认时刻中位数。另一方面,可扩展性衡量体系经过添加资源来进步功用的才能。

差异很重要:假如界说正确,许多进步功用的方法底子不能进步可扩展性。一个简略的比如是运用更有效的数字签名计划,例如 BLS 签名,其巨细大约是 Schnorr 或 ECDSA 签名的一半。假如比特币从 ECDSA 切换到 BLS,每个区块的买卖数量或许会添加 20-30%,一夜之间功用就会进步。但咱们只能这样做一次——没有比这更节约空间的签名计划能够切换(BLS 签名也能够聚合从而节约更多空间,但这是另一个一次性的技巧)。

在区块链中也能够运用其他一些一次性的技巧(如 SegWit),但你需求一个可扩展的架构来完成持续的功用改善,其中添加更多的资源能够跟着时刻的推移进步功用。这也是许多其他计算机体系的传统思路,比如构建一个网络服务器。经过一些常见的技巧,能够构建一个运行速度快的服务器。但最终需求一个多服务器架构,经过不断添加额定的服务器来满足不断增长的需求。

了解这种差异还有助于防止在语句中发现的常见类别错误,比如“区块链 X 是高度可扩展的,它每秒能够处理 Y 个买卖”。第二种说法或许令人形象深刻,但它是一个功用指标,而不是可扩展性指标,并不是指经过添加资源来进步功用的才能。

可扩展性本质上要求使用并行性。在区块链空间中,L1 扩展好像需求 分叉 或相似于分叉的东西。分叉的底子概念是将状况切割成块,以便不同的验证器能够独立处理,与可扩展性的界说十分匹配。在 L2 还有更多的选项,允许添加并行处理,包含链下通道、Rollup 服务器和侧链。

推迟 vs. 吞吐量

通常,区块链体系功用是经过两个维度进行评价的,即推迟和吞吐量。推迟衡量承认单个买卖的速度,而吞吐量衡量跟着时刻的推移买卖的总速率。这些轴既适用于 L1 和 L2 体系,也适用于许多其他类型的计算机体系(如数据库查询引擎和 web 服务器)。

可是推迟和吞吐量的丈量和比较都很杂乱。此外,个人用户实践上并不关怀吞吐量(这是一个体系规模的衡量)。他们真实关怀的是推迟和买卖费用。更具体地说,他们的买卖尽或许快、尽或许经过便宜的价格得到承认。尽管许多其他计算机体系也以本钱/功用为基础进行评价,但买卖费用是区块链体系的一个新的功用轴,这在传统计算机体系中并不真实存在。

丈量推迟的应战

推迟一开端看起来很简略:买卖需求多长时刻才能得到承认?但有几种不同的方法来答复这个问题。

首要,咱们能够丈量不同时刻点之间的推迟,得到不同的结果。例如,当用户在本地点击“提交”按钮时,仍是当买卖到达内存池时,咱们开端丈量推迟?当买卖在一个提议的区块中,或许当一个区块被一个或六个后续区块承认时,咱们才中止计算时刻吗?

最常见的方法是从验证者的角度,丈量从用户第一次播送买卖到合理地“承认”买卖的时刻。当然,不同的商家或许选用不同的检验规范,乃至单个商家也或许依据买卖金额的不同选用不同的规范。

以验证器为中心的方法在实践中忽略了一些重要的工作。首要,它忽略了点对点网络上的推迟(从客户端播送一个买卖到大多数节点听到它需求多长时刻?)和客户端推迟(在客户端的本地机器上预备一个买卖需求多长时刻?)客户端推迟或许性十分小,关于签署以太坊付出等简略的买卖来说是能够猜测的,但关于更杂乱的状况,如证明屏蔽的 Zcash 买卖是正确的,则或许十分重要。

即使咱们将试图丈量推迟的时刻窗口规范化,答案也是视状况而定。迄今为止,还没有一个加密钱银体系供给固定的买卖推迟。一个底子的阅历法则是:

推迟是一个散布状况,而不是一个数字。

网络研究界早就了解这一点。特别强调的是散布的“长尾”,由于即使 0.1% 的买卖(或 web 服务器查询)的高推迟也会严重影响最终用户。

在区块链中,承认推迟的改变有许多原因:

批处理:大多数体系以某种方式将买卖批处理,例如,在大多数 L1 体系大将买卖批处理到区块中。这将导致可变的推迟,由于一些买卖将不得不等待,直到批处理填满。其他人或许会幸运地最终参加。这些买卖当即得到承认,而且不会阅历任何额定的推迟。

可变拥塞:大多数体系都会出现拥塞,这意味着发布的买卖比体系能够当即处理的买卖要多。当买卖在不行猜测的时刻进行播送时,或许当新买卖在一天或一周内的速度发生改变时,或许在对像抢手 NFT 发动这样的外部事件时呼应,拥塞的程度会发生改变。

一致层差异:在 L1 承认买卖通常需求一组散布式节点来达成对一个区块的一致,这或许会添加可变的推迟,无论拥塞状况怎么。作业量证明体系在不行猜测的时刻找到区块。 PoS 体系还能够添加各种推迟(例如,假如在线节点数量不足,不能在一轮中组成一个委员会,或许假如需求改动观点以应对领导者的崩溃)。

依据这些原因,一个好的辅导准则应该是:

关于推迟的声明应该显现承认时刻的散布,而不是像均匀值或中位数这样的单个数字。

尽管像均匀值、中位数或百分位数这样的汇总统计供给了部分状况,但精确地评价一个体系需求考虑整个散布。在某些应用程序中,假如推迟散布相对简略,则均匀推迟能够供给很好的洞察。但在加密钱银中,这种状况简直从未发生过。通常状况下,承认时刻很长。

付出途径网络(如 闪电网络 )便是一个很好的比如。这是一个经典的L2扩展解决计划,这些网络大多数时分供给十分快的付出承认,但偶尔他们需求通道重置,这或许会添加推迟的数量级。

即使咱们对确切的推迟散布有很好的统计,它们也或许会跟着体系和体系需求的改变而改变。别的,怎么比较相互竞争的体系之间的推迟散布也并不总是很清楚。例如,假设一个体系承认的买卖推迟均匀散布在 1 到 2 分钟之间(均匀和中位数为 90 秒)。假如一个竞争体系在 1 分钟内精确承认 95% 的买卖,而在 11 分钟内承认别的5%的买卖(均匀 90 秒,中位数 60 秒),那么哪个体系更好?答案或许是,有些应用程序更喜欢前者,有些则更喜欢后者。

最终,需求注意的是,在大多数体系中,并非一切买卖的优先级都是相同的。用户能够付出更多的钱来取得更高的优先级,所以除了以上这些,推迟也取决于所付出的买卖费用。总而言之:

推迟是杂乱的。陈述的数据越多越好。理想状况下,应该在不同的拥塞条件下丈量完整的推迟散布。将推迟分解为不同的组件(本地、网络、批处理、一致推迟)也是有帮助的。

丈量吞吐量的应战

表面上看吞吐量好像也很简略:一个体系每秒能够处理多少买卖?但有两个首要的困难:终究什么是“买卖”,以及咱们是否在衡量一个体系今日做什么或许它或许做什么?

尽管“每秒买卖数”(tps)是衡量区块链功用的实践规范,但作为衡量单位的买卖存在问题的。关于供给通用可编程性(智能合约)或乃至有限功用的体系,如比特币的多路买卖或多信号验证选项,其底子问题是:

不是一切的买卖都是平等的。

这在以太坊中明显是正确的,在以太坊中,买卖能够包含恣意代码和恣意修改状况。以太坊中的 gas 概念用于量化(并收取费用)买卖正在进行的整体作业量,但这与 EVM 履行环境高度相关。没有简略的方法来比较一组 EVM 买卖与一组运用 BPF 环境的 Solana 买卖所做的作业总量。将两者与一组比特币买卖进行比较相同令人担忧。

将买卖层划分为一致层和履行层的区块链能够使这一点更加清晰。在(纯)一致层,吞吐量能够用每单位时刻添加到链上的字节来衡量。履行层更杂乱。

更简略的履行层,例如只支撑付出买卖的 Rollup 服务器,防止了量化计算的困难。即使在这种状况下,付出也会因投入和产出的数量而改变。付出通道买卖或许因所需的“跳动次数”而异,这将影响吞吐量。Rollup 服务器吞吐量取决于将一批买卖“联网”到更小的汇总更改集的程度。

吞吐量方面的另一个应战是超越阅历丈量今日的功用来评价理论容量。这就引入了各种建模问题来评价潜在才能。首要,咱们有必要为履行层承认一个实践的买卖作业负载。第二,实践体系简直从未到达理论容量,尤其是区块链体系。出于稳健性的原因,咱们期望节点完成在实践中是异构和多样化的(而不是一切客户端都运行单个软件完成)。这使得精确模仿区块链吞吐量更加困难。

总而言之:

吞吐量声明需求仔细解释买卖作业负载和验证器的数量(它们的数量、完成和网络连接)。在没有任何清晰规范的状况下,来自以太坊等流行网络的前史作业量就足够了。

推迟和吞吐量权衡

推迟和吞吐量通常是一种权衡。这种权衡通常不是一往无前的,当体系负载挨近最大吞吐量时,推迟会急剧添加。

零知识汇整体系是吞吐量/推迟权衡的一个自然比如。许多的买卖会添加证明时刻,从而添加推迟。但链上的足迹,无论是在证明巨细和验证本钱方面,将分摊到更多的买卖,更大的批处理巨细,添加吞吐量。

买卖费用

能够了解的是,终端用户更关怀推迟和费用之间的权衡,而不是推迟和吞吐量之间的权衡。用户底子没有关怀吞吐量的直接原因,他们只关怀能够以尽或许低的费用快速承认买卖(有些用户更关怀费用,而有些用户更关怀推迟)。高额收费受多种要素影响:

1. 有多少商场需求进行买卖?

2. 体系完成的整体吞吐量是多少?

3. 体系供给给验证者或矿工的总收入是多少?

4. 这部分收入中有多少是依据买卖费用仍是依据通货膨胀奖赏?

前两个要素大致是导致商场清算价格的供需曲线(尽管有人宣称,矿工像联盟企业相同将费用进步到这一点以上)。在其他条件相同的状况下,更高的吞吐量应该会导致更低的费用,但还有更多要素要处理。

特别是上面的第 3 点和第 4 点是区块链体系规划的底子问题,可是咱们对它们都缺少杰出的准则。相关于买卖费用,咱们对给予矿工以通货膨胀奖赏的优点和坏处有必定的了解。可是,尽管有许多关于区块链一致协议的经济剖析,咱们仍然没有一个被广泛承受的模型来说明需求多少收入给验证器。今日,大多数体系都建立在一个有依据的猜测中,即有多少收入足以让验证器诚实地作业,而不会摧残体系的实践运用。在简化的模型中,能够看出,安装 51% 进犯的本钱与验证程序的回报成正比。

进步进犯本钱是一件功德,但咱们也不知道多少安全措施才“足够”。幻想一下,你正在考虑去两个游乐园。其中一辆宣称在车辆维护上比另一辆少花 50% 的钱。去这个公园是个好主意吗?这或许是由于他们更有效率,用更少的钱取得了平等的安全。另一种或许是花费超过所需的费用来确保游乐设施的安全,而没有任何优点。但也或许是第一个公园很危险。区块链体系也相似。一旦除掉吞吐量,费用较低的区块链的费用较低,由于它们对验证者的奖赏(因此激励)较少。咱们现在没有好的东西来评价这是否可性,或许它是否会使体系容易遭到进犯。总而言之:

比较不同体系之间的费用或许会发生误导。尽管买卖费用对用户来说很重要,但除了体系规划本身之外,还会遭到许多要素的影响。吞吐量是剖析整个体系的更好指标。

定论

公平精确地评价功用是很难的。这相同适用于丈量轿车的功用。就像区块链相同,不同的人会关怀不同的工作。关于轿车,有些用户会关怀最高速度或加快,有些人会关怀油耗,还有一些人会关怀牵引才能。一切这些都不容易得到精确值。例如,在美国,环境保护署就拟定了详细的辅导准则,规定怎么评价汽油路程数,以及在经销商处有必要怎么向用户展现。

区块链空间间隔这个级别的规范化还有很长的路要走。在某些范畴,未来咱们或许会运用规范化的作业负载来评价体系的吞吐量,或许运用规范化的图形来表明推迟散布。现在,对评价者和建设者来说,最好的方法是搜集和发布尽或许多的数据,并对评价方法进行详细的描绘,以便它能够被复制和与其他体系进行比较。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注