2

Metis 如何将 NFT 从 L2 提取到 L1?

 2 years ago
source link: https://www.shenliancaijing.com/a/131559.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Metis 如何将 NFT 从 L2 提取到 L1?

2021-09-23 20:24:23

问题

以太坊区块链以及第 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。

概览图

8c09dbe02f82531a617bde8916720564.jpg

发起 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 链上所有权。

序列图

 d4ebc9fe61901fa9d2ab29f91be29c34.jpg

Layer 1 => Layer 2

 a4e9965636dec334df1d4c338ab2b600.jpg

Layer 2 => Layer 1

 2d9d34c2ecdea6c0c7320e60d5dd5e48.jpg

利与弊

  • 允许任何用户在另一个 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 同等对待。

注:本文来自投稿,不代表深链财经立场,不构成任何投资建议,转载请注明文章来源及作者。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK