ERC-721A: Как Azuki оптимизировали пакетный выпуск и эффективность газа

16 окт. 2025 г.
ERC-721A: Как Azuki оптимизировали пакетный выпуск и эффективность газа

Ключевые выводы

• ERC-721A значительно снижает затраты на газ при массовом выпуске токенов.

• Новый стандарт сохраняет совместимость с ERC-721, что позволяет использовать существующие кошельки и торговые площадки.

• Внедрение ленивой инициализации и упаковки данных о владении улучшает производительность и экономию газа.

Бум NFT в 2021–2022 годах обнажил болезненную правду как для создателей, так и для коллекционеров: выпуск большого количества токенов ERC‑721 обходится дорого. Каждый токен, выпущенный по первоначальному стандарту, требует повторяющихся записей в хранилище и событий для каждого токена, что приводит к астрономическим расходам на газ во время ажиотажных релизов. Команда Azuki из Chiru Labs решила эту проблему с помощью ERC‑721A — реализации, предназначенной для того, чтобы сделать пакетный выпуск значительно дешевле при сохранении совместимости с ERC‑721. Вот как это работает, что меняет и как безопасно использовать это в 2025 году.

Базовый уровень: стоимость каждого токена ERC‑721

Первоначальная спецификация невзаимозаменяемых токенов, ERC‑721, определяет интерфейсы и события для NFT, но оставляет экономику газа на усмотрение реализаций. Стандартная реализация обычно:

  • Выполняет запись в хранилище для владения каждым токеном.
  • Генерирует событие Transfer для каждого выпущенного токена.
  • Индивидуально обновляет балансы.

Поскольку записи в хранилище (SSTORE) являются одними из самых дорогих операций EVM, пакетный выпуск десятков или сотен токенов увеличивает сборы. Вы можете проверить относительную стоимость операций EVM и записей в хранилище в справочнике опкодов на evm.codes, который ясно показывает, почему наивный выпуск ERC‑721 дорог справочник. Саму спецификацию можно найти в каноническом стандарте ERC‑721.

ERC‑721A в двух словах

ERC‑721A от Chiru Labs — это реализация контракта, которая сохраняет интерфейс ERC‑721, но перерабатывает структуру данных и логику выпуска, чтобы сделать пакетный выпуск почти таким же дешевым, как выпуск одного токена. Официальный код и документация находятся в репозитории Chiru Labs ERC721A на GitHub.

Ключевые идеи:

  • Последовательные идентификаторы токенов: токены выпускаются с последовательными идентификаторами. Такая структура позволяет делать выводы о владении для диапазона токенов без необходимости хранить информацию о каждом из них.
  • Упакованные данные о владении: вместо нескольких отображений ERC‑721A объединяет поля (адрес владельца, временные метки, флаги сжигания, дополнительные данные) в компактный слот хранения. Это уменьшает операции SSTORE и улучшает локальность кеша; см. заметки о структуре хранения Solidity для получения информации об упаковке Структура хранения Solidity.
  • Ленивая инициализация: при пакетном выпуске реализация записывает информацию о владении только один раз в начале диапазона; последующие токены наследуют информацию о владении до ее изменения, что значительно сокращает количество записей в хранилище.
  • События, сохраняющие совместимость: ERC‑721A генерирует стандартное событие Transfer для каждого токена при обычном выпуске, чтобы оставаться совместимым с торговыми площадками. Для массового выпуска во время создания контракта он может использовать событие ERC‑2309 ConsecutiveTransfer для дальнейшего сокращения затрат на газ, как это разрешено стандартом ERC‑2309.

На практике выпуск N токенов в одной транзакции с помощью ERC‑721A лишь немного дороже, чем выпуск одного токена, а не в N раз дороже. В этом суть его эффективности газа.

Что остается прежним и что меняется

