Vitalik: encapsulating and migrating NFT across Rollup

Eth Chinese station 2021-09-14 18:38:13 阅读数:1,002

vitalik encapsulating migrating nft rollup

source |

author | Vitalik Buterin

NFT Ecology is growing rapidly , And form the Ethereum chain gas An important part of consumption .NFT The ecosystem is still young and relatively lacking in foundation , And because of NFT A large part of the field is non-financial , Therefore, it is more necessary to avoid high costs , This makes it possible to move to layer 2 Become the main goal . However , This throws out how to transfer to layer 2 The problem of .

A simple proposal is to move to a specific... Through social coordination rollup platform ( for example Arbitrum, Because it already supports the deployment of general smart contracts ), But there are several disadvantages :

  • All currently supported EVM The main rollup Platforms have back doors 、 Centralized sequencing or other auxiliary measures , Transfer the whole ecosystem to a single rollup There are risks , and rollup There is still uncertainty about how these features will be upgraded ;
  • NFT The ecosystem may eventually grow into a single rollup A volume that cannot be safely carried ;
  • NFT Any part of the ecosystem , Even the whole NFT The ecological system , It's not closed ; They will need to interoperate with other parts of the Ethereum ecosystem

This paper presents a method to make NFT Friendly cross rollup And migrate it to the whole layer 2 Proposals in Ecology .

Proposed solution 1

NFT Can be in a single rollup Initial registration in , And then by creating  wrapper NFT ( encapsulation NFT) In different rollups ( Or the bottom chain ) Transfer in .

NFT wrapping The process is as follows :

  • stay Rollup A  On , take NFT ( Set to  X) Send contract to package manager (wrapper manager contract), Appoint (i) The goal is Rollup and (ii) Initial owner . Cryptobox contract (lockbox contract) Store a record , by  X  Assign a new serial number  R, And save the target Rollup ( Set to  B) And the target Rollup Initial owner of ( Set to  01).

  • stay Rollup B  On , Anyone can use Rollup B  Package manager contract creation on wrapper NFT. Create a wrapper NFT You need to specify the source Rollup And serial number . To create a X One of the “ It works ” wrapper NFT, Can only be declared by the specified owner and  (R, A)  As serial number and source rollup complete . Be careful , It is possible to create an invalid... Pointing to nothing wrapper NFT, and Rollup B  Cannot distinguish between valid and invalid . Package manager contract store ( Serial number 、 Source Rollup、 Initial owner ) Value groups and prevent the creation of multiple values using the same value group wrapper NFT.

  • To remove from the encryption box NFT,Rollup B  Upper wrapped-X The current owner of must send it back to the encapsulation Manager , The latter issues receipt instructions “ Serial number for  R、 Source rollup A  And the initial owner  01  Of NFT Unpacked , And potential new owners  02”.

  • The cryptobox contract can be received at rollup B  After the proof of receipt will be NFT X  Leave it to  02, And check the serial number according to the stored information 、 Source Rollup And the initial owner , And verify NFT The transfer of .



Please note that , extract NFT There is a time delay , because Optimistic Rollup The state root of a class solution takes about a week to finalize , In order to verify the receipt . up to now , The only way to do multi hop faster is to do multi-layer encapsulation .

The user needs to verify wrapped X  Is it legal , You need to verify yourself Rollup B  The state and Rollup A  The receipt on the .

expand : Increase span rollup Transfer accounts

stay rollup B On ,wrapped-X The owner of can send it to the encapsulation Manager , And attach an instruction to issue a different receipt “ Serial number for R、 Source Rollup A And the initial owner is 01 Of NFT Just moved to Rollup C, And potential new owners 02”.

stay Rollup C On , Anyone can specify the original source Rollup ( In the current example is Rollup A)、 Serial number and initial owner wrapped-X object , also Rollup C This on wrapped-X You can trade freely . But once so , Put forward wrapped-X It is necessary to publish cross rollup All receipts arising from the transfer ( The current instance is 2 individual ).



Please note that for simplicity ,“ To withdraw money ” Itself is no longer cross rollup The operation of , But by crossing rollup Accomplished , stay rollup A To create a wrapped-X (X The same rollup), Then take a separate step unwrapping ( Unpack ) operation .

actually , When NFT From a rollup Move to another rollup when , The chain on the transfer path generates a string of receipts , Each receipt in the receipt chain is mirrored to rollup A, And in the future , When others rollup When the state root of is finally determined , These receipts will be processed sequentially at some point in time ( In the short term, it can be through Kate Commit to space optimization , In the long run, it can be through ZK-SNARK Prove that the whole receipt chain ).

The user needs to verify wrapped X Authenticity , All paths need to be verified rollup Reflects the cross rollup The entire receipt chain of the transfer ( Or at least it has been mirrored to... After the previous receipt rollup A Your receipt chain ).

Expand 2: Optimize distribution on the underlying chain gas

all NFT Can be distributed in this way : From the encryption box on the Ethereum bottom chain “ Have ”. In order to optimize the gas The efficiency of , The cryptobox contract will have the ability to generate a set of serial numbers and transmit them to rollup The function of . actually , all NFT Are pre created , But it has not yet been allocated “ significance ” To any one of them ( It can be imagined that there are 2*256 An undifferentiated “ stem cells ”NFT), And they are transferred to... In batch form rollup.

“ issue ” The process now becomes the process of assigning meaning . This can be done by passing... In the receipt “ Meaning hash ” To complete , The same form as passed by the owner : If NFT It makes no sense ( It's a " stem cells "), The owner can assign a meaning , Make it a with “ Difference ” Of NFT. The underlying chain knows only after verifying the receipt chain NFT The meaning of , Until the meaning is assigned ( actually , Receipt verification must be ZK-SNARK Is feasible ).

This allows all NFT All in the bottom chain “ take root ”, instead of rollup. This is for processing rollup fault 、 It is helpful when it is unavailable for other reasons or the application needs to be permanently migrated to other domains .

版权声明:本文为[Eth Chinese station]所创,转载请带上原文链接,感谢。