主页 > imtoken中国版下载 > 是什么决定了公链的性能——被误解的TPS

是什么决定了公链的性能——被误解的TPS

imtoken中国版下载 2023-06-29 14:47:20

公链交易速度慢,一直被大家诟病。 近年来,几条主流公链都出现了拥堵。 现在很多项目标榜自己的百万级TPS以太坊公链的处理速度,从而解决了公链性能不足的问题。 但是区块链性能问题真的解决了吗? 下面我们一起来分析一下,看看公链的性能瓶颈在哪里。

1 传统 POW 共识

作为区块链技术的鼻祖,比特币的性能早已无法满足当前的交易需求,因此经常出现拥堵现象。 我们通过下图来看一下比特币的记账过程:

以太坊公链的处理速度_以太坊公链花费了多少时间_如何登陆以太坊公链

比特币采用POW共识(工作量证明),主要有两个步骤需要花费大量时间。 一是做工作量证明(Time1),即计算出符合要求的区块哈希值。 第二个是全网广播(Time2),等待其他矿工确认这个区块的过程。

设计时,比特币的出块时间设定为10分钟(即需要10分钟的工作量证明),每个块的大小约为1MB,一个块最多可以打包几千块交易数据。 虽然单个区块可以包含数千条交易信息,但完成一个区块至少需要 10 分钟,这导致单位时间记录的交易信息低,即 TPS 低。

|TPS(Transection per second)是一个常用的描述区块链性能的指标。 它是指每秒处理的事务数,是衡量系统吞吐量的重要参数。

以太坊公链花费了多少时间_如何登陆以太坊公链_以太坊公链的处理速度

由于出块速度慢,比特币的TPS只有7左右。因此,比特币的拥堵往往归咎于其使用的POW共识机制。

有人会说,可以通过增加区块容量或者提高出块速度来提高TPS,这样就不会出现拥堵。 这是个好主意,但在实践中提高事务吞吐量并不那么容易。 增加块容量会导致Time2增加(广播时间变长),因为单个块包含更多字节,所需的传输时间会相应增加; 虽然提高出块速度会让Time1变小,但是当出块速度太快,广播速度跟不上时,一个新的区块在全网矿工确认之前就会被挖出来,所以a叉子会出现。 分叉降低了网络的安全性。 请参考下图:

以太坊公链的处理速度_以太坊公链花费了多少时间_如何登陆以太坊公链

本来,在没有分叉的情况下作恶的成本不低于全网算力的51%。 现在分叉后,假设A链获得60%的算力,B链获得40%的算力。 如果要作恶,将A链回滚到B链,只需要全网21%的算力。 所以分叉降低了作恶的成本,让网络变得不安全。 因此,10 分钟的出块时间是比特币安全性和效率之间的折衷。

因此,在 POW 下,无法随意增加区块容量或提高区块生成速度。 这将增加分叉的可能性并降低网络的安全性。

2POS共识提升交易速度

以太坊公链的处理速度_以太坊公链花费了多少时间_如何登陆以太坊公链

由于POW的交易速度慢、能耗高,POS共识(权益证明)正逐渐被更广泛地采用。 例如,以太坊 2.0 的一个重要步骤就是从 POW 共识转向 POS 共识。 与 POW 不同的是,POS 通过抵押 Token 获得打包区块和投票的权利。 记账过程如下:

以太坊公链花费了多少时间_以太坊公链的处理速度_如何登陆以太坊公链

在 POS 中,矿工产出的区块直接作为候选区块,省去了 POW(Time1)中的工作量证明步骤。 因为当质押的代币成为矿工时,打包权已经默认分配给了矿工。 POS 在出块前分配包装,POW 必须在出块后竞争包装。 因此,POS 会比 POW 更高效,甚至可以实现秒级确认。 可以看出,POS 的交易性能相比 POW 有了明显的提升。

在以太坊现有的POW共识下,TPS在30到40左右,虽然比比特币高很多,但还是时不时的拥挤,转账有时需要好几个小时才能完成。 为了解决这个问题,以太坊选择放弃POW,采用更高效的POS机制。 今年ETH2.0的phase0信标链(Bacon Chain)上线,POS将逐步取代POW。 届时,你只需质押32个ETH即可成为矿工。

3更高速的DPOS

EOS的DPOS共识属于POS,由代币持有者选出一些代表以太坊公链的处理速度,这些代表轮流记账。 DPOS 的本质是牺牲去中心化来换取高吞吐量。 EOS网络只有21个超级节点来出块。

如何登陆以太坊公链_以太坊公链花费了多少时间_以太坊公链的处理速度

