Movement 白皮书(中)
2024-12-13 23:19
Leeduckgo
2024-12-13 23:19
订阅此专栏
收藏此文章

🔗 阅读前文:

李大狗就是我,公众号:李大狗 LDGMovement 白皮书(上)


3 Move Rollup Framework 与 MoveVM

我们介绍 Move Rollup(图 2),这是我们基于 Move 的以太坊安全 rollup 的通用架构。Move Rollup 是一个模块化架构,其组件可以根据客户需求进行配置,以提供最合适、最具成本效益和性能的组件。

在 Move Rollup 中,我们提供欺诈证明、ZK 证明,以及一种新的快速最终性机制(第 4 节)。在该机制中,由质押了原生代币的验证者网络来验证新的 L2 状态的正确性和数据的可用性,并提供具有高经济安全性的超快速可靠最终性。

我们在图 5 中展示了 Move Rollup 配置的分类,并在表 1 中提供了示例。

3.1 Move Rollup 的架构

Move Rollup 是一个用于创建基于 Move 的 rollup 的通用架构,这些 rollup 使用 Move 执行器(第 3.2 节,图 2,第 8 页)。

Move Rollup 通用架构具有一组核心组件,

  • 执行器用于处理交易并生成新的 L2 区块
  • L1 上的桥接合约,用于在 L1 和 rollup 之间进行资产存取
  • 连接到排序器以对交易进行排序
  • 连接到数据可用性(DA)服务,确保交易数据对结算机制可访问
  • 连接到结算机制,验证交易执行的正确性

Move Rollup 可用于创建基于 Move 的 rollup,例如 Movement Network(第 2 节)就是这种通用架构的一个实例。

Move Rollup 中交易的生命周期如下,

交易 tx 被提交到内存池(客户端,图 2 顶部)

排序器从内存池中提取包含 tx 的交易批次 b,并对其进行排序。排序器将 b 的交易数据发布到 DA 服务(L1 或替代 DA)

执行器处理这些交易。这会产生新的 L2 状态(以及其简短的承诺,称为状态根 s),该状态也会发布到 L1 的桥接合约中

image-20241213093303903

图 2. 带有 Move 执行器的通用 Move Rollup 架构。黄色部分为架构中的固定组件,而白色部分为可定制组件

交易 tx 的结算发生在 L1 验证桥接合约验证或批准新状态时。这可以通过以下方式完成,使用 ZK 证明、在乐观 rollup 中成功通过挑战期,或在快速最终性结算中验证法定人数证书时。

3.2 Move 执行器

所有 Move Rollup(如 Movement Network)的执行层都是 MoveVM。Move 技术栈提供了一个执行模块 Move Executor,它可以执行 MoveVM 字节码和 EVM 字节码。该模块是我们架构的核心,且不可配置。

图 3. Move 执行器

Move Executor 模块支持在同一条链上执行 MoveVM 和 EVM 字节码。

图 3 展示了 Move Executor 模块的高层视图。根据交易类型(Move 或 EVM),从内存池中对交易进行分类。相应的虚拟机(MoveVM 或 Geth)执行交易。在 MoveVM 中,这会产生一个变更集,随后应用到全局存储中。在 Geth 中,交易可以被执行并修改全局存储,也可以被追踪以生成可应用于全局存储的变更集。这提供了一种方式,使 Move 和以太坊交易都能以通用格式更新全局存储。另一个很好的特性是,读 / 写集也可以通过 Geth 提取,并可以无缝地在 MoveVM 内置的并行执行引擎 BlockSTM 中使用。

Move Executor 复用现有的 EVM 解释器,并与 MoveVM 无缝集成以利用其并行执行引擎,从而提供并行 EVM。此外,在底层使用现有的 EVM 解释器确保了 Move Rollup 与 EVM 等效,且执行的 EVM 字节码与 L1 上的行为相同。

图 4. Move 技术栈提供了一组组件(黄色框)和适配器(白色框)。要从 Move Rollup 蓝图创建 rollup 实例,需要从可用选项中选择(即配置)组件

3.3 Move Stack

Move 技术栈提供支持来创建和部署 Move Rollup。开发者可以通过从 Move 技术栈提供的选项中选择合适的组件,快速在网络中启动新的 Move Rollup,如图 4 所示。

Move 技术栈的(可配置)组件包括:

  • 排序器:rollup 可以选择使用默认的 DSS(去中心化共享排序服务),但也提供了默认的自主排序机制。
  • 数据可用性:我们计划支持以太坊 EIP-4844 blob,以及主要的 DA 解决方案(例如 0G、Avail、Celestia、EigenDA、Near)。
  • 结算机制:乐观(欺诈证明)、ZK(有效性证明)、快速最终性(认证)。

表 1. Move Rollup 配置的例子

表 1 展示了 Move Arena( 第 5 节 ) 中各种不同类型的 Move Rollup,展示了基于特定需求的广泛定制可能性。此外,使用 Move 技术栈部署 Move Rollup 促进了关键基础设施组件的标准化,包括钱包软件、开发者 API 和区块浏览器。这种标准化增强了互操作性,显著改善了整个 Move Arena 生态系统中开发者和用户的体验。

4 快速最终确定结算

Move Rollup 框架的模块化特性使得链可以通过一种新颖的质押机制来确保安全。这种质押机制提供了具有高加密经济安全性的快速最终性。

💡注:在区块链领域,"finality"(最终性)是一个重要的技术概念,表示交易达到一个确定且不可更改状态的时间点。

由于我们的快速最终性结算方法在安全性方面与以太坊的工作方式类似,我们将回顾与此背景相关的基本概念,特别是以太坊的安全模型(第 4.1 节)和 ZK 与乐观 rollup 的安全性(第 4.2 节)。然后,我们引入后确认(Postconfirmations)的概念,这是实现快速最终性结算的一种简单机制(第 4.3 节)。我们将快速最终性结算提供的安全级别与乐观和有效性 rollup 进行比较,详见图 5。最后,我们提出将传统 rollup 结算与快速最终性结算相结合的双重最终性方案,以同时提供以太坊安全性和经济保护的快速最终性保证(第 4.5 节)。

图 5 Rollup 的分类。Move Rollup 是可配置的,可以采用上述任何形式。Movement Network 是一个采用乐观方法和快速最终性结算的双重最终性 rollup

💡注:这里的"dual-finality"(双重最终性)是指该网络同时具备两种确认机制,既有乐观 rollup 的特性,又有快速最终性结算的特点。

4.1 以太坊结算和安全性

以太坊的共识是一个权益证明(PoS)协议,验证者必须质押一定数量的资产(32 ETH)以激励他们诚实地验证状态转换。如果验证者表现出拜占庭(恶意)行为,就要承担被削减质押的风险。在以太坊主网(L1)上,一旦状态转换(新区块的创建)获得了足够多验证者的认证,就被视为最终确定。"足够的质押"通常被理解为所有验证者总质押量的 2/3 - 即超级多数。因此,在假设少于 1/3 的验证者是恶意的情况下,如果超过 2/3 的验证者已经认证了一个状态转换,那么这个状态转换必定是正确的,因为在这 2/3 的验证者中至少有一个是诚实的(非拜占庭)。

PoS 机制提供的安全性有两个方面:

  • 活性:为了阻止超级多数对正确的状态转换进行认证,攻击者需要控制超过 1/3 的验证者。当系统中的总质押量很大时,这被认为是不可行的(发生这种情况的概率可以忽略不计)。
  • 安全性:为了强制执行不正确的状态转换(例如,双重支付),攻击者需要控制 2/3 的验证者。与前一点类似,在有足够大的质押量的情况下,这也被认为是不可行的。

以太坊安全性:安全级别,即以太坊网络的活性和安全性(状态转换的正确性),会随着系统中的总质押量增加而提高。总质押量越高,网络就越安全。以太坊网络提供的安全级别通常被称为"以太坊安全性"。

4.2 有效性和乐观 rollup 的安全性

rollup 主要有两种类型:有效性(ZK)rollup 和乐观 rollup。两者都在第一层(如以太坊主网)上进行结算,但使用不同的结算机制。

在 ZK-rollup 中,当状态转换的 ZK 证明被接受时就完成了结算。这是通过向 L1 验证者合约提交验证交易来实现的。由于验证者是作为 L1 上的合约实现的,验证阶段的安全级别就是以太坊的安全性。在假设 ZK 证明系统(证明生成和验证者合约)是正确的前提下,ZK 证明当且仅当状态转换正确时才会被接受。

ZK-rollup 安全性:ZK-rollup 的安全级别与以太坊的安全性相同:ZK-rollup 继承了以太坊的安全性。

在乐观 rollup 中,交易的最终性 - 在向第一层提交数据和状态承诺后 - 是在一个称为挑战期的时间窗口结束时达成的。因此,安全性是有条件的:如果在挑战期结束时(通常是 7 天)没有成功的争议,则结算完成。争议是对状态转换提出质疑的一种方式。如果验证者认为状态转换计算错误,可以对其提出争议。可信的争议解决机制会解决这个挑战:如果挑战成功,提交错误状态转换的人会被削减质押。否则,发起挑战的验证者会被削减质押。假设至少有一个诚实的验证者(如瞭望塔)重新执行每个 L2 状态转换,L2 提交错误的新状态在实践中是不可行的。安全级别取决于争议在哪里解决。如果是通过合约在以太坊主网上解决(例如在[14]中),且解决争议的合约是可信的(没有漏洞),那么争议解决的安全性就是以太坊的安全性。

