比特币的扩容问题:千军万马过独木桥!

逍遥 6902

首先我们要解释什么是比特币的扩容问题,为什么比特币要扩容。比特币的扩容问题来自一个很直接的现实,那就是保存在比特币区块链上的数据块的物理大小限制是 1MB。任何大于 1MB 的区块都会被比特币网络当作攻击而被拒绝接受,这是当初由中本聪对比特币核心的设计决定的,逻辑规则都写在了源码中。


微信图片_20200204190655.jpg


比特币扩容问题


大家都知道比特币其实就是一个分布式的公共记账(数据库)系统。也就是说,比特币本质其实是拿来记账用的,当然大部分情况是对比特币这个数字货币记账。


由比特币底层技术发展起来的区块链技术也是对各种承载价值以及数据状态进行记账。比特币的数据包含交易数据及其对应的货币台账,我们简单想一想,最主要的问题来自大家在日常交易转账的时候,需要不断地把交易数据发送到网络中的节点,经过矿工打包成区块后广播给其他节点,每个节点验证通过后独立的加入自己本地的区块链账本数据库中。


随着时间的推移以及比特币生态系统的扩张发展与深入应用,用户数越来越广泛,交易次数也越来越多,网络中等待确认的交易则排起了长长的队伍,这时我们就会遇到单个区块的容量限制问题了。


而现在这样的容量限制问题已经发生,比特币网络已经由于交易缓慢而变得拥挤不堪。由于区块大小 1MB 的限制,单个区块只能容纳很有限的交易事务,在一个区块的结构中,区块头也就是区块的摘要信息字段占据了 80 个字节,每条交易事务平均在 200 字节左右,往多了算,假设区块中的交易都是一对一的简单交易,单个区块能够容纳的交易数也就 8000 左右,而实际上根据目前的使用统计,单个区块容纳的交易数才 1700 多,就这还得要等上间隔 10 分钟的打包确认,因此算下来,交易速度最高大概 1 秒钟只能处理 3 笔交易。要知道已经被市场所广泛熟悉与习惯的支付手段(像 VISA、Master 卡等信用卡银行卡)交易处理速度每秒钟高达几千笔交易。


由于这个区块大小的限制,很多用户为了能够尽快让网络确认自己的交易,不得不增加交易手续费(比特币中矿工节点会按照手续费高低进行优先级处理)。大量交易费用的增加以及交易处理严重延迟等问题,已经成了比特币的性能瓶颈,大大限制了比特币的应用和发展。


为了比特币的未来着想,很多人建议增加比特币区块数据的大小。原因很简单,因为大部分商家和最终用户不会使用一个需要等待好几个小时才能确认一笔交易的系统。理论上来讲,增加比特币区块的大小会允许更多的交易数据可以放到一个数据块中,使得更多的人使用比特币的时候网络运行更顺畅。


为此,比特币网络实际控制者以及各路专家等组成的比特币社区提出了很多对比特币扩容的方案,也开启了比特币扩容的解决方案在比特币社区激烈的冲突和争论。


微信图片_20200204190655.jpg


比特币扩容大事件


我们来看一下这些年为了比特币区块扩容发生的那些事。


  •  2015-Bitcoin XT(比特币扩展),2015 年提出通过增加数据块的大小限制来提高交易处理效率,最早建议数据块大小是 8MB,然后数据块大小根据交易数据情况自动增长,每两年大小翻一倍等,但是事后这个建议没有得到足够的支持而最后未被接受。


 • 2016-Bitcoin Classic(比特币经典),2016 年也提出通过增加数据块的大小限制来提高交易处理效率,但是没有 Bitcoin XT 那么激进,最早提出区块大小从 1MB 扩容到 2MB,然后在后期决定把区块大小上限交给矿池和交易节点来决定,不过并没有得到比特币核心开发团队的支持。


•2016-香港共识,2016 年 2 月 21 日,在香港数码港,由比特币业界代表和开发社区代表参与的圆桌会议达成了扩容共识:软件激活由比特币核心开发人员执行在 2015 年 12 月提出的隔离见证,并将区块大小限制扩充到 2MB;很遗憾,此次共识达成的两个行动都逾期了。


