一文看懂比特币扩容问题前世今生
区块链 不碎 · 粹客网 2017-07-20
如果按照每笔交易占 250B,平均每十分钟产生一个区块的速度计算,比特币网络理论上每秒最多可以处理 7 笔交易。那时比特币的用户数量少,交易量也没有那么大,这个交易速度并不会造成区块链网络的拥堵。直到 2013 年后半年,比特币价格直线飙升,用户体量越来越大,比特币网络拥堵交易费用上升的问题才逐渐涌现出来。
到现在,比特币区块链上最高时有上万笔交易积压,比特币的平均交易费用比 2010 年 9 月上涨了 376 倍,每秒 7 笔交易的处理速度已经明显无法满足用户需求, 扩容问题成了比特币社区议论的热点。
但是,随着各种扩容方案的层出不穷,社区内开始出现分歧。从 2015 年 Gavin Andreesen 和 Mike Hearn 将区块大小提高到 8MB 的提议未被 core 成员认可而被剥夺代码合并权,到 2016 年 bitcoin core 团队拒绝执行“香港共识”,再到今年“纽约共识”将 core 开发团队排除在外,比特币扩容的争议已经到了白热化的地步,从而导致扩容问题至今还没有得到妥善解决。
现在,比特币交易费用最高达到了数十美金,整个网络中有超过 20 万笔交易没有被确认。比特币扩容已经迫在眉睫,不少人把隔离验证软分叉+2MB 硬分叉的“纽约共识”当做是解决扩容问题,结束扩容争议的重要转机。
但其实,现在下结论还为时尚早。
目前已经提出的扩容协议
BIP100
2015 年 6 月,由前 Bitcoin core 开发员兼 Bitpay 员工 Jeff Garzik 提出,他建议移除 1MB 区块上限,保留 32MB 的限制,在这个基础上增加一个浮动的块大小限制,矿工们通过代码
(‘BV’+BlockSizeRequestValue into coinbase scriptSig, e.g)来投票决定区块的大小。
协议中规定连续 12000 个区块中 90%的矿工投票同意就可以激活该方案。
BIP102
2015 年 6 月 23, Jeff Garzik 又提出 BIP102,这个协议很简单,他建议 一次性将区块扩大到 2MB。只要主链中有超过 95%的区块表示支持该协议就能够被激活。
值得注意的是 Jeff Garzik 2014 年离开 bitcoin core,2015 年 10 月创立 Bloq。
BIP101
2015 年 6 月,由前 bitcoin core 首席开发员兼比特币基金首席科学家 Gavin Andresen 提出,他建议 将区块的初始大小设为 8MB,之后随时间变化而线性改变区块大小 。
起始时间戳为 2016-01-11 00:00:00 UTC(1452470400),每 63,072,000 秒 (两年,忽略闰年) 增大一次区块,直到 2036 – 01 – 06 00:00 UTC(2083190400)。区块最大可增加到 8,192MB。
该协议的激活方式是,在主链中连续 1000 个区块中有 750 块使用 BIP101 规定的版本号(0×20000007)。激活时间为第 750 个区块产生的时间戳,并且有两周的缓冲时间。
BIP109
2016 年 1 月,Gavin Andresen 又提出了 BIP109 方案。该方案建议将比特币区块增加到 2MB,并且当支持算力超过 75%时被激活。
协议规定,矿工将区块的版本号设置为 0×10000000 以示支持。
BIP103
2015 年 7 月 21,由 bitcoin core 开发者,Blockstream 联合创始人 Pieter Wuille 提出,他建议 将区块上限设为最近 11 个区块大小的中位数,或者利用代码 GetMaxBlockSize(pindexBlock->pprev->GetMedianTimePast()) 来控制区块的大小 ,从 2017 年 1 月到 2063 年 7 月,每 97 天调整一次,幅度不超过 4.4%。
BIP105
2015 年 8 月 21,由 bitcoin core 开发员 BtcDrak 提出,他建议区块以现有 1MB 为起点,矿工每创建一个块他们通过投票决定增加或者减少这个块的大小 ,最大幅度是当前区块的 10%。期望增加区块大小的矿工投票时需要额外提高挖矿的难度。
BIP106
2015 年 8 月 24,由比特币开发者 Upal Chakraborty 提出,建议 每 2000 个区块为周期动态调整大小 。如果 90%的区块达到了上限的 90%, 区块体积扩大两倍,如果 90%的区块小于上限的 50%, 则区块体积减半。
BIP141(隔离见证)
2015 年 12 月,由 Ciphrex 的联合创始人兼首席技术官 Eric Lombrozo, 比特币技术爱好者 Johnson Lau 和 BlockStream 的联合创始人 Pieter Wuille 提出,他们都是 bitcoin core 的开发员。他们建议 移除比特币交易过程中的签名字段,将交易和签名分离开,这样就可以在不扩大区块大小的情况下实现“变相扩容”,也称为技术性扩容方案。
在持续两周时间里有 95%的算力在区块数据中发出 bit1 支持信号,该方案将被执行。
BIP148(用户激活软分叉)
由于 BIP141 一直被矿工阵营反对,为了推进隔离见证的升级,2017 年 3 月,由自称“Shaolinfry”的匿名社区成员提出,他建议将由矿工决定是否进行升级更改比特币网络,转向由用户、交易所、支付处理商等来决定。该协议将原本由算力决定的锁定信号交给由全网节点来决定 。约定激活日期为 8 月 1 日,如果在 8 月 1 日前现有的隔离验证没有激活,升级了 BIP148 的节点将会拒绝没有发送 bit1 信号的区块。该方案被认为是扩容问题中最激进和最具争议的一个。
BIP91
为了避免在 8 月 1 日出现比特币分叉的局面,2017 年 5 月,由比特币开发者 blockstream 的支持者 James Hilliard 提出一个兼容性的新方案 BIP91。该协议实质上是一个兼容 BIP141 的 BIP148 方案,但是激活阀值在 80%。如果 80%的算力在持续两天内支发出支持信号,它就会被锁定。该协议可以使得无论通过 BIP91 还是 BIP148 升级后的节点互相兼容,能够同时接受 bit1 和 bit4 的信号。意味着无论 core 阵营支不支持纽约共识,只要纽约共识的签署算力(超过了 80%)支持该方案,那么比特币的分裂就暂时能够被避免。该协议也是目前最有望执行的方案。
具体扩容方案
Bitcoin XT
2011 年,Gavin Andresen 被中本聪指定为比特币的首席开发者,之后 Gavin 又吸纳了多名技术人员加入开发者的团队,于是逐渐形成了我们今天看到的 core 开发组。
2015 年初,他提出将比特币区块一次性扩容至 20MB,在当时由于在中国这样的发展中国家的网络条件无法满足这么达的区块,因此这个提议没有在社区达成共识。2015 年底,20MB 扩容计划落空的 Gavin Andresen 联合开发者 Mike Hearn 提出了将区块大小调整至 8MB 的 Bitcoin XT 方案。
该方案 基于 BIP101 协议将起始块的上限设为 8MB,随着时间的推移,区块上限逐渐提高。 但这个方案同样没有获得开发组其他成员的认可。2016 年初 Gavin Andresen 被取消了比特币维护权,Mike Hearn 退出比特币社区。
Bitcoin Classic
该方案在 2016 年 3 月份,由前比特币基金董事 Olivier Janssens,FinalHash 首席执行官 Marshall Long 和比特币矿工和开发人员 Jonathan Toomim 提出,他们 基于 BIP109 协议,延续了中本聪的思想,在他的代码库基础上将区块大小扩大到 2MB。并获得了 Gavin Andresen 和 Jeff Garzik 等开发者的支持。
该方案需要获得 75%以上算力支持,才能够被激活,激活之后 28 天才会发生硬分叉。但该方案遭到了 BlockStream 等区块链技术开发公司的反对。
BIP141+闪电网络
对于 bitcoin classic 方案,core 团队持反对态度,他们希望 坚持主链区块 1M 大小不变,因此提出采用隔离认证(segwit)+闪电网络的方案解决比特币交易拥堵的问题 。
香港共识
2016 年 2 月,Core 开发者和矿工双方在香港数码港达成协议,实施 BIP141+硬分叉 2M,并且限制矿工不能运行 Bitcoin Classic。
但是由于 Core 团队参加会议的几个主要的开发人员回去后遭到其他人的反对,香港共识被迫中止。
Bitcoin Unlimited
该方案提出 不给单个区块设立上限,产生新区块后,由矿工通过“紧急共识”作出决策,决定区块大小 。
目前,BU 的支持率有 20%。
Teechan
2016 年 12 月,由伦敦帝国理工学院和康奈尔大学的开发小组提出,该方案建议使用 安全硬件进行扩容 。
侧链扩容
2015 年,Blockstream 提出将开发一个侧链扩容项目。今年六月,Blockstream 的首席战略官 Samson Mow 创立 Liquid Networks 侧链项目 ,通过创建点对点的侧链网络,达到扩容目的。
纽约共识(Segwit2X)
今年 5 月,Barry Silbert 旗下的数字货币集团(DCG)和包括大型矿池运营商比特大陆(Bitmian)在内的其它 57 家公司共同签署 segwit2x 扩容方案。该方案将 隔离验证激活阈值设为 80%,并以 bit 4 作为信号发送方式;在六个月内执行一次 2 MB 硬分叉扩容 。
UAHF(用户激活硬分叉)
2017 年 6 月比特大陆发布该方案,开发者增加了一个命令规则集以更改节点软件。这些更改将使得先前无效的区块在 flag day 后生效,更改也无需绝大多数的算力来执行。
UAHF 的实质是比特大陆为 应对 UASF 的一种紧急预案 。
比特币扩容的主要分歧
短短几年时间,各种比特币扩容方案令人眼花缭乱。但究其根本原因无非就是希望保持比特币小区块的 core 开发组与拒绝使用闪电网络的矿工以及支持矿工的开发者之间的矛盾。
1、硬分叉会导致中心化?
当前的 core 开发组一直希望比特币保持小区块,并用隔离验证+闪电网络的方式解决比特币区块链拥堵的问题。 一方面保证区块链的安全,另一方面防止矿工权利过大导致比特币的中心化 。
他们认为中本聪最初创造比特币的目的就是为人们提供一个去中心化的安全的交易网络,其安全性、不可逆转性和政治独立性是它的本质。一旦发生硬分叉,区块大小从 1M 扩大到 2M,随着时间推移,当 2M 也无法满足需求的时候,区块体积继续扩大,直到最后普通的私人计算机难以运行整个区块链,所有的算力都集中到矿工身上。
这样一来, 矿工就能够依靠手中的算力,削弱区块链原本依靠全节点共同维护的最小化用户间信任的安全模式,导致网络的中心化 。
2、闪电网络伤害了矿工的利益
在区块链网络中,中本聪设计了工作量证明机制来让矿工通过算力来维护区块链的安全,同时以比特币奖励推动矿工持续挖矿,所以从根本上说,矿工是完全受利益驱动的一个群体。
在矿工们看来,core 团队支持的闪电网络实际上伤害了他们利益和地位。 闪电网络的主要内容就是给用户提供一系列可以在链下进行交易的双向支付通道,在比特币现有区块链基础上搭建一个二层支付网络。大量的小额交易可以直接在二层网络上进行,只有大额交易才会被打包到区块链主链上。
这个方案一方面利用支付通道缓解了比特币主链的压力从而降低了交易费用;另一方面,大量小额交易转移到链下进行,需要矿工直接处理的交易数量减少。而这两部分正好是比特币大部分利益的来源。
因此,矿工即使冒着比特币分裂的风险也不愿同意 core 的闪电网络方案。
3、开发者之间的利益冲突
据了解,“纽约共识”中的代码主笔是 Jeff Garzik,同时 Gavin Andresen 也赫然在维护代码的行列,这两位都是支持硬分叉的前 core 开发组成员。所以更准确的来说, 这场扩容之争不仅在于开发者和矿工之间,同样也存在于立场不同的开发者之间。
其实在扩容问题显现之初,开发团队就有不同的声音。以 Gavin Andresen 为代表的一派希望通过硬分叉的方式扩容,而以 Pieter Wuille 为代表的一派却认为增大区块体积的方式风险太大,希望保留中本聪 1M 的限制,通过其他途径解决这个问题。
2014 年 Pieter Wuille 创立了 blockstream 区块链技术开发公司,主导研发侧链技术,旨在扩大比特币协议层功能。而一直备受人们非议的是,core 开发团队的主要开发人员大多就职于这家公司,同时 blockstream 是目前唯一支持闪电网络研究的区块链技术公司。
2015 年底 Gavin Andresen 和 Mike Hearn 提出了将区块大小调整至 8MB 的 Bitcoin XT 方案。该方案遭到 core 团队其他成员的反对,最终他们两人被收回了代码合并权。开发者只见那的利益冲突不言而喻。
4、争夺话语权,在发展中抢占先机
Gavin Andresen 曾公开表示:“开源代码的好处在于,如果你认为开发团队做的不够好或者他们的开发方向错了,你可以拿着当下的源代码,然后雇一个更厉害的团队来改善它。”
而在 2016 年 5 月,blockstream 向美国专利商标局(USTPO)递交了侧链的专利申请。联系 core 团队大力支持闪电网络,不得不然人联想 Blockstream 公司希望将关乎比特币未来的关键技术掌握在自己手中,以此来在比特币未来的发展中抢占先机。而对于 core 的开发人员来说,作为闪电网络的核心开发人员,一旦比特币真的采用了闪电网络,那么在未来他们将会拥有更多的代码控制权和话语权。
而另外一方面,矿工坚持不同意闪电网络的一个原因是利益受损,另一个原因就是担心在社区中的地位和话语权被减弱。
在今年 5 月通过的“纽约共识”,其实在本质上与一年前的“香港共识”没有太大区别,都是实施隔离验证+2MB 硬分叉的方案。而不同的是这次的方案完全将 core 开发组排除在外,矿工们变得更加自由,也没有了不能执行 Bitcoin Classic 之类的约束。
是对权利和利益的追求让比特币社区出现了不可调和的分歧 。
Segwit2X能否被激活
SegWit2x 方案的内容包括隔离见证和增大区块体积两个部分,它将隔离见证的阈值设为 80%,并要求以 bit4 作为支持信号;同时规定将在 6 个月内执行 2MB 硬分叉。这里隔离见证的激活条件与此前 core 团队提出的 BIP141 隔离见证方案的不同,BIP141 要求激活阈值为 95%,并发送 bit1 为支持信号。这样一来就很容易造成比特币的分裂,这是矿工和开发者都不愿意看到的情况。
因此, 为了避免分裂,社区提出了 BIP91 的兼容方案 ,它完全由算力激活。该方案规定在连续 336 个区块的周期(两天半)里,有 269 个(80%)区块发送 bit1 或 bit4 信号,就可以锁定 BIP91,在锁定了该协议之后再过 336 个区块,它将被激活。一旦激活成功,未支持隔离见证的区块将会被拒绝。
而目前,对 segwit2x 甚至对整个比特币网络构成威胁的是 UASF 用户激活软分叉方案(BIP148)。这个方案最早由匿名开发者提出,他规定 BIP148 由用户推动而不需要大多数算力的支持。 如果在 8 月 1 号之前,BIP91 没有顺利激活,那么所有 BIP148 节点将会拒绝没有支持隔离见证的区块,到时候比特币分裂在所难免。
但由于缺乏共识机制和算力的保护,用户激活软分叉并没有获得广泛的认可,现在全网仅有 5.39%的节点支持。
包括蚁池、鱼池和 BTCC 在内的一些掌握了大量算力的矿池都曾公开表示支持纽约共识。虽说表示支持不代表一定会投票,但除非他们一起反悔,否则任何一个矿池轻易跑票都会给自身带来恶劣影响。所以从理论上来说,只要 BIP91 的技术开发没有问题,隔离见证被激活是大概率事件。
但到目前为止,core 开发组都仍然坚持拒绝 2MB 硬分叉。如果在硬分叉完成之后,core 的态度依然坚决,那么发送 bit1 信号的隔离见证支持者和发送 bit4 信号的纽约共识支持者势必会让比特币一分为二。到时候该如何避免分裂?
是继续提出像 BIP91 这样的兼容方案,让支持硬分叉和不支持硬分叉的节点“和平共处”;还是指望 core 为了避免比特币分裂而做出妥协?
所以无论纽约共识成功与否,它恐怕都不会是比特币扩容之战的终点。
未来可能发生的情况
Segwit2x 团队将在 7 月 21 日开始对 BIP91 进行投票,如果进行顺利,它的最早锁定时间是 23 日,也就是 21 号之后的 336 个区块周期。锁定之后矿工将有两天时间准备 BIP91 软分叉,因为再过 336 个区块,该协议将被激活,激活之后不支持隔离见证的区块将被拒绝。
而该协议的最后期限在 7 月 29 日,如果在这一天 8:00(BTC 时间)之前 BIP91 还没有被激活,那么比特币将面临分裂的危险。
2、7 月 31 日 BIP141 的最后期限
从理论上来说,如果 BIP91 失败,矿工还有两天时间可以来激活 BIP141。
只要在 7 月 31 日之前 BIP141 的支持率超过 95%,隔离见证同样可以激活。只是目前该协议的支持率只有不足 43%,两天的准备时间显然有些仓促,因此矿工还是要考虑清楚是支持 BIP148 还是继续挖原始的比特币。
3、8 月 1 日 BIP148 激活
如果 BIP91 和 BIP141 都以失败告终,那么 BIP148 将强制激活隔离见证。
从 8 月 1 日开始,所有 BIP148 节点都将拒绝不支持隔离见证的区块。这时最理想的状态应该是所有节点都使用 BIP148 协议,只有这样才能避免比特币分裂,但很显然,这种情况几乎不可能发生。今年 6 月,比特大陆提出了名为 UAHF(用户激活硬分叉)的紧急计划,来应对 BIP148 的激活。
4、8 月 4 日比特大陆可能执行 UAHF
比特大陆表示,如果 BIP148 被激活并且获得一定的支持,他们将会在 8 月 4 日实施用户激活硬分叉,矿工也可以自愿加入。
如果比特大陆真的执行了这个方案,那此时的比特币网络中将有三种形式的比特币共存,即 BIP148 币、UAHF 币和原始比特币。而如果比特大陆没有执行 UAHF,那么比特币网络暂时只会存在两种比特币形式,即 BIP148 币和原始比特币。
另外,该公司此前还表示,即使 UASF 没有被激活,当交易存在风险的时候他们也将使用 UAHF 对交易进行保护。
5、8 月 15 日 BIP148 可能修改 POW 算法
BIP148 完全是靠用户推动的,所以即使无法获得大部分矿工支持也属于正常现象,而如果没有足够的算力支持,他们很有可能遭到攻击而无法正常运行。所以 BIP148 工作组规定,如果在 8 月 15 日之前,获得的算力支持少于 15%,他们将改变 POW 算法。
如果改变 POW 算法,现在矿工所使用的矿机将不能挖 BIP148 的区块,想要挖这种修改了算法的 BIP148 区块就只能回归 CPU 或者显卡,所以现在的算力也将对其构不成威胁;同时刚产生的 BIP148 链也将面临硬分叉。
也就是说,8 月 15 日之后原本存在于比特币网络的 BIP148 币也将有可能一分为二。这时在 8 月末隔离验证被最终激活前,整个比特币网络中最复杂的情况将会是有四种形式的比特币共存,即 BIP148 币 1.0 版本和 BIP148 币 2.0 版本以及 UAHF 和原始比特币。
6、11 月 1 日 2MB 硬分叉
如果 BIP91 顺利激活,那么隔离验证将在接下来的一个月内被锁定并激活,隔离见证被锁定之后的三个月,2MB 硬分叉将自动激活。到时候如果该方案最终得到了 core 开发组的支持,那么比特币就能避免分裂,扩容争议也将告一段落;如果没有,比特币扩容之战将继续进行。
目前看来,如果到了 8 月末 9 月中隔离验证被激活时,比特币还没有明确的发展形式的话,那么情况将更加复杂。这对于比特币来说绝对不是什么好事,随着扩容争议的持续以及纽约共识的激活时间临近,比特币价格在上周最后两天狂跌 20%,如果比特币没有避免分裂的情况,那么其价格肯定会一泻千里。短期内投资者离场,以太坊和莱特币之类的竞争币后来者居上,获得更大的市场份额,比特币的未来将如何?
竞争币的扩容问题
随着加密货币市场越来越受欢迎,不仅比特币面临交易速度慢,急需扩容的问题,一些比较受欢迎的竞争币也在面临着同样的考验。
以太坊提高 gas 限制
在比特币中每个区块有大小限制,而在以太坊中每个区块有 gas 限制来影响区块网络的计算能力。今年 6 月开始,以太坊网络因充满了大量垃圾交易,而导致区块链拥堵,系统响应慢等问题,其价格也遭遇下跌。以太坊基金会的联合创始人 Hudson Jameson 曾呼吁矿工手动修改 gas 限制值来解决交易网络拥堵的问题。
其实除了提高 gas 限制,以太坊还有其他的扩容方式,比如:
链内扩容方案:EIP 648
链外扩容方案:雷电网络
分片技术
达世币逐年升级计划
达世币(DASH)创立于 2014 年,是一款支持即时交易、以保护用户隐私为目的数字货币。它与比特币相同,都是基于工作量证明机制运行。早在 2016 年,其创始人 Evan Duffield 就曾担心交易拥堵,而将其区块扩大至 2MB。
最近,在比特币社区为扩容问题争论不休的时候,达世币表示将继续从 2MB 扩容至 4MB,以降低交易费用;同时还将实行逐年升级的扩容计划。
莱特币分叉
莱特币产生与 2011 年,从技术上来看,它是通过对比特币核心代码的改进而开发出来的,因此它的交易确认速度其实更快,加上目前莱特币的交易数量远没有比特币多,所以在莱特币网络上还没有出现交易拥堵的问题。
但是其开发团队依然宣布将升级比特币网络,目的是为了实现创新,给莱特币带来更大的发展。今年 4 月,莱特币社区经过投票达成协议,决定通过隔离验证软分叉对其区块链进行升级。
莱特币开发团队表示,未来还将增加 “闪电网络”、“智能合约”等功能。
相关文章
用户评论
所有评论
主编精选
more专题推荐
more第四届中国零售金融发展峰会(共15篇)
资讯排行
- 48h
- 7天
-
首页
-
评论
-
回顶部
游客
自律公约