比特缠解:Bitcoin Unlimited 1.0.0正式版:我可能挖到了假区块
时间:2017-01-31 来源:比特缠解 作者:比特缠解
本来不想为这点“小事”费口舌的,但是有人混淆逻辑,混淆是非,纠正一下是必要的。 昨天,刚刚发布的Bitcoin Unlimited 1.0.0正式版里的一个bug发作了,导致Bitcoin.com矿池意外分叉。该消息已获得github上BU官方人员的确认。由于Bitcoin Unlimited 1.0.0所占算力很小(也幸亏其所占算力很小),未对比特币全网造成影响。 近半年,Bitcoin Unlimited被一小部分人士视作“比特币扩容的救世主”、“让比特币摆脱Core‘魔爪’的希望”。一些人士更对其赞叹有加: 然而,作为版本号为“1.0.0”的“正式版”,BitcoinUnlimited开发团队对自己发布的软件缺乏最基本的测试(你要是rc版出现bug也就算了,正式版还出bug。更讽刺的是这个版本号叫1.0.0,开发团队迫切的想进入下一个“里程碑”,但是缺乏与之相匹配的工作态度),中本聪为区块设置的大小上限是1,000,000字节,而BitcoinUnlimited团队因为编码和测试的不严谨,使得某矿池(Bitcoin.com)挖出了1,000,023字节大小的区块。 (bug形成原理摘潘志彪微博:BU最近出了一个BUG,导致打出超出自己限制的块(1,000,023Bytes),原因很简单:只留了100字节给coinbase交易(目前绝大部分coinbase都超过100字节,之所以没立即出bug,是因为需要一定概率才能打满触发此bug,此块BU客户端也会拒绝)。修复也很简单:预留了1000Bytes。矿池如果coinbase超过约1140+字节,依然一定概率还会出bug的(例如多个输出的coinbase tx)。如果需要打出超1140+字节的coinbase tx,还是把bitcoind启动参数块大小调低一些,防止出幺蛾子。) 有人诡辩说,这是孤块,屡见不鲜的,不是分叉。但稍微有点比特币基础知识的人都知道,孤块属于意料之中的,是比特币协议的一部分,由网络传输延迟导致,是因运气不好产生的一种普遍现象。而Bitcoin Unlimited的bug导致的分叉是意料之外的,Bitcoin.com矿池并没有产生大于1,000,000字节区块的意图,但是却产生了,并导致自身在分叉上,BU使Bitcoin.com矿池蒙受了无缘无故的损失(损失12.5多个比特币)。 还有人找理由说,软件出bug是正常的,中本聪也写出过bug。要是没记错的话,中本聪写软件的时候还没有比特币交易所吧 换言之,中本聪写的是市值几乎为零的比特币,性质上来说是测试版(当时的比特币就是一个实验,且不具有市值)。而Bitcoin Unlimited 1.0.0“正式版”是运行在主要网络上的,Bitcoin.com矿池已经为此蒙受了经济损失。其实比特币是有测试网络的,Bitcoin Unlimited作为一个“成熟团队”,完全有能力在测试网络上运行测试,但不知道是什么原因,这个bug没有被发现。 某人再诡辩说:“这件事故给我的警示是,矿池应该承担起更多的软件安全测试。”虽然从利益的角度上讲,矿池有动机测试软件的安全性,但是这毕竟不是矿池的本职工作,而且不是每个矿池都有这方面的人才。假如软件安全测试应由矿池承担,那么开发团队应承担什么 后记: 我曾考虑过不说硬分叉相关的话题,因为我的读者中也有BU的支持者兼Core的反对者。说的多了,其实我也没好处。况且,第三方发起的硬分叉扩容本身就极难落地,我说与不说,差别是不大的,都是没人敢轻易生成大区块。那为什么现在要说呢 因为我对读者还是有信心的,相信其中某些人能够平衡的看待问题。比如说,之前有鼓动家宣称,比特币不扩容,永远不会有牛市,结果8000突破了;还有鼓动家宣称,Core会害死比特币,结果1MB下的比特币还是好好的。我认为,币圈的大部分人是有智慧去分辨是非的。如果因为我支持Core,就掉粉的话,那这些粉不要也罢。 比特币并非绝对不能够硬分叉,但硬分叉的风险和代价需要小心权衡(没代价的话我也支持硬分叉),假如真要发起硬分叉,需要有充足的准备时间和协商时间。不能一刀切的说“阻碍硬分叉扩容就是邪恶的”,“支持硬分叉扩容就是正义的”,这样的态度,和妖魔化的手段,与五毛无异。而更让人心寒的是,将妖魔化手段视作瑰宝的,对比特币原开发社区、及中国最老的比特币交易所缺乏感恩之心的,还包括所谓的大V。 另:隔离验证兼容的客户端(BitcoinCore 0.13.1和0.13.2)的节点数量,已超过2600,几乎占全网节点数的一半。 关注TD微博,第一时间看TD分析:http://www.weibo.com/btcj TD比特币交流QQ群:456301336 打赏BTC地址:1AWVkdHgcrttEbKF66pSRdA2dLHphT4H8k |