区块链研习社区块链

一文读懂比特币区块链扩容

2018-07-30  本文已影响11人  d24a18df6e71

我们知道,比特币的交易处理速度是有限的,这主要受限于每个区块最多储存的交易数,即区块容量,随着比特币网络的交易量越来越大,越来越多的交易不会在发生后第一时间被区块打包和确认,确认时间被延迟,从而影响了网络的正常运转。有什么方法可以解决这个问题?这篇文章将以比特币为例,聊聊区块扩容。

关注公众号:“币狗解读区块链”

——————————

回复"资料",免费领取 10G 区块链学习资料(400白皮书+翻墙软件+新手快速入门+老鸟必看行情)

回复"群",免费领取各大币圈优质项目官方群进群名额。

一、什么是区块扩容

区块容量:区块链中的每一个区块,都是用于承载某个时间段内的交易信息和数据,每个区块根据生成时间的先后顺序,使用密码学技术串联起来,形成一个完整的区块链数据库,区块容量则代表了一个区块容纳数据的能力。

区块扩容:从字面上理解,区块扩容是指增加区块的容量。从本质上看,即通过一些方法,提高区块链交易处理能力。

二、比特币区块为什么需要扩容?

第一阶段:区块大小开始受限。比特币刚刚出现的时候,它的区块大小并没有被刻意限制,最大可达32MB。可是,当时的比特币用户量比较少,交易量也不大,平均打包的区块大小为1-2KB。有的人认为上限和实际情况相差太远(1MB=1024KB),会造成计算资源的浪费。因此,为了确保比特币网络的安全与稳定,区块大小临时限制在了1MB。

第二阶段:网络拥堵出现,交易费用提高。假设每笔交易的大小是250B(1KB=1024B),容量为1M的一个区块最多能储存约4190笔交易,根据平均10分钟产生一个区块的速度,理论上每秒最多可以处理7笔交易。随着后来比特币价格飙升,用户量越来越多,交易量越来越大,由交易速度受限引发的网络拥堵、交易费用升高等问题逐渐暴露。

第三阶段:问题突出,需求激增。随着网络拥堵问题和交易费用增加的,每秒平均处理 7 笔交易的速度已经不能满足实际需求, 如何进行区块扩容成了热点问题。

三、扩容的方案有哪些

为了解决区块容量不足的问题,曾经提出的扩容方案主要有以下几个大类:

1、提高固定上限

1)BIP100:保留 32MB 的限制,并增加一个浮动的块大小限制,大小由矿工投票决定。在连续 12000 个区块中,超过 90%的矿工投票同意即可激活此方案。

2)BIP102: 一次性将区块扩大到 2MB。只要主链中超过 95%的矿工支持即可激活此方案。

3)BIP109(Bitcoin Classic):区块增加到 2MB,当支持该方案的算力超过 75%时可被激活。

2、可变的上限

1)BIP101(Bitcoin XT):设定初始大小为 8MB,大小随时间发展呈线性增长。主链中连续 1000 个区块中的第750个使用BIP101规定的版本号,即可激活,缓冲时间2周。

2)BIP103:上限设为最近 11 个区块大小的中位数,或者利用代码实现,每 97 天调整一次,幅度不超过 4.4%。

3)BIP105:以 1MB 为起点,每创建一个块,矿工投票决定增加或者减少容量,调整幅度不超过10%。

4)BIP106:以 2000 个区块为周期决定区块容量扩大两倍或减半。如果 90%的区块达到了上限的90%,容量扩大两倍,如果 90%的区块小于上限的 50%, 则容量减半。

3、不改变区块大小的技术性扩容

1)BIP141(隔离见证):通过移除比特币交易中的签名字段,使得交易记录和签名分开,实现区块大小不变的情况下变相扩容。连续两周内超过 95%的算力在区块数据中发出支持信号,则方案激活。

2)BIP148(用户激活软分叉):由用户、交易所、支付处理商等来决定是否进行升级更改比特币网络。如果约定激活日期前没有激活,升级了 BIP148 的节点将会拒绝没有发送支持信号的区块,产生软分叉。

3)BIP91:本质上是兼容 BIP141 的 BIP148 方案,但是设定了80%的算力激活阀值。无论升级BIP91还是 BIP148,升级后的节点互相兼容,目的是为了避免产生分叉。

4)侧链扩容:通过创建点对点的侧链网络,达到扩容目的。

5)分片技术:网络中的每个区块都作为一个子区块链,最终组成一个在主链上的区块。

4、其他方案

1)香港共识:采用BIP141+硬分叉 2M,且矿工不能运行BIP109。

2)BIP141+闪电网络:主链区块大小不变,采用隔离认证+闪电网络的方案 。

3)Bitcoin Unlimited:矿工自定义单个区块大小和可接受的区块大小,产生区块后,再对区块的大小进行投票。如果发现有更长链(大于当前链4个区块),则会自动切换到最长的链上。

4)纽约共识(Segwit2X):隔离验证激活阈值设置为80%算力,支持信号为bit4,并执行一次2MB的硬分叉扩容 。

5)UAHF(用户激活硬分叉):之前无效的区块在flag day后生效,无需绝大多数的算力通过执行。

四、区块扩容遇到的困难

直接扩容方式:如果采用改变区块大小的直接区块扩容方式,随着区块容量的越来越大,由于需要同步大量数据,各个节点的存储压力越来越大;此外,由于区块容量增大,新区快的传播速度随之减慢,容易形成孤块或空块。

孤块:是指被遗弃的数据块。由于在同一时间内可能有多个区块同时被产生,但每一次只能有一个区块可以被连接到区块链上,而其余被遗弃的区块就是孤块。或者是在传输过程中,认为第N块个区块还没有挖出来,所以就把自己挖出的块也打包交易,作为第N个区块广播,从而导致自己的区块被孤立。

空块:是指只有1笔交易,而没有打包其它交易的块。在第N个区块还没有传完数据时,就认为已经被挖出来,于是开始在第N个区块的基础上挖第N+1个区块。

技术性扩容方式:由于存在着权利和利益的冲突,使得比特币社区容易出现一些不可调和的分歧。

五、小结

为了解决比特币区块容量问题,总的来说可划分为两大类解决方案:

一是直接改变区块的容量;

二是不改变区块容量本身,通过其他手段提高交易处理能力。

由于比特币系统去中心化的特性,无论是哪一种方法,都需要经历一个艰难的共识过程,但为了比特币的持续发展,扩容依然是必须要面对和解决的一个问题。

上一篇 下一篇

猜你喜欢

热点阅读