资料来源:Wit Olszewski-Shutterstock
以太坊核心开发人员已经同意改进更新发布机制。乐观的以太坊团队通过触发关键同步使Geth客户端上的错误导致Infura失败。
11月11日,对以太坊的“突如其来的硬分叉”影响了Infura的运作,并影响了大多数依赖其后端服务的交易所。 尽管ETH的价格没有受到影响,并在11月12日达到了476美元的年度新高,但该活动遭到了社区的严厉批评。
Blockchair的首席开发人员Nikita Zhavoronkov提供了有关失败的第一个解释,并宣布“不应低估”它。 Zhavoronkov认为,此事件对以太坊非常重要,这是自“ DAO四年前崩溃”以来所面临的最重要事件之一。
以太坊核心开发人员PéterSzilágyi在Twitter上发布的后来的安全报告提供了有关该漏洞的更详细视图,该漏洞专门影响了Geth客户端。 根据该报告,10月24日,Geth团队收到在Go编程语言库中发现的拒绝服务(DoS)错误的通知:
DoS问题可用于在块处理期间使所有Geth节点崩溃,其后果是以太坊网络的主要部分脱机。
该错误已通过更新进行了修复,但Geth 1.9.19之前的版本仍然容易受到攻击。 Infura和其他用户没有收到通知,并继续使用Geth客户端的易受攻击的版本。 因此,在11月10日,乐观的以太坊(OE)团队决定“测试错误”时,他们在以太坊虚拟机中发现导致30个区块在链拆分中丢失,正如OE成员所说:
我想向社区表示歉意,因为他们无意中导致昨晚(…)以太坊上的某些节点不同步。 我们决定测试该错误,然后看看会发生什么。 这是事后的想法–我们没有意识到几个未升级节点的影响。
以太坊的开发人员讨论Geth的bug
如前所述,未经宣布的硬分叉在加密社区引起了巨大争议。 用户和开发人员正在讨论双方的责任。 在以太坊核心开发者最近的电话中,也提出了这个问题。 蒂姆·贝科(Tim Beiko)在电话会议上作了报道,并从西拉吉(Szilágyi)的评论开始:
(…)这不是葛斯第一次暗中解决共识问题。 他们根据某人利用该漏洞的可能性来决定是否公布该修补程序。 在这种情况下,他们决定将其隐藏。
根据开发人员的说法,利用此漏洞公开变得“太容易了”。 但是,他同意在更新后,Geth的开发人员“应该报告较早的版本有问题”。 因此,电话会议讨论了在修复了至少一个月后报告未来问题的可能性,以便进行改进。 Szilágyi添加:
每当他们披露错误时,都会给网络以及所有未升级的人带来风险。
詹姆斯·普雷斯特维奇(James Prestwich)提出了创建“私有列表”以将类似错误通知列表成员的可能性。 但是,建立这样的机制提出了一些挑战:以太坊的集中化,确定谁应该在名单上以及为增加的成员提供“竞争优势”。
从这个意义上讲,Szilágyi坚持其立场,即以太坊的安全性应该是优先事项。 因此,他向社区提出了有关如何改进向公众发布更新的建议。