OKCoin

7月4日比特币区块链分叉详解

申屠青春 发布在 币头条,比特币 12 7399

今天比特币区块从363731即北京时间开始分叉,到363737恢复正常,分叉5个区块,历时1个小时左右,大部分人都不知道,因而未造成大影响。分叉1区块是很正常的事情,每天都在发生。但分叉5个区块就不太正常,因而有必要对之进行分析,以免再次发生这种情况。

1、主要原因:区块版本从2向3升级

今天刚好是区块版本从2向3升级的时间,但这个时间并非事先预定,而是由程序自动控制。升级规则:最近1000个区块中有950个区块的版本为3,则拒绝版本为2的区块,全区块链升级至3。

版本2与版本3的区别:BIP66,即限定签名的DER编码,不再接受DER派生编码,只接受DER标准编码;BIP66生效方法:最近1000个区块中有750个区块的版本为3,则该规则生效;

由此可见,此次升级是分三个阶段进行升级:

(1)当[0-75%)的区块采用了版本3,一开始是兼容所有DER编码格式,以及2和3版本;
(2)当>=75%的区块采用了版本3,则开始启用BIP66,但同时兼容版本2;
(3)当>=95%的区块采用了版本3,则不再兼容版本2,只允许版本3的存在。

BTC Nuggets一直没升级bitcoind,7月1日和2日它挖到两个区块,那时应该还没达到95%比例。
今天北京时间9点56分BTC Nuggets出了一个版本2的区块363726,引起了分叉,但是被程序的分叉处理机制解决了。
10点09分BTC Nuggets再出一个版本2的区块363731,这鱼池和蚁池未能正确处理,引起分叉。

2、分叉后的挖矿

出现分叉后1小时内,鱼池和蚁池跟着BTC Nuggets的V2区块继续挖出了5个区块,Slush、BitFury和另一个不知名矿池在主链上挖出了4个区块,其他矿池没有挖到块。眼看分叉越来越大,鱼池和蚁池转到BitFury这条链下挖,支链上挖的5个区块作废,蚁池和BitFury挖两块,币网再挖1块,使得网络恢复正常。

其中鱼池和蚁池在BTC Nuggets的版本2区块下挖矿,这点让人很费解。我咨询了神鱼,神鱼说是蚁池向分发网络中心节点(注:5大矿池在矿池会议后联合建立了一个区块分发网络,目的是快速获得最新区块,以加速矿机任务更新,提高挖矿效率)错误提交了BTC Nuggets的363731区块,鱼池和蚁池未经区块验证就在363731区块上连续挖了5个区块。

然后我又联系蚁池的潘志彪,潘志彪证实错误是蚁池导致的,蚂蚁有一个节点上报了BTC Nuggets的版本2区块,使得鱼池和蚁池都在错误的区块下挖矿。

总之鱼池和蚁池在任务生成过程中未对上个区块进行合法性验证,导致了本次大分叉。比特币分叉机制不能处理,只能通过回退解决,鱼池和蚁池快速回退,转到主链上挖矿,解决了大分叉问题。

3、小结

建议:(1)分叉不可怕,快速处理最重要 (2)区块分发网络是好事,但代码要推敲(3)各矿池在挣钱同时,要多为比特币块链安全考虑,做长久生意。

版权声明: by nc" sa 作者保留权利。文章为作者独立观点,不代表巴比特立场。

评论:12

您需要登录后才可以回复 登录|注册
    Author Image
    胡说八道 518 天前

    5大矿池在矿池会议后联合建立了一个区块分发网络,目的是快速获得最新区块,以加速矿机任务更新,提高挖矿效率!离51%攻击不远了!

    +1
    +1
    我要点评
    yuan_moving
    yuan_moving 519 天前

    [话筒][话筒]

    +1
    +1
    我要点评
    白灵_fly
    白灵_fly 519 天前

    去中心化的系统玩联合,脑袋被门夹的节奏!

    +1
    +1
    我要点评
    CoinGecko币虎
    CoinGecko币虎 519 天前

    7月4日比特币区块链分叉详解 http://t.cn/RLZNXTU

    +1
    +1
    我要点评
    Mrdemon大叔
    Mrdemon大叔 519 天前

    @ZZZZZzoecy

    +1
    +1
    我要点评
    BluesBoyJin
    BluesBoyJin 520 天前

    //@巴比特资讯:转发微博

    +1
    +1
    我要点评
    暗网币-申屠亮
    暗网币-申屠亮 521 天前

    暗网币最近是不是要上比特币中国

    +1
    +1
    我要点评
    crazy去哪了
    crazy去哪了 521 天前

    原来比特币这么不安全

    +1
    +1
    我要点评
    橘黄海棠
    橘黄海棠 521 天前

    应该严惩

    +1
    +1
    我要点评
    jylovees
    jylovees 521 天前

    //@巴比特资讯: 转发微博

    +1
    +1
    我要点评
    我看比特币
    我看比特币 521 天前

    我的文章:《7月4日比特币区块链分叉详解 》更为详细地分析了本次比特币大分叉的原因,不妥之处,还请指正。巴比特:http://t.cn/RLZNXTU @巴比特资讯

    +1
    +1
    我要点评