ERC-721C: Создание компонуемых и обновляемых NFT

Ключевые выводы
• ERC-721C расширяет возможности стандартных NFT, добавляя компонуемость и обновляемость.
• Создатели могут контролировать правила передачи и роялти на уровне смарт-контрактов.
• Обновляемость позволяет адаптироваться к изменениям в экосистеме NFT без миграции токенов.
• Важно учитывать безопасность и прозрачность при реализации обновляемых контрактов.
Невзаимозаменяемые токены (NFT) эволюционировали от статичных коллекционных предметов до программируемых цифровых активов с полезностью в играх, социальных сетях и DeFi. Чтобы удовлетворить эти потребности, создателям все чаще требуются NFT, которые являются одновременно компонуемыми и обновляемыми — так они могут интегрироваться с другими протоколами, развивать свое поведение со временем и сохранять намерения создателя (например, роялти) на уровне смарт-контрактов.
Эта статья исследует ERC-721C как практический путь к компонуемым и обновляемым NFT, сравнивает его с установленными стандартами и рассказывает, что разработчикам следует знать для его безопасной реализации.
Почему компонуемость и обновляемость важны сейчас
-
Компонуемость: NFT должны иметь возможность владеть или присоединять другие активы, взаимодействовать с ончейн-аккаунтами и подключаться к более сложным системам. Существующие разработки, такие как стандарт ERC-721, закладывают основу для NFT, но нам нужны расширения, поддерживающие сложные взаимодействия и графы владения. См. оригинальную спецификацию ERC-721 для контекста на сайте Ethereum EIPs: ERC-721 Non-Fungible Token Standard.
-
Обновляемость: Экосистема NFT и потребности создателей меняются. Обновляемые контракты — использующие прокси-паттерны, такие как EIP-1967 и OpenZeppelin Upgrades Plugins — позволяют командам исправлять уязвимости, итерировать функции или настраивать интеграции без принудительной миграции токенов.
-
Динамика рынка: Принудительное исполнение роялти и политики маркетплейсов были нестабильны с конца 2022 года. Стандарты и реализации, позволяющие настраивать правила передачи, контролируемые создателем, становятся все более важными. Для справки см. публичное обсуждение роялти создателей и изменений маркетплейсов от OpenSea: On Creators and Royalties.
-
Масштабирование: С появлением обновления Dencun и proto-danksharding (EIP-4844) комиссии L2 значительно снизились, что сделало динамичные и интерактивные варианты использования NFT гораздо более доступными. Подробнее читайте в Ethereum Foundation: Dencun Is Live on Mainnet.
Что такое ERC-721C?
ERC-721C — это сообщественная реализация от Limit Break, которая расширяет ERC-721 контролируемыми создателем, программируемыми ограничениями на передачу. Это позволяет создателям применять правила, такие как списки разрешенных маркетплейсов, защита от ботов и ограничения на передачу — все на уровне смарт-контрактов. См. репозиторий и документацию: Limit Break’s ERC-721C.
Ключевые идеи ERC-721C:
- Хуки валидации передачи: Создатели могут реализовать пользовательскую логику в проверках перед передачей для применения политик с течением времени.
- Контроль маркетплейсов/операторов: Контракты могут фильтровать или разрешать определенные операторы, помогая применять политики роялти при необходимости.
- Основа для компонуемости: Поскольку поведение передачи программируемо, ERC-721C предоставляет гибкую основу для координации с другими стандартами, повышающими компонуемость.
Хотя ERC-721C не является официальным EIP, он решает реальные потребности создателей и студий, развертывающих NFT в большом масштабе.
Паттерны компонуемости для использования с ERC-721C
ERC-721C становится более мощным при использовании наряду со стандартами и паттернами, изначально ориентированными на компонуемость:
-
Токен-связанные аккаунты (Token-bound accounts): Привяжите ончейн-аккаунт к каждому NFT, чтобы токен мог владеть активами, выполнять транзакции и поддерживать состояние. Это позволяет использовать «NFT как кошельки», идеально подходящие для ончейн-игр и социальных бейджей. См. предложение: ERC-6551 Token Bound Accounts.
-
Вложенные или компонуемые NFT: Представляйте деревья владения, где один NFT может принадлежать другим NFT или взаимозаменяемым активам (скины, предметы, улучшения). См. черновик предложения по вложенному владению: EIP-998 Composable NFTs.
-
Роялти как первоклассный примитив: Примите стандартный интерфейс для информации о роялти, чтобы маркетплейсы могли считывать ее последовательно. Объедините правила передачи ERC-721C с ERC-2981 NFT Royalty Standard для согласования стимулов и обеспечения намерений создателя.
-
Оптимизация газа для минтинга: Используйте эффективные реализации минтинга, когда это уместно, чтобы минимизировать затраты и улучшить пользовательский опыт, особенно для больших выпусков. См. подход Azuki: ERC-721A.
-
Кросс-чейн компонуемость: Если ваши активы или пользователи охватывают несколько сетей, планируйте безопасную передачу сообщений. Chainlink CCIP предоставляет проверенную инфраструктуру для кросс-чейн логики и перемещения активов: Chainlink CCIP.
Эти компоненты легко накладываются на ERC-721C: позвольте токен-связанным аккаунтам управлять вложениями, контролируйте передачи с помощью политик ERC-721C и предоставляйте информацию о роялти через ERC-2981.
Правильная реализация обновляемости
Обновляемость — это мощный инструмент, но им следует пользоваться осторожно, чтобы защитить держателей и сохранить доверие.
Рекомендуемый подход:
- Прокси-паттерны: Используйте слоты хранения EIP-1967 и OpenZeppelin Upgrades Plugins для развертывания прозрачных прокси или прокси UUPS.
- Управление и таймлоки: Используйте ончейн-управление или мультисиг для управления обновлениями, с таймлоками для прозрачности и периодами отказа, когда это возможно.
- Явная политика обновлений: Документируйте, что может быть изменено, что неизменяемо (например, название/символ или основные правила метаданных) и как держатели будут уведомлены.
- Аудиты и симуляция: Проводите формальные аудиты и тестируйте сценарии обновлений на этапе разработки. Проверяйте миграцию состояния с помощью форк-тестов перед выполнением в основной сети.
- Подписи и разрешения: Используйте типизированные подписи для критически важных действий, чтобы минимизировать человеческие ошибки в административных ролях. Ссылка: EIP-712 Typed Structured Data.
Для обнаруживаемости контрактов и прозрачности убедитесь, что прокси и реализация проверены и хорошо аннотированы в обозревателях. Etherscan предоставляет руководство по обновляемым прокси: Understanding Proxy Contracts on Etherscan.
Проектирование ERC-721C для компонуемости
Чтобы спроектировать NFT на базе ERC-721C, который остается компонуемым и обновляемым:
- Сохраняйте стабильность интерфейсов: Определите внешние интерфейсы, которые, как вы ожидаете, будут вызывать другие протоколы, и избегайте нарушающих изменений. Вводите новые функции за флагами функций или расширенными интерфейсами.
- Изолируйте логику политик: Инкапсулируйте логику ограничений передачи и роялти в модулях, чтобы их можно было обновлять независимо, в то время как основное состояние токена остается стабильным.
- Поддержка токен-связанных аккаунтов: Предоставьте хуки, позволяющие токен-связанным аккаунтам управлять вложениями, инвентарем или разрешениями от имени владельца NFT, в соответствии с ERC-6551.
- Публикуйте обязательства по метаданным: Если вы обещаете определенное поведение метаданных (например, постоянство черт после раскрытия), обеспечьте его выполнение в коде и публикуйте правила, чтобы маркетплейсы и индексаторы могли доверять вашим сигналам.
Реальные примеры использования
- Игры и цифровые товары: Механики экипировки и улучшения, инвентарь и скины, принадлежащие самому токену. Ограничения передачи предотвращают эксплойты, такие как MEV-снайпинг или обход прогресса в игре.
- Коллекционные предметы, связанные с DeFi: Токен-связанные аккаунты владеют LP-токенами или приносящими доход активами; правила ERC-721C защищают от небезопасных передач во время заблокированных состояний.
- Пропуска членства в брендах: Роялти и политики перепродажи, принудительно исполняемые на цепочке; динамические преимущества, предоставляемые посредством обновлений без нарушения ожиданий держателей.
- Ончейн-идентичность: Компонуемые бейджи, представляющие навыки или достижения, вложенные в основной NFT-идентификатор, с контролируемой передаваемостью.
Чек-лист безопасности для обновляемых, компонуемых NFT
- Используйте проверенные аудиторами библиотеки, такие как OpenZeppelin, для ERC-721, прокси и контроля доступа. См. документацию: OpenZeppelin Upgrades Plugins.
- Избегайте коллизий макета хранения при обновлении. Следуйте соглашениям о слотах хранения EIP-1967 и поддерживайте пробел в хранении для будущих переменных.
- Тщательно контролируйте административные функции; отдавайте предпочтение мультисигу или таймлоку с прозрачными ончейн-записями.
- Реализуйте процедуры экстренной остановки и восстановления, с социализированной коммуникацией перед применением основных изменений.
- Проверяйте интероперабельность с маркетплейсами, реализуя ERC-2981 и тестируя фильтры операторов, если вы их используете.
- Учитывайте безопасность кросс-чейн. Используйте проверенные решения для мостов, такие как Chainlink CCIP, и явно указывайте поддерживаемые сети.
Быстрый старт: путь разработчика
- Начните с базовой реализации ERC-721 и интегрируйте хуки валидации передачи ERC-721C. Ссылка: Limit Break’s ERC-721C.
- Добавьте интерфейсы роялти через ERC-2981 для передачи информации о роялти маркетплейсам.
- Разверните за прокси, используя OpenZeppelin Upgrades Plugins, и определите роли управления для обновлений.
- Введите токен-связанные аккаунты через ERC-6551, чтобы NFT мог владеть активами и управлять ими.
- Тестируйте контроль передачи на распространенных маркетплейсах и L2, особенно в среде после Dencun, где комиссии L2 способствуют более частым взаимодействиям.
Для создателей и студий
ERC-721C предлагает прагматичный путь для согласования технологий с бизнес-потребностями: обеспечивайте исполнение политик роялти и передачи без ущерба для компонуемости и используйте обновляемые контракты, которые могут адаптироваться к будущим интеграциям. Объединение ERC-721C со стандартами, такими как ERC-2981 и ERC-6551, создает надежную основу для интерактивных, ориентированных на полезность NFT.
Защитите свои ключи обновления с помощью OneKey
Если вы используете обновляемые контракты NFT, ваши административные ключи и подписанты мультисига становятся критически важной инфраструктурой. Аппаратный кошелек OneKey обеспечивает автономную, проверяемую подпись для защиты от фишинга и кражи ключей во время критически важных операций, таких как обновления, изменения ролей и перемещение казначейских средств. Для команд, управляющих контрактами ERC-721C, использование безопасного подписанта снижает операционные риски и помогает поддерживать доверие держателей при выполнении обновлений, одобренных управлением.
Сочетая строгий процесс обновлений, компонуемые стандарты и безопасное управление ключами, вы можете предоставлять NFT, которые одновременно устойчивы к будущему и соответствуют интересам создателей.