# 比特币的扩容与分叉

By [leaf](https://paragraph.com/@leaf-6) · 2022-12-05

---

为什么比特币需要扩容、扩容的方案有哪些，以及为什么会有分叉的出现。

比特币每一个区块大小是1兆，能容纳1000条左右交易信息。

 比特币每一个区块大小是1兆，大概能容纳1000条左右交易信息。如果你上比特币区块链浏览器观看的话，你就会查到，现在每个区块大概都是1M左右，快达到区块容量的上限。如果比特币网络的转账越来越多，很多交易就不会在交易发生后的第一个发生的区块被打包和确认，可能要等好几个区块，甚至更久。在比特币历史上，曾经遭遇过几次“粉尘攻击”。所谓“粉尘攻击”，就是有人制造出大量的小额转账，使得网络中有大量的待确认交易，导致正常的比特币转账不能被确认，确认时间被延迟，影响网络正常运转。所以在”粉尘攻击“事件中，有交易者的交易等待了2天，甚至更久才被确认。虽然“粉尘攻击“是极端的例子，但是看现在比特币网络的正常转账量已经远远超出了他们能够承受的最大容量。每个区块的大小都是1M，所以扩大比特币区块容量，突破现有的1兆的大小限制，这个过程叫扩容。扩容，也被比特币社群从2014年开始，就提上了议事日程。

 我们知道，比特币网络是一个去中心化的网络。在这个世界里，没有一个中心化的机构来运转，凡事靠社区去协商，才能达成一致。在扩容这件事上，不同的团队有不同的理念，所以推进的效率也会比较低。2015年年底的时候，比特币Core开发团队和矿工在香港进行圆桌会议，达成了“香港共识“，不过这个共识很快流产了。在2017年纽约，比特币社区进行重新协商，采用隔离见证+2兆扩容的方式，再一次达成共识，得到了来自全球21个国家56家知名区块链初创公司共同签署和全网大约83%的算力支持。所以从2017年上半年开始，比特币的系统开始进行升级和部署。

 比特币扩容的方案有很多，在历史上也经历了很多迭代。

总体来说，分为两种方式。

一种是不碰比特币本身的区块，用闪电网络去进行比特币的结算，将大量的交易置于比特币本身网络之外；另外一种是直接扩大区块的大小。这里就要解释一下什么是闪电网络？打个比方，我们几个朋友一起玩牌，不会每一轮都结算，而是在结束之后进行清算，A欠B 10元，B欠C 20元，最后就是A给C10元，B给C10元就可以了。闪电网络也会先把小额交易进行记账，最后进行结算。这样比特币网络不会被大量小额的交易所占据。但是这个技术目前没有发展成熟，并且闪电网络需要在隔离见证技术之上才能进行运用。目前还没有被大规模运用。所以，大家把目光又放到了比特币的区块大小扩容上。

  

关于比特币本身大小的扩容，是现在在技术上相对来说比较成熟的方式。我给你介绍以下三个主要的方案。分别是BIP141、UASF、SegWit2x。一听这三个名词你可能比较懵，别急我慢慢给你讲。

  

BIP141是比特币 Core团队提出的隔离见证方案，那么什么是隔离见证呢？隔离

见证是为了让区块承载更多的交易量而设计的，我们知道区块上的信息分为交易信息和见证信息，交易信息就是区块链记录的一笔笔的转账，见证信息就是在每个节点在什么时间验证交易信息的可靠性的信息，中本聪在设计比特币的时候，直接把这两个信息放到了区块里面，所以一个区块能承载的交易信息就没多少。那么如何隔离了这个见证信息从区块里拿出来，区块只需要存储它的交易信息的话，从这个角度也可以扩大了区块能承载的交易信息。

BIP141是当前公认的隔离见证激活方案。具体激活条件是：在2017年11月15日前的任意一个难度周期（约两周）内，如果有95%的算力发出准备就绪信号的话，隔离见证将被激活。但是这个条件很难实现，所以有人提出其它激活方案，比如UASF和SegWit2x，用这种方式帮助实现BIP141，激活隔离见证。

  

UASF，意思是由用户激活的软分叉。UASF采用一个叫BIP148的软件来激活隔离验证。在8月1日这天，比特币BIP148软件会拒绝不包含bit1信号的区块。也就是说如果大多数矿工运行这个软件，他们会拒绝那些少数没有运行这个软件的矿工挖出的区块。因此，这些矿工会拥有最长的链，并在该最长链上激活BIP141的隔离见证条件。最终运行BIP141的节点会在链上看到超过95%的区块包含bit1，从而触发隔离见证。这个方案已经实施，诞生了我们现在看到的新的区块链资产比特币现金。比特币现金的区块大小可以上升到8M，可以容纳的交易笔数是原来比特币原链的大小的8倍左右。

SegWit2x是由一些比特币公司和80%算力以上的矿工在Consensusn那次大会上，签署的纽约共识，协议，通过BIP91来激活隔离验证。BIP91做法是：当连续两天内有80%的算力发出支持BIP91的信号的话，所有的BIP91节点将拒绝所有不含BIP141准备信号的区块，因此，这些矿工会拥有最长的链，并在该最长链上激活隔离见证。在激活隔离见证之后，2017年年底或者2018年年初，SegWit2x将通过硬分叉把区块大小上限从当前的1MB增加至2MB，届时也可能导致新的分叉。

刚才提到了硬分叉和软分叉，那么什么是硬分叉，什么是软分叉呢？

硬分叉

硬分叉是当比特币协议规则发生改变，如果发生旧节点拒绝接受由新节点创造的区块的情况时，区块链将分成2条独立的链。矿工需要在2条区块链中选择一条进行挖矿。

  

软分叉

什么是软分叉？软分叉是当比特币协议规则发生改变，旧的节点并不会意识到规则是不同的，它们将遵循改变后的规则，并且接受由新节点创造的区块。因此软分叉不会产生2条区块链，而是在原区块链上同时新、旧并存。类似于软件升级后，当你保存了一份Word 2013文档的同时，你仍然可以用Word 2011来打开

原来的Word 2013文档，这就是向前兼容。

  

对于普通人来说，如果比特币真的分叉，最大的风险就是“重放攻击“。

  

什么是“重放攻击”呢？这个事情在2016年7月以太坊进行硬分叉的过程中发生的事情，当时交易平台和用户因为基本都是第一次遇到这样的事情，经验和准备都不足，因而受损失不少。举个例子，如果比特币分裂为一种或多种比特币，我们姑且先把它叫比特币1/比特币2/比特币3等，用户账户内同时存在这3种对应数量的所有分裂的比特币，每条链上的地址和私钥生产算法相同，交易格式也完全相同，导致在其中一条链上的交易在另一条链上很可能是完全合法的。所以使用者在其中一条链上发起的交易，就可以到另一条链上去重新广播，也可能得到确认。这就是“重放攻击”。简单来说，在你转账比特币1的时候，你的比特币2/比特币3也可能同时被转走，如果你转出的地址不是自己的，那些比特币2/比特币3可能就再也拿不回来了。

  

对于用户来说，要防止重放攻击，其实也很简单。你该怎么做呢？

  

方法一：在分叉尘埃落定之前，不要转账比特币。在分叉落定之后，可以将比特币分别转到属于自己的两个不同的地址，直到两个资产彻底分离完成为止，之后再进行比特币转账。这个方法可能需要消耗大量的时间和手续费。

  

方法二：将自己的比特币放进靠谱的钱包或交易平台。这些有技术实力的平台会自发的运营去帮你处理好分叉过程中的可能会遇到的各种问题。如果将自己的比特币存在仅支持分叉后部分比特币的钱包里，将可能面临分叉后产生的其他部分比特币无法使用的损失。

好了，总结一下，这节课我们讲了比特币的扩容以及分叉。为什么比特币需要扩容？因为比特币的每个区块在设计上只有1兆大小的限制，为了修改这个缺陷，就有了闪电网络以及3种比特币扩容方案。

我还向你讲解了比特币「分叉」的知识，「分叉」分为硬分叉和软分叉：
--------------------------------

硬分叉是当比特币协议规则发生改变的时候，发生变化的旧节点拒绝接受新节点创造的区块，区块链会因此分成2条独立的链；

软分叉是指当比特币协议规则发生改变的时候，旧的节点不会意识到规则不同，按照改变后的规则，继续执行，它会接受由新节点创造的区块，它不会产生两条新的链。

还有，我们还提到为了防止比特币分叉带来的“重放攻击“的风险，你可以做两件事：第一、在分叉尘埃落定之前，不要转账比特币；第二、将比特币放在一个你信赖的能帮你处理好分叉问题的钱包或交易平台里。这两点，请大家一定要记牢。

---

*Originally published on [leaf](https://paragraph.com/@leaf-6/1NdXzQpw9DAcZiNXpLWJ)*
