第
0
章
引言
比特币协议升级到底是怎么进行的。
第
1
章
协议改变的方式
对
任何协议的改变就存在两种,一是规则收紧;二是规则放宽。
比如对比特币区块大小这个规则来说,现在的协议里的规则
s
ize<=1M
,如果要扩容,将区块上限设定为
si
ze<=2M
,这就是规则放宽。如果要缩容,将区块上限设定为
s
ize<=5K
,就是规则缩小。
另外还能派生出其他方法,比如先规则收紧,再规则放宽;或者先规则放宽,再规则收紧。但这本质上是两次规则修改,可以拆分来分析。
这种对规则的放宽旧节点是能识别的,并且旧节点会拒绝承认。而对规则的收紧旧节点则无法识别,所以旧节点不会拒绝,但新节点会识别出超越了规则收紧后的旧节点行为,就会对旧节点进行拒绝。
规则收紧就是软分叉,规则放宽就是硬分叉。
但这两种都是对现有的规则进行修改,
如果在现有规则的基础上再增补新规则呢?这本质上是对规则的放宽,但可以设计成旧节点不知道你放宽了。
这种情况就非常特殊了。
老节点遵守的规则集称为
X
,如果你搞个规则
y
,要求新节点遵守的规则集是
x&&y
。
还拿比特币区块大小这个规则来说,老节点是
size<=1M
,然后你要求在
1M
区块之外再加一个区块,对老节点来说,不知道这个新区块的存在,只有新节点知道。这就是隔离见证的原理。
第
2
章
比特币协议改变举例
先讲简单的原有规则收紧和放宽。
比如修改难度值,这是收紧,还是放宽?
难度值对比特币区块链系统中的定义是
d
iff>=
某个数值。如果你要将它调大,就是收紧规则,这是软分叉。但如果你要将它调小,就是放宽规则。这就是硬分叉。
比如修改
2100
万,这是收紧,还是放宽?
因为
2100
万上限是通过挖矿的区块奖励发放的,从第一个区块奖励
50BTC
,到挖出
2100
万的一半时,即
1050
万
BTC
时,就降低到
25BTC
,然后再挖到剩下的一半时,即又挖出
525
万
BTC
时,就降低到
12
.5BTC
,现在就是每一个块挖
12.5
BTC
。然后会一直这样下去,直到最后无限逼进
2100
万。
而区块奖励在系统中的设定是
c
oin
base_coin<=50BTC/25BTC/12.5BTC
……
+
手续费。
所以如果你要将