《我学区块链》—— 二十、以太坊安全之 区块节点漏洞

二十、以太坊安全之 区块节点漏洞 – 以太坊边召开开发者大会边修复

       2016年9月18日,以太坊 Devcon2 全球开发者大会召开前的几个小时,以太坊在其博客上发布了一份关于 DoS 安全警报。这次安全警报产生的根源,很大程度上来自于以太坊区块链上 2283416 区块节点的漏洞,而且该漏洞被认为复现率高并且可造成严重后果。

       而这次漏洞形成的影响,主要是造成了包括 Geth 在内的所有基于 Go 语言编写的以太坊 1.4.11 版本客户端出现内存溢出错误,并阻止了进一步挖矿。但由 Rust 语言编写的 Parity 客户端并未受此次攻击的影响。在 Geth 停运期间,官方鼓励以太矿工们转到 Parity 客户端。

       此次出现漏洞的违规智能合约包含了一条以语言错误在内的消息,它包含一条德语信息 “Fahrt nach Hause”,翻译成英文是 “Go Home”。Reddit 网站上的用户们认为,这一信息很有可能针对的是 Devcon2 开发者大会的与会者们,想让他们不要参加大会。

       下面图片显示了漏洞的行为轨迹:由超时到最后发出 “致命错误:内存不足” 的报告。

geth-out-of-memory

图片来源:https://pastebin.com/Q77E74G2

       以太坊基金会的交互设计师、图形界面钱包的团队负责人 Alex Van de Sande 事后在其 twitter 上贴出了下图,以显示在漏洞出现期间,Devcon2 会议现场的媒体室被改造为 “作战室”,而身在上海,正准备参加 Devcon2 大会的以太坊的开发者们正聚集在 “作战室” 里与出现的 bug 做着紧张而激烈的 “抗争”。

devcon2

       几个小时后,开发者就将 “From Shanghai, with love (1.4.12)” 补丁顺利搭建、测试完成,并在 GitHub 上线。社区用户也对此次以太坊的及时响应给予了大力好评。Reddit 用户 actuallymentor 对此评论说:“我想大多数非开发者并不明白,开发者能在被攻击情况下做出如此快速而坚定的反应,是多么的了不起。这一次举动也让以太坊在我的印象中脱颖而出。它不仅是开源的,背后还有一群专业并且负责任的开发者。感谢来自上海的爱,我们也爱你。”

       以太坊网络危机的公开,使得Kraken 在内的一些交易所立即停止了以太坊的交易流动资金,但补丁发布完成后,其交易功能又得到重新启动。同时,以太币价格也在临时性恐慌抛售之后出现了大幅度上涨,下跌至12.36美元(9月18日交易额)的以太币价格仅仅用一天时间就上升到超过13美元。Van de Sande 在漏洞修复完毕后利用 twitter 对外宣称:“这次漏洞造成的总伤害只是使Devcon2 大会的开场推迟了 30分钟。”

Devcon 开发者大会是以太坊基金会的年度会议,其开发团队和开发社区借此聚集在一块,探讨各自的主要研究,当前热点和未来规划。今年 Devcon2 的议题主要集中在可伸缩性、State Channels、存储和安全几大领域。

Geth 1.4.12 更新链接:https://github.com/ethereum/go-ethereum/releases/tag/v1.4.12

Geth 1.4.12 变更内容:https://github.com/ethereum/go-ethereum/commit/421df866cd4468d62b09295199b7228d0ae2b714

你可能感兴趣的:(《我学区块链》)