您的位置 首页 Defi-NFT

如何将 NFT 从 L2 提取到 L1?了解 Metis 跨层桥接 NFT 设计

要想将 NFT 应用引入 Layer 2,非常重要的前提是拥有横跨多层创建和桥接 NFT 的方法。

撰文:Pavel Sinelnikov,Metis 研究员
翻译:Perry Wang

以太坊区块链以及第 2 层(Layer 2)解决方案面临的一个问题是资产的隔离,尤其是 NFT。在 Layer 2 上创建 NFT 时,NFT 会被困在该层,因此导致了 NFT 孤岛问题,其中 Layer 2 上的 NFT 资产无法提取到 Layer 1 公链。要想将 NFT 应用引入 Layer 2,非常重要的前提是拥有横跨多层创建和桥接 NFT 的方法。

解决方案

在 Layer 2 上铸造 NFT,创建一种轻松跨层桥接 NFT 并减少 gas 需求的方法。用户可以决定何时将自己的 NFT 提取到 Layer 1。

概览图

如何将 NFT 从 L2 提取到 L1?了解 Metis 跨层桥接 NFT 设计

发起 NFT 合约

1. NFT 所有者使用已部署的 L2_NFT_Collection 配置 L1_NFT_Collection,具体指定:

  • L2_NFT_Collection 的地址
  • L2_NFT_Collection 的链 ID
  • NFT 的位置,通过 NFT ID 映射链 ID,所分配 NFT 的 Range,例如 #1-100、60-61 等
  • Range 是代表 1000 个 NFT 的单位… rangeid 0 意味着 NFT #0 到 NFT #999。

数据结构

mapping(chainid => address) addresses;
mapping(rangeid => chainid) range_loc;

在 Layer 2 认领 NFT

2. 用户将认领 NFT,并指定 NFT ID。 Layer 2 上的 L2_NFT_Collection 合约将验证 ID 分配(例如,这一 Layer 2 拥有 NFT),并相应地在这一 Rollup 上铸造 NFT。 用户可以像往常一样在 Rollup 中自由转移 NFT。

提取 NFT

3. 用户向 L2_NFT_Collection 智能合约发送交易,向 Layer 1 的目标接收者发起提款。

4. NFT 被存入 L2_Deposit 合约,它会锁定 NFT 以供之后必要时进行检索。

5. 锁定的 NFT 会触发发送至 L1_NFT_Collection 的跨链信息,使指定接收者可以在 Layer 1 上铸造 / 提取 NFT。

  • 将在 L1_NFT_Collection 中添加一条新记录,来更新这一特定 NFT 的链上所有权信息,数据结构为:mapping(id=>chainid) nft_loc;nft_loc 总是覆盖 range_loc。为了确定 NFT 的实际链上所有权,如果 nft_loc[id] 返回值为 0,逻辑应该首先检查 nft_loc 然后是 range_loc。
  • 如果之前已经在 Layer 1 上创建了 NFT,即该 NFT 不是第一次提取到 Layer 1 层,则用户将获得具有更新元数据的 NFT,其 nft_loc 已更新。

6. 收件人将认领 NFT,并指定 NFT ID。

(重新) 在 Layer 2 存入 NFT

7. 用户向 L1_NFT_Collection 智能合约发送交易,启动向目标 Layer 2 Rollup 上目标接收者的转移。

8. NFT 被存入 L1_Deposit 合约,它会锁定 NFT 以供以后必要时进行检索。

9. 锁定的 NFT 会触发到 L2_NFT_Collection 的跨链信息,使用户可以通过 NFT ID 在 Layer 2 上铸造 / 认领现有的 NFT。

  • 如果 NFT 已经创建并存入目标 Rollup,用户将收到具有更新元数据的 NFT。
  • L1_NFT_Collection 将更新 nft_loc,以反映更新后的 NFT 链上所有权。

序列图

供给

如何将 NFT 从 L2 提取到 L1?了解 Metis 跨层桥接 NFT 设计

Layer 1 => Layer 2

如何将 NFT 从 L2 提取到 L1?了解 Metis 跨层桥接 NFT 设计

Layer 2 => Layer 1

如何将 NFT 从 L2 提取到 L1?了解 Metis 跨层桥接 NFT 设计

利与弊

益处

  • 允许任何用户在另一个 Layer 2 上认领 NFT。
  • 用户可以在 Layer 2 提取 NFT,并在 Layer 1 创建等效的 NFT,而不会导致被复制。
  • 用户可以随时选择将他们创建的 NFT 从 Layer 1 传输到 Layer 2,反之亦然。
  • 允许一个 NFT 项目扩展到多个 Rollup 链。
  • 发起设置简单且成本低廉。

缺点

  • NFT 所有者必须在所支持的层上创建等效的 NFT 合约。
  • NFT 只能从 Layer 2 移动到协调器链(在这种情况下是 Layer 1 层)及收回,不能直接从 Layer 2 移动到 Layer 2。
  • 在 Rollup 之间移动 NFT 时成本更高,因为涉及两次 Layer 1 交易(取款和存款)
  • 连接两个层的技术复杂性

发散想法

  • 使用 Rollup 跟踪 NFT 的链上所有权以降低交易成本
  • Rollup 可用于管理链上所有权,这样可以大大降低交易成本。在这种情况下,Layer 1 在某种程度上可以被与其他 Rollup 同等对待。

来源链接:ethresear.ch

热门文章

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注