Что такое NFT (non-fungible tokens). Часть 1.

Автор: stsoen

Многие из вас уже слышали про NFT-токены Бинанса и других коллекций, которые на первый взгляд непонятно зачем нужны, за исключением мифического роста цены из-за коллекционной ценности. А может быть, на самом деле, тематика NFT-токенов куда глубже? Так ли это – узнаем в этой и дальнейших статьях.

Во-первых, что такое NFT-токены вообще: NFT – non-fungible tokens, или по-русски – незаменяемые токены, цифровые элементы, предоставляющие право собственности в блокчейне. Самые простые примеры – игровые предметы (Gods Unchained), коллекционные предметы (картина, сгенерированная ИИ, продана за 75 эфиров), билеты на мероприятия, доменные имена и теоретически (а куда же без этого) – доказательства владения физическими активами.

Казалось бы, звучит “как обычно в крипте” – непонятное простыми словами. На самом деле все немножко проще – NFT-токены обладают уникальными свойствами. Прародителем можно считать CryptoKitties, которые и были ничем иным, как NFT-токенами. Из более актуальных примеров – карточная игра Gods Uchained. С другой стороны большинство обсуждений по поводу этого вида токенов сводится к идее о взаимозаменяемости, что создает путаницу. Поэтому лучше провести аналогию с вещами из реального мира – ваш телефон, ноутбук, диван – они все попадают под категорию незаменимых вещей.

В то время, как деньги в любой форме представляют уже собой классический заменяемый актив. Потому что 5 долларов – это всегда 5 долларов, вне зависимости от того, кому он принадлежит, года выпуска, серийного номера банкноты и тд.

Заменямость может быть относительной, например, при сравнении вещей. Можно сказать, что предметы мебели или новые телефоны до внесения в них пользовательской информации – относительно взаимозаменямы. Еще бывает субъективная взаимозаменяемость, самый яркий пример которой – коллекционные монеты. Номинальная стоимость монеты в 50 центов – 50 центов вне зависимости от года выпуска. Реальная стоимость для коллекционеров – уже наоборот, зависит от года и серии выпуска, и может быть в сотни и тысячи раз выше. Эти виды заменяемости лучше дают понять смысл NFT-токенов.

Non-Fungible Tokens на блокчейне

До появления криптовалют уже длительное время существовали цифровые валюты – баллы авиакомпаний, внутриигровые деньги, накопительные баллы на скидочных картах. Незаменимые цифровые активы тоже существуют довольно давно – доменные имена, внутриигровые предметы, билеты на мероприятия – они просто различаются по своей привлекательности, ликвидности и совместимости с другими продуктами. И емкость рынков виртуальных предметов огромен – Epic Games заработали 2,4 млрд на продаже инвентаря только в одной Frontnite в 2018 году, сфера продаж билетов на мероприятия может достигнуть более чем 60млрд долларов в ближайщие годы, а рынок доменных имен продолжает сохранять устойчивый рост.

Проблема заключается в том, что при покупке этих продуктов мы не получаем их в полное владение. Ими можно пользоваться, но это не имеет ничего общего со свободой хранения и передачей в реальном мире. Вряд ли у вас получится с легкостью продать скин из Fortnite или билет на Ebay.