相较于POS中成百上千的节点,EOS只需要在21个节点之间进行广播,因此Time2所需要的时间会进一步缩短,TPS也会有很大的提升。

EOS在白皮书中宣称拥有百万级TPS,但在2019年EIDOS空投时依然出现拥堵。虽然改进了共识算法,获得了超高的TPS,但为什么一个空投项目也会出现拥堵呢? 可见,制约区块链性能的还有其他因素。

区块链网络的性能不仅与TPS,即吞吐量有关; 它还与单个全节点的性能有关。 区块链网络中常见的节点大致有两类:全节点和轻节点。 网络中的每个全节点负责广播区块和确认交易。 因此,全节点必须保存整个区块链的交易历史,还要保存全网所有用户和DAPP的状态,以便在交易时验证这些信息。 轻节点只负责查询全节点信息,不参与记账过程,因此轻节点不会对网络性能做出贡献。 在执行一笔交易或者运行一个DAPP时,都会依赖全节点来完成,所以全节点的性能决定了交易执行的处理速度。 但是,区块链网络的性能并不是所有全节点性能的叠加,而是木桶效应。 木桶的储水能力取决于木桶中最短的木板,整个网络的性能也受制于单个全节点的性能:整个网络的性能不会高于单个全节点的性能全节点。

EOS 的拥塞受限于单个全节点的性能。 EOS将全节点的性能划分为RAM、CPU等资源。 然后对这些资源进行认证,让网络中的用户通过租赁的方式最大限度地利用所有节点。 当短时间内有大量的处理请求时,整个节点的性能资源会很快耗尽,就像电脑运行太多程序,打开网页会很慢一样。 2019年EIDOS空投造成的拥堵,官方是因为EOS网络CPU资源急速短缺,转账需要的CPU超过了网络可以分配给它的CPU,所以被搁置,可以无法完成。

4 公链性能瓶颈在哪里?

从上面的例子可以看出,改变共识算法可以在一定程度上提高吞吐量,提高TPS。 但无论共识算法怎么变,都逃不过Time2这一步:全网全网广播,节点验证后确认出块。 这个过程的处理效率主要与广播的传输效率和节点处理信息的能力有关。

如何登陆以太坊公链_以太坊公链花费了多少时间_以太坊公链的处理速度

广播传输效率越高,网络吞吐量越大,TPS越高。 吞吐量的物理上限是每个全节点之间的网络带宽,网络带宽受制于通信技术和硬件设备。 现在很多项目盲目鼓吹千万级的TPS,这需要非常高的网络带宽,而且有可能把所有的全节点都困在一个局域网中,但是这样的网络几乎没有去中心化可言。

单个全节点的性能越好,其处理信息的能力就越高,公链的性能也就越强。 但一味提高对全节点的要求也会导致中心化。 例如,只有一些高配置的服务器可以作为全节点,而这些节点可能被一些大公司控制。

整体来看,区块链的性能主要受限于网络带宽和单个全节点的性能。 现在很多项目只是一味的追求高TPS,让人误以为这样可以提高公链的性能。 事实上,他们只关注网络带宽,而忽略了全节点性能对整体网络性能的影响。 提高公链性能的关键是保证在一定的去中心化基础上打破这两个限制。

突破瓶颈的5种方法

现在提出的最有可能的实现是分片方案:将单条链分成若干组,每组称为一个分片。 假设全网有100个全节点,分组后每组只有20个全节点,则一笔交易不需要向全网所有全节点广播确认,只要20个组全节点在本地验证。 这提高了网络带宽的利用率。 每个组的节点也不同地存储全网的用户信息和DAPP状态; 主要存储自己组的信息就好,这样可以减轻节点的负担,可以有效避免拥塞。

当然分片方案也要注意协调不同分片之间的操作。 以太坊 2.0 的最终目标是通过分片扩容方案解决现有以太坊性能不足的问题。 以太坊2.0的规划是5年,可见实施起来并不容易。 现在,为了克服公链的性能瓶颈,越来越多的解决方案被提出。 我相信将来会找到一个完美的解决方案。

以太坊公链花费了多少时间_如何登陆以太坊公链_以太坊公链的处理速度

参考:

1.《从以太坊网络拥塞的角度来看》

2.《EOS区块网络拥塞?这东西其实是这样的》

3.《时隔一年EOS再次被封,再次感受到Fomo的力量》

4.《EOS主网TPS再创新高,但TPS越高越好》

5、《PoW和PoS综合比较:各自的优缺点是什么?》 “

6.《区块链公链如何提速(一)》

7.《号称“公链碎片化”的技术的五大谎言——区块链公链如何才能更快(二)》