共识不仅仅是关于达成一致,而是关于改变事物
“如果我们不停止依赖Infura,以太坊的愿景就会失败。”这就是以太坊Parity客户端发布经理Afri Schoedon 2018年10月在Twitter上对以太坊最受欢迎、也最具争议的技术之一Infura的描述。
Infura每天处理大约百亿次代码请求,为开发人员提供了一种不必运行全节点就可以连接以太坊网络的方法。昨天Infura的因为Geth的静默升级带来的宕机很快就波及了整个以太坊社区,这是其在四年的运营过程中最严重的服务中断,受到影响的产品包括包括各大交易所,以及defi的重要入口Metamask钱包。
对这件事情的复盘不应该只局限于单个技术问题,或者对Infura的分析。而是应该看到这是一个开创性系统在发展过程中折射出来的机会:
为开创性的系统打补丁:一个从零起步的系统发展进入中段的最大表现就是出现各种修补型的机会,比如我们之前的文章《总结: 10月海外DeFi新项目,更多资管策略来了!》,以及 《ETH技术团队: ETH2第0个阶段,是时候启动了》他们都是在完成这个系统曾经的承诺,比如更快的链上速度、更安全的清算、更好的DeFi收益……
更便捷的基础设施:Influra明天依然会是最受欢迎的节点提供商,因为他们的确让使用者感受到了更多的便捷性。相比自己去写智能合约数据分析,开发者更喜欢使用the graph;相比自己跑一个ETH2.0验证器,用户更喜欢eth2.0一站式收益服务。可以参见两篇文章《The Graph去中心化Goolge+AWS,在为Uniswap等处理40亿次/月请求》,《ETH质押挖矿来了!ETH2.0用户质押操作手册》。
11月11日以太坊网络由于共识机制缺陷而出现了问题。
运行旧版本geth服务的节点会变成一个孤立的链,这给所有依赖于这样节点的应用程序带来了连锁反应。
大多数用户是在Infura API宕机时才知道这个问题的。Infura是以太坊网络上最大的节点提供商,他们为一些最常用的web3.0应用程序和交易所(如Metamask、Uniswap和Binance)提供工具和基础设施。
Infura的服务降级表明Binance要么依赖于Infura,要么就得运行过时的节点,这两种节点都不适合如此大的交易量。
虽然Infura没有运行最新的geth版本看起来很奇怪,但是这样一个大规模的运营商不直接进入最新版本,也是有道理的。因为如果没有硬分叉,就没有迫切的理由从稳定工作的代码切换到未知的代码。
搜索和分析引擎Blockchair也遇到了问题,发布了以下推文:
我们的Ethereum explorer遇到了问题,正在进行修复。似乎有一个链正在分裂,一些节点(包括我们的节点和一些矿工的节点)被卡在了分裂的少数节点链上了。
Blockchair的CTO Nikita Zhavonronkov报告了收到的以下错误:
/########## BAD BLOCK #########//<…>//Error: invalid merkle root (remote: 57cc91ee8b91b956592a27b14386abc2aba723b5f4f9e5d3181ace6b5d3cd433 local: 1f9ee59bfa683a25c7a15b626995a3ad7c58c571b40df96eea31e5c5eed9732d)/
在geth网络中发现了两个严重漏洞,这两个漏洞都是由John Youngseok Yang(软件平台实验室)发现的,在以太坊奖励计划排行榜上他为此赢得了2万分。
为了避免攻击,Github上没有讨论共识缺陷的问题,因此还不知道漏洞的具体细节。对于那些希望了解更多技术细节的人,Mhswende说:
“将来会在文章或演讲中进行说明”。
为了尽量减少中断,以太坊的开发者们决定硬分叉。正如Péter Szilágyi在Twitter上写道的那样:
这是一个“未经宣布的硬分叉”(从坏链到好链)。也就是说,默默地修复一个休眠2年以上的bug,造成中断的可能性比提高对它的认识要低得多。我们努力减少潜在的损害。
对于被Infura中断影响的人来说,这个事件应该是一个及时的提醒,让你的节点保持最新版本。因为一旦你将你的节点委托给另一方,他们将可以决定如何开展业务。Infura对整个事件一直保持透明,显然正在努力解决问题。
Infura现在已经恢复在线状态了。Infura的停摆让很多人意识到我们是多么依赖于这个单一的实体。这是一个中心化的服务,充当我们去中心化系统的看门人。个人和机构都需要考虑他们今后的做法。
大型交易所(如Binance和Bithumb)因为它们在停摆期间被迫暂停ETH和ERC-20提币。我们不能对Infura依赖到这种程度。由于MetaMask默认依赖于中心化节点提供商,使整个以太坊网络瞬时凄凉,gas降低到只有12gwei。
这证明了一种不健康的依赖,也清楚地表明了这种依赖可能产生的潜在危害。我们是否希望我们的数字在其他地方社会重现一样的错误,依赖于集中的单点故障?
我们已经建立了一个免费的网络,但却把它交给了一小群中央集权机构——Chrome、Safari、Brave。我们不能让同样的事情发生在加密货币上。
大卫·米哈尔写道:
今天的Infura宕机事件让用户争先恐后地寻找另一个RPC提供商。
任何共识的失败都是一个严重的问题。这个未经宣布的硬分叉表明,这些漏洞,如果不加以控制,可能会对以太坊造成非常大的危害。
幸运的是,多亏了bug赏金猎人的敏锐目光和以太坊开发者的勤奋工作,没有造成任何损害,正如Nikita Zhavonronkohov在Twitter上所写的,修复看起来非常简单。
微信掃描關注公眾號,及時掌握新動向
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表比特範的觀點或立場
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表比特範的觀點或立場