【摘要】 距离BCH11月15日的硬分叉升级已经不足一月,开发者们和全节点运行人员都在做着最后的准备。开发者方面,BCH的主要开发团队们已全部推出了兼容升级内容的新版本,开发组主要
距离BCH11月15日的硬分叉升级已经不足一月,开发者们和全节点运行人员都在做着最后的准备。开发者方面,BCH的主要开发团队们已全部推出了兼容升级内容的新版本,开发组主要包括:Bitcoin ABC、Bitcoin Unlimited和BCHD。与此同时,BCH网络上的节点运行人员也在逐渐部署新版本客户端。
11月升级内容简介
据Bitcoin ABC公布的网络升级规范可知,此次升级主要包括两方面的内容:
1. 对OP_CHECKMULTISIG(VERIFY)启用Schnorr签名支持
Schnorr签名于今年5月份被编写到BCH网络中,它有助提高BCH交易的隐私性和交易效率,但签名涉及到共识层面的修改,需要繁琐的开发准备,所以5月份的升级并没有让网络内的所有签名操作都支持Schnorr。此次升级的这项改动就是扩大Schnorr签名在网络内的适配范围,让签名更好的发挥作用。
2. 在脚本中强制执行最少的推送和最少的编码规则(在脚本中强制执行MINIMALDATA)
这项改动意味着在2019年11月的升级中,比特币现金将引入了两条新的共识规则:在脚本执行期间,执行的push opcodes被限制为结果堆栈元素的最小形式;在脚本执行期间,大多数情况下,堆栈元素解码为数字仅限于允许最小形式。升级之后,BCH网络上的大多数交易在未来将是不可延展的,此改动有助于提升BCH零确认交易的安全性。
网络升级规范:
https://github.com/bitcoincashorg/bitcoincash.org/blob/master/spec/2019-11-15-upgrade.md
各开发组新版本客户端
升级将至,BCH的各个主要开发组都已推出了兼容11月升级的新版客户端,下面是各自的版本介绍和代码库链接。
Bitcoin ABC
ABC开发组作为BCH最核心的开发组,主导了BCH开发的进程,此次升级内容也是由该开发组制定推出的,所以新版客户端做出的改动即上述升级内容。新版代码提交的时间是在2019年8月29日。
Bitcoin Unlimited
BU客户端的节点运行数量仅次于ABC,也是BCH的主要开发团队之一。此次升级,BU客户端也是较早的兼容升级内容,推出时间是在2019年10月10日。除了兼容升级内容外,BU推出的客户端添加了新的CPFP代码,其主要作用是提升Mempool未确认交易限制。
未确认交易限制是指对一笔未确认交易的转账次数进行限制,以往的交易限制次数是25,意思是一笔未确认交易最多只能在10分钟的时间内连续转账25次,多出的交易次数不会被打包进区块。中本聪骰子团队在今年8月份曾承诺向BCH开发者捐赠1000BCH,但前提是BCH的开发组取消或者扩大交易限制次数。
BCHD
BCHD开发组在10月22日也发布了兼容11月份升级内容新版本0.15.0,并建议节点运行人员尽快升级以保持兼容性。此版本的唯一其它更改
是“getAddressUnspentOutputsg”RPC调用的错误修复。
BCH网络中的新版客户端运行占比
从统计图表来看,目前的节点升级数据并不理想,网络内的多数节点还未对客户端进行版本更新,预计这种情况会随着升级时间的临近而逐渐改变。另外,即使存在部分节点因为某种原因而没有更新,11月份的升级也会顺利进行,这一点从去年的11月份升级和今年5月份升级就能看出,所以不存在升级出现问题的情况。
要说明的一点是,此次升级并未出现较大的技术改动,但这并不意味开发组没有做事。以ABC开发组为例,从https://reviews.bitcoinabc.org/differential/可以看到该开发组日常递交的代码数量,平均每天都有数十条的更新记录。至于此次升级的内容,开发组一方面是按照既定的开发路线稳步进行;另一方面也是为了留有时间和精力去偿还BCH快速开发所带来的技术债务。(BitcoinCash)