扩容是区块链已持续多年的议题之一,当年比特币分叉出了比特币现金(BCH),也是因为扩容路线上的歧异,彼此无法达成共识就干脆另外分叉出一条链。以太坊的扩容之路已经持续数年,直到今日都还在扩容中,尚未完成,但扩容是什么?为什么要有这东西?
为什么区块链要扩容?
过去区块链一直被抱怨的问题之一,就是太慢又太贵。比特币链上转帐,从一个钱包将比特币转到另外一个钱包,大约需要20-30 分钟的时间才能确认,这时间跟国际转帐相比很快,跟国内转帐或一般支付相比超慢。
以太坊快一点,如果链上没有处于壅塞状态,大约5-10 分钟就能确认,但跟国内转帐或一般支付相比还是太慢。
不只慢,交易需要花手续费,手续费依据当时链上状况而定,顺畅的时候手续费比较低,交易热络甚至有点壅塞的时候手续费高,一般情况下大约介于台币数十到数百元之间,这跟国际转帐相比并不算贵,但跟国内转帐、一般支付相比还是太贵。
区块链想普及到日常生活,就必须更快、更便宜。
那为什么区块链这么慢又贵?跟区块链本身能乘载的交易量有关。区块链基本的运作是这样:有人在链上发起交易,矿工或节点会检查和处理这笔交易,其他矿工与节点也会来验证这笔交易,每一段时间将一批已验证的交易一起打包成区块上链。
处理交易是很快,但处理完还要验证,验证完还要打包区块上链,区块本身也有限制,整体来说区块链的运作牺牲了部分速度与效率,来换取去中心化与安全。但如果区块链想要普及到日常生活,就得更快更便宜。
区块链的不可能三角
这是以太坊的创办人,俗称V 神的Vitalik Buterin 提出过的一个说法,关于区块链的不可能三角,也被称为区块链的三角悖论或三角困境。
它指的是目前的区块链网络无法同时满足这三者,去中心化、安全性、可扩展性,最多只能同时追求两者,必然至少会牺牲其中一个。假设又要安全又要快,那就会牺牲掉部分的去中心化才能做到,又要去中心化又要安全,就得牺牲部份的可扩展性。
比特币网络历经多年验证,非常去中心化也非常安全,但比特币的交易速度,平均来说只有每秒5-7 笔交易。而以太坊,在扩容前也只能做到平均每秒15 笔左右,这数字简称TPS (Transactions Per Second)-每秒交易量,如果要让区块链能普及到日常生活,需要多高的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 次搜寻,这数字或许可以做为区块链扩容的初步目标。
原创文章,作者:惊蛰财经,如若转载,请注明出处:http://www.xmlm.net/jibi/31565.html