Bybit 15亿美元被盗 为什么以太坊不能「回滚」来挽回损失?
作者:timbeiko.eth 来源:X,@TimBeiko 翻译:善欧巴,金色财经
在Bybit黑客事件后,加密货币评论员再次在问,为什么以太坊不能“回滚”链以逆转这次攻击。
虽然经验丰富的生态系统参与者几乎一致认为这是不可行的,但值得分析一下为什么这个看似合理的提议对技术上不太了解的观察者来说是不可行的。如果你是其中之一,可以把这当做一个“ELI5”版的解释,帮助你理解为什么这是不可能的。
先了解一下“回滚”概念:
区块链“回滚”这个概念源自比特币区块链的一个早期事件。2010年,比特币上线不到两年,由于客户端软件中的一个漏洞,导致在区块74638中铸造了1840亿比特币。
为了解决这个问题,中本聪发布了一个软件补丁,使得这些交易无效化。这就相当于“回滚”了链,恢复到了74637区块。在不到一天的时间里,新链积累了足够的工作量证明,成为了正式链条,所有被回滚的用户交易都被包含在了新链中。需要注意的是,当时比特币的挖矿难度比今天低了100亿倍,而BTC/USD的价格约为0.07美元。
简而言之,这个事件的特殊性在于,协议本身存在明显的漏洞,导致了问题交易,且由于交易金额巨大,很容易被识别出来。而且,当时比特币的采纳程度较低,分发新客户端并快速挖矿新链段变得相对容易。
以太坊与TheDAO事件
以太坊的早期历史中也发生过一个表面上看似相似的危机,通常会导致人们对回滚的可行性产生误解。2016年,一个流行的以太坊应用程序——TheDAO——控制了约15%的所有ETH。遗憾的是,一名黑客发现了该应用程序代码中的一个漏洞,允许他们窃取所有这些资金。这与比特币事件的不同之处在于,以太坊协议本身并没有问题,问题出在基于以太坊构建的应用程序上。
幸运的是,TheDAO的开发者实现了一个安全机制,即在完成提款之前,应用程序会冻结提款操作一个月。这为修复漏洞提供了独特的机会:可以更改应用程序的代码,防止资金最终流入黑客的手中。
由于应用程序本身无法做到这一点,开发者不得不直接在区块链的历史记录中做出改变。这被称为“非正常状态变更”,因为应用程序的“状态”是通过手动更新数据库来改变的,而不是通过一个有效的以太坊交易。
将其与比特币漏洞做一个大致对比,类似于将接收1840亿BTC的地址余额设置为0,而不是重新挖掘排除这些交易的链。
这一升级在以太坊社区内引发了争议,社区实际上因此而分裂。部分矿工拒绝运行软件补丁,继续在黑客发生的链条上进行挖矿,这条链后来成为了以太坊经典(Ethereum Classic)。现在所称的以太坊链,是应用了该软件升级的那一条。
再次强调,这一事件是独特的。TheDAO的被盗资金在一个月内被冻结,给予了社区时间来协调实施软件升级。资金被冻结的另一个重要优势是:黑客无法继续移动资金。如果黑客可以随意移动资金,那么“冻结”这些资金将变成一场猫捉老鼠的游戏,因为协议是开源的,任何可能冻结资金的更改都必须广播给黑客,让他们有足够时间将资金转移到其他地方。这就引出了Bybit事件。
为什么我们不能回滚以太坊?
本周早些时候,Bybit交易所被盗走了401,346个ETH(约14亿美元)。这次盗窃是由资金的保管方在一个受损的多签界面中签署了一个误导性交易所导致的。
此次黑客事件的根本原因,比TheDAO事件和比特币溢出漏洞更为复杂。以太坊协议本身没有问题,甚至Bybit使用的多签应用也没有问题。问题出在一个受损的界面,使得交易看起来是做某件事,实际上却做了其他事情。
从以太坊协议的角度来看,没有任何方式可以区分这笔交易与网络上的其他合法交易。没有违反协议规则,可以通过修补问题来隔离被盗资金,就像比特币漏洞的情况一样。
此外,黑客立即就开始了资金转移。与TheDAO事件不同,在那里社区有一个月的时间来进行“外科手术式”的干预,这里黑客立即开始在链上转移资金。
即使我们能够解决上面提到的猫捉老鼠的游戏,今天的以太坊生态系统与2016年大不相同。DeFi和桥接到其他链的功能意味着任何被盗资金可以很容易地与各种应用程序交织在一起。例如,被盗资金可以在去中心化交易所进行交换,得到的代币可以作为抵押物用在DeFi协议中,借出的资产又可以通过桥接转到完全独立的链上。
这种高度互联的状态意味着任何非正常状态变更,即使在社会上能接受,也会产生几乎无法控制的连锁反应。如果进行“全面回滚”,即使是部分回滚历史链条,这也会更糟。任何已完成的交易,许多可能涉及以太坊之外的事务(例如交易所的销售、现实世界资产的赎回等),都会被撤销,而无法恢复链外部分。
总结:
因此,尽管比特币曾经能够在15年前“回滚”其区块链,但今天,由于以太坊的互联性质以及链上与链外经济交易的结算,今天的情况使得这种回滚不可行。
从技术上讲,非正常状态变更仍然可能在资金被冻结和隔离的情况下进行。上一次提出此类变更是在2018年,目的是解决Parity多签钱包中的一个漏洞,导致约500,000 ETH被冻结(见EIP-999),这一提议遭到了社区的强烈反对,部分原因是TheDAO事件带来的争议。