Vitalik Buterin:将 NFT 向 Layer 2 迁移 如何让它们友
海外虚拟货币代理
比特币期权招商_数字货币代理_海外数字货币平台招商
admin
2021-09-08 12:30

需要将NFT迁移到第2层(L2 )生态系统以降低费用。 然而,要正确做到这一点,Rollup之间的可移植性标准必须良好,才能使生态系统不被特定的L2锁定。 3354虚拟蓝牙

NFT生态系统发展迅速,已成为以太坊连锁gas消费的重要组成部分。 由于NFT生态系统的年轻化和相对缺乏基础,以及NFT的大部分非金融性质,需要避免高昂的费用,这也是NFT向第2层(第2层)网络转移的主要目标。 但是,这提出了如何将NFT转移到Layer2的问题。

一个简单的建议是在社区中协调将NFT迁移到单个Rollup平台。 例如,由于Arbitrum目前可以用于部署通用合同,因此迁移到该平台有几个重要的缺点。

支持现有EVM的主要Rollup平台具有后门、集中排序或其他实验功能,将整个生态系统交给一个Rollup是有风险的。 Rollup如何超越这些功能是不确定的。

NFT生态系统太大,用单一的Rollup可能无法安全处理

NFT生态系统的任何部分,甚至整个NFT生态系统,都不是封闭的世界; 他们需要与以太坊生态系统的其他部分互通

本文提出了使NFT跨Rollup友好的方法,使NFT能够移动到整个第2层生态系统。

提议的解决方案 1

NFT首先在Rollup (或基链)上注册。 通过创建软件包NFT,NFT可以在其他Rollup (或基链)之间跳转。

封装NFT的过程如下。

在Rollup A中,将NFT (我们称为x )发送给软件包管理器合同,) I )目标Rollup和) ii )指定初始所有者。 密码箱协议在存储器中存储记录,给x分配新序列号r,然后存储目标角色升级(我们称为b ),目标角色升级的最初所有者;我们称为此帐户O1 )

在Rollup B中,任何人都可以使用Rollup B的软件包管理器合同创建软件包NFT。 要创建软件包NFT,必须指定源的Rollup和序列号。 要创建x的“有效”包NFT,指定的所有者必须将“r,a”声明为序列号和源Rollup。 请注意,可能会创建没有指示内容的无效软件包NFT; Rollup B不知道什么是有效的还是无效的。 防止使用与封装管理器合同存储(序列号、源角色升级、初始所有者)相同的元组(tuples )创建多个NFT。

要从密码框中提取NFT,Rollup B上的软件包-X的当前所有者必须返回到软件包管理器。 后者开具收据,说明“序列号为r,源聚合a和初始所有者O1的NFT刚接触包,带有希望的新所有者O2”。

密码箱合同在收到b汇总的收据的证书时将x交给O2,可以根据自己保存的信息检查序列号、源Rollup和初始所有者,验证其是否合格。

请注意,Optimistic Rollup的状态路由最终确定需要大约一周的延迟,因此提款需要时间。 迄今为止,更快地进行多跳的唯一方法是进行多层封装。

软件包-为了让用户验证x是否合法,必须自己验证Rollup B的状态和Rollup A的收据。

扩展:添加跨 Rollup 传输

摘要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的收据链之一)

另外请注意,本协议可以简化。 “提款”只不过是在角色升级之间转移角色升级a。 如果发现Rollup A发布的特定序列号当前位于Rollup A中,则可以直接更换软件包合同。

扩展 2:基础链上的 gas 优化发行

所有NFT都可以通过以太网基站链上的密码箱协议“拥有”的方式发布。 为了简化此gas,路径箱合同具有生成一系列序列号并将其传输到Rollup的功能。 实际上,所有的NFT都是预先创建的,但没有分配给任何“意义”(请想想。 有2**256个未分化的“干细胞”NFT ),它们将一并转移到Rollup。

“发行”的过程现在已经成为赋予意义的过程。 这可以通过向收据传递“语义哈希”来完成。 和交给所有者的方法一样。 如果NFT没有意义(那就是“干细胞”),所有者可以为它分配意义,然后转动它就变成了“与众不同”的NFT。 基础链只有验证收据链才能知道NFT的含义,直到分配含义为止(实际上,收据验证必须是ZK-SNARK的才能执行)。

这样,所有的NFT都可以“扎根”在基础链上,而不是Rollup上。 如果Rollup已中断或无法通过其他方法实现,或者APP需要永久迁移到其他域,这将非常有用。