4 мая 2023

Децентрализованная ликвидность. Пример wNFT & Uniswap

Итак, о децентрализации ликвидности говорил не раз (пример №01, номер два, номер три) и расскажу не раз, но сегодня попробуем окунуться в практику. Запастись придётся тремя вещами: терпением, чаем/водой или чем предпочитаете и вниманием, потому как деталей предостаточно. 

Шаг №01. Uniswap

При чём тут Uniswap с NFT? Всё просто: в v. 3 вы, создавая пул, получаете NFT, которая, если упростить, служит ключом к вашей ликвидности, не заклейменным (не полученным) наградам и к самому доступу к ним. 

Выглядит это так: заходим на https://app.uniswap.org/#/swap и создаём пул (пусть это будет MATIC к wETH в сети Polygon, естественно): 

Menaskop. Uniswap. 01Пример этой самой транзакции в сети Polygon: https://polygonscan.com/tx/0x66085f532e5f54204267be10b4bae502bfe853a02205d5a991e6a7e6dae0fcbd

Итого:

  1. Мы взяли количество MATIC;
  2. Пропорциональное (для пула) количество wETH к нему;
  3. Сделали пул;
  4. Получили к этому пулу NFT-ключ с ID 867233

Сам пул выглядит так:

Menaskop. Uniswap. 02NFT-ключ к нему — следующим образом:

Menaskop. Uniswap. 03Итак, за несколько простых действий мы добавили ликвидность в сети Polygon, состоящую из 2-х токенов. Теперь проделаем то же самое, но в другой сети (BSC / BNB chain) с двумя другими токенами:

Menaskop. Uniswap. 04В сети 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) и нажимаем на “хлебные крошки”: 

Menaskop. Uniswap. 04Выбираем пункт «Prepare for crossing» (подготовить к кроссингу). Полная инструкция по кроссингу есть на русском здесь и на английском — по этой ссылке, поэтому в этой статье буду больше уделять внимание техническим деталям и идеологическим аспектам, т.к. step by step всё уже расписано. 

Первое, что нужно знать, что мы договорились унифицировать NFT из 2-х разных (BSC & Polygon) сетей через одну — Ethereum, поэтому указываем её. Далее указываем также пин-код, который служит дополнительным средством защиты: 

Menaskop. Envelop. 01Важно, когда создадите ключ и увидите подтверждение, — НЕ торопитесь, а лучше проверьте пин-код и лишь потом поставьте «галочку» в чекбоксе, что всё прочитали, поняли и скопировали:

Menaskop. Envelop. 02Когда подготовка завершена — можете смело идти (через Dashboard в правом верхнем углу) на страницу https://appv1.envelop.is/crossings, где увидите подготовленные для кроссинга NFT: 

Menaskop. Envelop. 03Далее нужно создать NFT-ключ в выбранной сети (Ethereum) для каждого из выбранных NFT Uni.v.3. Выглядит ключ на сегодня вот так:

Menaskop. Envelop. 04Но это не существенно, т.к. важно понять другое:

  1. Вы сделали пул из 2-х токенов в Uniswap (v.3) в 2-х сетях;
  2. Получили NFT-ключ доступа к этому пулу; 
  3. Этот пул через кроссинг Envelop соединили с NFT-ключом в Ethereum;
  4. И теперь любой, кто владеет пин-кодом и NFT-ключом Ethereum (от смарт-контракта DAO Envelop) — является фактическим владельцем пула Uni.v.3 в сети BSC (или Polygon), а временным «держателем» — смарт-контракт протокола Envelop. 

Menaskop. Envelop. 05Поэтому можем спокойно переслать ключ в сети Ethereum на другой аккаунт (в моём случае с menaskop.eth на netstalking.eth) и тем самым передать право требования на активы в сети BSC/Polygon:

Menaskop. Envelop. 06По завершению передачи вы увидите сообщение навроде этого:

Menaskop. Envelop. 07Когда оба ключа будут переданы, то на странице https://appv1.envelop.is/crossings появятся оба ключа:

