特别感谢Karl Floersch的反馈和审阅
过去一年,以太坊二层生态系统迅速扩张。传统上以StarkNet、Arbitrum、Optimism和Scroll为特色的ZK-EVM滚动生态系统取得了快速进展,大大提高了安全性;L2beat页面很好地总结了每个项目的现状。此外,我们还看到一些团队在构建侧链的同时也开始构建滚动(Polygon),一些一层项目试图转向成为validiums(Celo),以及全新的努力(Linea,Zeth...)。
这不可避免地导致了一个趋势,即二层项目变得更加异质化。我预计这一趋势将继续,原因有几点:
- 一些当前独立的一层项目希望更接近以太坊生态系统,可能会成为二层项目。这些项目可能希望逐步过渡。现在一次性过渡会导致可用性下降,因为技术尚未准备好将所有内容放入滚动。稍后一次性过渡则会冒着牺牲动力并且为时已晚的风险。
- 一些中心化项目希望为其用户提供更多安全保障,并正在探索基于区块链的途径。在许多情况下,这些是以前可能会探索“许可的财团链”的项目。实际上,它们可能只需要一定程度的分散化。此外,它们通常非常高的吞吐量使它们在短期内甚至不适合滚动。
- 像游戏或社交媒体等非金融应用希望实现分散化,但只需要一定程度的安全性。在社交媒体的情况下,这实际上涉及以不同方式处理应用的不同部分:像用户名注册和账户恢复这样的罕见且高价值的活动应该在滚动上完成,而像发布和投票这样频繁且低价值的活动则需要更少的安全性。如果链失败导致您的帖子消失,那是可以接受的代价。如果链失败导致您丢失账户,那将是一个更大的问题。
一个重要的主题是,虽然今天在以太坊一层上的应用和用户在短期内支付较小但仍可见的滚动费用是可以接受的,来自非区块链世界的用户则不会:如果您之前支付了$1,那么支付$0.10就更容易被接受,而如果之前支付了$0,那就更难被接受。这既适用于今天中心化的应用,也适用于较小的一层项目,它们通常在用户基数仍然很小的情况下具有非常低的费用。
一个自然而然的问题是:对于给定的应用,滚动、validiums和其他系统之间的这些复杂权衡中哪种是合理的选择?
滚动 vs validiums vs 断开的系统
我们将探讨的安全性与规模的第一个维度可以描述如下:如果您在L1上发行了资产,然后存入L2,然后转移到您,您有多大的保证能够将资产带回L1?
还有一个类似的问题:导致这种保证水平的技术选择是什么,以及这种技术选择的权衡是什么?
我们可以简单地使用图表来描述这一点:
系统类型 | 技术属性 | 安全保证 | 成本 |
---|---|---|---|
滚动 | 通过欺诈证明或ZK-SNARKs证明计算,数据存储在L1上 | 您始终可以将资产带回L1 | L1数据可用性+SNARK证明或冗余执行以捕捉错误 |
Validium | 通过ZK-SNARKs证明计算(无法使用欺诈证明),数据存储在服务器或其他独立系统上 | 数据可用性故障可能导致资产丢失,但不会被盗 | SNARK证明 |
断开的系统 | 一个独立的链(或服务器) | 信任一个或一小群人不会盗取您的资金或丢失密钥 | 非常便宜 |
值得一提的是,这是一个简化的模式,存在许多中间选项。例如:
- 在滚动和validium之间:一个validium,任何人都可以在链上支付以支付交易费用,此时操作者将被迫在链上提供一些数据,否则将失去存款。
- 在plasma和validium之间:一个Plasma系统提供类似滚动的安全保证,但支持的应用数量有限。一个系统可以提供完整的EVM,并向不使用这些更复杂应用的用户提供Plasma级别的保证,向使用这些应用的用户提供validium级别的保证。
这些中间选项可以被视为在滚动和validium之间的一种谱系。但是是什么促使应用程序选择谱系上的特定点,而不是更左边或更右边的某个点呢?在这里,有两个主要因素:
- 以太坊本地数据可用性的成本,随着技术的改进而降低。以太坊的下一个硬分叉,Dencun,引入了EIP-4844(也称为“proto-danksharding”),提供约32 kB/秒的链上数据可用性。在接下来的几年里,预计这将分阶段增加,因为完整的danksharding将逐步推出,最终目标是约1.3 MB/秒的数据可用性。与此同时,数据压缩的改进将使我们能够用同样的数据做更多事情。
- 应用程序自身的需求:用户会因高费用而遭受多大损失,而不是应用程序出现问题? 金融应用程序会因应用程序故障而损失更多;游戏和社交媒体涉及每个用户大量活动,相对低价值的活动,因此对于它们来说,不同的安全权衡是有意义的。
大致上,这种权衡看起来是这样的:
另一种值得一提的部分保证类型是预确认。预确认是由滚动或validium中的一些参与者签署的消息,表示“我们证明这些交易包含在此顺序中,并且后状态根是这样的”。这些参与者可能会签署一个与后来的现实不符的预确认,但如果他们这样做,就会烧掉存款。这对于像消费者支付这样的低价值应用程序非常有用,而像数百万美元的金融转账这样的高价值应用程序可能会等待由系统的完整安全性支持的“常规”确认。
预确认可以被视为另一个混合系统的例子,类似于上面提到的“plasma / validium混合”,但这次是在滚动(或validium)之间进行混合,后者具有完整的安全性但延迟高,而具有较低安全级别且延迟低的系统。需要较低延迟的应用程序获得较低安全性,但可以与愿意为了最大安全性而接受较高延迟的应用程序共存。
无需信任地读取以太坊
另一个不太被考虑但仍然非常重要的连接形式与系统读取以太坊区块链的能力有关。特别是,这包括能够在以太坊回滚时进行回滚。要了解为什么这很有价值,请考虑以下情况:
假设,如图所示,以太坊链发生了回滚。这可能是在一个纪元内暂时的故障,当链尚未最终确定时,或者可能是一个不活跃泄漏期,链在此期间未最终确定,因为太多的验证者离线。
由此可能产生的最坏情况如下。假设顶部链的第一个区块从以太坊链的最左侧区块读取了一些数据。例如,有人在以太坊上存入了100 ETH到顶部链。然后,以太坊发生了回滚。然而,顶部链没有回滚。因此,顶部链的未来区块正确地跟随了新的正确以太坊链的区块,但现在错误的旧链接的后果(即100 ETH存款)仍然是顶部链的一部分。这种利用可能会导致货币的滥发,将顶部链上的桥接ETH变成保留的一部分。
解决这个问题有两种方法:
- 顶部链只能读取以太坊的最终确定区块,因此它永远不需要回滚。
- 如果以太坊回滚,顶部链也会回滚。这两种方法都可以防止这个问题。前者更容易实现,但如果以太坊进入不活跃泄漏期,可能会导致功能损失较长时间。后者更难实现,但可以确保始终具有最佳功能性。
请注意,(1)确实有一个特例。如果对以太坊进行了51%的攻击,创建了两个新的不兼容区块,这两个区块同时看起来都是最终确定的,那么顶部链可能会锁定在错误的区块上(即以太坊社会共识最终不支持的区块),并且必须回滚以切换到正确的区块。可以说,没有必要提前编写处理这种情况的代码;可以通过硬分叉顶部链来处理。
链能够无需信任地读取以太坊对于两个原因非常有价值:
- 它减少了将在以太坊(或其他L2)上发行的代币桥接到该链中涉及的安全问题
- 它允许使用共享密钥库架构的账户抽象钱包安全地在该链上持有资产。
- 尽管可以说这种需求已经被广泛认可,但这也很重要。 (2)也很重要,因为这意味着您可以拥有一个钱包,允许轻松更改密钥,并在许多不同的链上持有资产。
拥有桥接器是否意味着您拥有validium?
假设顶部链最初是一个独立的链,然后有人在以太坊上部署了一个桥接合约。桥接合约只是一个接受顶部链区块头的合约,验证提交给它的任何区块头是否附带有效证书,证明它已被顶部链的共识接受,并将该区块头添加到列表中。应用程序可以在此基础上构建功能,例如存款和提取代币。一旦建立了这样的桥接,那是否提供了我们之前提到的任何资产安全保证呢?
到目前为止,还没有!有两个原因:
- 我们正在验证区块是否已签名,但没有验证状态转换是否正确。因此,如果您在以太坊上发行的资产存入顶部链,而顶部链的验证者变得不端,他们可以签署一个窃取这些资产的无效状态转换。
- 顶部链仍然无法读取以太坊。因此,甚至无法将以太坊原生资产存入顶部链,而必须依赖其他(可能不安全的)第三方桥接。
现在,让我们将桥接器变成一个验证桥接器:它不仅检查共识,还检查ZK-SNARK证明任何新区块的状态是否计算正确。
一旦完成这一步,顶部链的验证者就无法再窃取您的资金。他们可以发布一个带有不可用数据的区块,阻止所有人提取,但他们无法窃取资金(除非试图向用户勒索,以换取揭示允许他们提取的数据)。这与validium的安全模型相同。
然而,我们仍然没有解决第二个问题:顶部链无法读取以太坊。
为了解决这个问题,我们需要做以下两件事之一:
- 在顶部链内部放置一个验证已最终确定的以太坊区块的桥接合约。
- 使顶部链中的每个区块包含最近以太坊区块的哈希,并制定一个分叉选择规则来强制执行哈希链接。也就是说,链接到不在规范链上的以太坊区块的顶部链区块本身就是非规范的,如果顶部链区块链接到最初是规范的但后来变成非规范的以太坊区块,那么顶部链区块也必须变成非规范的。
紫色的链接可以是哈希链接,也可以是验证以太坊共识的桥接合约。
这足够了吗?事实证明,还不够,因为还存在一些小的边缘情况:
- 如果以太坊遭受51%攻击会发生什么?
- 如何处理以太坊的硬分叉升级?
- 如何处理您的链的硬分叉升级?
对以太坊的51%攻击会产生与对顶部链的51%攻击类似的后果,但是相反。以太坊的硬分叉可能会使顶部链内部的以太坊桥不再有效。如果以太坊回滚了一个已最终确定的区块,就承诺回滚,如果以太坊硬分叉了,就承诺硬分叉,这是解决这个问题的最干净的方式。这样的承诺很可能永远不需要实际执行:如果顶部链上的治理装置发现可能发生攻击或硬分叉的证据,只有在治理装置失败时才会对顶部链进行硬分叉。
对于(3)的唯一可行答案,不幸的是,是在以太坊上有某种形式的治理装置,可以使以太坊上的桥接合约意识到顶部链的硬分叉升级。
总结:双向验证桥接几乎足以使链成为validium。主要剩下的要素是一种社会承诺,即如果以太坊发生异常情况导致桥接不再有效,另一条链将做出硬分叉响应。
结论
“与以太坊连接”的两个关键维度:
- 提取到以太坊的安全性
- 读取以太坊的安全性
这两者都很重要,并且有不同的考虑因素。在这两种情况下都存在一个范围:
请注意,每个维度都有两种不同的衡量方式(实际上有四个维度?):提取的安全性可以通过(i)安全级别和(ii)多少用户或用例受益于最高安全级别来衡量,读取的安全性可以通过(i)链能够多快读取以太坊的区块,特别是最终确定的区块与任何区块,以及(ii)链对处理51%攻击和硬分叉等边缘情况的社会承诺的强度来衡量。
在这种设计空间的许多领域中,项目都有价值。对于一些应用程序,高安全性和紧密连接是重要的。对于其他应用程序,为了获得更大的可扩展性,可以接受一些较松的连接。在许多情况下,从今天开始使用较松的连接,随着技术的改进,在未来十年内逐渐过渡到更紧密的连接,可能是最佳选择。
免责声明:本文章仅代表作者个人观点,不代表本平台的立场和观点。本文章仅供信息分享,不构成对任何人的任何投资建议。用户与作者之间的任何争议,与本平台无关。如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到support@aicoin.com,本平台相关工作人员将会进行核查。