•2016-Bitcoin Unlimited(BU-比特币无极限),在Bitcoin XT 和 Bitcoin Classic 扩容方案夭折之后,Bitcoin Unlimited 提出增加区块大小的方案是完全取消区块大小限制,让用户通过查看大多数共识区块的大小决定并自行设置自己区块的大小。这个方案得到了不少矿池的支持。


2017 年 1 月发布 1.0.0版本得到了包括 Antpool、bitcoin.com、BTC.TOP、GBMiners 和 ViaBTC 等矿池的支持。至 2017 年 3 月,全球大概由 11%的节点运行 BU 升级版。但是,比特币的扩容并不是简简单单地将区块大小限制取消就万事大吉,扩容涉及很多方面的技术细节并需要大量的测试。果然,2017 年 1 月 19 日 BU 发现重大漏洞,由 bitcoin.com 矿池打包出第 450529 无效区块,1 月 31 日打补丁,2017 年 3 月 14 日,BU 全节点遭到攻击,BU 节点数量大量宕机,然后代码漏洞一个接一个,2017 年 4 月 24 日,70%的 BU 节点因为内存泄露而出现系统崩溃。


•2017-BIP148,一个通过用户激活的软分叉比特币扩容方案被提出。BIP148 打算绕过矿工和矿池的支持,在 2017 年 8 月 1 号启动一个用户欢迎程度来激活(UASF)的比特币扩容软件升级方案,该方案建议 2017 年 8 月 1 号起,激活比特币的隔离见证(SegWit)功能。


•2017-纽约共识(SegWit2x),2017 年 5 月,「数字货币集团」公布一个扩容方案,也就是 SegWit2x,即著名的「纽约共识」:先在获得 80%的比特币算力支持基础上首先激活隔离见证方案,并在 6 个月后获得 80%比特币算力支持的时候激活将区块大小从 1MB 扩展到 2MB 的升级。时至 2017 年 7 月中旬,矿工和矿池基本一致同意在 2017 年 8 月 1 号前实施激活隔离见证(Segwit2x)方案。

 

•2017-Bitcoin Cash(BCH),BCH 是 2017 年 8 月 1 日比特币硬分叉产生的一个新的比特币区块链变种。当比特币矿池和交易所 ViaBTC 为了对抗隔离见证(SegWit),挖出第 478559 区块,正式宣告比特币历史上的第一次硬分叉。比特币硬分叉后产生两个新的币种:比特币(BTC)和比特币现金(BitCoin Cash,以下简称 BCH),硬分叉前的比特币所有者会自动分配同时拥有分叉后的比特币(BTC)和比特币现金(BCH)。BCH 的区块大小从 1MB 扩容到 8MB,而不引入隔离见证。在 2017 年 8 月 1 日午夜之后,BCH 的市场市值达到继比特币和以太坊之后的第三大市值,随后越来越多的交易所也慢慢开始支持 BCH。


从比特币的扩容历史我们可以看到,为了一个区块扩容竟然产生了这么多的讨论和争议,一个初看起来似乎很简单的问题却包含了各种技术考量。


微信图片_20200204190655.jpg


比特币扩容的困境


区块链目前面临的三角困境使得现在只可以满足以下3个属性中的2个:


扩容性

去中心化性
安全性


区块容量扩大后,其吞吐量加快了,但是不易于区块的传输和存储,下面看这样一组数据,如果区块的容量是30MB,那么一年产生的交易数据将占用1.5TB的空间,如果区块扩容量是300MB,一年15TB的交易数据,这无疑区块的存储,增加了很大的压力。


我们可以看到,对于区块链这种新型的网络软件结构,有其明显的优势,但是也有明显的问题所在,就区块扩容这个问题而言是具有代表性的,比特币、莱特币、以太坊等其实都会有这样的问题,区块容量爆炸一直都是这个领域的难点问题,尤其是对于使用广泛的区块链系统,比如以太坊,这个问题的严重程度尤甚。


在前面的比特币扩容大事件中,我们了解了几种比特币扩容的方式,一种是增加数据块的大小限制,还有就是简单粗暴的去除区块的大小限制,还有一种就是运用隔离见证机制,那么什么是隔离见证呢?我们会在在下一篇文章中我们将会具体介绍比特币扩容的方法之一:隔离见证。



标签: 区块项目 区块咨询

请进入“Zblog后台” -> “畅言” 登陆你的畅言账号。