乐观 rollup 安全性:乐观 rollup 的争议解决机制可以继承以太坊的安全性。但如果在挑战期结束之前没有验证者检查状态转换,那么安全级别就是零。

以太坊主网上状态转换(即交易)的最终性大约需要 12 分钟。生成 ZK 证明平均需要 10-15 分钟,因此 ZK-rollup 上的交易最终性预计需要 20-25 分钟。对于乐观 rollup,标准挑战期是 1 周。在这两种情况下,交易最终确认所需的时间对某些(如果不是许多)应用来说可能过长。

4.3 快速最终性结算的安全性

如前几节所述,有效性(零知识证明,ZKP)和乐观(欺诈证明,FP)rollup 可以分别在大约 30 分钟和 1 周内以太坊安全级别完成交易最终确认。然而,在交易最终确认之前,对其有效性和结果(成功或失败)的保证是有限的。这可能会成为许多 DeFi 应用的限制因素。通过快速最终性结算,可以提供一个中间级别的经济安全性,但具有快速最终性保证。

快速最终性结算通过权益证明(PoS)协议提供安全性。在 PoS 协议中,验证者质押一些资产(例如,以 L2 原生代币形式)以激励他们诚实地验证 L2 状态转换的状态。如果他们不诚实(接受错误的状态转换或拒绝正确的状态转换),他们的质押可能会被削减。如果他们是诚实的验证者,他们会因其活动而获得奖励。验证者网络可以为正确执行的区块提供快速且具有经济支持的确认。更准确地说,验证者的角色是确认状态转换的执行是正确的。

在仅使用快速最终性结算的 Move Rollup 上,当有足够多的验证者确认了状态转换的正确性时,该状态转换(对应于一组交易的执行)就达到了 L2 最终性(不可逆)。为简单起见,我们假设所有验证者质押相同的金额,"足够多"意味着超过 2/3 的验证者。全部质押价值称为 L2-Stake。图 6 说明了快速最终性结算的过程,以及交易达到(L1/L2)最终性所需的时间。

总的来说,用户现在可以快速获得关于其交易结果的保证,并可以决定这是否足以假定交易不可逆,或是否要等待 L1 最终性(通过 ZKP 或 FP)以获得以太坊级别的安全性。

图 6. 安全级别和最终确认时间。最终确认时间不包括 L1(以太坊)的平均最终确认时间(13 分钟)。显示的时间仅供参考,可能会有所变化

与乐观和 ZK-rollup 的比较:

乐观 rollup 在有诚实验证者对每个错误的状态转换提出争议的条件下,继承了以太坊的安全性。然而,目前乐观 rollup 限制了挑战者的名单,以减少延迟攻击的风险(在这种攻击中,攻击者可以发起尽可能多的争议,只要他们愿意放弃保证金)。以上所有这些都对用户施加了重要的信任假设。此外,与验证者网络中的总质押保护相比,削减惩罚在经济上可能并不够大。

与 ZK-rollup 相比,仅采用快速最终性结算的 Move Rollup 不需要昂贵的证明生成设备。然而,快速最终性结算带来的最显著改进是与乐观和 ZK-rollup 相比大大减少了延迟。由于认证可以在几秒钟内完成,我们可以提供快速最终性保证并大幅改善用户体验。这与 ZK-rollup 设置中需要数分钟和乐观设置中需要数天形成对比。

快速最终性结算对于互操作性和原子跨 rollup 交易(需要快速结算时间)来说至关重要。乐观和 ZK-rollup 在这方面都存在不足。希望在不久的将来,允许使用专用硬件进行实时证明的 ZK 证明技术能够广泛使用,但目前尚不清楚这一点何时能够实现。

关于乐观 rollup,它们本质上需要较长的挑战期(最多一周)来应对社会工程和攻击向量。相比之下,快速最终性 rollup 可以在几秒钟内提供最终性保证。

参考资料:https://docs.arbitrum.io/how-arbitrum-works/bold/gentle-introduction

快速最终性 Move Rollup 可以比乐观 rollup 更安全,并且比 ZK-rollup 具有更快的最终性。如果验证者网络的总质押量大于或等于以太坊验证者的总质押量,那么快速最终性 Move Rollup 甚至可以达到以太坊的经济安全级别。快速最终性结算方法的整体安全性取决于验证者的总质押量。质押、奖励和验证步骤继承了以太坊的安全性。

我们在第 5.3 节讨论质押机制的一般化形式:多资产质押。

图 7 交易的确认阶段。预确认(Preconfirmation)是承诺交易将被包含(甚至执行)在下一个区块中。相比之下,后确认(Postconfirmation)提供由验证者的 L2 质押经济支持的保证,确保执行者处理交易后的新状态是正确的

