我们需要将 NFT 转移到第 2 层(L2)生态系统以降低费用。 然而,这样正确做到这一点需要良好的跨 Rollup 可移植性标准,从而生态系统可以避免被锁定在一个特定的 L2 中。
Vitalik Buterin 提出一种使 NFT 跨 Rollup 友好的提案,允许 NFT 迁移到整个 Layer 2 生态系统。
原文标题:《NFT 向 Layer2 过渡?V 神提出在 Layer2 生态转移 NFT 的跨 Rollup NFT 封装和迁移思路》 撰文:Vitalik Buterin,以太坊**联合创始人 翻译:凯尔**
我们需要将 NFT 转移到第 2 层(L2)生态系统以降低费用。 然而,这样正确做到这一点需要良好的跨 Rollup 可移植性标准,从而生态系统可以避免被锁定在一个特定的 L2 中。
——Vitalik Buterin
NFT 生态系统正在迅速发展,已经成为以太坊链 gas 消耗的重要组成部分。NFT 生态系统的年轻化和相对缺乏根基,以及由于 NFT 的很大一部分的非金融性质而更需要避免高额费用,这也使得 NFT 成为转移到第 2 层(Layer2)网络的主要目标。然而,这就提出了如何将 NFT 迁移到 Layer2 的问题。
一个简单的提案是:在社区内协调将 NFT 迁移到单个 Rollup 平台(例如 Arbitrum,因为它目前可用于一般合约部署),但这存在一些重要的缺点:
这篇文章提出了一种关于如何使 NFT 跨 Rollup 友好的提案,允许 NFT 移动到整个 Layer2 生态系统。
NFT 将首先在一个 Rollup (或基础链)中注册。通过创建一个封装 NFT,NFT 可以在其他 Rollup (或基础链)之间跳转。
封装 NFT 的过程如下:
请注意,提款会有一个时间延迟,因为 Optimistic Rollup 状态根需要大约 1 周的时间延迟才能最终确定,以便验证收据。到目前为止,更快地进行多跳的唯一方法是进行多层封装。
为了让用户验证封装-X 是否合法,他们需要自己验证 Rollup B 上的状态和 Rollup A 上的收据。
在汇总 B 上,wrapped-X 的所有者可以将其发送给包装管理器,并附上发出不同收据的指令:「序列号为 R、源 Rollup A 和初始所有者 O1 的 NFT 刚刚移至 Rollup C,与想要的新所有者 O2」。
在 Rollup C 上,任何人都可以通过指定原始源 Rollup (在此示例中为 Rollup A)、序列号和初始所有者来制作封装-X 对象,并且 Rollup C 上的此封装-X 可以自由交易。但是,为了能够撤回封装-X,需要将 Rollup B 的收据发送到 Rollup A。
实际发生的事情是,当 NFT 从一个 Rollup 移动到另一个 Rollup 时,转移链留下了一个收据链,该收据链中的每一个收据都被镜像到 Rollup A 并在某个时间点按顺序处理。未来,当其他 Rollup 的状态最终确定时(这可以在短期内通过 Kate 承诺进行空间优化,从长远来看,可以通过 ZK-SNARK 证明整个收据链)。
为了让用户验证封装的 X 是合法的,他们需要验证反映跨 Rollup 转移的所有 Rollup 上的整个收据链(或者至少,自上一个收据以来已经镜像到 Rollup 的收据链一种)。
此外请注意,该协议可以简化:「提款」只是一个跨 Rollup 转移 Rollup A,如果认识到 Rollup A 发布的特定序列号现在在 Rollup A 上,那么该封装的合约可以直接兑换。
所有 NFT 都可以以这样的方式发行,即它们由以太坊基础链上的密码箱合约「拥有」。为了使这种 gas 高效,密码箱合约将获得生成一整套序列号并将它们传输到 Rollup 的功能。实际上,所有 NFT 都是预先创建的,但尚未分配给其中任何一个「意义」(想想:有 2**256 个尚未分化的「干细胞」NFT),并且它们被批量转移到 Rollup。
「发行」的过程现在变成了赋予意义的过程。这可以通过在收据中传递「含义哈希」来完成,就像传递所有者的方式一样:如果 NFT 没有意义(它是一个「干细胞」),所有者可以为其分配一个含义,转动它变成了一个「差异化」的 NFT。基础链只有在验证收据链后才知道 NFT 的含义,直到分配含义为止(实际上,收据验证必须是 ZK-SNARK 的才能使其可行)。
这允许所有 NFT 都在基础链中「扎根」,而不是 Rollup。这对于处理 Rollup 中断或以其他方式变得不可行以及应用需要永久迁移到其他域的情况很有用。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!