共享安全很重要

2023-10-08 17:09
Vitalik:什么是“共享安全”?为什么它如此重要?

译者注:随着其他L1公链和L2的交易活动日益增加,跨链、交叉rollup的需求也大大增加。这使得桥接产生了“反网络效应”:当交易活动不多时,网络会非常安全;交易越多,风险就越大(因为攻击动机大大超过攻击成本)。那么跨链和跨rollup安全性有什么区别呢?在这篇文章中,Vitalik提出了“共享安全”的概念,并基于此将各种跨链、跨rollup活动划分为安全级别。

在评估以某种方式“连接”到较大链的小链时,最大的担忧之一是:

如果攻击者能够对一条小链发起51%的攻击,会造成多大的伤害?

这是一个非常现实和重要的问题,因为小型连锁店往往比大型连锁店小得多(就市值而言)。对于攻击者来说,购买一条小链的 51% 的代币(或者至少 51% 的质押代币)通常是相当可行的,特别是当该链上存在大量桥接资产时(攻击者能够窃取这些资产)。

  • 如果小链是“独立L1”,攻击者可以窃取所有资产。 他们可以制作一个具有非法编辑状态的区块,将所有代币发送给他们,然后他们可以通过桥提取这些代币,而无需在大链上生成任何验证。

  • 如果小链是“侧链”,攻击者也可以窃取所有资产,出于同样的原因。然而,侧链比完全独立的 L1 稍微安全一些。因为侧链的区块头会发布在以太坊上,所以如果以太坊回滚,侧链也会回滚。这可以防止涉及对以太坊的 51% 攻击的盗窃,但不能防止对侧链的 51% 攻击。

  • 如果小链是“汇总”,攻击者可以延迟交易,这可能迫使用户必须支付L1费用,但他们无法窃取任何资产。这是因为有一个链上机制(欺诈证明或数据可用性证明)来验证小链上涉及攻击者提款的事件是否有效。

一些更特殊的例子:

  • 如果小链是“等离子”,攻击者可以延迟交易并迫使用户支付L1费用,但他们也无法窃取任何资产

  • 如果迷你链是“validium”,攻击者可以永久锁定所有用户的资产,但仍然无法窃取任何资产。因此,Validium(如 Starkware 的 ImmutableX)成为一个有趣的妥协。 Validium 并不像 rollup 那样“L2”,因为那些控制 validium 的人仍然可以拒绝用户访问其资产并勒索他们,但无论如何,validium 仍然比侧链安全得多。更重要的是,Validium可以同时实现侧链的可扩展性。

这就是我们所说的“共享安全”。如果你在一条小链上持有资产并进行一些交易,那么你的资产与在大链上做同样的事情一样安全还是不太安全? 结论是:如果是在rollup或者plasma上,资产共享主链的安全;如果是在独立的L1或侧链上,资产的安全性远低于主链;如果它在 validium 上,那么它的安全性介于两者之间。

另请注意,由于我在 EF 的第 7 次 AMA 中提到的一些原因,很多此类内容实际上是对称的:如果您持有 ETC,则将其持有在基于 ETC 构建的 ZK rollup 上,而不是持有包装好的 ETC 更好以太坊(尽管这座桥是以太坊共识的完美 ZK-SNARK 验证器)。这并不是说您需要在尽可能最大的链上进行交易活动。相反,您进行交易活动的区域和您使用的资产最初发行的区域属于同一个“共享安全区”(shared security zone)。 其中“共享安全区”可以理解为“某条链”,所有其他链(如rollup)的安全最终都是由这条链来保证的。

Vitalik在EF第七次AMA中的相关回答如下:

我对多链区块链生态保持积极态度的原因(确实存在一些价值观不同的独立社区,对他们来说,独立发展比大家都一样影响力要好)(同时打),而对跨链应用保持消极态度,一个关键原因是桥接具有根本的安全限制。

要理解为什么网桥有这些限制,我们需要看看区块链和网桥的各种组合如何抵御 51% 攻击。很多人都有这样的心态:“如果区块链受到51%的攻击,整个系统就会崩溃,所以我们需要尽一切努力来防止51%的攻击,哪怕是一次。”我强烈不同意这个想法;事实上,即使在 51% 攻击之后,区块链仍能保持许多保证,这一点非常重要。

