Кросс-роллапный NFT враппер и идеи миграции джипегов

Кросс-роллапный NFT враппер и идеи миграции джипегов

С нуля до нуля на крипте
Материал переведен и подготовлен каналом С нуля до нуля на крипте.
Оригинал - https://ethresear.ch/t/cross-rollup-nft-wrapper-and-migration-ideas/10507
Автор: Виталик Бутерин

Экосистема NFT быстро развивается и потребляет значительную часть газа в сети Ethereum. Ее молодость и относительная шаткость, а также резкая необходимость в избежании высоких цен на газ из-за нефинансового характера преобладающей части NFT, делают переход на layer 2 главной целью. Однако, вопрос о том, как будет происходить данный переход, остается открытым. 

Простое предложение - социально скоординированный переход на одну роллап платформу (например, Arbitrum, поскольку на сегодняшний момент он доступен для развертывания основных контрактов), у которого есть несколько существенных недостатков: 

  • Все основные существующие роллап платформы, поддерживающие EVM, имеют бэкдоры, централизацию либо другие костыли, поэтому рисково привязывать целую экосистему к одному роллапу, пока присутствует неуверенность в том, как он будет функционировать со всем этим
  • Экосистема NFT может стать слишком большой, чтобы один единственный роллап смог безопасно охватить ее
  • Никакая-то часть экосистемы NFT, ни она сама в целом не являются закрытыми от остального мира; им необходимо взаимодействовать с другими частями экосистемы Ethereum

Эта статья представляет план, с помощью которого можно подружить NFT с кросс-роллапами, и позволить им полноценно перейти на экосистему l2.

Возможное решение

NFT будут регистрироваться в одном роллапе (или базовой цепи). Их можно будет перебрасывать между другими роллапами (или базовыми цепочками), создавая врапнутые NFT.

Процесс враппинга следующий: 

  1. На роллапе А отправляем NFT (назовем его X) в контракт враппер менеджера, указывая (i) роллап назначения и (ii) изначального владельца. Локбокс-контракт сохраняет запись в хранилище, присваивая X новый серийный номер (R), сохраняя роллап назначения (назовем его B) и первоначального владельца на этом роллапе (обозначим этот account O1)
  2. На роллапе B любой может создать враппнутую NFT, использовав контракт враппер менеджера. Для его создания необходимо указать  изначальный роллап и серийный номер. Создание "валидной" враппнутой версии NFT X может быть осуществлено только определенным владельцем и путем записи (R, A) серийного номера и источника роллапа. При этом важно понимать, что возможно создание невалидного, ни на что не указывающего, враппнутого NFT, ведь роллап В не знает, что является валидным, а что нет. Контракт враппер менеджера фиксирует (серийный номер, изначальный роллап и исходного владельца) массив, что предотвращается создание нескольких NFT с одинаковым массивом этих данных. 
  3. Чтобы вывести NFT из локбокса, текущий владелец враппнутого X в роллапе В должен отправить его обратно враппер менеджеру, который дает подтверждение получения, как бы говоря “NFT с серийным номером R, изначальным роллапом A и владельцем O1, только что было анврапнуто к новому владельцу O2”
  4. Контракт локбокса может отправить X к O2, когда получит доказательства такого запроса на роллапе B, сравнит серийный номер, роллап-источник и изначального владельца с хранимыми им данными.

Стоит отметить, что выводы будут долгими, ибо отсрочка в ~7 дней необходима оптимистик роллапам для верификации транзакций. Единственный способ сделать мультипередачи быстрыми - это делать несколько слоёв враппов.

Чтобы пользователь смог убедится в том, что враппнутый X является подлинным, ему необходимо самостоятельно проверить состояние роллапа В и подтверждение получения на роллапе А.

Дополнение: добавление кросс-роллапных трансферов 

В роллапе В владелец враппнутого X может отправить его враппер менеджеру с инструкцией выдать его другому кошельку “NFT с серийным номером R, изначальным роллапом А и владельцем O1 только что был переведен в роллап С, с новым владельцем O2”

В роллапе С  любой может создать враппнутый X объект, указав изначальный роллап (в данном примере это роллап А), серийный номер и владельца, и эта врапнутая версия может свободно торговаться. Однако, для вывода реальной X потребуется информация обо всей цепочки (в данном случае сразу двух) переводов между роллапами. 

Обратите внимание для упрощения понимания, что “вывод” больше не является кросс-роллап операцией, вместо этого вывод осуществляется путем выполнения кросс-роллап операции по созданию враппнутой версии на роллапе A (там же где и X), и последующий анврапп X в отдельной одноэтапной операции.

По факту происходит следующие: когда NFT перемещается из роллапа в роллап, цепь переводов оставляет после себя цепь подтверждений, и каждое отдельное подтверждение в этой цепи отражается в роллапе А и обрабатывается по порядку, пока состояния других роллапов не финализируются (это может быть оптимизировано с помощью Kate коммитментов, и в долгой перспективе вся цепь подтверждений может быть подтверждена ZK-SNARKами)

Чтобы пользователь смог убедится в том, что враппнутый Х подлинный, ему необходимо верифицировать всю цепочку подтверждений на всех роллапах, отображающих переводы между ними (или хотя бы цепь подтверждений с момента последнего отраженного на роллапе А подтверждения). 

Дополнение 2: оптимизация газа в базовой цепи

Все NFT могут быть выпущены так, что будут “принадлежать” локбокс контракту в базовой цепи Ethereum. И для того чтобы оптимизировать трату газа, локбокс контракт сможет генерировать набор серийных номеров и передавать их в роллап.  Фактически, все NFT созданы заранее, но без какого-либо "смысла", вложенного в каждый из них (представьте: существует еще 2**256 одинаковых, пустых NFT), и они передаются в роллапы пачками. 

Теперь процесс “выдачи” станет процессом присвоения. Это возможно сделать, если передавать “хэш смысла” подтверждения так же, как владельцы: если у NFT нет смысла (это болванка), владелец может приписать ему смысл, превратив в “отличающийся” NFT. Базовая цепь распознает значение NFT только после того, как проверит цепь подтверждений получения до момента присвоения значения (в реальности, проверку подтверждений должен осуществлять ZK-SNARK, иначе все это не будет работать).

Это позволит сделать NFT “привязанными” к базовой цепи, а не в роллапе, что может быть необходимым в случае, если роллап сломается или станет уязвимым, и приложениям будет необходимо безвозвратно перенестись на другие домены.

Материал переведен и подготовлен каналом С нуля до нуля на крипте.
Оригинал - https://ethresear.ch/t/cross-rollup-nft-wrapper-and-migration-ideas/10507
Автор: Виталик Бутерин

Report Page