超级链:一个统一的 OP 链的网络
- 原文链接:https://docs.optimism.io/stack/explainer
- 译者:AI翻译官,校对:翻译小组
- 本文永久链接:learnblockchain.cn/article…
在 Bedrock 之后,OP Stack 的下一个重大可扩展性改进是引入“超级链”(Superchain)的概念:一组共享跨链桥、去中心化治理、升级、通信层等功能的链的网络,全部构建在 OP Stack 之上。
超级链的推出将会将 OP Mainnet 和其他链合并为一个统一的 OP 链网络(即超级链内的链),并标志着向世界带来可扩展和去中心化计算的重要一步。本文档的目标是描述可扩展性愿景、超级链概念以及使这一愿景成为现实所需的 OP Stack 的一些变化。
这是详细说明单击此处查看不太技术性的介绍。
不幸的事实是,区块链生态系统尚未实现创建去中心化网络的潜力,即一个由无需许可的协议取代可信实体的重新架构的互联网。这在很大程度上是因为大多数网络应用无法在链上运行,这是由于当前区块链技术固有的可扩展性限制所致——这个问题自行业成立以来一直困扰着该行业。
事实上,在对比特币白皮书做出的非凡远见的第一个回应中写道:
我们非常需要这样的系统,但就我理解的方式,它似乎无法扩展到所需的规模。
十多年过去了,情况并未改变。
想象一下,我们解决了区块链可扩展性问题的世界。想象一下,如果在链上交易的成本与与中心化后端交互一样便宜。在这个世界中,会有什么可能性?
这些特性的结合将使得能够编写高度可扩展的网络应用成为可能,而无需触及传统的后端软件堆栈。消除了对后端的担忧是一个价值主张,它不仅适用于去中心化爱好者,还适用于只想推出产品的普通应用程序开发人员。有了可扩展性,区块链可以从一个小众兴趣发展为每个开发人员工具包的核心组件。
此外,在这个大多数应用程序都上链的世界中,更多的数据变得可以通过加密验证。这种加密可验证性使用户能够建立跨所有应用程序的声誉。然后,这个声誉可以用于投票、贷款和抵押——促进互联网上的信任。此外,用户不会失去访问权限,因为他们保留了对其数据、应用程序和声誉的所有权。
毫无疑问,区块链的承诺可能会改变我们所知的互联网。
这种假设并不是一个梦想,而是一个切实可行的未来愿景,这一愿景已经激励了许多人,包括 Optimism 在内,致力于追求这一目标。由于这些集体贡献,我们每年都会对区块链技术堆栈有更多了解,并且离实现这一愿景更近了一步。
在行业的支持下,我们认为如何构建一个真正可扩展的区块链的清晰图景开始显现。我们称之为“超级链”。本文档阐明了超级链架构的核心技术原则,以及一系列具体项目,当完成时,我们相信将最终实现区块链可扩展性愿景。这将是一个多年(甚至十年)的旅程。但是,如果我们大致知道我们要去哪里,我们将更快地到达那里。
水平区块链扩展性基本上需要多个链。这是因为同步链的硬件要求随着链的计算量的增加而线性增加。因此,为了实现水平扩展性,我们必须并行运行链。
传统的“多链”架构方法存在两个根本问题:
这些问题源于缺乏一个单一的共享区块链(“L1”链),它作为多链系统中所有链(“L2”链)的共享真相来源。通过使用共享真相来源,可以实现:a)在所有链上强制执行标准安全模型;b)消除链部署需要新一组验证器的要求,因为每个 L2 链使用 L1 共识。
通过使用 L2 链来构成多链生态系统,可以开始将链视为商品——可互换的计算资源。这种链的商品化使开发人员能够构建跨链应用程序,而无需引入系统性风险,并且在部署新应用程序时不会产生大量开销。链本身的概念可以被抽象化,此时将可以将这个互操作链网络视为一个单元:超级链。
超级链 一种去中心化的区块链平台,由许多共享安全性和技术栈(OP 栈)的链组成。互操作性和标准化使工具和钱包能够以相同的方式对待各个链。
超级链是一个 L2 链网络,称为 OP 链,它们共享安全性、通信层和开源技术堆栈。然而,与多链设计不同,这些链是标准化的,旨在用作可互换的资源。这使开发人员能够构建以超级链为目标的应用程序,并将应用程序运行的底层链抽象化。
为了使 Optimism 升级为超级链,必须具备以下属性:
属性 | 目的 |
---|---|
共享 L1 区块链 | 提供所有 OP 链上交易的总排序。 |
所有 OP 链的共享桥 | 使 OP 链具有标准化的安全属性。 |
便宜的 OP 链部署 | 在 OP 链上部署和交易,无需支付在 L1 上交易的高额费用。 |
OP 链的配置选项 | OP 链 可配置其数据可用性提供商、排序器地址等。 |
安全交易和跨链消息 | 使用户能够在 OP 链之间安全迁移状态。 |
一旦 Optimism 满足这些属性,就可以被视为超级链。
我们认为以下更改(在 Bedrock 发布之后)是创建初始超级链所必需的,从而可以通过相同的桥部署和升级许多链:
Bedrock 引入了系统配置合约,该合约开始使用 L1 智能合约直接定义一些 L2 链。这可以扩展到将定义 L2 的所有信息都放在 L1 上。包括生成唯一的链 ID、关键配置值(如区块 gas 限制)等。
一旦链数据完全在链上,我们可以创建一个工厂,为每条链部署配置和所有其他所需合约。通过使用 CREATE2 使合约地址确定性,这意味着根据链配置可以确定与该链关联的所有桥地址。这也使得可以与链进行交互而无需部署其桥合约,使(假设性的)链部署几乎免费,并允许链继承标准的安全属性。
Bedrock 引入了从 L1 链派生 L2 链的概念,其中所有链数据可以基于 L1 区块进行同步。通过 L1 链工厂将所有配置放在链上,应该可以使 Optimism 节点能够确定性地同步 任何 OP Chain,只需一个单一的 L1 地址以及与 L1 的连接。
同步 OP Chain 时,会在本地计算链的状态。这意味着确定 OP 链的状态是完全无权限和安全的。由于节点执行的本地计算过程会忽略所有无效交易,因此链推导不需要证明系统。但是,超级链取款仍然需要证明系统。
在 Bedrock 中,有一个需要用户提交取款的许可角色(“提议者-proposer”角色)。此外,提议者必须按照一定间隔向 L1 提交提案。随着超级链中链的数量增加,这引入了线性开销,甚至由于有限的 L1 资源,还引入了链数量的上限。
为了解决这些问题,我们可以引入两个功能:
取款声明(Withdrawal claims)
在另一条链上对一条链的状态所做的声明。例如,我可以声明我在 OP Mainnet 上烧掉了我的代币,并打算将这些代币撤回到 L1。
首先,我们可以通过向 Optimism 桥合约引入无需许可的证明系统来实现这两个功能。在 Bedrock 中引入的模块化证明设计中,证明可以采用故障证明或有效性证明(例如零知识证明)的形式。然而,在有效性证明投入生产之前,我们假设取款将使用故障证明系统。
在设想的故障证明系统中,任何人都可以提交取款声明,这些取款声明可以随时提交。当声明附带保证金时,提交取款声明可以是无需许可的,因为这些保证金在声明被证明无效时充当抵押品。如果挑战者成功挑战声明,则将向挑战者支付保证金,以表彰他们参与维护系统的努力,从而防止垃圾邮件甚至在这种无需许可的系统中。此外,无需定期提交它们,因为故障证明博弈可以有效地证明自创世以来的整个链历史。
最初,故障证明实施可能依赖于一组可信的链见证人来作为争议的最终仲裁者。挑战者必须从大量的链见证人那里请求见证,并将这些见证组合成一个称为见证证明的单个交易。然后,见证证明用于挑战无效声明。
基于见证的故障证明应设计为更青睐安全性而非活跃性。这意味着如果这些链见证人是恶意的,他们不能单独破坏取款的安全性。他们能够造成的最严重故障是阻止取款被处理,直到下一次升级 — 一种活跃性故障。
未来,见证证明将逐步被淘汰,并用诸如 Cannon 证明系统 之类的最小信任证明替代。
Bedrock 引入了在 SystemConfig 合约中设置排序器(或定序器)地址的功能。随着我们引入具有自己 SystemConfig 合约的多条链,我们可以使 OP Chain 部署者能够配置排序器地址。我们将这种可配置排序器设计称为模块化定序。这使得 OP Chains 可以由不同实体进行定序,同时保留标准超级跨链桥安全模型 — 这是实现定序去中心化的关键一步。
模块化定序: 在 OP Chain 部署过程中配置排序器地址的功能。该值可由 OP Chain 部署者配置。 超级跨链桥: 管理超级链中所有 OP 链的 L1 桥合约。这个桥可由 Optimism Collective 升级。
在超级跨链桥安全模型中,链的安全性(即有效性)以及链的活跃性(即抗审查性)是得到保证的。安全性由证明系统保证,而活跃性由能直接向 L1 提交交易的能力保证。安全性和活跃性的结合意味着如果一个 OP Chain 的排序器行为不当,用户始终可以提交交易到 L1,将他们的使用迁移到一个具有正确运行排序器的新 OP Chain。
模块化定序还使得可以对不同的定序模型进行无需许可的实验。开发人员可以设想实现诸如:轮流定序、定序共识协议、PGA 排序或 FIFO 排序等定序协议。我们可以预期随着竞争定序协议之间的竞争,用户友好的定序标准将会逐渐出现。
为了以高度安全和去中心化的信心发布初始超级链,应引入一个去中心化的安全委员会来管理升级。安全委员会应能够更新链见证人组,启动带有延迟的合约升级,并触发紧急桥暂停按钮,该按钮还会取消待处理的升级。
在紧急情况下暂停桥的能力意味着,在最坏的情况下,如果安全委员会参与者的私钥泄露,结果将是取款被无限期暂停,桥升级将永久取消。换句话说,L1 桥将被冻结。这遵循了安全性高于活跃性的设计原则 — 即应始终防止 ETH 或代币的丢失(即强制安全性),即使这意味着 ETH 或代币被锁定(即牺牲活跃性)。
为了解决冻结的桥问题,L2 社区讨论了一个潜在的最终恢复机制,我们称之为“L1 软分叉升级恢复”机制。该机制使得 L1 能够通过软分叉启动桥升级,绕过 Superchain 桥合约中的所有其他权限。
该机制如下:
任何人 都可以通过向特殊桥合约提交交易以及非常大的保证金来提出升级。这将开始一个为期两周的挑战期。在此挑战期间,任何人都可以提交挑战,立即取消升级并索取保证金。在正常情况下,由于任何人都有巨大的激励来取消升级,升级不太可能未被取消而持续两周,但如果升级伴随着对以太坊 L1 验证器软件(L1 软分叉)的修改,使其忽略包含取消交易的区块,则升级可能会成功。
该机制可能会为以太坊引入系统性风险,因此在实施前需要进行研究并得到社区的支持。实施超级链并不需要这种机制,目前记录这种机制是为了研究的完整性。在没有进一步研究其影响和安全性的情况下,团队目前并不支持这种方法。
虽然这种类型的成功升级将代表以太坊 L1 的软分叉,但它不会给以太坊代码库带来长期技术债务,因为一旦升级完成,软分叉逻辑可以被移除。
我们预计这个应急通道永远不会被使用,但其存在可能会阻止恶意行为。
我们相信这些升级可以为所有 OP 链提供一个共享的桥,廉价的 OP 链部署,重要的 OP 链配置选项,以及安全的交易和跨链消息。由于 Bedrock 版本已经提供了共享 L1 区块链的属性,经过这些改变后,我们将实现 Superchain 所需的所有核心属性。
我们期望,如果成功,Bedrock 后的 Superchain 版本将标志着 Optimism 可扩展性和去中心化的一个重要里程碑。然而,在实现完全可扩展的区块链愿景之前,仍然存在一些重要的痛点必须解决。
预期的痛点包括:
如果解决了这些痛点中的每一个,就有可能构建去中心化的替代方案,甚至是最复杂的 Web2 应用程序。
以下是潜在未来增强功能的概述,当结合在一起时,可以解决这些痛点。
痛点1 : 取款声明依赖于一组可信的链证明者。
提议解决方案:
可以通过引入无需许可的证明(如 Cannon)来取代可信的链证明者,其中争议解决完全在链上进行。然而,完全在链上进行的证明的挑战在于如果它们出现问题,就没有后备机制。为了确保它们永远不会失败,可以引入一个提供冗余安全性的多重证明系统。有关多重证明设计的更多信息,请单击此处。
痛点2 : 跨链交易速度慢,因为它们需要等待挑战期。
提议解决方案:
故障证明会增加用户体验负担,因为它们需要等待挑战期才能安全完成。这意味着,根据你的挑战期长度,用户可能需要等待很长时间,直到他们的 ETH 和代币从一个 OP 链迁移到下一个 OP 链。
另一方面,有效性证明没有这个问题。有效性证明没有挑战期,因此可以立即从一个 OP 链取款到另一个 OP 链。如果用户预计频繁在链之间迁移,甚至在正常应用程序执行期间,这一点非常重要。然而,有效性证明通常使用零知识证明(ZKP)实现,这是昂贵且容易出错的。可能需要多年的时间才能真正将 ZKP 生产化到足以成为主要跨链通信协议。
在 ZKP 生产化的同时,可以使用 OP Stack 的模块化证明系统实现低延迟的 L2 到 L2 消息传递。通过模块化证明,可以为同一链使用两个证明系统。这打开了使用一个证明系统提供低延迟跨链桥(以换取安全性)的可能性,同时_还_使用另一个证明系统提供高安全性、高延迟的跨链桥。
这种异构跨链桥系统意味着开发人员可以使用多种跨链桥类型构建其应用程序,例如:
混合多个证明系统使开发人员可以为低价值状态提供低延迟跨链桥,为高价值状态提供高延迟。甚至可以通过使用高安全性、高延迟故障证明回溯将即时跨链桥的低安全性状态转换为高安全性状态。这种构建块使开发人员可以进行有趣的安全性权衡,例如使用高阈值证明与高安全性、高延迟故障证明回溯。
痛点: 3. 跨链交易是异步的,破坏了执行原子跨链交易(如闪电贷)的能力。
提议解决方案:
传统的跨链消息传递是异步的,这意味着跨链交易不是原子的。例如,如果用户想要执行跨链套利交易——在链 A 购买代币 A,并在链 B 出售代币 B——则不能保证其交易完全执行。用户可能最终购买了代币 A,但尚未出售代币 B。
可以通过在两个 OP 链上使用共享排序协议实现同步跨链消息传递,并通过在 Bedrock 后的 Superchain 的模块化排序层上无需许可地实现原子跨链交互。在我们的示例中,链 A 和链 B 上的排序器将分别接收套利交易,就包含它们的时间达成共识,然后将每个交易原子地包含在链接块中。只有在每个链上确实包含了交易时才需要支付费用,这意味着排序器承担了同步风险,而不是我们初始示例中的用户。这些共享排序协议可以在模块化排序层之上无需许可地实现。通过低延迟的 L2 到 L2 消息传递以及共享排序的结合,可以执行诸如跨链闪电贷款等复杂交易。甚至可以进一步创建 EVM 抽象,其中单独的智能合约(甚至单独的存储槽)存在于不同的链上。
痛点4: 将交易发布到超级链不可扩展,因为交易数据必须提交到容量有限的 L1。
提议解决方案:
如今,L1 数据可用性(DA)远远不足以支持互联网级别的规模。但是,可以通过使用 Plasma 协议来扩展 OP Chains 可访问的数据可用性量,从而增加数据可用性。
Plasma 链 : 交易数据在 L1 上提交但不直接提供给 L1 的链,具有数据可用性挑战回退功能。
通用的 Plasma 协议能够扩展到 L1 不可能实现的程度,因为只有对交易数据感兴趣的用户才会下载 Plasma 数据,而在 L1 上,每个以太坊节点都会下载 L1 上的所有交易数据。这意味着 Plasma 数据非常便宜。然而,Plasma 的安全模型比 L1 差 — Plasma 链数据可能暂时不可用,这意味着用户必须从链上取款。请注意,这种安全模型仍然保证了 Plasma 链的安全性,只是没有了活跃性。
Plasma 协议概述:
由于哈希能够将任意大小的数据减少为恒定大小的承诺,并且能够并行处理交易数据的哈希,使用 Plasma DA 可以实现几乎完美的数据承诺水平可扩展性。这意味着可以将诸如游戏或社交媒体等大规模可扩展的应用程序放在 Plasma 链上。
痛点5: 没有易于使用的框架来构建利用多个 OP Chains 的可扩展应用程序。 痛点6.:没有易于使用的钱包来管理 ETH 和代币以及跨多个 OP Chains 的应用程序。
提议解决方案(草按):
这不是核心协议更改,而是可以构建在核心 Superchain 协议之上的工具。这里的建议旨在提供如何构建改进部署到 Superchain 的工具的粗略直觉。
以下是一些工具,可以使在 Superchain 上开发变得更好:
内容可寻址智能合约 — 这使得合约可以在所有链上具有相同的地址。这样,开发人员可以编写智能合约,这些合约在所有 OP Chains 上的相同地址上被反事实地部署。如果某个 OP Chain 上的用户想要使用尚未在其链上可用的智能合约,他们可以独立部署代码。
跨链合约状态管理标准 — 创建智能合约状态如何从一条链迁移到下一条链的标准,使开发人员能够在许多链上分片其应用程序。此外,这种逻辑可以用于钱包中,以显示用户状态,就好像所有状态都在同一链上一样。例如,如果用户的代币分布在许多链上,钱包可以使用跨链状态管理逻辑,以知道应该将用户余额显示为跨所有链上的所有代币余额的总和。
对于热衷于以太坊可扩展性的人来说:这些框架可以通过将用户状态从臃肿的链迁移到全新的链来解决状态增长问题。可以将老旧的臃肿链维持在较低的气体限制下,或者完全废弃。
通过强大的多链应用程序框架,部署跨链应用程序可能会变得与部署针对单一链的应用程序一样容易。
我们相信扩展区块链将从根本上去中心化互联网,并使创建水平可扩展、安全和去中心化的 Web 应用程序变得容易。我们认为 OP Stack 的 Superchain 发布可能标志着实现这一愿景的重要一步。然而,在发布之后,仍需要大量工作来实现可扩展性愿景。
然而,伴随着巨大的挑战,也带来了巨大的机遇!到达 OP Stack 初始 Superchain 发布所需的工作,以及随之而来的生态系统应该为希望做出贡献的开发人员创造令人兴奋的绿地机会。将会有大量低悬果实的贡献被释放。我们无法独自摘取!我们希望实现这一目标的唯一途径是通过像你这样的开源贡献者的贡献!并且通过追溯性公共物品资助,你的开源贡献也可能会得到回报!
前方充满挑战,保持乐观 🔴✨
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!