术语表 /协议与升级
用户激活软分叉
又称 UASF。
- 用户激活软分叉是什么?
- 用户激活软分叉(UASF)在节点运营者选定的某一固定日期强制执行一条新规则,因此无视该规则的矿工会发现自己的区块被拒绝,而不只是在投票中落败。
规定于 BIP-148。
这一思路颠倒了通常的操作顺序。接收支付的节点不再等待算力发出就绪信号,而是宣布一个日期,在此日期之后,它们将拒绝任何不合规的区块。BIP-148把该日期定在2017年8月1日,外界普遍认为,这一可信的威胁终结了自2016年11月起一直持续的信号僵局。
运作方式
规则最终是在验证环节而非挖矿环节得到执行的,用户激活软分叉正是建立在这一事实之上。
节点自行判断哪些区块有效。如果经济体中足够大的一部分(人们实际用于结算的交易所、支付处理机构和托管机构)运行的软件会拒绝不合规的区块,那么生产这些区块的矿工拿到的就是无人接受的币。区块奖励只有在其所处的链是买家认可的那条链时才有价值,因此无需任何投票,激励就指向合规。
这一机制依靠的是日期而非阈值。BIP-148要求自2017年8月1日起,每个区块都必须发出就绪于 SegWit 的信号,并指示节点将不这样做的区块设为孤块。这属于规则的收紧,因此合规的链对从未升级的节点仍然有效。它没有消除的是分裂风险:如果大部分算力继续挖出不合规的区块,执行规则一方的累计工作量就会较少,两条链将并存,直到其中一方让步。
后来,BIP-8把这一做法变成了通用的参数集。它像 BIP-9一样统计信号,但增加了 lockinontimeout,通常写作 LOT。LOT 设为 false 时,如果矿工始终未达到阈值,该部署就会直接到期失效。LOT 设为 true 时,无论如何都会在超时高度锁定,这就是以配置标志表示的用户激活软分叉。
在哪里会遇到它
2017年的这一系列事件是比特币上唯一已经完成的实例,值得按顺序了解。BIP-148由一名使用 Shaolin Fry 这一名字的开发者于2017年3月发布,并在春季期间被节点运营者陆续采用。面对8月的截止期限,矿工在7月采用了 BIP-91,使他们之间的 SegWit 信号变为强制。随后,SegWit 于2017年8月8日在区块479,808锁定,并于2017年8月24日在区块481,824开始强制执行。固定日期到来时并未出现持久的分裂,因为它所要求的结果已经实现。
这一做法在 Taproot 之前再度出现。2020年底至2021年初,争论完全围绕是以 LOT 为 true 还是 false 来发布 BIP-8展开,一个 LOT 为 true 的替代客户端随之发布,折中方案是 Speedy Trial,它设定了一个较短的窗口,不强制激活。矿工在2021年6月达到了阈值,因此这一问题从未经受检验。
如果您持有比特币,相关的要点是:运行您自己的节点,才使这一切具有分量。用户激活软分叉统计的是进行验证的用户,而余额完全存放在交易所的人,由该交易所的软件代表,而不是由其自己的软件代表。
用户激活软分叉 vs 硬分叉
用户激活软分叉收紧规则,硬分叉放宽规则,2017年出现的混淆源于两者都带有分裂风险。在 BIP-148之下,旧钱包仍可正常使用,产生的链对软件的每一个旧版本依然有效,而这恰恰是硬分叉无法保证的。分裂风险是暂时的,取决于矿工的行为,而硬分叉的分裂从第一个不兼容的区块起就已在设计之中。