Что остается прежним:

  • Он реализует тот же внешний интерфейс, что и ERC‑721, поэтому кошельки, торговые площадки и индексаторы продолжают работать.
  • Безопасные потоки выпуска, одобрения и переводы работают так, как ожидается в соответствии со стандартом Справочник ERC‑721 OpenZeppelin.

Что меняется под капотом:

  • Поиск владельца может сканировать назад до ближайшего инициализированного слота владения (амортизированное постоянное время при типичном использовании).
  • Переводы на «границах диапазона» могут инициализировать владение следующим токеном, чтобы сохранить правильность выводов.
  • Структура данных использует агрессивную битовую упаковку, а местами — непроверенную арифметику для экономии газа. Разработчики, расширяющие ERC‑721A, должны понимать блоки unchecked и инварианты Solidity, чтобы избежать переполнений или недополнений Unchecked в Solidity.

Почему это все еще важно в 2025 году

Обновление Dencun в Ethereum в 2024 году представило блочное пространство (EIP‑4844), которое значительно снизило затраты на доступность данных в роллапах, сократив комиссии на L2. В результате многие проекты NFT теперь выпускают токены на L2, а затем перемещают их или окончательно подтверждают. Тем не менее, когда спрос резко возрастает или когда выпуск на основной сети остается желательным для подтверждения происхождения, эффективность газа имеет значение. ERC‑721A остается актуальным, поскольку он снижает затраты на ончейн-компонент независимо от того, в какой сети вы развертываетесь. Для контекста о Dencun и его влиянии см. обзор Ethereum Foundation Dencun на основной сети.

Сравнение ERC‑721A с альтернативами

  • ERC‑1155: Если ваша коллекция является полувзаимозаменяемой (несколько копий на идентификатор) или вы полагаетесь на настоящие пакетные переводы, ERC‑1155 может быть лучшим выбором, поскольку он изначально поддерживает пакетные операции с другим интерфейсом ERC‑1155. Для классических NFT 1/1 с метаданными на токен и устоявшимися процессами на торговых площадках ERC‑721A сохраняет поверхность ERC‑721, оптимизируя при этом газ.
  • Роялти: ERC‑721A может включать сигнализацию роялти в сети через EIP‑2981, не влияя на его оптимизации выпуска EIP‑2981.
  • Оффчейн-списки и подписи: Сочетание ERC‑721A с ваучерами, подписанными EIP‑712, или доказательствами Меркла позволяет сохранить эффективность и гибкость вашей первичной продажи EIP‑712.

Чек‑лист разработчика: безопасное создание с помощью ERC‑721A

  • Используйте последний проверенный релиз от Chiru Labs и прочитайте заметки по безопасности репозитория перед выпуском в продакшн ERC721A на GitHub.
  • Сохраняйте последовательность идентификаторов токенов для максимальной экономии газа; избегайте пользовательских схем идентификаторов, которые нарушают вывод последовательного владения.
  • Если вам необходимо выпускать токены во время создания контракта в очень больших количествах, рассмотрите опцию ERC‑2309 ConsecutiveTransfer и убедитесь, что ваш стек индексаторов ее понимает ERC‑2309.
  • Будьте осторожны при добавлении пользовательского хранилища в упакованную структуру владения; несоответствие или слишком широкие типы могут свести на нет экономию. Просмотрите правила упаковки хранения Solidity Структура хранения Solidity.
  • Тестируйте граничные условия: переводы и сжигания на краях диапазонов, расширения перечисления и взаимодействие с торговыми площадками, которые полагаются на перечисление токенов.
  • Проводите профилирование с реалистичными размерами пакетов в целевой сети. Экономика газа отличается на основной сети и L2 после Dencun, поэтому измеряйте производительность как при выпуске, так и при передаче с включенными хуками метаданных.

Для коллекционеров и минтёров: что вы заметите

  • Низкий газ при первичном выпуске: пакетный выпуск нескольких NFT в одной транзакции становится намного дешевле, чем выпуск их по одному.
  • Более быстрые релизы под нагрузкой: меньшее количество интенсивных записей в хранилище означает, что выпуски с меньшей вероятностью завершатся неудачей, когда мемпул перегружен.
  • Стандартный пользовательский интерфейс кошелька: поскольку ERC‑721A сохраняет интерфейс ERC‑721, ваш кошелек, списки на торговых площадках и индексаторы продолжают правильно распознавать токены.

Распространенные ошибки и мифы

  • «Это новый стандарт». Не совсем. ERC‑721A — это реализация ERC‑721 с переработанной внутренней структурой; это не меняет публичный интерфейс ERC‑721.
  • «События сжаты, поэтому индексаторы ломаются». Обычные пакетные выпуски по-прежнему генерируют события Transfer для каждого токена. Только дополнительный путь ERC‑2309 сжимает события, и он предназначен для выпусков во время создания контракта ERC‑2309.
  • «Перечисление происходит бесплатно». Нет. Перечисление всех токенов или всех токенов по владельцу намеренно не встроено для экономии газа; если вам это нужно, добавьте запрашиваемое расширение и рассмотрите оффчейн-индексацию.

Взгляд в будущее

Поскольку комиссии L2 снижены за счет блочного пространства и развитой инфраструктуры NFT, создатели теперь выбирают между доказательством происхождения на основной сети и масштабируемостью L2 на основе каждого выпуска. ERC‑721A продолжает оставаться прагматичным выбором по умолчанию для PFP с высоким спросом, наборов генеративного искусства с пакетным выпуском по спискам разрешений и игровых активов, которые хотят совместимости с ERC‑721 без затрат ERC‑721 на пакетный выпуск. Если вы переросли семантику ERC‑721, подумайте, соответствует ли ваш вариант использования естественным образом модели ERC‑1155 для нескольких токенов ERC‑1155.

Безопасное управление ключами по-прежнему важно

Уменьшение газа не меняет самого важного правила: защищайте свои ключи. Выпуски ERC‑721A часто включают подписание сообщений EIP‑712 или быстрое выполнение дорогостоящих транзакций во время горячего выпуска. Аппаратный кошелек, поддерживающий безопасное автономное подписание, многоцепочечные сети и четкое предварительное отображение транзакций, поможет вам уверенно выпускать токены. Аппаратные кошельки OneKey являются открытыми, интегрируются с основным инструментарием Web3 и предоставляют простые рабочие процессы подписи EVM и EIP‑712 — полезные, когда вы эффективно занимаетесь пакетным выпуском, но по-прежнему хотите минимизировать риск подписания.

Быстрые ресурсы

  • Спецификация ERC‑721 ERC‑721
  • Реализация и документация Chiru Labs ERC721A на GitHub
  • Событие ConsecutiveTransfer для выпусков во время создания контракта ERC‑2309
  • Контракты OpenZeppelin (справочник API ERC‑721) Документация OpenZeppelin ERC‑721
  • Справочник по стоимости газа EVM Опкоды и газ EVM
  • Динамика комиссий Dencun и L2 в 2024–2025 гг. Ethereum Foundation: Dencun
  • Альтернативный стандарт для полувзаимозаменяемых/пакетных токенов ERC‑1155
  • Сигнализация роялти EIP‑2981
  • Типизированные подписи данных для списков разрешений EIP‑712

ERC‑721A не изменил того, чем являются NFT — он изменил то, насколько эффективно мы можем их создавать. В мире, где блочное пространство ограничено, а внимание мимолетно, это значительное улучшение.

Защитите свое криптопутешествие с OneKey

View details for OneKey ProOneKey Pro

OneKey Pro

По-настоящему беспроводной. Полностью автономный. Самый продвинутый, изолированный от интернета, холодный кошелёк.

View details for OneKey Classic 1SOneKey Classic 1S

OneKey Classic 1S

Ультратонкий. Удобен для ношения в кармане. Надежный банковский уровень.

View details for OneKey SifuOneKey Sifu

OneKey Sifu

Индивидуальная настройка кошелька с экспертами OneKey.

Читать дальше