(图片来源于网络)
1
大宕机
11号下午4点半左右(北京时间,下同),很多人忽然发现自己的以太坊钱包metamask不好用了。连带着uniswap以及所有以太坊的dApp也不能用了。币安的以太坊充提暂停维护了。有项目准备在uniswap上首发添加流动性,结果也被迫改变计划了。大家很快发现是所谓RPC服务提供商infura的API接口不好用了。infura挂了,metamask就挂了。metamask挂了,uniswap(以及所有以太坊dApp)也就不能用了。
下午5点半左右,币安放出消息说发现以太坊在区块高度11234873疑似发生了分叉,区块浏览器blockchair在该处的区块哈希和区块浏览器etherscan显示不同,因此币安紧急关闭了以太坊以及以太坊上所有的ERC20代币的充提通道。
下午6点左右,infura表示正在抢修。
近晚7时,blockchair首席开发者Nikita Zhavoronkov发推说是因为以太坊在某次更新中悄悄的修复了一个存在2年多的bug,导致了旧版本的以太坊客户端在11234873这个区块被卡住了,造成了以太坊区块链的分裂。
blockchair、infura等都没有升级最新的以太坊客户端,结果导致被卡死。
不过,以太坊创始人Vitalik否认以太坊网络出现了分叉。只是很久没升级的老版本遇到了问题,升级一下就好了。
晚7点半左右,infura公告解释了事故原因在于infura所使用的go-ethereum客户端版本较旧(1.9.9、1.9.13均存在此问题),导致在区块高度11234873处遇到了严重的共识问题。1.9.19及更高版本不存在该问题。
晚10点半左右,infura表示修复已经实施完毕。至此,故障共造成服务宕机6小时15分钟(据status.infura.io统计数据报告)。
2
市场反应
对于此次技术故障,二级市场反应倒是非常平淡。以太坊全天收涨4.23%(收461.96美元)。UNI全天收涨6.3%(收3.06美元)。
比特币开发者没有放弃机会嘲讽以太坊和创始人Vitalik。开发者James Lopp发推称:唤起以太坊用户内心的恐惧只需要三个单词:infura is down(infura宕机了)。而一向以敢怼敢喷著称的开发者Jimmy Song发推称:难道不是以太坊1.0的大规模共识失败给Vitalik推动人们去以太坊2.0提供了很大的方便吗?而且再一次地,永远不要把可以用无能解释的事情归因于蓄意。我倾向于这是无能,虽然我很乐于承认我错了。
不过,以太坊社区也没少怼比特币。比如上面提到的blockchair首席开发者Nikita Zhavoronkov近期就多次发推炮轰比特币和闪电网络。他曾称:闪电网络开发了5年,结果就是完全中心化、没有任何实际使用,已经彻底失败了,但凡有一半脑子的人都能预见到这一点。又称:最佳的开除比特币核心开发者的时间是4年前,当他们拒绝增加区块大小而所有人都希望增加时。次佳的时间就是现在。
3
任重道远
希望这次大宕机能够给以太坊生态乃至整个区块链行业敲一记警钟,那就是目前的区块链项目,哪怕是像以太坊这样的顶级项目,也仍然存在多处中心化的、中本聪所说的“single point of failure”(单点失败)问题的风险点。这些风险点,不知道什么时候爆个雷,是整个项目生态的“阿喀琉斯之踵”。根据墨菲定律,只要有可能爆雷的,不管风险有多小,只要时间够长,总有一天会爆雷。
节点去中心化程度非常高的以太坊,众多基于以太坊的应用,其可用性竟系于一个中心化的互联网API服务。这让听多了区块链人唠叨“去中心化”的互联网朋友们以及各行各业的朋友们,不禁要对区块链到底行不行产生了更大的疑虑。
这种互联网中心化架构,不仅削弱了去中心化,而且削弱了抗审查性(API提供者可以随时block一个用户),完全没有隐私保护(把地址和你的身份关联起来)。但这种互联网式的架构,却又是最简单、有效、易于普及的。
而这些都是中本聪当年愿景中需要解决的问题。时至今日,这些问题连比特币都还没有完全解决(SPV轻钱包至今尚未有足够好的方案来兼顾效率和隐私性),遑论其他公链。
任重道远,道阻且长。继续加油吧,区块链人!
(公众号:刘教链)