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