Найти в Дзене
cryptex.net

Чем отличаются NFT на Ethereum и Polkadot

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?

  1. Создавать коллекцию из любого числа NFT. В Полькадот любой NFT входит в коллекцию, если это единичный NFT, то это коллекция из одного токена.
  2. Выставлять на продажу любой NFT,
  3. Создавать дополнительные NFT для любой коллекции,
  4. Менять адрес создателя коллекции
  5. Сжечь NFT
  6. Купить NFT, выставленный на продажу

Текущая реализация пока достаточно простая - к примеру, юзеры не могут создавать новые токены, как в примере выше с Cryptokitties. Все это еще предстоит разработать. Есть некоторые проблемы. Нет единого реестра балансов NFT юзеров, и чтобы проверить текущее состояние, нужно проверить весь блокчейн и каждую пометку, ведь они могут содержать изменение состояния NFT, пересылку, покупку или уничтожение токена. На такую проверку может уйти целый день. Сейчас это решается дополнительными утилитами, которые обращаются к IPFS узлу, хранящему снимок всего блокчейна и все актуальные состояния NFT токенов RMRK. Этот узел отдает юзеру интересующую его информацию.

Еще одна проблема - если несколько юзеров покупают один и тот же NFT одновременно в пределах выпуска одного блока, деньги уходят у троих, но NFT достается только одному. Смарт-контракт мог бы вернуть деньги тем, чья покупка была неудачной, но в Польке нет смарт-контрактов. Для предупреждения этой проблемы работает сервер, проверяющий все RMRK запросы в блоках, чтобы предотвратить двойные покупки.

Технология ERC721 уже давно отлажена и проверена, и в ней крутятся миллионы долларов. RMRK на Polkadot еще пока разрабатывается - но уже сейчас на ней можно выпускать NFT, и это делать значительно быстрее и дешевле чем на Эфириуме. Кроме того, RMRK поддерживает картинки, 3д-анимации, возможно скоро будет поддерживать и видео, и к любому токену можно присоединить сразу же много типов контента. Учитывая растущую популярность Polkadot, мы думаем, что NFT на этом блокчейне также будут востребованы.