4.4 后确认

后确认是快速最终性结算的一种实现。

首先,我们提供了 L1 上确认的定义,它与 L1 最终确认不同。(我们认为将 L1 确认定义为与 L1 最终性相同并不实用)。当状态在 L1 区块中有承诺时,我们说交易在 L1 上得到确认。需要注意的是,如果包含该交易的区块成为孤块,已确认的交易仍可能被回滚。

后确认与预确认不同。它们提供的是新区块正确性的保证,而不仅仅是交易将被包含(或执行)的保证。它也不是复杂执行票据机制的替代品,因为它不提供影响区块创建的方式,而是报告区块中交易执行的正确性。图 7 描述了交易的确认阶段。

后确认之所以快速,是因为它们在执行交易区块后、新区块提交时立即发送,见图 7。后确认本身可能与状态确认一起被确认(即包含在 L1 区块中)。

机制如下:

  • 一组验证者在可信的 L1 合约 StakingK 中质押一些资产。
  • 对于 Move Rollup 的给定状态转换,验证者广播他们签名的认证(批准或拒绝),同时收集其他验证者的签名认证。
  • 当验证者收集到代表超过总质押量 2/3 的认证时,他们将其提交给 StakingK 合约。
  • StakingK 合约验证认证签名是否有效、唯一,并且占总质押量的 2/3 以上。状态转换成为最终确认。

由于加密保护的签名,拜占庭验证者无法伪造 / 篡改签名认证。假设少于 1/3 的验证者是拜占庭式的,并且由于需要 2/3 多数,就不可能有恶意行为者能够提交足够的认证来支持错误的状态转换。此外,在同步期间保持活性,因为 2/3 的质押量也足以完成认证过程。

验证 2/3 验证者已确认状态转换的过程由 StakingK 合约执行。因此,验证步骤继承了以太坊的安全性。质押 / 削减 / 奖励功能也在 L1 上以相同的安全级别执行。

聚合认证:为了使认证过程更有效率,我们可以要求验证者运行 L1 轻客户端。他们可以访问 StakingK 的状态并自行确定有多少验证者处于活跃状态。活跃验证者是指未被削减质押的验证者。

验证者可以向整个验证者网络广播他们对新区块的投票。验证者可以记录和聚合签名认证。当其中一个验证者确定达到 2/3 超级多数时,他们可以将聚合的(签名)认证发送给 StakingK 合约。这减少了记录认证所需的 L1 交易数量。

我们还应注意,验证者记录正面和负面的认证,并将两种类型的认证都发送给 StakingK。一旦达到 2/3 超级多数,StakingK 合约可以削减那些进行负面认证的验证者的质押,因为他们是不诚实的(假设最多 1/3 的验证者是拜占庭式的)。

4.5 双重最终性

虽然快速最终性结算提供了一种快速且经济上稳健的交易最终性形式,但通过将其与乐观和 ZK-rollup 的已验证安全保证相结合,可以进一步加强。通过分层这些方法,我们可以提供双层安全模型(即双重最终性),利用两个系统的优势。

在这种组合方法中,快速最终性结算提供由验证者质押的经济安全性支持的最终性级别,确保交易快速确认。系统还可以调用乐观或 ZK-rollup 的传统最终性机制,这些机制提供源自以太坊主网的额外安全优势,尽管会带来这些方法典型的延迟。

这种双层最终性模型的运作方式如下:

  • 快速最终性层:快速最终性结算框架中的验证者快速确认状态转换的正确性,提供经济上安全且迅速的初始最终性层,通过减少等待时间来改善用户体验。
  • 乐观 /ZK 最终性层:在建立快速最终性后,交易数据还通过第二个最终性机制(乐观或 ZK-rollup)在以太坊主网上处理。这确保即使快速最终性机制被破坏(例如,由于验证者的重大但不太可能的串通),交易仍然受益于以太坊的强大安全保证。

通过组合这些机制,系统提供了高度安全和高效的交易最终性过程:

  • 改善用户体验:用户受益于快速最终性结算提供的快速且经济安全的最终性,同时不牺牲以太坊结算层提供的长期安全性。
  • 灵活性和弹性:这种方法允许系统适应各种安全需求,根据不同应用的具体要求在速度和安全性之间提供平衡的权衡。
  • 增强安全性:两个独立最终性机制的整合显著降低了成功攻击的概率,因为攻击者需要同时破坏验证者网络和二级最终性过程。

总之,这种双层最终性方法提供了两全其美的优势:快速最终性结算的快速且经济支持的保证,结合乐观或 ZK-rollup 的成熟安全性。这种混合模型对于需要即时交易确认和最高安全标准的应用特别有利。

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

Leeduckgo
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开