什么是区块扩容-MGCEX

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


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


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

  第一阶段:区块大小开始受限。比特币刚刚出现的时候,它的区块大小并没有被刻意限制,最大可达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个区块。

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


  五、小结

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

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

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

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

猜你喜欢

转载自blog.csdn.net/xiao33520/article/details/80982844