上月21日,Bitcoin Core开发者Bryan Bishop发推文预言道,我正考虑在7月初公开中本聪离开前委托给几位开发者的警报密钥。
截图自:Twitter
而七月刚一开始,Bryan Bishop就如约在bitcoin-dev邮件列表上公布了这个尘封已久的秘密,并且掀起了比特币社区成员的热议。当然这一串字符并没有什么好讨论的,开发者们更为关注的是密钥背后的安全问题。
截图自:bitcoin-dev的邮件列表
1.为保护网络而设,却沦为安全隐患
所谓警报密钥,实际上就是激活比特币协议内“警报系统”的开关;持有者可以通过它向网络内所有的运行节点发出安全警报,从而起到一定的重要信息提醒作用。不过与中本聪的设计初衷相反,这个安全警报后来却成为了网络内的安全隐患。
哈希派从achow101在Github上发布的文章了解到,警报系统支持多条信息连续推送,同时发送的信息会显示在GUI界面并保存到内存的Map库里面。不过Map库的大小是没有限制的,一旦密钥落到心怀不轨的人手里,他就能够向节点发送海量警报信息,借此发起DoS攻击。
不仅如此,攻击者还能利用这项功能发送虚假或无关消息,从而引起社区内不必要的恐慌和麻烦。而事实上这种事情也曾有发生,2016年的时候,同样具有警报系统的莱特币网络发布的版本更新提醒信息,却因某种原因被同时推送到其山寨币种Feathercoin所有节点的客户端内。虽说此次事件并未对Feathercoin造成多大影响;但Bitshop认为,可以随意在基于同一警报系统的区块链里发送警报信息,“听起来很危险”。
截图自:Twitter
2.比特币早已排除隐患,懒理者或将遭殃
而老早就意识到这些问题的比特币开发者,在2016年4月15日Bitcoin Core 0.12.1版本发布的时候已经关停了警报提醒功能;并在随后上线的0.13.0版本中将其相关代码完全删除。
同年三月开发者更进一步,在Bitcoin Core 0.14.0版本中硬编码了终极警报,并将其设置为无法被其他消息所覆盖;借此保证所有未升级的节点的运行者都能看到“警报系统已被破坏”的提醒。
截图自:bitcoin.org
不过待一切准备就绪之后,Bitcoin Core并未如承诺般随后公开警报系统的密钥。因为部分节点还未升级到新版本客户端,依然存在被攻击风险;而早前涌现出的大批量比特币“山寨币”的安全问题也同样引人担忧。
具体来说,这些几乎完全引用比特币源代码的数字货币,如果没有移除警报系统,又不更改警报密钥(公钥),还懒得发送最终提醒信息;那么密钥一旦发布,任何人能够启动这些网络的警报系统,对它们发起DoS攻击。
3.拒绝背锅,正式公布密钥
面对如此情况,Core成员之一Greg Maxwell曾发邮件承诺道,他们会花时间搜索其他还在使用警报系统的加密货币,并敦促他们删除相关代码。而根据SatoshiLabs首席技术官Pavol Rusnak近日的调查显示,目前Github代码库内,就剩Fargocoin(当前市值排名第1471)这种山寨币未删除警报系统了。
潜在风险的项目已所剩无几,支持0.12版本的比特币客户端也接近消失,而当前还停留在较老版本客户端的用户占比已低于3%。为此Bishop认为,比特币警报系统已“完全退役”,现在公布密钥基本上是没有问题的,对网络安全来说也是好事。
不过除了网络安全问题之外,对于Core开发者来说这次密钥的公开更多是意味着解脱;因为他们再也不用向要求调整交易费用和挖矿难度等的人解释,这把密钥并没有修改网络规则的功能;也不用担心网络出现警报系统攻击的时候,被认定为首要嫌疑对象了。