扩容,作为区块链技术发展的核心议题之一,历史悠久。我们回顾比特币的分裂——比特币现金(BCH)的诞生,便是由于扩容路径上的分歧,导致共识无法达成,最终选择分道扬镳。以太坊的扩容之路同样曲折,至今仍在进行中,那么扩容究竟是什么?为何如此重要呢?
为何区块链需要扩容?过去,区块链一直被诟病的问题之一就是速度慢、成本高。以比特币为例,将比特币从一钱包转账至另一钱包,通常需要20-30分钟才能得到确认,这一速度与国际转账相比虽快,但与国内转账或一般支付相比则显得过于缓慢。
以太坊的确认速度稍快,在没有网络拥堵的情况下,大约5-10分钟就能得到确认,但与国内转账或一般支付相比,依然不够快。
不仅如此,交易还需要支付手续费,手续费的高低取决于链上状况,在链路顺畅时相对较低,而在交易拥堵时则相对较高,一般情况下,手续费介于数十到数百元之间。虽然与国际转账相比并不算贵,但与国内转账和一般支付相比,仍显得较为昂贵。
若要让区块链普及到日常生活,就必须实现更快、更便宜的交易。
区块链为何如此慢且贵?这与区块链本身能承载的交易量有关。区块链的基本运作机制是这样的:有人在链上发起交易,矿工或节点会检查和处理这笔交易,其他矿工与节点也会来验证这笔交易,每过一段时间将一批已验证的交易一起打包成区块上链。
虽然处理交易的过程很快,但后续的验证和打包区块上链却需要时间,而区块本身也有容量限制,因此,区块链在保证去中心化和安全性的同时,不得不牺牲一部分速度和效率。然而,若要让区块链普及到日常生活,就需要更快、更便宜的解决方案。
区块链的不可能三角,是以太坊创始人Vitalik Buterin提出的概念,也被称为区块链的三角悖论或三角困境。它指的是目前的区块链网络无法同时满足去中心化、安全性、可扩展性这三个要求,最多只能同时追求两者,必然至少会牺牲其中一个。
以比特币为例,比特币网络经过多年的验证,既去中心化又安全,但平均每秒的交易量只有5-7笔。以太坊在扩容前,平均每秒的交易量也只有15笔左右。如果要让区块链普及到日常生活,需要达到多高的TPS呢?
生活中常见的刷卡交易,如VISA和Master,可能为我们提供了一些参考。网络上查到的VISA的TPS最低是1700,最高是24000,而Master的TPS大约是5000,这些数字明显比区块链要快很多。
区块链扩容的目标,就是要让区块链网络能更快速地处理更多交易,扩展区块链网络的容量,就像增加网络带宽,升级电脑规格,让我们能更快速地完成更多事情。
扩容有哪些方式?区块链是虚拟的,区块和链是概念,并不是真的有摸得着的实体链条,其呈现方式类似于下图:
交易被打包成区块,与上一块旧区块相连,也会与后面的新区块相连,块与块之间通过加密算法进行验证,一块接着一块,就像链条一样,因此称为区块链。交易一旦上链,就不可更改,持续运行下去,这条链会越来越长。
若要扩展区块链网络的容量,让它可以承载更多交易,有两种扩容方向:
链上扩容:直接在区块链上动手,通过调整区块链本身的规则来扩容。例如调整区块大小、调整出块时间、分片等等。
链下扩容:不更动区块链本身,从其他地方下手来扩容,例如另外新增一条链、点对点之间开启状态通道等等。
链上扩容——提升区块链吞吐量
直接在区块链上动手,通过调整区块链本身的规则来扩容。如果把区块链想象成地铁或火车,区块链扩容就像要提高运量,所谓的链上扩容,就是直接去改列车、改车站。
加大区块大小
把每个区块的容量限制加大,每次就可以打包更多笔交易。
以比特币为例,比特币的区块容量限制为1 MB,平均记录一笔交易需要256 bytes的容量,也就是说平均一个区块可以打包4096笔交易。
1 MB = 1024 KB,1 KB = 1024 bytes
2017年,由于扩容路线之争,从比特币分叉出了另外一条链,分叉出了比特币现金(BCH),当时比特币现金将区块容量提升到8 MB,后来又再度提升到32 MB。
并不是区块大小提高几倍就可以把交易数量提高几倍,还必须看不同链上的不同规则,不同的交易内容可能会有不同的交易大小,更复杂的交易会需要更大的容量。
如果用地铁的比喻,加大区块大小就像是把车厢变大,更大的车厢可以挤进更多乘客,整体运量上升。但车厢不可能无限增大,这会受到原本设计的限制。
区块大小影响的是一个区块可以打包几笔交易,但打包之前节点依然必须先处理交易,如果节点能处理的交易已达上限,继续增大区块大小并不能提高多少交易量。如果车站在入口闸门处就已经塞住,就算车厢增大可以容纳更多旅客,但人根本卡在前面进不了站,运量并不会因此而有提升。
增加出块频率
把打包区块的速度加快,同样时间内可以出更多区块。
加速出块,虽然每个区块能容纳的交易数量一样,但同样时间内区块变多了,整体可打包的交易也变多了。
比特币的平均出块时间是10分钟一块,对应上一段提到的每个区块可容纳4096笔交易,换算就是平均一秒6.82笔交易,这是理论值,实际上出块时间略有浮动,也不一定每个区块都能完整打包4096笔交易。
以太坊在转换到POS机制后,目前的出块时间大约是14秒一块,有些公链更快,可以做到3-6秒出一块。但并不是出块时间比较快就等于可承载交易数量一定比较多,还得看区块大小以及交易内容等等综合评估。
如果用地铁来比喻,增加出块频率就像是增加发车班次,本来两分钟一班车,改为一分钟一班车,运量就提升了。
分片
分片的概念相对复杂,可以用分工来理解。
Original diagram by Hsiao-wei Wang, design by Quantstamp.
分片并不是区块链独有的概念,在传统的数据库处理中就有这个概念,简单来说,就是不必每个服务器都存储所有数据,而是将数据切分成几个部分,分散存储在不同服务器。
在区块链的运作中,原本是所有矿工和节点都要验证所有交易,有些重复工作,通过分片技术,部分节点只验证部分交易,通过分工的方式提升整体效率。
例如,假设原本共有500个节点,因为每个节点都要验证所有交易,也许原本的处理上限是每秒500笔;现在把这500个节点拆成10组,每组只负责验证十分之一的交易,这样一来处理上限就提高了10倍,变成5000笔。
但本来交易会被500个节点验证,现在只会被50个节点验证,看起来安全性下降了,参与的节点变少,51%攻击变容易了,解决方案之一是每次都通过随机抽样的方式来分配节点。
分片简单来说就是一种分工,在同样的节点数量下,增加可处理的交易数量。如果用地铁的概念来理解,有点像是增加闸门、增加月台,列车大小一样、车站大小一样,但增加闸门数、月台数,可以放更多人进站,也同时可以开更多车,运量就提升了。
链上扩容需要直接对区块链动手,必然会受到区块链原本设计的限制,就像在现实世界中若要直接修改地铁车厢、车站一定很困难,限制很多,成本很高。另一种做法是链下扩容。
链下扩容——其中有些也被称为Layer 2扩容
不更动区块链本身,从其他地方下手来扩容。如果用地铁的比喻,那链下扩容就是不改列车、车站,通过其他方式例如增加接驳公车、另外开新的支线来提升运量。
链下扩容有五种方式:侧链、状态通道、Rollups、Plasma、Validium,这部分在技术上比较复杂,本文作为入门科普文只会简单带过,想了解更多建议阅读这篇文章:
侧链
侧链的概念像是在原本的地铁之外再建立一条支线,或是加开接驳公车,由其他公司来运营,走不同的系统,与原本的地铁线不能直接互通,需要出站,需要重新购票。
侧链是另外一条链,有自己的节点、共识、安全性,和主链之间用某种方式相互协作。
状态通道
至于状态通道,是一种点对点之间的通道,有点像我家和公司之间开了一个传送门,两地之间传来传去其实并没有通过地铁,但每过一段时间总结传送次数后一次打包进出明细给地铁公司。
在区块链中,就像A钱包和B钱包之间开启状态通道,彼此之间的交易其实都在链下进行,并没有每笔交易打包上链,如此就可以避开区块链本身的容量限制,一段时间后才会将这段期间的所有明细一次打包上链,同时关闭通道(可以再次开启)。
Layer 2
至于另外三种Rollups、Plasma、Validium都属于Layer 2解决方案,只是各自使用的技术不同。Layer 2简单来说就是建立在Layer 1主链上的第二层链,目前最多的是以太坊的Layer 2,也就是建立在以太坊之上,承接了以太坊安全性的另外一条区块链。
与侧链的差异在于侧链有自己的节点、共识、安全性,但Layer 2不需要,它是依赖主链而生的一条链,用地铁的比喻来解释依然是一条支线,但这次使用与原本地铁相同的系统,彼此高度相关。
Layer 2简称L2
概念都类似,在L2链上处理交易,一段时间之后再将多笔交易合并打包回主链。因为不用每笔交易上主链,就可以避开主链本身的交易容量限制,大部分交易都在L2上处理,累积多笔交易之后再合并为一笔打包回主链即可。
而根据不同的打包方式、与主链之间的验证方式,又区分为几种类型,目前最主流的L2方案为Rollups,其中非常有潜力的方案为ZK-Rollups,采用零知识证明,难度较高,在过去较为小众,但V神在2023年的公开演讲中提到他认为零知识证明在接下来十年非常重要。
扩容后的以太坊可以有多快?
之前的以太坊区块链还是采取POW共识机制,当时平均每秒交易次数(TPS)大约是15笔,与VISA相比确实太慢了,许多后发的平台公链也都超过了这个数字,例如Solana的TPS大约介于2000-3000之间,理论值号称可以到65000 TPS。
以太坊的扩容方案基本上是链上X链下同时进行,链上部分更改了共识机制,从POW调整成POS,出块时间稍微快了一些,也会持续提升区块容量,并采取分片技术,同时搭配Layer 2为主的链下扩容方案。
因此,扩容后的以太坊到底可以有多快?2022年7月,在以太坊社区会议(ETHCC)上,以太坊创始人Vitalik Buterin(V神)和以太坊的开发人员介绍了Ethereum最新的未来路线图(Roadmap)。
以太坊未来的发展会分为五个关键的部分,而这五个部分都是同时进行的,它们分别是:The Merge、The Surge、The Verge、The Purge、The Splurge。
其中的The Merge指的是将主网和信标链合并,从POW共识机制转向POS的重大合并事件,这个合并已经在2022年9月15日完成,从那天起以太坊的挖矿成为历史,从此转换成POS机制。
一旦五大路线完成升级,以太坊的主链将可以达到,甚至超越10万TPS(Transaction Per Second),同时拥有超过64个分片,一次性处理大量交易。与现在以太坊只有约15 TPS相比,完成升级后的以太坊将会快近10000倍。
如果区块链在未来生活中的应用不只是金融支付,那么我们就不能仅仅拿VISA、Master的TPS来参考。如果区块链在日常中的应用可以就像我们现在使用网络一样自然而然,那么区块链的扩容目标显然必须设定得更大,Google在现今平均每秒约处理40000次搜索,这个数字或许可以作为区块链扩容的初步目标。
标签: 区块链