И здесь в игру вступают блокчейны! Эта техология обеспечивает качественно другой уровень для цифровых активов, предоставляя пользователям право владения и управления. К неосновным активам добавляются уникальные свойства, которые меняют взаимотношение пользователей и разработчиков.

  • Стандартизация.
    Традиционные цифровые активы не имеют общих стандартов, представления. Внутриигровые предметы реализованы совершенно другим образом, нежели электронные билеты. С помощью общедоступных блокчейнов разработчики могут создавать шаблоны повторного использования, наследования и прав доступа для нефункциональных токенов (NFT). Эти шаблоны смогут запросто обеспечить владение активами как вещами из реального мира, а значит, и их передачу, управление состоянием, правами и условиями доступа.
  • Совместимость
    Наиболее привлекательной особенностью, вытекающей из права владения, является возможность торговли на открытых торговых площадках. Пользователи смогут продавать активы, которые ранее существовали исключительно в закрытых экосистемах, на площадках вроде Ebay или через API вроде OpenSea с возможностью сделок в любой валюте – стейблкоинах и внутренних валютах Dapps’ов. Более того, возможно взаимодействие не только между DApps’ами, но и между разными DLT-платформами, поддерживающими смарт-контракты.
    В частности, для разработчиков игр реализуемость активов представляет собой переход от закрытой экономики к открытой рыночной экономике. Разработчикам больше не нужно скурпулезно выстраивать массивные и многогранные механизмы внутренних экономик. Вместо этого они могут позволить свободным рынкам делать тяжелую работу!
  • Ликвидность
    Мгновенные сделки с NFT приведут к повышению ликвидности. Торговые площадки смогут обслуживать большую аудиторию – от трейдеров, играющих на разницах курсов активов, до геймеров, которым просто нужны какие-то предметы. Некоторые видят аналогию с бумом ICO 2017 года, который породил простые ликвидные токены: теперь на их место приходят NFT, расширяющие рынок уникальных цифровых активов.
  • Неизменяемость и ограниченность предложения
    Смарт-контракты позволяют разработчикам устанавливать жесткие ограничения на количество выпускаемых NFT и их свойства, которые нельзя изменить после выхода в обращение. Например, разработчик может программным путем задать создание только определенного количества определенного редкого элемента, сохраняя при этом количество более общих элементов бесконечным. Также и со свойствами – записанные в блокчейне данные неизменяемы.
  • Программируемость
    Она тоже является следствием использования смарт-контрактов. Дизайн последних NFT-решений дает выстраивать более сложные механики, чем простая генерация котов в KryptoKitiies (о которых поговорим ниже). Например, крафт, ковка, выкуп, случайная генерация и так далее.

Стандарты NFT

Стандарты определяют поведение токенов и описывают их взаимодействие с друими активами.

  • ERC721
    Пионер незаменимых токенов, первый стандарт для невзаимозаменямых цифровых активов. ERC721 – производный от стандарта смарт-контрактов на Solidity, поэтому новые ERC721-совместимые контракты можно импортировать из библиотеки OpenZeppelin. Он достаточно простой, обеспечивает сопоставление уникальных идентификаторов с адресами владельца и передачу активов командой TransferFrom.
    interface ERC721 { function ownerOf(uint256 _tokenId) external view returns (address); function transferFrom(address _from, address _to,uint256 _tokenId) external payable;}
    По большому счету, эти два оператора в ядре контракта – все что нужно для представления NFT: проверка принадлежности адресам и изменение параметра.
  • ERC1155
    Этот стандарт, впервые предложенный командой Enjin, привносит больше возможностей в NFT. В ERC1155 идентификаторы представляют собой не отдельные активы, а их классы. Например, сам идентификатор может быть обозначен как “меч”, а на кошельке может быть 100 “мечей”. В этом случае balanceOf метод означает количество мечей, принадлежащих кошельку, и пользователь может передать любое количество этих мечей, позвонив transferFromс идентификатором «меча».
    interface ERC1155 { function balanceOf(address _owner, uint256 _id) external view returns (address); function transferFrom(address _from, address _to, uint256 _id, uint256 quantity) external payable;}
    В ERC721 если пользователь передает 100 “мечей” – он меняет состояние смарт-контракта вызовом transfrFrom для 100 отдельных токенов. В ERC1155 выполняется вызов transferFrom с количеством 100 и проводится одна операция переноса. Минус в том, что нельзя отследить историю одного отдельного предмета, как если бы каждый из них соответствовал токенам.
    NFT-токены Binance сейчас как раз на ERC1155.

  • Composables
    Производный от стандарта ERC998, дает шаблон, по которому в NFT могут быть включены взаимозаменяемые активы (как обычные криптовалюты) и незаменяемые. Но пока что этот стандарт не получил большого распространения.
  • dGoods
    Стандарт на EOS, разработанный Mythical Games для карточной игры Gods Unchained. В планах создание перекрестных связей с другими блокчейнами – теоретически это дает защиту от дублирования, расширяет возможность передачи права владения токеном и способствует увеличению ликвидности.
  • NFT Cosmos
    В разработке, разрабатывают модуль NFT, который можно использовать в составе Cosmos SDK.
  • BEP-7
    Фунцкиональность проста, схожа с ERC1155. Пока выдвинуто только предложение, как они могут выглядеть, учитывая, что уже есть NFT-модуль для Cosmos, а Binance chain сделан на основе Cosmos SDK. Из особенностей –  возможность заморозки NFT для блокировки токенов. Реализация пока что под вопросом, на усмотрение команды Binance.

Метаданные NFT-токенов

