主页 > 怎样下载imtoken > 区块链各模块的性能瓶颈与挑战,美丽数据背后的水分

区块链各模块的性能瓶颈与挑战,美丽数据背后的水分

怎样下载imtoken 2023-05-29 05:38:36

区块链的性能优化是一个热门话题。 但由于区块链系统的复杂性,系统理解性能优化的门槛非常高,这就为“虚假的性能标准”提供了空间。 前有“百万tps”的大跃进,后有“80万tps”的宕机链。

因此,我希望就决定区块链各个模块的性能瓶颈和挑战进行展开,看看那些美丽数据背后的滋润。

区块链各模块的性能瓶颈和挑战,深扒漂亮数据背后的水分 - 第1张

1.网络模块

作为一个去中心化的系统,网络通信是整个系统的基础,也有人称之为Layer 0。

我将网络模块抽象为三层:网络设施层、节点连接层、广播协议层。 每一层都是下一层的基础,每一层的性能是下一层性能的上限。

网络模块的带宽和延迟构成了区块链系统的tps和finality延迟的基础。

1.1 网络设施层

带宽:主要取决于网络基础设施的发展和区块链节点的配置要求。 前几年公链的网络配置要求一般在20Mbps到100Mbps。 到 2022 年,Aptos 已经需要 1 Gbps 的网络带宽。 简而言之,带宽要求越高,节点门槛越高,也越中心化。

延迟:延迟有一个优化极限,即光速。 互联网中的传输延迟大于光速延迟。 Conflux 曾测得洲际节点延迟高达 200-300ms。 如果是那种所有节点都在一个数据中心的“机房链”,延迟可以忽略不计。

以太坊区块链数据下载_以太坊区块链保存的内容_以太坊区块链浏览器咋下载

1.2 节点连接层

节点连接层主要通过邻居节点间的通信实现消息在网络中的广播。

带宽:一般情况下,节点链路层可以获得与网络设施层接近的带宽。 你也可以选择牺牲带宽来减少延迟:例如,当你想广播一条消息时,同时发送给所有邻居(带宽要求加倍),而不是先发送一个再发送下一个。

Latency:消息广播延迟与节点数量有关,节点越多,延迟越高。

目前,比特币和以太坊中大约有几千个节点。 根据我们的实验,如果整个网络在全世界有 10000 个节点,广播延迟的中位数是 3-6 秒,最大可以达到 15 秒。 通过一些协议优化,最大延迟可以再次减半。

但有些公链号称确认延迟为1~2秒,只能支持较少的节点

1.3 广播协议层

节点连接层只负责转发数据块,不管数据是什么。 广播协议层定义了具体的区块和交易转发规则。

以太坊区块链浏览器咋下载_以太坊区块链数据下载_以太坊区块链保存的内容

带宽:主要在于如何减少冗余传输。 试想一下,如果每个邻居都向你发送相同的交易,那岂不是浪费了? Shrec 是 Conflux 设计的一种转发协议,通过减少冗余,在相同网络带宽下将广播交易的 tps 提高 6 倍。

但是只要网络设施层的带宽足够高(比如1Gbps),即使不优化,也不会成为这里的瓶颈。

延迟:一些共识协议会将广播协议层的延迟放大数倍。 比如比特币的区块间隔需要5倍广播协议层的延迟,确认需要6个区块。 因此,在这里优化延迟至关重要。 2016 年,比特币通过紧凑的区块设计,将区块广播延迟从 120 秒降低到 10 秒以内。

紧凑块不包含完整的交易,而只包含交易哈希的前 6 个字节,因为这些交易已经在网络中广播并被大多数节点接收。 这样可以加速区块广播,使得广播协议层可以获得接近节点连接层的延迟。 2017年后,高性能公链基本都采用了这种设计。

2. 共识模块

共识协议是区块链系统中最复杂、最微妙的部分。 协调不信任节点,为上层应用提供可信的去中心化服务。 长期以来,共识模块的性能优化一直是热点。

带宽:中本聪共识本身的缺陷导致共识带宽非常低,否则会增加网络分叉,降低系统安全性。

2017年之后的新协议基本上可以充分利用带宽,这已经不是问题了。

以太坊区块链保存的内容_以太坊区块链浏览器咋下载_以太坊区块链数据下载

但是有些项目混淆了共识模块的tps和区块链系统的tps,将带宽的充分利用称为“无限可扩展”,就好像网络带宽是无限的一样。

