AusForex澳汇:将 NFT 向 Layer 2 迁移 如何让它们友好地跨 Rollup?

Lilying 2021-09-13 23:05:07

  斑马投诉报道:

      外汇密探财经导航PC端应用上线,下载网址:http://www.fx007004.cyou/download_page/index.html  (请在电脑浏览器复制链接打开,并下载应用)

  我们需要将NFT转移到第2层(L2)生态系统以降低费用。然而,这样正确做到这一点需要良好的跨Rollup可移植性标准,从而生态系统可以避免被锁定在一个特定的L2中。——Vitalik Buterin

  NFT生态系统正在迅速发展,已经成为以太坊链gas消耗的重要组成部分。NFT生态系统的年轻化和相对缺乏根基,以及由于NFT的很大一部分的非金融性质而更需要避免高额费用,这也使得NFT成为转移到第2层(Layer2)网络的主要目标。然而,这就提出了如何将NFT迁移到Layer2的问题。 

  一个简单的提案是:在社区内协调将NFT迁移到单个Rollup平台(例如Arbitrum,因为它目前可用于一般合约部署),但这存在一些重要的缺点:

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

  NFT生态系统可能会变得太大,以至于单个Rollup无法安全处理

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

  这篇文章提出了一种关于如何使NFT跨Rollup友好的提案,允许NFT移动到整个Layer2生态系统。

  提议的解决方案1 

  NFT将首先在一个Rollup(或基础链)中注册。通过创建一个封装NFT,NFT可以在其他Rollup(或基础链)之间跳转。

  封装NFT的过程如下:

  在Rollup A上,将NFT(我们称之为X)发送到封装管理器合约,指定(i)目的地Rollup和(ii)初始所有者。密码箱合约在存储中保存一条记录,为X分配一个新的序列号R,并保存目标Rollup(我们称之为B)和目标Rollup的初始所有者(我们称这个账户O1)

  在Rollup B上,任何人都可以使用Rollup B上的封装管理器合约创建封装NFT。创建一个封装NFT需要指定源Rollup和序列号。创建X的一个「有效」封装NFT只能由指定的所有者并通过声明(R,A)作为序列号和源Rollup来完成。请注意,可能会创建一个无指向内容的无效封装NFT;Rollup B不知道什么是有效和无效。封装管理器合约存储(序列号、源Rollup、初始所有者)元组(tuples)并防止使用同一个元组创建多个NFT。

  要从密码箱中提取NFT,Rollup B上的封装-X的当前所有者必须将其发送回封装管理器,后者会发出收据,说明「序列号为R、源汇总A和初始所有者O1的NFT刚刚接触封装,带有想要的新所有者O2」。

  密码箱合约可以在收到汇总B上的收据的证明时将X交给O2,并根据自己存储的信息检查序列号、源Rollup和初始所有者,并验证它是否通过。

  Vitalik Buterin:将NFT向Layer 2迁移,如何让它们友好地跨Rollup?

  Vitalik Buterin:将NFT向Layer 2迁移,如何让它们友好地跨Rollup?

  请注意,提款会有一个时间延迟,因为Optimistic Rollup状态根需要大约1周的时间延迟才能最终确定,以便验证收据。到目前为止,更快地进行多跳的唯一方法是进行多层封装。

  为了让用户验证封装-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的收据链一种)。

  此外请注意,该协议可以简化:「提款」只是一个跨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中断或以其他方式变得不可行以及应用需要永久迁移到其他域的情况很有用。

  以上是斑马投诉的详细报道,如需了解更多看着评论区下方留言。


声明:本文内容不代表斑马投诉网站观点,内容仅供参考,不构成投资建议。投资有风险,选择需谨慎! 如涉及内容、版权等问题,请联系我们,我们会在第一时间作出调整!