Итак, о децентрализации ликвидности говорил не раз (пример №01, номер два, номер три) и расскажу не раз, но сегодня попробуем окунуться в практику. Запастись придётся тремя вещами: терпением, чаем/водой или чем предпочитаете и вниманием, потому как деталей предостаточно.
Шаг №01. Uniswap
При чём тут Uniswap с NFT? Всё просто: в v. 3 вы, создавая пул, получаете NFT, которая, если упростить, служит ключом к вашей ликвидности, не заклейменным (не полученным) наградам и к самому доступу к ним.
Выглядит это так: заходим на https://app.uniswap.org/#/swap и создаём пул (пусть это будет MATIC к wETH в сети Polygon, естественно):
Пример этой самой транзакции в сети Polygon: https://polygonscan.com/tx/0x66085f532e5f54204267be10b4bae502bfe853a02205d5a991e6a7e6dae0fcbd.
Итого:
- Мы взяли количество MATIC;
- Пропорциональное (для пула) количество wETH к нему;
- Сделали пул;
- Получили к этому пулу NFT-ключ с ID 867233.
Сам пул выглядит так:
NFT-ключ к нему — следующим образом:
Итак, за несколько простых действий мы добавили ликвидность в сети Polygon, состоящую из 2-х токенов. Теперь проделаем то же самое, но в другой сети (BSC / BNB chain) с двумя другими токенами:
В сети BSC транзакция зафиквирована так: https://bscscan.com/tx/0xfc2bb85316f3431092c5a4547706d7aaf5554950463579a336c8abea07f5e9ca.
Здесь берём USDt & MATIC, но последний является не нативным токеном сети Polygon, поскольку находимся в BSC, а стандартным BEP-20 токеном.
Итого: у нас 4 токена стандарта ERC/BEP-20 и 2 NFTs стандарта ERC-721, в которой «заперта» ликвидность. Что же дальше?
Попробуем объединить NFT (Uniswap v. 3) из сети Polygon и NFT (Uniswap v. 3) в сети BSC (Прим. Menaskop: в чём разница между BSC и BNB chain знаю, но привычней и быстрее писать BSC) через сеть Ethereum? Попробуем! Но как такое возможно? С помощью crosschain-механик протоколов программируемых активов, в частности, DAO Envelop, специализирующегося на NFT 2.0, создаваемых в виде wNFT (wrapped NFT, или обёрнутых невзаимозаменяемых токенов).
Если не все слова понятны — продолжайте: ниже будут пояснения, если же понятны все — продолжайте тем более!
Cross-NFT
Итак, заходим в приложение https://appv1.envelop.is/list в сети BSC для начала, находим нужный нам NFT-ключ (самое простое — по ID) и нажимаем на “хлебные крошки”:
Выбираем пункт «Prepare for crossing» (подготовить к кроссингу). Полная инструкция по кроссингу есть на русском здесь и на английском — по этой ссылке, поэтому в этой статье буду больше уделять внимание техническим деталям и идеологическим аспектам, т.к. step by step всё уже расписано.
Первое, что нужно знать, что мы договорились унифицировать NFT из 2-х разных (BSC & Polygon) сетей через одну — Ethereum, поэтому указываем её. Далее указываем также пин-код, который служит дополнительным средством защиты:
Важно, когда создадите ключ и увидите подтверждение, — НЕ торопитесь, а лучше проверьте пин-код и лишь потом поставьте «галочку» в чекбоксе, что всё прочитали, поняли и скопировали:
Когда подготовка завершена — можете смело идти (через Dashboard в правом верхнем углу) на страницу https://appv1.envelop.is/crossings, где увидите подготовленные для кроссинга NFT:
Далее нужно создать NFT-ключ в выбранной сети (Ethereum) для каждого из выбранных NFT Uni.v.3. Выглядит ключ на сегодня вот так:
Но это не существенно, т.к. важно понять другое:
- Вы сделали пул из 2-х токенов в Uniswap (v.3) в 2-х сетях;
- Получили NFT-ключ доступа к этому пулу;
- Этот пул через кроссинг Envelop соединили с NFT-ключом в Ethereum;
- И теперь любой, кто владеет пин-кодом и NFT-ключом Ethereum (от смарт-контракта DAO Envelop) — является фактическим владельцем пула Uni.v.3 в сети BSC (или Polygon), а временным «держателем» — смарт-контракт протокола Envelop.
Поэтому можем спокойно переслать ключ в сети Ethereum на другой аккаунт (в моём случае с menaskop.eth на netstalking.eth) и тем самым передать право требования на активы в сети BSC/Polygon:
По завершению передачи вы увидите сообщение навроде этого:
Когда оба ключа будут переданы, то на странице https://appv1.envelop.is/crossings появятся оба ключа:
Их можно увидеть и на странице отображения всех NFT: https://appv1.envelop.is/list:
Но вы можете пойти дальше и объединить оба ключа в 1 wNFT с помощью стандартного dApp DAO Envelop, который называется Wrapper, или Оборачиватель (НФТшек).
Для этого надо зайти на https://appv1.envelop.is/list и создать «пустую» wNFT (то есть без особых метаданных), внутри которой положены будут в обеспечение (Collateral) NFT-ключи.
Дисклеймер: сейчас добавление смарт-контрактов NFT происходит через белый список, поскольку того требуют правила безопасности, но в общей архитектуре протокола это в целом — разрешённая операция:
Заметили правый угол, где указан получатель wNFT? Отлично! Дело в том, что могу спокойно wNFT, содержащую 2 ключа, передать другому кошельку, который станет владельцем не просто 1 wNFT в сети Ethereum, но и прав требования на 5 активов в разных сетях. Как 5? Считайте сами:
- MATIC (нативный токен aka коин) в сети Polygon;
- wETH (токен ERC-20) в сети Polygon;
- MATIC (токен BEP-20) в сети BSC;
- USDt (токен BEP-20) в сети BSC;
- NIFTSY (токен ERC-20) в сети Ethereum.
Откуда последний? Решил его положить в обеспечение вновь создаваемого wNFT и имею на то полное право. Кстати, если хотите добавлять любые токены в обеспечение — это можно сделать очень просто через https://saft.envelop.is/.
Всё. Дальше проходите стандартную процедуру выдачи апрувов (снять их всегда можно здесь, здесь или здесь, а список пополняемый лежит по этой ссылке):
И wNFT с обеспечением в 2 NFT-ключа и ERC-20 токен (NIFTSY) в кармане у нового владельца:
Зачем это всё нужно?
Вопрос хороший и далеко не праздный, тем более что всё это стоит денег и денег, в том же Эфире, до сих пор не малых. Но и ответов — множество:
- Во-первых, так можете один раз залочить ликвидность в дорогой сети и проводить транзакции в более дешёвых с помощью NFT-ключа;
- Во-вторых, можете совершать безмостовые обмены в разных же сетях (зачем это нужно в свою очередь — почитайте в этом и этом разборе на Forklog);
- В-третьих, это прекрасная замена наличных и в эпоху CBDC — поверьте, такой инструмент будет востребован;
- В-четвёртых, это всё даёт дополнительный уровень безопасности, тем паче что протоколы навроде Envelop близки к имплементации ZKP—механик;
- В-пятых, так можете использовать smart—кошелёк/аккаунт будущего, но здесь и сейчас, в настоящем.
Судите сами. Вот у вас есть кошелёк. В нём лежит 100 разных токенов и коинов. Пусть даже в сети Эфира. Как можете передать все активы за 1 транзакцию? Никак. Нет, вы можете передать seed-фразу и/или приватный ключ, но будет ли вам другая сторона доверять в этом случае? Не думаю. Да и не должна: блокчейн — это про работу в НЕдоверенной среде.
А так получаете 2 простые схемы:
Эта схема о наследовании прав требований в различных сетях (BSC, Polygon, Ethereum) через единый wNFT. Вторая же схема о том, ЧТО ЕСТЬ принципиально владение wNFT-как-smart-wallet:
Конечно же, это далеко не все возможности ZK-CROSS-NFT, но о прочих расскажу в следующий раз, а на сегодня точно всё и
До!