ERC-721
ERC-721 — это стандарт токенов на блокчейне Ethereum, предназначенный для создания невзаимозаменяемых токенов (NFT, от англ. Non-Fungible Token). В отличие от стандарта ERC-20, который описывает взаимозаменяемые токены (каждый токен идентичен другому), ERC-721 определяет уникальные, неповторимые цифровые активы, каждый из которых имеет собственный идентификатор и может обладать отличными от других свойствами, ценностью или историей владения. Стандарт был предложен в 2018 году разработчиками Дитером Ширли, Уильямом Энткеном, Якобом Эвансом и Настасьей Сакс и формализован в предложении по улучшению Ethereum (EIP) № 721.
История и предпосылки создания
До появления ERC-721 основным стандартом для выпуска токенов на Ethereum был ERC-20, ориентированный на однородные активы (криптовалюты, токены управления, стейблкоины). Однако с ростом интереса к цифровому искусству, коллекционированию, игровым предметам и другим уникальным активам возникла потребность в стандарте, который бы позволял различать каждый отдельный токен.
В конце 2017 года на блокчейне Ethereum появился проект CryptoKitties, который стал первым масштабным применением концепции NFT. В этой игре каждый цифровой кот был уникальным, имел свои гены и мог размножаться, передавая часть характеристик потомству. CryptoKitties использовал собственный, нестандартизированный смарт-контракт, что создавало проблемы совместимости с другими сервисами и биржами. Успех проекта (в моменте он создавал до 10—15 % всего трафика сети Ethereum) показал необходимость единого технического стандарта.
В январе 2018 года была опубликована первая версия EIP-721, авторами которой выступили Дитер Ширли (CryptoKitties), Уильям Энткен, Якоб Эванс и Настасья Сакс. После нескольких месяцев обсуждений и доработок в июне 2018 года стандарт был принят как окончательный (Final). Он получил название ERC-721 (Ethereum Request for Comments 721).
Техническое описание
Основные функции
ERC-721 представляет собой интерфейс смарт-контракта, который должен реализовывать набор обязательных и опциональных методов. Основные обязательные функции:
- balanceOf(address owner) — возвращает количество токенов, принадлежащих указанному адресу.
- ownerOf(uint256 tokenId) — возвращает владельца токена с конкретным идентификатором.
- safeTransferFrom(address from, address to, uint256 tokenId, bytes data) — безопасно передаёт токен от одного владельца другому, проверяя, способен ли получатель (смарт-контракт) обрабатывать ERC-721 токены.
- transferFrom(address from, address to, uint256 tokenId) — передаёт токен без проверки получателя (менее безопасный метод).
- approve(address approved, uint256 tokenId) — даёт разрешение другому адресу на передачу конкретного токена.
- setApprovalForAll(address operator, bool approved) — даёт или отзывает разрешение оператору на управление всеми токенами владельца.
- getApproved(uint256 tokenId) — возвращает адрес, которому разрешено управлять конкретным токеном.
- isApprovedForAll(address owner, address operator) — проверяет, является ли оператор уполномоченным на управление всеми токенами владельца.
Также стандарт определяет событие (event) Transfer, которое уведомляет внешние системы о передаче токена, и событие Approval, фиксирующее выдачу разрешений.
Идентификация и метаданные
Каждый токен ERC-721 идентифицируется уникальным числовым значением — tokenId (обычно целое беззнаковое число от 0 до 2²⁵⁶-1). Этот идентификатор является единственным в рамках одного смарт-контракта.
Для хранения информации о токене (изображение, название, описание, атрибуты) используется опциональное расширение ERC-721 Metadata. Оно добавляет функцию tokenURI(uint256 tokenId), которая возвращает URI (унифицированный идентификатор ресурса), указывающий на JSON-файл, содержащий метаданные токена. Этот файл обычно хранится в децентрализованных системах, таких как IPFS (InterPlanetary File System), или на централизованных серверах. Стандартный формат метаданных включает поля: name, description, image (ссылка на изображение) и attributes (массив атрибутов).
Расширения
Помимо базового интерфейса, существуют популярные расширения:
- ERC-721 Enumerable — позволяет перечислять все токены контракта и токены конкретного владельца (функции totalSupply(), tokenByIndex(), tokenOfOwnerByIndex()).
- ERC-721 URI Storage — позволяет хранить метаданные в самом контракте, а не во внешних файлах.
- ERC-721 Burnable — добавляет возможность уничтожения (сжигания) токенов.
Применение
Цифровое искусство и коллекционирование
Наиболее известная область применения ERC-721 — это цифровое искусство. Художники выпускают уникальные цифровые работы (например, коллекция CryptoPunks, Bored Ape Yacht Club), которые могут быть куплены, проданы и перепроданы на специализированных маркетплейсах (OpenSea, Rarible). Каждая работа привязана к конкретному tokenId, что подтверждает её подлинность и право собственности.
Игровая индустрия
В видеоиграх ERC-721 используется для представления внутриигровых предметов (оружие, броня, персонажи, земли, здания). Игроки могут владеть, обменивать и продавать эти предметы вне игры, на вторичных рынках. Примеры: Decentraland (виртуальные участки земли), Axie Infinity (существа Axie), Gods Unchained (карты).
Недвижимость и документы
Концептуально ERC-721 может применяться для токенизации реальных активов — недвижимости, автомобилей, произведений искусства. Каждый токен представляет собой цифровой сертификат права собственности на физический объект, что упрощает передачу прав и снижает бюрократические издержки.
Сертификаты и удостоверения
Токены ERC-721 могут служить цифровыми дипломами, сертификатами о прохождении курсов, членскими билетами в клубах или билетами на мероприятия. Благодаря неизменности блокчейна, подлинность такого сертификата легко проверить.
Критика и ограничения
Высокая стоимость транзакций
Основной недостаток ERC-721 связан с архитектурой Ethereum: каждая операция (чеканка, передача, продажа) требует оплаты газа (комиссии сети). В периоды высокой загрузки сети (например, во время пика популярности NFT в 2021 году) стоимость одной транзакции могла достигать сотен долларов США, что делало стандарт малодоступным для массового использования.
Масштабируемость
Блокчейн Ethereum в его оригинальной версии (Proof of Work, до перехода на Proof of Stake в 2022 году) имел ограниченную пропускную способность (около 15—30 транзакций в секунду). Массовый выпуск и передача NFT создавали перегрузку сети и задержки.
Экологические проблемы
До перехода Ethereum на алгоритм Proof of Stake (сентябрь 2022 года) майнинг блоков требовал значительного количества электроэнергии, что вызывало критику со стороны экологов. После перехода энергопотребление сети снизилось на 99,95 %, что частично сняло эту проблему.
Проблемы хранения метаданных
Стандарт ERC-721 не обязывает хранить метаданные (например, изображение) в блокчейне. Чаще всего они размещаются на централизованных серверах или в IPFS. Если сервер выйдет из строя или владелец прекратит оплату хостинга, метаданные могут стать недоступными, хотя сам токен (идентификатор) останется в блокчейне. Для решения этой проблемы разрабатываются стандарты хранения данных полностью в цепочке (on-chain), например, ERC-1155 с поддержкой URI на IPFS.
Мошенничество и плагиат
Из-за отсутствия встроенной системы проверки авторства на рынке NFT распространены случаи плагиата, когда мошенники чеканят токены на чужие произведения искусства. Покупатели могут приобрести подделку, не имеющую отношения к оригинальному автору.
Альтернативные стандарты
- ERC-1155 (Multi Token Standard) — предложен в 2018 году, позволяет в одном смарт-контракте управлять как взаимозаменяемыми, так и невзаимозаменяемыми токенами. Поддерживает пакетные передачи (batch transfers), что снижает затраты газа. Используется в играх (например, Enjin) и для массового выпуска коллекционных предметов.
- ERC-998 (Composable NFT) — позволяет одному токену ERC-721 владеть другими токенами (как ERC-721, так и ERC-20), создавая иерархические структуры (например, персонаж может владеть мечом и щитом).
- ERC-4907 (Rental NFT) — добавляет функциональность аренды: владелец может временно передать права использования токена другому лицу без передачи права собственности.
Влияние на индустрию
Появление стандарта ERC-721 стало одним из ключевых событий в развитии блокчейн-технологий. Он создал инфраструктуру для рынка NFT, который в 2021 году достиг объёма торгов в несколько десятков миллиардов долларов США. Стандарт стимулировал развитие децентрализованных приложений (dApps) в области искусства, игр, музыки и развлечений. Многие крупные компании (Nike, Adidas, Louis Vuitton, Coca-Cola) выпускали собственные NFT на основе ERC-721 или его модификаций. В России интерес к NFT также проявился: в 2021 году Государственный Эрмитаж анонсировал выпуск NFT-токенов на некоторые произведения искусства, однако проект не был реализован из-за регуляторных ограничений.
Источники
- EIP-721: Non-Fungible Token Standard (Ethereum Improvement Proposals, 2018).
- William Entriken, Dieter Shirley, Jacob Evans, Nastassia Sachs. «ERC-721 Non-Fungible Token Standard» (GitHub, 2018).
- «CryptoKitties: A Blockchain Game That Broke Ethereum» (CoinDesk, 2017).
- «The State of the NFT Market 2021» (NonFungible.com, 2022).
- «ERC-1155 Multi Token Standard» (Ethereum Improvement Proposals, 2018).
- «NFTs and the Environment: The Impact of Ethereum’s Proof of Stake Transition» (ConsenSys, 2022).
- «Государственный Эрмитаж анонсировал выпуск NFT» (ТАСС, 2021).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →