扩容是区块链已持续多年的议题之一,当年比特币分叉出了比特币现金(BCH),也是因为扩容路线上的歧异,彼此无法达成共识就干脆另外分叉出一条链。以太坊的扩容之路已经持续数年,直到今日都还在扩容中,尚未完成,但扩容是什么?为什么要有这东西?
过去区块链一直被抱怨的问题之一,就是太慢又太贵。比特币链上转帐,从一个钱包将比特币转到另外一个钱包,大约需要20-30分钟的时间才能确认,这时间跟国际转帐相比很快,跟国内转帐或一般支付相比超慢。
以太坊快一点,如果链上没有处于壅塞状态,大约5-10分钟就能确认,但跟国内转帐或一般支付相比还是太慢。
不只慢,交易需要花手续费,手续费依据当时链上状况而定,顺畅的时候手续费比较低,交易热络甚至有点壅塞的时候手续费高,一般情况下大约介于台币数十到数百元之间,这跟国际转帐相比并不算贵,但跟国内转帐、一般支付相比还是太贵。
区块链想普及到日常生活,就必须更快、更便宜。
那为什么区块链这么慢又贵?跟区块链本身能乘载的交易量有关。区块链基本的运作是这样:有人在链上发起交易,矿工或节点会检查和处理这笔交易,其他矿工与节点也会来验证这笔交易,每一段时间将一批已验证的交易一起打包成区块上链。
处理交易是很快,但处理完还要验证,验证完还要打包区块上链,区块本身也有限制,整体来说区块链的运作牺牲了部分速度与效率,来换取去中心化与安全。但如果区块链想要普及到日常生活,就得更快更便宜。
这是以太坊的创办人,俗称V神的VitalikButerin提出过的一个说法,关于区块链的不可能三角,也被称为区块链的三角悖论或三角困境。
它指的是目前的区块链网络无法同时满足这三者,去中心化、安全性、可扩展性,最多只能同时追求两者,必然至少会牺牲其中一个。假设又要安全又要快,那就会牺牲掉部分的去中心化才能做到,又要去中心化又要安全,就得牺牲部份的可扩展性。
比特币网络历经多年验证,非常去中心化也非常安全,但比特币的交易速度,平均来说只有每秒5-7笔交易。而以太坊,在扩容前也只能做到平均每秒15笔左右,这数字简称TPS(TransactionsPerSecond)-每秒交易量,如果要让区块链能普及到日常生活,需要多高的TPS?
生活中常见的刷卡交易,参考VISA和Master的数字也许会让我们有个概念,关于VISA究竟可以达到多高的TPS网络上查到多种数字,最低的是1700,最高的是24000,也许是理论值跟实际值的差异,而Master的TPS大约5000,这些数字都很明显比区块链要快很多。
区块链扩容,就是要让区块链网络能更快速地处理更多交易,扩展区块链网络的容量,想像成增加网络频宽,升级电脑规格,让我们能更快速地完成更多事情。
区块链是虚拟的,区块和链是概念,并不是真的有摸的到实体的一条链子,呈现起来类似下图:
交易打包成区块,跟上一块旧区块相连,也会跟后面的新区块相连,块与块之间透过加密算法验证,一块接着一块就像链子一样所以叫做区块链,交易上链就不可更改,持续运行下去这条链会愈来愈长。
想扩展区块链网络的容量,让它可以承载更多交易,有两种扩容方向:
链上扩容-直接在区块链上动手,透过调整区块链本身的规则来扩容。例如调整区块大小、调整出块时间、分片等等。
链下扩容-不更动区块链本身,从别的地方下手来扩容,例如另外新增一条链、点对点之间开启状态通道等等。
直接在区块链上动手,透过调整区块链本身的规则来扩容。如果把区块链想像成捷运或火车,区块链扩容就像要设法提高运量,所谓的链上扩容,就是直接去改列车、改车站。
把每个区块限制的空间加大,每次就可以打包更多笔交易了阿~
看示意图,是不是觉得下面这条链感觉可以装更多东西?
以比特币为例,比特币的区块容量限制为1MB,平均纪录一笔交易需要256bytes的容量,也就是说平均一个区块共可以打包4096笔交易。
1MB=1024KB,1KB=1024bytes
2017年的时候因为扩容路线之争,从比特币分叉出了另外一条链,分叉出了另外一种比特币,被称之为比特币现金(BCH),当时比特币现金将区块容量提升到8MB,后来又再度提升到32MB。
并不是区块大小提高几倍就可以把交易数量提高几倍,还必须看不同链上的不同规则,不同的交易内容可能会有不同的交易大小,更复杂的交易会需要更大的容量。
如果用捷运的比喻,加大区块大小就像是把车厢变大,更大的车厢可以挤进更多乘客,整体运量上升。但车厢当然不可能无止尽加大,这会受到原本设计的限制。
区块大小影响的是一个区块可以打包几笔交易,但打包之前节点依然必须先处理交易,如果节点能处理的交易已达上限,继续增大区块大小并无法提高多少交易量。如果车站在入口闸门处就已经塞住,就算车厢增大可以容纳更多旅客,但人根本卡在前面进不了站,运量并不会因此而有提升。
把打包区块的速度加速,同样时间之下可以出更多区块。
加速出块,虽然每个区块能容纳的交易数量一样,但同样时间之下区块变多了,整体可打包的交易也变多了。
比特币的平均出块时间是10分钟一块,对应上一段提到的每个区块可容纳4096笔交易,换算就是平均一秒6.82笔交易,这是理论值,实际上出块时间略有浮动,也不一定每个区块都能完整打包4096笔交易。
以上就是什么是区块链扩容?链上链下扩容?有Layer 2之外的扩容方案,什么是区块链扩容?链上链下扩容?有Layer 2之外的扩容方案?的全部内容,望能这篇什么是区块链扩容?链上链下扩容?有Layer 2之外的扩容方案,什么是区块链扩容?链上链下扩容?有Layer 2之外的扩容方案?可以帮助您解决问题,能够解决大家的实际问题是非常好学习网一直努力的方向和目标。