Как уже упоминалось, команда ownerOf предоставляет способ поиска владельца NFT. Например, с помощью запроса  ownerOf(1500718) в смарт-контракте CryptoKitties видно, что владелец CryptoKitty # 1500718 это учетная запись с адресом 0x6452 … Это можно проверить в CryptoKitty на OpenSea или CryptoKitties.co.

Но как OpenSea и CryptoKitties понимают, как выглядит CryptoKitty # 1500718? А как насчет имени и уникальных атрибутов кота? Вот здесь в игру вступают метаданные. Метаданные дают дополнительную информацию для конкретного идентификатора токена: имя, изображение кота, дополнительные внешние черты. Выглядят они следующим образом:

{
  "name": "Duke Khanplum",
  "image": "https://storage.googleapis.com/ck-kitty-image/0x06012c8cf97bead5deae237070f9587f8e7a266d/1500718.png",
  "description": "Heya. My name is Duke Khanplum, but I've always believed I'm King Henry VIII reincarnated."
}

Дальше возникает вопрос, как и где хранить данные, чтобы к ним могли обращаться приложения, работающие с NFT.

Ончейн (в блокчейне) и оффчейн (вне блокчейна)

Метаданные в блокчейне

Преимущества хранения метаданных в блокчейне: они постоянно доступны для токена, даже если он сохраняется после окончания жизненного цикла DApp’а, и могут изменяться в соответствии с логикой блокчейна. Первый пункт важен для активов, которым важно длительное хранение информации. Например, для предметов цифрового искусства (и это как раз характерная особенность NFT-токенов), которые могут храниться вне зависимости от того, существует ли сайт, на котором они изначально были представлены.

Кроме того, логика блокчейна может потребоваться для взаимодействия с метаданными . В случае CryptoKitties «поколение» CryptoKitty влияет на быстроту размножения CryptoKitty  по цепочке (кошки более высокого поколения разводятся медленнее). Таким образом, логика внутри смарт-контракта должна быть в состоянии прочитать метаданные из его внутреннего состояния.

Метаданные в оффчейне

Метаданные вне цепочки Несмотря на эти преимущества, большинство проектов хранят свои метаданные в оффчейне из-за текущих ограничений хранения блокчейна Ethereum. Поэтому стандарт ERC721 включает метод, tokenURI который разработчики могут реализовать, чтобы сообщить приложениям, где искать метаданные для этого элемента.

function tokenURI(uint256 _tokenId) public view returns (string)

Оператор tokenURI вызывает публичный URL, тот в свою очередь вызывает JSON-таблицу с данными вроде словаря для CryptoKitty. Эти метаданные должны соответствовать стандартам NFT, чтобы их могли использовать такие приложения как OpenSea в случае с ERC721. В отличие от оффчейн-решений проще добавлять новые расширения, такие как черты, анимация, цвет фона и тд для стандарта ERC721.

Решения для хранения вне блокчейна

Централизованные сервера

Самый простой способ хранения – где-нибудь на централизованном сервере или облачном хранилище вроде AWS. Главные недостатки в том, что во-первых, разработчик может менять метаданные по своему усмотрению, и во-вторых, если проект переходит в автономный режим, метаданные могут просто исчезнуть хотя бы из-за неоплаты серверов. Для решения второй проблемы сейчас существует несколько служб (включая OpenSea), задача которых – кэшировать метаданные на своих собственных серверах. Пользователи в результате получают некоторые гарантии эффективной выгрузки данных даже если исходный хост выйдет из строя.

IPFS

В настоящее время все больше разработчиков, связанных с криптоиндустрией, начинают использовать IPFS, в том числе для хранения данных в оффчейне. IPFS – это одноранговая система хранения файлов, которая позволяет размещать контент на нодах, реплицируя его в разных местах. Это гарантирует, что A) метаданные являются неизменными, так как у них уникальные хеши, и B) до тех пор, пока существуют ноды, предоставляющие место для хранения, данные будут в сохранности. В настоящее время существуют такие сервисы, как Pinata, которые упрощают этот процесс для разработчиков. Они дают инфраструктуру для развертывания и управления узлами IPFS. Чуть позже, теоретически, станет доступна файловая система Filecoin, новый слой поверх IPFS, для стимулирования нод к размещению файлов.

Заключение

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

За основу материала взята статья OpenSea.

Добавить комментарий

Ваш адрес email не будет опубликован.

15 + 5 =

Back to Top