例如,假设您在以太坊上持有 100 ETH,当以太坊受到 51% 攻击时,某些交易将被审查和/或逆转。所以无论发生什么,你仍然拥有那 100 ETH。即使黑客发起 51% 攻击,也无法提出窃取您 ETH 的区块,因为这样的区块会违反协议规则,并会被网络拒绝。即使 99% 的算力或质押份额想要发起攻击来窃取你的 ETH,运行节点的每个人也只会遵循剩下的 1%,因为只有他们的区块遵循协议规则。更一般地说,如果您在以太坊上有一个应用程序,通过发起 51% 攻击,可以在一段时间内审查或回滚应用程序的交易,但最终实现一致的状态。如果你持有 100 ETH,然后在 Uniswap 上兑换 320,000 DAI,那么即使区块链受到某种疯狂的攻击,你最终仍然会得到一个合理的结果:要么你仍然持有 100 ETH,要么得到 320,000 DAI 。也就是说,两者都没有得到的结果实际上违反了协议规则,并且不会被网络接受。

现在,想象一下,如果您将 100 ETH 转移到 Solana 上的桥并获得 100 Solana-WETH,那么以太坊将受到 51% 攻击。攻击者将自己的 ETH 存入 Solana-WETH 套餐合约中,然后等到交易在 Solana 网络上得到确认,然后立即在以太坊网络上回滚存款交易。 Solana-WETH 合约现在不再完全可收回,也许您的 100 Solana-WETH 现在只值 60 ETH。即使有一个完美的基于 ZK-SNARK 的桥可以完全验证共识,它仍然容易受到这样的 51% 攻击。

因此,在以太坊上持有以太坊原生资产或在 Solana 上持有 Solana 原生资产总是比在 Solana 上持有以太坊原生资产或在以太坊安全上持有 Solana 原生资产更有利可图。在这种情况下,“以太坊”不仅指以太坊 L1 基础链,还指建立在其之上的任何 L2 链。也就是说,如果以太坊受到 51% 攻击,交易被回滚,那么 Arbitrum 和 Optimism 上的交易也会被回滚。因此,即使以太坊遭受 51% 攻击,在 Optimism 和 Arbtirum 上保持状态的“交叉汇总”应用程序也能保证保持一致。而如果以太坊没有受到51%攻击,那么就没有办法分别对Arbitrum和Optimism进行51%攻击。因此,持有在 Optimism 上发行然后封装在 Arbitrum 上的资产仍然非常安全。

但是,当链数超过两条时,问题就变得更加严重。如果有100条链,这些链之间就会有很多相互依赖的dapp。这个时候,即使是某一条链受到51%的攻击,也会造成系统性风险,威胁到整个生态的经济。这就是为什么我认为相互依存的区域有可能与主权独立的区域紧密相连(所以以太坊网络的许多应用程序彼此紧密相连,Avax网络的许多应用程序彼此紧密相连等等;而不是以太坊网络和Avax网络的应用是紧密相关的)。

这也是rollup不能直接“使用另一个数据层”的原因。如果 Rollup 将其数据存储在 Celestia 或 BCH 或其他地方,但处理以太坊上的资产,那么如果该层受到 51% 攻击,用户就完蛋了。即使 Celestia 的数据可用性采样(DAS)可以抵抗 51% 攻击,它实际上也帮不了你,因为以太坊网络不读取这个 DAS;相反,以太坊网络读取桥上的信息,而桥很容易受到 51% 攻击。作为一个希望为使用以太坊原生资产的应用程序提供安全性的 Rollup,必须使用以太坊数据层(对于任何其他生态系统也是如此)。

当然,我不会说这些问题随时都会出现。 仅对一条链进行 51% 攻击既困难又昂贵。然而,使用跨链桥及其上的应用程序的用户越多,问题就越严重。没有人会攻击以太坊来窃取 100 个 Solana-WETH(或攻击 Solana 来窃取 100 个以太坊-WSOL)。但如果桥上有 1000 万个 ETH 或 SOL,发起攻击的动机就会更强,一些大型资产池会让这些攻击更容易发生。因此,跨链交易活动具有反网络效应:当交易活动不多时,网络会很安全;当交易活动不多时,网络会很安全;交易越多,风险就越大。

但这并没有改变上面的分类;它只是使分类更广泛,因为即使以太坊本身受到 51% 攻击,这些安全差异仍然存在。

一些更具体的例子:

这是因为(以太坊、Optimism、Arbitrum、ZkSync 和 StarkEx 的 rollup 模式)处于同一个“共享安全区”(因为后四个最终由以太坊保护,或者至少在欺诈证明消除所有临时性之后不久就会发生这种情况)软件后门已完全启用)。但 Avalanche 和以太坊经典显然不会、也永远不会与以太坊共享安全性。

并且在 BSV 之上使用 BSV 也是不安全的(即使两者位于同一个共享安全区,即其本身)​​,因为 BSV 是一条脆弱的 PoW 链,很容易受到无聊的 BTC/BCH 矿工的攻击。而且BSV的区块太大,用户无法验证(目前还没有计划添加分片/ZK-SNARK/DAS技术来解决这个问题)。因此,当有人对 BSV 进行 51% 攻击时,攻击者可以直接发起无效区块,而用户可能别无选择,只能接受这些区块。