延迟:共识延迟是指区块最终确定所需的时间。 中本聪共识的确认延迟很差,大约是广播协议层延迟的30~60倍,而后续的PoW协议如Bitcoin-NG、OHIE等都没有对这个延迟进行优化。 Prism 将延迟优化了 23 倍,将 Conflux 优化了 3 倍。 本人对PoS协议了解有限,估计需要5倍左右的延迟。

但是PoW和PoS协议有很大的区别:PoW指的是最大延迟,PoS指的是中值延迟,最大延迟和中值延迟之间可能有3倍的差异,所以一般的延迟性能PoS共识的更好。 如果节点少,进10秒也不是不可以。 至于拥有PoS共识但速度较慢的以太坊,只能说是奇葩。

共识模块是“参数假标”最严重的地方。 比如你需要等6个区块才能满足安全要求,项目方告诉你1个区块就够了。 反正没人攻击就不会暴露,没有资产也不会有人攻击。

还有一种技术叫sharding:把节点分组,把交易分配给每个组,每个组只处理自己的交易以太坊区块链保存的内容,信任其他组。 通过增加组数,该技术可以轻松获得高tps来吹牛,但相信其他组会带来安全隐患。 因此,分片适用于对安全性要求不高的场景,比如国内的联盟链。

3.执行模块

以太坊之所以能够在比特币之外开辟一片天地,是因为它创造了可编程的数字资产。 因此,交易执行模块也是区块链系统的重要组成部分。 也是早期性能优化中忽略的一个环节。

执行不再区分带宽和延迟,只关心单位时间内处理的事务或计算任务的数量。

以太坊区块链数据下载_以太坊区块链浏览器咋下载_以太坊区块链保存的内容

执行模块的效率受到计算机系统的各种资源的限制。

3.1 CPU资源

在串行执行中,CPU的性能瓶颈非常明显。 过去 5 年,CPU 单核性能提升不到 1 倍。在 EVM 中,如果不考虑存储访问以太坊区块链保存的内容,最快的 CPU 每秒可执行 1 亿 gas,是当前性能的 80 倍以太坊(仅粗略估计幅度)。

并行执行是利用 CPU 资源的关键步骤。 一些项目正在尝试提出更多的并行语言模型,例如 Move。

根据 Conflux 对 EVM 并行化的研究,目前以太坊链上交易的并行化潜力为 9 倍 tps。

然而,并行化 VM 会带来许多挑战。 例如,在理想情况下,事务是高度并行的; 在最坏的情况下,事务相互依赖,只能序列化。 那么如何设计gas pricing和gas limit,让理想情况下可以充分利用并行优化,最坏情况下执行跟不上呢?

3.2 存储访问资源

和网络设施层一样,这里的性能主要取决于硬件的发展和区块链节点的最低配置。 除非数据缓存在内存中,否则执行事务时的读写性能不能超过硬盘的读写性能。

以太坊区块链保存的内容_以太坊区块链浏览器咋下载_以太坊区块链数据下载

以Aptos为例,他们节点的存储要求是40K IOPS,一笔交易可能涉及发送方和接收方两个账户的状态修改,即网络最坏情况下只能支持20,000 tps。

但他们宣称的tps是16万,可想而知这背后隐藏着多少先决条件。

3.3 可验证存储结构

可验证存储结构是区块链存储的重要数据结构。 它允许轻节点从它不信任的全节点查询链的状态,这是区块链去信任化中最重要的环节。 在以太坊中,访问可验证存储结构 MPT 比直接访问数据库慢 10 倍。 因此,一些区块链干脆去掉可验证的存储结构,以换取更好的性能。

# 总结

最后总结一下,区块链的性能优化不是一个追求极限的过程,而是在各种约束条件下,在安全性、效率和去中心化之间进行权衡。

可以优化一些权衡。 比如中本聪共识,后来解决了共识带宽和安全性的矛盾。

一些权衡是不可避免的,如果你要求每个节点 256 GB 的内存,你就注定了独立参与者的数量很少。

一味追求纸面上的高性能只会导致中心化的崩溃链。 只有真正面对和解决性能优化中的问题,才是提升性能的正途。

限于篇幅,还有很多安全相关的注意事项没有提到。 但是上面的内容,已经足够打破很多蛋糕了。

原文链接: