区块链:决定区块链各模块的性能瓶颈和挑战

区块链的性能优化是一个很热的话题。然而,由于区块链系统的复杂性,系统性理解性能优化门槛很高,这就为“性能虚标”提供了空间

前有“百万tps”大跃进,后有“80万tps”宕机链

所以,我希望展开来讲一下决定区块链各模块的性能瓶颈和挑战,看看那些漂亮数据背后的水分

1.网络模块

作为一个去中心化的系统,网络通信是整个系统的基础,也有人将其称为Layer0

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

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

1.1网络设施层

红杉资本合伙人:若再次评估FTX还会做出同样投资决定,对加密概念仍感兴趣:6月23日消息,虽然FTX先已破产,但红杉资本合伙人Alfred Lin在彭博技术峰会上表示,通过用15种不同方式审视此前所做的工作,如果红杉资本再次评估加密货币交易所FTX,可能仍会做出同样的投资决定。Alfred Lin补充称,红杉资本在FTX上损失的1.15亿美元投资仅占其全球增长基金的2%至3%,而且该风投公司依然对加密货币概念非常有兴趣。[2023/6/23 21:56:10]

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

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

BitDAO新提案要求Alameda将所持BIT转至链上地址,否则将由社区决定处置金库中的FTT:11月8日消息,BitDAO社区发出紧急提案,要求Alameda Research将1亿BIT代币转移到链上地址供BitDAO社区验证,而非交易所,要求对方在24小时内完成,否则将由BitDAO社区决定(投票或任何其他紧急行动)如何处理BitDAO金库中的3362315枚FTT。[2022/11/8 12:32:06]

1.2节点连结层

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

带宽:一般情况下,节点连结层可以获得接近于网络设施层的带宽。也可以选择牺牲带宽来降低延迟:例如,当要广播一条消息时,同时发给所有邻居,而不是发完一个再发下一个

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

目前比特币和以太坊大概有几千个节点。根据我们的实验,如果全网有一万个世界各地的节点,广播延迟中位数3~6秒,最大可至15秒。通过一些协议优化,最大延迟可以再降低一半

MakerDAO正投票决定5亿枚DAI的投资策略分配方式:6月28日,据官方治理网站,MakerDAO正在投票决定5亿枚DAI在不同的投资策略之间分配的方式。分配方案包括100%购买美国短期国债和80%购买美国国债+20%购买IG Corp债券以及否决上述分配方式,80%购买美国国债+20%购买IG Corp债券的方案目前已获得18,829枚MKR赞同,支持率为69.12%。投票已于北京时间6月28日凌晨0时开始,将于7月1日凌晨0时结束。

据悉,虽然在之前的民意调查中,100%购买美国短期国债的方式获得了最多支持率(52%),但MakerDAO将按照链上投票的决定执行资本部署。

此前MakerDAO在MIP65中加入并激活一个RWA财库,该财库通过PSM收购USDC,并将其投资于经批准的债券策略。[2022/6/28 1:35:51]

而一些宣称确认延迟1~2秒的公链,显然只能支撑更少的节点

1.3广播协议层

Huobi哲叔:头部项目对Layer2的技术选型决定了未来ETH生态发展:3月11日,在以《Layer2百花齐放, DeFi 们如何“站队”?》为主题的AMA中,Huobi Global商业战略总监哲叔、Synthetix大中华区负责人Dorothy、路印协议CTO Steve Guo、Starks Network联合创始人张晓关于即将到来的Layer2展开了精彩的对话。Huobi哲叔认为:1.随着Layer2的爆发,tps的提升和gas的降低,会大大提升DeFi用户的使用体验。DeFi再也不再是有钱人的游戏。相信DeFi整体的TVL和各类业务量都会上一个新的台阶。无论是借贷,还是DEX,合成资产还是其他,各个赛道都会打开之前的天花板,强者恒强,头部效应会更加集中。2.而且目前这些在layer1上已经跑出来的头部项目,他们选择哪个技术选型,他们的站队对未来的ETH生态发展起到了决定性的作用。3.由于ETH 2.0还要2年左右的时间才有可能落地,这不光给了layer2,还给了其他的公链机会。比如今年目前暂定4-6月才会进行插槽拍卖的KSM/DOT。此外以Heco/BSC为代表的CEX公链生态也抓住了机会,得到了迅猛的发展,目前Heco上整体的TVL最高也达到过80亿美金。未来非常有可能的生态,是ETH生态、波卡生态、CEX做的公链生态,三足鼎立。[2021/3/12 18:37:22]

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

以太坊开发人员决定推迟柏林硬分叉:金色财经报道,许多用户仍依赖于以太坊客户端Geth,因此如果出现漏洞,则可能会使网络暂时冻结。有鉴于此,以太坊核心开发者上周五决定将柏林(Berlin)硬分叉的开发工作至少推迟到八月,以使其他客户端有机会增加其网络份额。根据Ether Nodes的说法,Geth只是11个客户端规范的其中之一,但是有79%的以太坊节点在Geth上面运行。自12月以来,该百分比上升了5%。[2020/7/1]

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

不过,只要网络设施层带宽足够高,即使不优化,这里也不会成为瓶颈

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

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

2.共识模块

共识协议是区块链系统中最复杂、最精巧的部分,它协调各个互不信任的节点,并为上层应用提供提供可信的去中心化服务。很长一段时间内,对共识模块的性能优化都是热点

带宽:中本聪共识自身的缺陷导致它的共识带宽必须处于一个非常低的水平,否则会增加网络分叉,降低系统安全性

2017年后的新协议基本都可以充分利用带宽了,这不再是一个难题

不过,有些项目混淆了共识模块的tps和区块链系统的tps,把充分利用带宽称为“无限可扩展”,仿佛网络带宽是无限的

延迟:共识的延迟指区块从产生到finalize需要多久。中本聪共识的确认延迟很差,大概需要30~60倍广播协议层延迟,后续PoW协议例如Bitcoin-NG,OHIE等也没有优化这一延迟

Prism将延迟优化到了23倍,Conflux优化到了3倍。PoS协议我了解得有限,估算大概需要5倍延迟

不过PoW和PoS协议有一个很大的不同:PoW参考最大延迟,PoS参考中位数延迟,而最大延迟和中位数延迟可能有3倍差异,所以PoS共识普遍延迟表现更好一些。节点少的话,进入10秒也不是不可能。至于以太坊这种上了PoS共识反而更慢的,只能说是一个奇葩吧

共识模块是“参数虚标”最严重的地方。比如,明明需要等6个区块才能达到安全性要求,项目方告诉你1个区块就行,反正没人攻击就不会露馅,没资产就没人攻击

还有一种叫分片的技术:给节点分组,把交易分给各组,每组只处理自己的交易、相信其他小组。这种技术通过增加小组数量,容易获得一个很高的tps用于吹嘘,但相信其他小组会带来安全风险。所以分片适用于对安全性要求不高的场景,如国产联盟链

3.执行模块

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

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

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

3.1CPU资源

在串行执行中,CPU的性能瓶颈是非常明显的。在过去5年内,CPU单核性能提升了不到1倍。在EVM中,如果不考虑存储访问,最快的CPU大概1秒能执行1亿gas,是现在以太坊性能的80倍

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

在Conflux一项关于EVM并行化的研究表示,目前以太坊链上交易的并行化潜力是9倍tps

但是,并行化VM有很多的挑战。比如,理想情形下,交易高度并行;最差情形下,交易相互依赖,只能串行。那如何设计gas定价与gaslimit,使得理想情况可以充分利用并行优化,而最差情况又不至于跟不上执行?

3.2存储访问资源

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

还拿Aptos举例,他们节点的存储要求是40KIOPS,而一笔交易可能涉及到发送者和接受者两个账户的状态修改,也就是最差情况下网络只能支持2万tps

但他们的宣称tps是16万,可想而知这后面有多少不公开的前提条件了

3.3可验证存储结构

可验证存储结构是区块链存储的一个重要数据结构。它允许一个轻节点向一个它不信任的全节点查询链上状态,是区块链trustless里的最重要一环

在以太坊中,访问可验证存储结构MPT比直接访问数据库慢10倍。所以,有些区块链干脆去除了可验证存储结构,以换取更好的性能

最后做个总结,区块链的性能优化不是一个追求极限的过程,而是在各种限制下对安全、效率、去中心化程度的取舍

有些取舍是可以被优化的,比如中本聪共识中,共识带宽与安全性的矛盾后来被解决了

有些取舍是不可避免的,如果你要求每个节点配备256GB的内存,就注定了独立参与者的数量不会太多

一味地去追求纸面上的高性能,只会得到一个中心化的宕机链。只有真正去面对和解决性能优化中的问题,才是性能提升的正途

希望这篇文章对大家有一定的帮助,有想跟作者聊聊的欢迎私信!

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

地球链

CoinwXRP:Ripple 报告 XRP 持股量首次低于 50%

RippleLab的XRP代币持有量在公司历史上首次降至总流通供应量的50%以下。 Ripple过去曾受到一些人的批评,一些人对该公司拥有大量XRP代币的所有权提出质疑,认为这使公司能够集中控制.

[0:0ms0-0:518ms