北京时间 5 月 8 日早晨,币安发布公告称黑客利用安全漏洞获得大量用户 API 密钥、2FA 代码等信息,从而在区块高度 575012 处从币安热钱包中盗走了 7000 枚比特币,约占热钱包比特币总量的 2%。赵长鹏随后在早上 11 点中的社区问答中表示,不会采取回滚的方法追回被盗的币,因为会破坏比特币的可信度,并且将暂停一周重提以彻底核查漏洞,币安的 SAFU (Secure Asset Fund for Users)可以赔偿这次的损失。(SAFU 基金由币安币 2018 年 7 月设立,计划将收到的所有交易费的 10% 分配到该基金中,为潜在的漏洞提供保险。)赵长鹏回答的精选内容币安也有收录,详见《币安被盗事件之后,赵长鹏现身社区并回应一切》)
本文是莱比特矿池创始人兼 CEO 江卓尔以及币印矿池创始人潘志彪事发后在微博上,针对区块回滚做的一系列分析探讨,观点鲜明。
文章来源:新浪微博
江卓尔,莱比特矿池创始人兼 CEO
赵长鹏所称的,可能回滚(rollback) BTC 交易来挽回币安所丢的 7000BTC 一事引起很大争议。此回滚在技术上可行:只要有超过 51% 算力,在盗币交易区块前,重新开始挖一个分叉,并且只剔除掉那笔被盗交易(和后续交易),正常打包原链上的其它交易,那在新分叉长度超过原来被盗链后,就会发生区块重组(reorg)。
重组(reorg)可以简单理解为:新分叉覆盖了原被盗链,效果是:在不影响其它交易的情况下,单独回滚那一笔盗币交易。此回滚遭到社区成员激烈反对(我也反对),因为这改变了比特币最重要的特性:不可篡改性。
潘志彪,币印矿池创始人
币安全程公开处理此事件,反馈很快,还是值得肯定的。CZ 可能不太了解算力和挖矿,有那样的想法也正常,毕竟他只是想拿回自己的币并不是故意去伤害其他人。
潘志彪给出的回答是:运行全节点,然后在重组(reorg)发生前,主动打全节点补丁(UASF),该补丁可以强行认可被盗交易,使得高度即使胜出的重组链,也无法重写现有的数据。
潘志彪的回答行不通,按他的做法,并不能阻止 BTC 交易被修改,只是通过主动打补丁,分叉出一条交易没有被修改的分叉链而已。
如果政府合乎法律地要求矿池(大部分为公司运营)单独回滚某笔盗币交易,那矿池只能照做。回滚了这一笔交易,短时间也不会产生多大直接影响,可以预计回滚后的分支,还是会占据大部分市值、用户、资源。
按潘志彪的流程,仅仅是少数人(有能力在短时间注意到事件,并打全节点补丁)保留了一条未被修改的链,最后可能会形成类似 ETH (回滚了 DAO 盗币) & ETC (保留了 DAO 盗币)这样的双链。
那么,如果认为比特币的「不可篡改性」非常重要,那应该怎么做?很简单,不允许深度重组(reorg)就可以了。比特币历史上除了 BUG,从未发生过 6 区块以上的重组(reorg),用户也普遍认为 6 确认为安全,因此可以直接在代码里写:不接受 10 区块以上的重组(reorg)。
是不是很眼熟?没错,这就是 BCH 在和 BSV 算力战期间,增加的保护规则(滚动检查点)。如果盗币发生在 BCH 上,那就根本不会有这样的争执,因为 BCH 一旦 10 确认以上,就绝对不可回滚 —— 注意是绝对,哪怕你多 100 倍算力挖分叉也没用,代码不接受 10 区块以上的重组(reorg)。
这不就是像潘志彪这样的 BTC (Core)支持者,梦寐以求而不得的「不可篡改性」吗?
滚动检查点这一保护规则,直接确保了 BCH 就算是小算力链,也不怕算力攻击,交易所也普遍降低了对 BCH 确认数的要求,使得 BCH 更好用。
然后 BSV 支持者就气疯了,开始胡扯一些「滚动检查点 防止了矿工自由竞争」之类的歪理邪说。对于这些胡扯,只要一句话就能噎死:为什么要允许逆转 6 区块确认?
历史上发生过正常的 6 区块回滚吗?连 3 区块都几乎没有吧。(除了 BSV 瞎搞巨块,自己搬起石头砸自己的脚的那次 6 区块回滚外)。6 区块回滚就是攻击,为什么要允许攻击的发生?
从这件事,就可以看出 BCH 的路线:渐进演化、务实主义、用户数至上。
问题:「不可篡改性」有风险?(有人要攻击?有人被盗币想回滚交易?)
解决:增加规则,禁止 10 区块以上深度重组,确保 10 确认绝对安全。
顺便说一下,中本聪也是典型的务实主义,在比特币还很弱小时,不和维基解密纠缠在一起(中本聪说服维基解密的创始人阿桑奇,不使用比特币捐助),确保比特币的存活,而不是挑衅美国政府:我就给维基解密捐款了,有本事来封我啊。
相比之下,BSV 社区邪教气质四射:币安你有本事就下架我!是币安需要 BSV,而不是 BSV 需要币安!然后还声称是中本聪思想的继承者,真是令人汗颜。
来源链接:media.weibo.cn