刘懿东
八、比特币扩容与分叉
扩容
比特币每一个区块大小是1M,大概能容纳1000条左右交易信息,如果转账越来越多,很多交易就不会在交易发生后的第一个区块就被打包和确认,可能要等好几个区块,甚至更久
比特币历史上,曾经遭遇过几次“粉尘攻击”,就是有人制造出大量的小额转账,使得网络中有大量的待确认交易,导致正常的比特币转账不能被确认,确认时间被延迟,影响网络正常运转,导致有交易者交易等待了2天,甚至更久才被确认。所以扩容被比特币社群从14年开始就提上了议程
在扩容事情上,不同团队有不同的理念,所以推进效率也很低,15年底,比特币Core开发团队和矿工在香港进行圆桌会议,达成了“香港共识”,不过该共识很快流产
17年纽约,比特币社区重新协商,采用隔离见证+2兆扩容的方式,再一次达成共识,得到了来自全球21个国家56家知名区块链初创公司共同签署和全网大约83的算力支持。所以从17年上半年开始,比特币的系统开始进行升级和部署
扩容方案有很多,总的来说分两种
一种是不碰比特币本身的区块,用闪电网络去进行比特币的结算,将大量的交易置于比特币本身网络之外
闪电网络:如几个朋友玩牌不会每一轮都结算,而是在结束之后进行清算,A欠B10元,B欠C20元,最后是A给C10元,B给C10元就可以了。闪电网络会把小额交易进行记账,最后进行结算,这样网络不会被大量小额的交易所占据,但这个技术目前没有发展成熟,并且闪电网络需要在隔离见证技术之上才能进行运用,目前还没有被大规模运用
另一种是直接扩大区块大小
现在技术上相对比较成熟的方式,有三种主要方案
BIP141
隔离见证方案,是为了让区块承载更多的交易量而设计的,区块上的信息分为交易信息和见证信息,交易信息就是区块链记录的一笔笔转账,见证信息就是每个节点在什么时间验证交易信息的可靠性的信息,中本聪在设计比特币的时候直接把这两个信息放到了区块里面,所以一个区块能承载的交易信息就没多少,隔离见证方案是把见证信息从区块拿出来,区块只需要存储它的交易信息,就扩大了区块能承载的交易信息
当前公认的见证激活方案,17年11月15日前的做生意一个难度周期(约两周)内,如果有95%的算力发出准备就绪信号的话,隔离见证将被激活,但是这个条件很难实现,所以有人提出其它激活方案,如UASF和SegWit2x,用这种方式来帮助实现BIP141,激活隔离见证
UASF
由用户激活软分叉,采用一个叫BIP148的软件来激活隔离验证。在8月1日这天,BIP148软件拒绝不包含bit1信号的区块,如果大多数矿工运行这个软件,他们会拒绝那些少数没有运行这个软件的矿工挖出的区块,因此,这些矿工会拥有最长的链,并在该最长链上激活BIP141的隔离见证条件,这个方案已经实施,现在比特币区块大小可达8M,交易笔数是原来的8倍左右
SegWit2x
由一些比特币公司和80%算力以上的矿工在Consensusn大会上,签署的纽约共识,通过BIP91来激活隔离验证。做法是:连续两天内有80%的算力发出支持BIP91的信号的话,所有 的BIP91节点将拒绝所有不含BIP141准备信号的区块,因此这些矿工会拥有最长的链,并在该最长链上激活隔离见证。17年年底或18年年初,SegWit2x通过硬分叉把区块大小上限从当前的1MB增加至2MB,届时也可能导致新的分叉
分叉
硬分叉
当比特币协议规则发生改变,如果发生旧节点拒绝接受由新节点创造的区块的情况时,区块链将分成2条独立的链,矿工需要在2条区块链中选择一条挖矿
软分叉
当比特币协议规则发生改变,旧的节点并不会意识到规则是不同的,它们将遵循改变后的规则,并且接受新节点创造的区块,软分叉不会产生2条区块链,而是在原区块链上同时新、旧并存,就是向前兼容
对普通人来说,如果比特币真的分叉,最大的风险就是“重放攻击”
16年7月以太坊进行硬分叉的过程中发生的事情,当时交易平台和用户因为基本都是第一次遇到这样的事情,经验和准备都不足,因而受损失不少。
如比特币分裂为一种或多种比特币,姑且叫比特币a/b/c,用户账户内同时存在这3种对应数量的所有分裂的比特币,每条链上的地址和私钥生产算法相同,交易格式也完全相同,导致在其中一条链上的交易在另一条链上很可能是完全合法的,所以 使用者在其中一条链上发起的交易就可以到另一条链上去重新广播,也可能得到确认,这就是重放攻击。简单说你转账比特币a的时候,你的b/c也可能同时被转走,如果你转出的地址不是自己的,那些b/c可能就再也拿不回来了
怎样防止重放攻击
在分叉尘埃落定之前,不要转账比特币。在分叉完之后,将比特币分别转到属于自己的两个不同的地址,走到两个资产彻底分离完成为止,再进行比特币的转账,这个方法可能需要消耗大量的时间和手续费
将自己的比特币放进靠谱的钱包或交易平台,这些有技术实力的平台会自发的运营帮你处理好分叉过程中可能遇到的问题