V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yuhanle
V2EX  ›  Bitcoin

做过比特币区块链分叉的大佬们,不要错过

  •  
  •   yuhanle · 2017-12-22 20:55:35 +08:00 · 774 次点击
    这是一个创建于 2546 天前的主题,其中的信息可能已经有所发展或是发生改变。

    情况是这样的,说来话长

    一个很好的朋友,在寻找有比特币开发经验的大佬

    打算做一个比特币区块链分叉信息平台,有兴趣的你们请与我联系

    微信号私聊: Another_ONer,欢迎骚扰

    关于比特币区块链分叉详解:

    今天比特币区块从 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 )各矿池在挣钱同时,要多为比特币块链安全考虑,做长久生意。

    以上内容源于 http://www.8btc.com/bitcoinfork

    第 1 条附言  ·  2018-04-13 09:57:31 +08:00
    信息已过期
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5118 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 07:30 · PVG 15:30 · LAX 23:30 · JFK 02:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.