“区块#74638的交易输出实在是太奇怪了!92233720368.54277039 BTC?是UINT64_MAX吗?”——2010年8月15日,比特币核心开发成员Jeff Garzik的发现震动了整个比特币社区,异常区块足足高出比特币总量八千多倍的交易输出量瞬间引起社区成员的强烈反应。
2010年8月15日,比特币核心开发者Jeff Garzik在Bitcointalk论坛上的留言截图;他表示,发现#74638区块有两笔数量高达922亿枚比特币的交易被发送到两个地址内
虽然在此之前,比特币网络已经至少经历过四个主要的漏洞事件;但这次不一样,在区块#74638发现的漏洞是该系统诞生以来的首个通胀漏洞。考虑到比特币总供应量为2100万枚的限制,如此巨额的数字溢出将会导致其事务值降为负数;要是处理不好,如今我们可能没有机会看到比特币。
lfm发布名为“overflow bug SERIOUS”的帖子,中本聪快速赶来发布解决方案
鉴于危机的严重性和紧急性,绝大部分社区成员皆快速行动起来,共同寻求补救方案。名为lfm的网友发帖报告漏洞的相关情况;中本聪与另外一位早期比特币核心开发成员Gavin Andresen则紧随其后,先是劝告参与者暂时不要产生新区块,然后在三小时内迅速发布新版比特币客户端0.3.10,同时强烈呼吁矿工们全体升级至带补丁的新版本。
随着新版本客户端的发布,比特币网络如愿启动硬分叉,开启区块重组。而在社区成员的团结一致下,带补丁的区块链逐步赶超出现漏洞的区块链,成功将异常区块移除。“我们已经在区块#74689追赶上坏链”,2010年8月16日午间,中本聪在Bitcointalk论坛上的留言正式宣告了这场比特币史上最为严重的漏洞危机的解除。
中本聪在Bitcointalk论坛上实时更新比特币区块链的重组情况
所幸的是,这次事件并没有给比特币网络带去太多的负面影响,反而帮助系统根除了通胀漏洞的威胁。试想一下,如果黑客发起攻击的时候,没有增发数量高得离谱的比特币,而是悄悄地凭空创造出数量适度的BTC,漏洞很有可能会被隐瞒,成为往后威胁比特币生死存亡的潜在隐患。更为重要的是,当时的比特币还仅限于一小撮极客群体内流行;如果换到现在,想要轻松处理这种程度的黑天鹅事件,就难了。
这么想来,中本聪刚开始的时候一直秉持着让比特币缓慢发展的想法不无道理。或许他深知仅凭自身力量写出来的比特币系统,或多或少存在着难以察觉的大型漏洞;要是项目发展过快,留给他们犯错的空间就会大大减少。