Menaskop. Envelop. 07Их можно увидеть и на странице отображения всех NFT: https://appv1.envelop.is/list

Menaskop. Envelop. 08Но вы можете пойти дальше и объединить оба ключа в 1 wNFT с помощью стандартного dApp DAO Envelop, который называется Wrapper, или Оборачиватель (НФТшек).

Для этого надо зайти на https://appv1.envelop.is/list и создать «пустую» wNFT (то есть без особых метаданных), внутри которой положены будут в обеспечение (Collateral) NFT-ключи.

Дисклеймер: сейчас добавление смарт-контрактов NFT происходит через белый список, поскольку того требуют правила безопасности, но в общей архитектуре протокола это в целом — разрешённая операция: 

Menaskop. Envelop. 09Заметили правый угол, где указан получатель wNFT? Отлично! Дело в том, что могу спокойно wNFT, содержащую 2 ключа, передать другому кошельку, который станет владельцем не просто 1 wNFT в сети Ethereum, но и прав требования на 5 активов в разных сетях. Как 5? Считайте сами:

  1. MATIC (нативный токен aka коин) в сети Polygon;
  2. wETH (токен ERC-20) в сети Polygon;
  3. MATIC (токен BEP-20) в сети BSC;
  4. USDt (токен BEP-20) в сети BSC; 
  5. NIFTSY (токен ERC-20) в сети Ethereum. 

Откуда последний? Решил его положить в обеспечение вновь создаваемого wNFT и имею на то полное право. Кстати, если хотите добавлять любые токены в обеспечение — это можно сделать очень просто через https://saft.envelop.is/

Всё. Дальше проходите стандартную процедуру выдачи апрувов (снять их всегда можно здесь, здесь или здесь, а список пополняемый лежит по этой ссылке): 

Menaskop. Envelop. 10И wNFT с обеспечением в 2 NFT-ключа и ERC-20 токен (NIFTSY) в кармане у нового владельца: 

Menaskop. Envelop. 11

Зачем это всё нужно? 

Вопрос хороший и далеко не праздный, тем более что всё это стоит денег и денег, в том же Эфире, до сих пор не малых. Но и ответов — множество:

  • Во-первых, так можете один раз залочить ликвидность в дорогой сети и проводить транзакции в более дешёвых с помощью NFT-ключа;
  • Во-вторых, можете совершать безмостовые обмены в разных же сетях (зачем это нужно в свою очередь — почитайте в этом и этом разборе на Forklog); 
  • В-третьих, это прекрасная замена наличных и в эпоху CBDC — поверьте, такой инструмент будет востребован;
  • В-четвёртых, это всё даёт дополнительный уровень безопасности, тем паче что протоколы навроде Envelop близки к имплементации ZKPмеханик;
  • В-пятых, так можете использовать smartкошелёк/аккаунт будущего, но здесь и сейчас, в настоящем.

Судите сами. Вот у вас есть кошелёк. В нём лежит 100 разных токенов и коинов. Пусть даже в сети Эфира. Как можете передать все активы за 1 транзакцию? Никак. Нет, вы можете передать seed-фразу и/или приватный ключ, но будет ли вам другая сторона доверять в этом случае? Не думаю. Да и не должна: блокчейн — это про работу в НЕдоверенной среде.

А так получаете 2 простые схемы:

Menaskop. NFT 2.0. CrossingЭта схема о наследовании прав требований в различных сетях (BSC, Polygon, Ethereum) через единый wNFT. Вторая же схема о том, ЧТО ЕСТЬ принципиально владение wNFT-как-smart-wallet: 

Menaskop. wNFTКонечно же, это далеко не все возможности ZK-CROSS-NFT, но о прочих расскажу в следующий раз, а на сегодня точно всё и 

До!

Обсудить в Discord!

Menaskop
  • Зарегистрирован: 22 мая 2012 г.
  • Локация:London/United Kingdom
  • Сайт:penroseisparty.com