北京时间7月4日,比特币区块高度363731出现分叉,数家矿池被迫统一回退重挖,丢失的分支块共计5个(鱼池4个共计100btc, 蚁池Antpool 1个共25btc)。
据深圳大学ATR国防科技重点实验室申屠博士的解释,此次比特币网络出现分叉与BIP66有关:
“
今天比特币区块链363731分叉原因是BIP66,即限定签名的DER编码,不再接受DER派生编码;同时区块版本从2升级至3。生效方法:1. 最近1000个区块中有750个区块的版本为3,则执行该规定;2. 最近1000个区块中有950个区块的版本为3,则拒绝版本为2的区块。BTC Nuggets没升级bitcoind,今天被拒两块,引起分叉。”
对此,巴比特对比特大陆科技有限公司产品&研发总监潘志彪进行了采访:
V3版本是什么时候开始出现的?
A:块的Version 3由bitcoind v0.10.0引进的,于2015年2月13号发布的。
为什么会在今天出现分叉?
A:因比特币是一个P2P分布式网络,不可能一瞬间全部切换到新的版本,所以才用了渐进式灰度升级机制。
灰度升级的核心开关就是块版本号,当出现硬分叉的功能时候,就必须升级块版本号来完成。新的节点采用新块版本号,但关联的新特性并未启用,当全网最近1000个块中95%已经升级至最新的块版本时,则自动启用新特性,此时不再接受旧版本号的块了。所以,即使2015年2月发布了新块版本,也需要时间过渡直至2015年7月4号才正式生效。
这次的升级意味着什么?
A:Version 3主要是生效BIP66。BIP66主要是修复OpenSSL版本签名带来的一个Bug,已经存在很多年了,Version3后将完全修复之。
新版本V3有什么变化或者好处?
A:同上。
丢弃的都是空块,近期为何会出现这么多空块?
A:本次分叉出现了很多空块,是因为主要矿池采用了空块优化特性带来的。
国内四家主力矿池的节点均升级至version3了,本不会导致分叉出现,但加速模块依然会嗅探网络上的新块,由于未对新块加强检测(未检测版本等)导致发出空块任务,几大矿池均相互嗅探,导致部分空块任务出块了。
是不是矿池的技术造成了最近0交易区块增多?
A:不是。近期空块并没有增多,你问题中提及的空块变多了不知是否有数据支持?
另外,是不是这些技术导致了这次分叉?
A:不是。
以下是来自bitcoin.org的公告:
总结
如果您在utc时间2015年7月4日6:00之前收到的交易确认,那么您的比特币是安全的。
在这个时间点之后的交易,需根据用户的钱包软件的版本进行分类处理:
1.轻量级(spv)钱包用户,需比正常的等待时间多30个确认。
2.比特币核心0.9.4或更早版本的用户,需要比正常的等待时间多30个确认,或者升级到比特币核心0.10.2。
3. Web端钱包用户,需要比正常的等待时间多30个确认,除非你确认自己的钱包是0.9.5版本或更高版本。
4. 比特币核心0.9.5版本或更高版本的用户,您不会受到影响。
矿工
如果您是在矿池进行的挖矿,请切换到正确验证区块的矿池。(如果你是进行的 solo挖矿,请切换到比特币核心0.10.2)。
出现问题的矿池:这些矿池没有正确地进行验证,并且正遭受损失。
BTC Nuggets
暂无问题的矿池:这些矿池验证区块的方式是正确的。请切换至它们,直到出现问题的矿池修复好它们的系统。
Eligus
kano/ckpool
P2Pool
F2Pool
巴比特整理报道
http://www.8btc.com/spv-mining