NFT продолжают оставаться очень хайповой темой - баскетбольные клубы выпускают NFT, музыканты (вроде Grimes и Kings of Leon) выпускают NFT, даже бренды, такие как Taco Bell, выпускают NFT. Но есть одна проблема - сейчас все эти NFT размещаются на Эфириуме, и такие недостатки Эфириума как большие комиссии и низкая скорость транзакций влияют и на них. Но при этом других альтернатив для желающих выпускать NFT нет, или не было до нынешнего момента. Теперь NFT появились на Polkadot, это очень активно развивающийся блокчейн, с большим коммьюнити, и вполне вероятно, что разработчики быстро напишут платформы, похожие на OpenSea для удобной покупки и продажи таких коллекционных токенов. Но самое интересное для нас это различия в реализации NFT в обеих сетях. Давайте же разберем, чем различаются NFT Ethereum и Polkadot.
В реализации Эфириума, которой пользуются все, используется стандарт ERC721. Любой стандарт токена определяет все операции, которые можно с ним совершить, а также его характеристики, как он выпускается, в каком количестве, как они могут пересылаться между пользователями, а также определяется количество полей метадаты. Каждый ERC20 смарт-контракт Эфириума выпускает определенный токен и хранит карту баланса каждого адреса в сети, в случае если на адресе нет токенов, для него стоит значение 0. При каждой транзакции смарт-контракт проверяет, имеет ли данный адрес нужное количество токенов и не пытается ли он отправить токены, которых у него нет.
Но в случае уникальных токенов NFT мы имеем дело с множеством токенов в рамках одного контракта, ведь все они могут отличаться друг от друга набором характеристик. Для ERC721 смарт-контракты хранят не одномерную, а двухмерную карту балансов, в которых хранится массив идентификаторов всех токенов этого контракта (каждому токену отдельный присваивается отдельный ID) и массив идентификаторов каждого адреса в сети. Каждый ERC721-токен создается индивидуально, запросом функции mint, и добавляет токен как в общий список контракта, так и в список токенов, принадлежащих конкретному адресу. После создания, в токен добавляется метадата, ссылки на изображения или другую информацию. Кроме того, при пересылке токенов и при сжигании токенов также происходит апдейт обоих балансов.
Благодаря поддержке смарт-контрактов на Эфириуме, можно проставить дополнительные условия к любой коллекции токенов. В качестве самого известного примера можно вспомнить Cryptokitties, где владельцы двух нарисованных котят могли скрестить их и получить нового котенка, то есть взять случайным образом характеристики двух ERC721 токенов, вызвать функцию создания нового и перенести в него эти характеристики.
Схема работы NFT на Polkadot значительно отличается от ERC721. У блокчейна Польки есть нюанс - его основная цепь не поддерживает смарт-контракты. Таким образом, токены работают по другой системе, используя шаблон Substrate, который стандартизирует все методы, используемые в работе с токенами. В каждой из цепей, основной или дополнительных, хранится баланс всех токенов, находящихся в этой цепи. Сеть позволяет проверять информацию о токене (символ, название, количество символов после запятой, общее выпущенное количество) и проверять баланс нужных адресов. Из-за отсутствия смарт-контрактов, сейчас невозможно реализовать NFT таким же образом, как на Эфире.
NFT Polkadot работают благодаря системе RMRK. RMRK использует систему специальных пометок, “экстринсиков”, которые могут быть добавлены к любой транзакции. Такая пометка может содержать любое текстовое сообщение, которое никак не влияет на логику работы блокчейна. Похожая система использовалась в проекте “coloured coins” в Биткойне, когда группа энтузиастов хотела добавить функционал выпуска токенов на блокчейн BTC.
Используя пометки, RMRK добавляет дополнительный слой логики на блокчейн без встроенной логики смарт-контрактов. Все вызовы функций записываются на своем собственном скриптовом языке. Протокол RMRK использует блокчейн Полькадот просто как способ передачи информации для своей системы, и таким образом, возможно запрограммировать практически любые правила (без функционала смарт-контрактов) и сделать для них специальные интерпретаторы. Для сети Полькадот это по-прежнему ничего не значащие сообщения.
Какие операции можно проводить с RMRK NFT?
- Создавать коллекцию из любого числа NFT. В Полькадот любой NFT входит в коллекцию, если это единичный NFT, то это коллекция из одного токена.
- Выставлять на продажу любой NFT,
- Создавать дополнительные NFT для любой коллекции,
- Менять адрес создателя коллекции
- Сжечь NFT
- Купить NFT, выставленный на продажу
Текущая реализация пока достаточно простая - к примеру, юзеры не могут создавать новые токены, как в примере выше с Cryptokitties. Все это еще предстоит разработать. Есть некоторые проблемы. Нет единого реестра балансов NFT юзеров, и чтобы проверить текущее состояние, нужно проверить весь блокчейн и каждую пометку, ведь они могут содержать изменение состояния NFT, пересылку, покупку или уничтожение токена. На такую проверку может уйти целый день. Сейчас это решается дополнительными утилитами, которые обращаются к IPFS узлу, хранящему снимок всего блокчейна и все актуальные состояния NFT токенов RMRK. Этот узел отдает юзеру интересующую его информацию.
Еще одна проблема - если несколько юзеров покупают один и тот же NFT одновременно в пределах выпуска одного блока, деньги уходят у троих, но NFT достается только одному. Смарт-контракт мог бы вернуть деньги тем, чья покупка была неудачной, но в Польке нет смарт-контрактов. Для предупреждения этой проблемы работает сервер, проверяющий все RMRK запросы в блоках, чтобы предотвратить двойные покупки.
Технология ERC721 уже давно отлажена и проверена, и в ней крутятся миллионы долларов. RMRK на Polkadot еще пока разрабатывается - но уже сейчас на ней можно выпускать NFT, и это делать значительно быстрее и дешевле чем на Эфириуме. Кроме того, RMRK поддерживает картинки, 3д-анимации, возможно скоро будет поддерживать и видео, и к любому токену можно присоединить сразу же много типов контента. Учитывая растущую популярность Polkadot, мы думаем, что NFT на этом блокчейне также будут востребованы.