导 读
相信大家最近也听过不少关于比特币扩容与分叉的话题,可能对比特币及以太坊这样的主流货币分叉的情况,很多人都不明白到底是怎么回事,今天就给大家讲一讲为什么比特币需要扩容、扩容的方案有哪些,以及为什么会有分叉的出现。
大家可能都知道比特币每一个区块大小是1兆,大概能容纳1000条左右交易信息。如果你上比特币区块链浏览器观看的话,你就会查到,现在每个区块大概都是1M左右,快达到区块容量的上限。如果比特币网络的转账越来越多,很多交易就不会在交易发生后的第一个发生的区块被打包和确认,可能要等好几个区块,甚至更久。
碎片交易
在比特币历史上,曾经遭遇过几次“碎片交易攻击”。所谓“碎片交易攻击”,就是有人制造出大量的小额转账,使得网络中有大量的待确认交易,导致正常的比特币转账不能被确认,确认时间被延迟,影响网络正常运转。所以在”碎片交易攻击“事件中,有交易者的交易等待了2天,甚至更久才被确认。现在的比特币网络的正常转账量已经远远超出了能够承受的最大容量。每个区块的大小都是1M,所以扩大比特币区块容量,突破现有的1兆的大小限制,这个过程叫扩容。扩容,也被比特币社群从2014年开始,就提上了议事日程。
2015年年底的时候,比特币Core开发团队和矿工在中国香港进行圆桌会议,达成了“中国香港共识“,不过这个共识很快流产了。
2017年纽约,比特币社区进行重新协商,采用隔离见证+2兆扩容的方式,再一次达成共识,得到了来自全球21个国家56家知名区块链初创公司共同签署和全网大约83%的算力支持。
隔离见证
在这里给大家普及一下什么叫隔离见证,隔离见证是对整个设计缺陷的一个修改方案,原理说起来挺简单,我们知道区块上的信息分为交易信息和见证信息,交易信息就是区块链记录的一笔笔的转账信息,见证信息就是在每个节点在什么时间验证交易信息的可靠性的信息,它允许交易把没那么必要的“见证”部分“隔离”在区块外面,这就是隔离见证的意思了。
这里举一个例子,大家可能就更明白了,就像一辆公交车,公交车的容量是固定的,但是如果把公交车上所有的行李都打包放到另一个拖车后面,那自然而然公交车上的空间就省出来更多,这样就可以再上更多的乘客了。隔离见证也是这个意思,把一些没那么必要的“见证”隔离在区块外面,这样区块里省出来的空间就可以增加更多的交易了。
扩容方式
比特币扩容的方案有很多,在历史上也经历了很多迭代。总体来说,分为两种方式:
1、一种是不碰比特币本身的区块,用闪电网络去进行比特币的结算,将大量的交易置于比特币本身网络之外;
2、另外一种是直接扩大区块的大小。
闪电网络
这里就要解释一下什么是闪电网络?打个比方,我们几个朋友一起打麻将,不会每一轮都结算,而是在结束之后进行清算,A欠B 5元,B欠C 10元,最后就是A给C5元,B给C5元就可以了。
闪电网络也会先把小额交易进行记账,最后进行结算。这样比特币网络不会被大量小额的交易所占据。但是这个技术目前没有发展成熟,并且闪电网络需要在隔离见证技术之上才能进行运用。目前还没有被大规模运用。所以,大家把目光又放到了比特币的区块大小扩容上。
比特币扩容方案
关于比特币本身大小的扩容,是现在在技术上相对来说比较成熟的方式。我给你介绍以下三个主要的方案。分别是BIP141、UASF、SegWit2x。
01
BIP141是比特币 Core团队提出的隔离见证方案,隔离见证是为了让区块承载更多的交易量而设计的,中本聪在设计比特币的时候,直接把这交易信息和见证信息放到了区块里面,所以一个区块能承载的交易信息就没多少。那么如果隔离了这个见证信息,把它从区块里拿出来,区块只需要存储它的交易信息的话,这样做也就等于扩大了区块能承载的交易信息量。
02
UASF,意思是由用户激活的软分叉。由于BIP141的激活条件是要有95%的算力发出准备就绪信号才能被激活,这个条件是很难实现的,而UASF采用一个叫BIP148的软件来激活隔离验证。在8月1日这天,比特币BIP148软件会拒绝不包含bit1信号的区块,这就迫使大多数矿工必须运行这个软件,最终运行BIP141的节点会在链上看到超过95%的区块包含bit1,从而触发隔离见证。这个方案一经实施,诞生了我们现在看到的新的区块链资产比特币现金。比特币现金的区块大小可以上升到8M,可以容纳的交易笔数是原来比特币原链的大小的8倍左右。
03
SegWit2x,是由一些比特币公司和80%算力以上的矿工在纽约签署的共识协议,通过BIP91来激活隔离验证。BIP91做法是:当连续两天内有80%的算力发出支持BIP91的信号的话,所有的BIP91节点将拒绝所有不含BIP141准备信号的区块,因此,这些矿工会拥有最长的链,并在该最长链上激活隔离见证。在激活隔离见证之后,2017年年底或者2018年年初,SegWit2x将通过硬分叉把区块大小上限从当前的1MB增加至2MB,届时也可能导致新的分叉。
硬、软分叉
刚才提到了硬分叉和软分叉,那么什么是硬分叉,什么是软分叉呢?
硬分叉
是当比特币协议规则发生改变,如果发生旧节点拒绝接受由新节点创造的区块的情况时,区块链将分成2条独立的链。矿工需要在2条区块链中选择一条进行挖矿。
软分叉
是当比特币协议规则发生改变,旧的节点并不会意识到规则是不同的,它们将遵循改变后的规则,并且接受由新节点创造的区块。因此软分叉不会产生2条区块链,而是在原区块链上同时新、旧并存。类似于软件升级后,当你保存了一份Word 2013文档的同时,你仍然可以用Word 2011来打开原来的Word 2013文档,这就是向前兼容。
对于普通人来说,如果比特币真的分叉,最大的风险就是“重放攻击“。
重放攻击
什么是“重放攻击”呢?简单来说,如果比特币分裂成比特币A、比特币B和比特币C,用户账户内同时存在这3种对应数量的所有分裂的比特币,每条链上的地址和私钥生产算法相同,交易格式也完全相同,导致在其中一条链上的交易在另一条链上很可能是完全合法的。在你转账比特币A的时候,你的比特币B和比特币C也可能同时被转走,如果你转出的地址不是自己的,那些比特币B比特币C可能就再也拿不回来了。这个事情在2016年7月以太坊进行硬分叉的过程中发生的事情,当时交易平台和用户因为基本都是第一次遇到这样的事情,经验和准备都不足,因而受损失不少。
那么如何规避“重放攻击”呢?
方法一:在分叉尘埃落定之前,不要转账比特币。在分叉落定之后,可以将比特币分别转到属于自己的两个不同的地址,直到两个资产彻底分离完成为止,之后再进行比特币转账。这个方法可能需要消耗大量的时间和手续费。
方法二:将自己的比特币放进靠谱的钱包或交易平台。这些有技术实力的平台会自发的运营去帮你处理好分叉过程中的可能会遇到的各种问题。如果将自己的比特币存在仅支持分叉后部分比特币的钱包里,将可能面临分叉后产生的其他部分比特币无法使用的损失。
精 彩 解 读
好了,今天我们讲了比特币的扩容以及分叉。为什么比特币需要扩容?因为比特币的每个区块在设计上只有1兆大小的限制,为了修改这个缺陷,就有了闪电网络以及3种比特币扩容方案。接着我们还讲解了硬分叉和软分叉的区别。
硬分叉是当比特币协议规则发生改变的时候,发生变化的旧节点拒绝接受新节点创造的区块,区块链会因此分成2条独立的链;
软分叉是指当比特币协议规则发生改变的时候,旧的节点不会意识到规则不同,按照改变后的规则,继续执行,它会接受由新节点创造的区块,它不会产生两条新的链。
我们还提到为了防止比特币分叉带来的“重放攻击“的风险,你可以做两件事:
第一、在分叉尘埃落定之前,不要转账比特币;
第二、将比特币放在一个你信赖的能帮你处理好分叉问题的钱包或交易平台里。
最后,提醒大家一定要在加密货币“生儿子”的时候按照以上情况做好对应措施,避免造成不必要的损失。
今天的知识你GET了吗?
感兴趣的币友们可以添加我们的交流群,
让我们的思维一起碰撞出更多智慧的火花吧!
动动你们的手指,转载我们的文章,让更多币圈的朋友免遭分叉带来的损失
领取专属 10元无门槛券
私享最新 技术干货