当前位置: 首页 > 科技观察

如何定义区块链可扩展性?

时间:2023-03-16 01:45:39 科技观察

区块链可扩展性一直是热门话题。几乎所有区块链网络都使用每秒交易数(TPS)作为卖点。然而,TPS并不是比较区块链网络的有效指标,因此很难评估它们的相对性能。此外,高TPS通常是有代价的。这就引出了一个问题:这些网络真的具有可扩展性,还是只是增加了吞吐量?让我们首先看看可扩展性是如何定义的,为实现它所做的权衡,以及为什么有效性证明是可扩展性的最终解决方案。并非所有交易都是平等的首先让我们确定一个简单的TPS指标并不是可扩展性的准确衡量标准。为了补偿执行交易的节点(并防止用户因不必要的计算而使网络混乱),区块链会收取一定比例的链上计算费用。在以太坊上,计算负担的复杂性以gas来衡量。由于用gas来衡量交易复杂性非常方便,因此该术语在本文中也将适用于非以太坊区块链,尽管它通常是特定于以太坊的。交易的复杂性差异很大,相应的Gas也是如此。比特币是无需信任的点对点交易的先驱,仅支持基本的比特币脚本。这种简单的地址到地址传输消耗的气体非常少。相比之下,支持虚拟机和图灵完备编程语言的以太坊或Solana等智能合约链允许进行更复杂的交易。因此,像Uniswap这样的DApp需要更多的Gas。这就是为什么比较不同区块链之间的TPS没有意义。相反,我们应该比较计算能力或吞吐量。所有区块链都有一个(可变的)块大小和块时间,它们决定了每个块可以处理多少个“计算单元”以及新块产生的速度。这两个变量共同决定了区块链的“吞吐量”。是什么限制了可扩展性?区块链的最终目标是实现去中心化和包容性的网络。为实现这一目标,必须注意两个特点。硬件要求区块链网络的去中心化由网络中验证区块链及其维护状态能力的最弱节点决定。因此,运行节点的成本(硬件、带宽和存储)应该尽可能低,以允许更多的个人成为去信任网络中的无许可参与者。状态增长状态增长是指区块链增长的速度。区块链单位时间内的吞吐量越大,区块增长速度越快。全节点存储网络历史,它们必须能够验证网络状态。通过使用树等高效结构,可以存储和引用以太坊的网络状态。随着状态的增长,新的叶子和分支被添加到其中,使得执行某些动作变得越来越复杂和耗时。随着链的增长,最坏情况下的节点性能会恶化,从而导致验证新块的时间不断增加。随着时间的推移,这也会增加同步完整节点的总时间。增加吞吐量的不利影响节点数量运行一个节点的最低要求和节点数量是:比特币:350GB硬盘空间,5M/s带宽,1GB内存,CPU大于1Ghz。节点数量约10000个以太坊:500GB以上SSD硬盘空间,25M/s带宽,4~8GB内存,2-4核CPU。节点数约6000个Solana:1.5TB以上SSD硬盘空间,300M/s带宽,128GB内存,12个以上CPU核心。节点数约为1200个。请注意,区块链的吞吐量越高,对节点的CPU、带宽和存储要求越高,网络上的节点数量越少,导致去中心化性越弱,网络包容性越差。同步全节点时间首次运行节点时,需要与所有现有节点同步,从创世块到链顶下载并验证网络状态。这个过程应该尽可能快速和高效,以允许任何人成为无需许可的协议参与者。使用JamesonLopp的2020比特币节点和2021节点同步测试作为指标,下表比较了在普通消费级PC上将比特币的完整节点与以太坊和Solana同步所需的时间。上表显示,随着越来越多的数据需要处理和存储,增加吞吐量会导致更长的同步时间。在不断优化节点软件的同时(减少磁盘占用空间、加速节点、增强崩溃弹性、组件模块化等)跟上吞吐量增加的步伐。应如何定义可扩展性?可扩展性是区块链领域中最容易被误解的术语。虽然增加吞吐量是可取的,但这只是难题的一部分。可扩展性意味着同一硬件上的更多交易。因此,可扩展性可以分为两类。排序可扩展性排序是在网络中排序和处理交易的行为。如前所述,任何区块链都可以通过增加区块大小和缩短区块时间来略微提高其吞吐量,直到对其去中心化的负面影响大到不容忽视为止。然而,调整这些简单的参数并不能达到预期的提升。以太坊EVM理论上可以处理高达~2kTPS,但这不足以满足长期的区块空间需求。为了扩展排序,Solana进行了创新:使用并行执行环境和巧妙的共识机制,大大提高了吞吐效率。然而,尽管有这些改进,但它既不充分也不可扩展。随着吞吐量的增加,Solana运行节点和处理交易的硬件成本也会增加。可扩展性证明可扩展性证明是在不增加节点硬件成本负担的情况下增加吞吐量的方法。具体来说,密码学创新,如允许区块链可持续扩展的有效性证明。什么是ProofofValidityRollupProofofValidityRollup(也称为ZK-Rollup)将计算和状态存储转移到链下,只留下少量特定数据在链上。底层区块链上的智能合约维护Rollup的状态根。在Rollup上,高度压缩的一批交易连同当前状态根一起被发送到链下证明者。证明者计算交易,生成结果的有效性证明和新的状态根,并将其发送给链上的验证者。验证者验证有效性证明,存储Rollup状态的智能合约将其更新为证明者提供的新状态。有效性证明Rollup如何在相同的硬件要求下扩展?证明者对硬件的要求确实很高,但并不影响区块链的去中心化,因为交易的有效性是由数学上可验证的证明来保证的。重要的是验证证明的要求。由于所涉及的数据是高度压缩的,并且通过计算在很大程度上被抽象化,因此它对底层区块链节点的影响是最小的。验证者(以太坊节点)不需要高端硬件,批量大小不会增加硬件要求。节点只需要处理和存储状态转换和少量调用数据。这使得所有以太坊节点都可以用现有硬件验证Rollup的批量交易的有效性。交易越多,越便宜在传统区块链中,交易越多,区块空间越大,也就越贵。这导致用户需要在手续费市场中竞价来优先打包交易。对于有效性汇总证明,这种动态是相反的。在以太坊上验证一批交易是有成本的。随着批次中交易数量的增加,验证批次的成本呈指数级增长。在有效性证明中,一批交易的数量增加。虽然批量交易验证费用增加,但单笔交易的成本更便宜,因为总交易成本由同一批次的所有交易分担。有效性证明希望一个批次中有尽可能多的交易,这样验证费就可以在该批次中的所有用户之间平摊。随着批量大小增长到无穷大,每笔交易的摊销费用接近于零,即证明有效性的交易越多,每个用户的成本就越低。dYdX是一种有效性证明驱动的DApp,其批量大小通常超过12,000笔交易。对比同一笔交易在以太坊主网上的Gas消耗和有效性证明上可以说明可扩展性的提升:在以太坊主网上结算一笔dYdX交易:200,000Gas在StarkEx结算一笔dYdX交易:不到500Gas换个角度,有效性证明Rollup的主要成本与同一批次的用户数成线性正比。为什么OptimisticRollups不像每个人想象的那样可扩展理论上,OptimisticRollups提供与有效性证明几乎相同的可扩展性优势。但有一个重要的区别,OptimisticRollup针对平均情况进行优化,而EfficiencyProof针对最坏情况进行优化。由于区块链系统在极端不利的条件下运行,因此针对最坏情况进行优化是实现安全性的唯一途径。在OptimisticRollup最坏的情况下,用户的交易不会被欺诈检查器检查。因此,为了挑战欺诈,用户必须同步一个以太坊全节点,一个L2全节点,并自己计算可疑交易。在ValidityProofRollup的最坏情况下,用户只需要同步一个以太坊全节点来验证有效性证明,节省了计算负担。与有效性证明相比,OptimisticRollup的成本与交易数量成线性比例关系,而不是用户数量,这也使得交易成本更高。拼图的最后一块——无需许可即可访问Rollup状态的用户只需要运行一个以太坊节点来保证交易的有效性。但是,用户和开发人员可能出于各种目的希望查看和运行Rollup状态和执行情况。“IndexL2Node”完美满足了这一需求,不仅让用户可以看到网络中的交易,还是生态系统运行所必需的关键基础设施。TheGraph、Alchemy和Infura等索引器,以及Chainlink等预言机网络,以及区块浏览器,完全支持无需许可的索引L2节点。结论许多区块链可扩展性解决方案错误地专注于提高吞吐量。然而,吞吐量对节点的影响却被忽略了:处理区块和存储网络历史的硬件需求不断增加,将阻碍网络的去中心化。有效性证明密码学的出现使得区块链能够实现真正的可扩展性,而无需不断增加节点的成本负担并允许广泛的去中心化。现在相同的硬件可以执行更复杂和更强大的交易计算。这扭转了费用市场的困境——有效性证明的活动越多,它就越便宜!