ERC-6551: Как NFT могут владеть кошельками

16 окт. 2025 г.
ERC-6551: Как NFT могут владеть кошельками

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

• ERC-6551 связывает кошелек смарт-контракта с NFT ERC-721, позволяя им хранить активы и выполнять транзакции.

• NFT могут владеть другими NFT и токенами, создавая самодостаточные контейнеры активов.

• Стандарт улучшает безопасность и удобство делегирования доступа к активам.

• TBA могут быть использованы для создания компонуемых игровых персонажей и переносимых идентификаторов.

• Внедрение ERC-6551 ожидается в 2025 году, что потребует внимания к пользовательскому опыту и одобрениям.

Невзаимозаменяемые токены (NFT) развиваются от статических коллекционных предметов до программируемых идентификаторов, которые могут владеть активами, совершать транзакции и взаимодействовать с децентрализованными приложениями. ERC-6551, также известный как Token Bound Accounts (TBA), — это стандарт, который делает это возможным, предоставляя каждому NFT собственный смарт-кошелек. В этой статье объясняется, как работает ERC-6551, почему это важно, а также рассматриваются вопросы безопасности и пользовательского опыта с практическими ссылками для разработчиков и пользователей.

Что такое ERC-6551, в одном предложении

ERC-6551 определяет реестр и интерфейс счета, который связывает кошелек смарт-контракта с NFT ERC-721, позволяя NFT хранить токены, NFT и разрешения, а также выполнять транзакции независимо от владельца-человека — при этом контроль автоматически следует за текущим владельцем этого NFT. Подробности см. в официальном EIP: EIP-6551: Token Bound Accounts.

Строительные блоки

  • NFT ERC-721: ERC-6551 разработан для ERC-721, канонического стандарта NFT на Ethereum и EVM-совместимых сетях. Если вам нужно освежить знания о семантике владения ERC-721, обратитесь к документации Ethereum: ERC-721 Non-Fungible Token Standard.
  • Реестр: Единый контракт реестра предоставляет функции createAccount и account для развертывания или вычисления адреса TBA для любого данного NFT (chainId, tokenContract, tokenId). Он позволяет использовать детерминированные адреса через CREATE2, поэтому TBA может быть известен до его развертывания. Ссылка: EIP-1014 (CREATE2).
  • Счет: TBA — это контракт смарт-кошелька, реализующий интерфейс счета ERC-6551 (например, executeCall, owner, isValidSignature). Он может хранить ERC-20, другие NFT и метаданные. Проверки контроля разрешаются текущему владельцу NFT.

Обзор для разработчиков и примеры: Документация TokenBound. Для доступного введения см. обзор Alchemy: What is ERC-6551? и объяснение от thirdweb: ERC-6551: Token Bound Accounts.

Как NFT могут владеть кошельками (механизм)

  1. Вывод адреса: Адрес TBA детерминированно выводится из входных данных: chainId, контракт NFT, tokenId, реализация и salt через CREATE2. Вы можете вычислить его без развертывания счета.
  2. Развертывание счета: Когда это необходимо, реестр развертывает счет. Теперь идентификатор NFT имеет кошелек смарт-контракта.
  3. Поток управления: Функция owner() счета считывает текущего держателя NFT. При передаче NFT контроль над TBA автоматически переходит к новому владельцу — ключи или подписи перемещать не нужно.
  4. Выполнение: Владелец (или разрешенные операторы) может инициировать executeCall для взаимодействия с DeFi, минтинга активов или управления разрешениями от имени идентификатора TBA, а не от внешнего счета пользователя (EOA).
  5. Компонуемость: TBA сам по себе может хранить ERC-20, другие ERC-721 и разрешения в блокчейне. NFT становится самодостаточной «капсулой» активов и возможностей.

Почему это важно

  • Компонуемые аватары: NFT игрового персонажа может владеть NFT снаряжения, зельями (ERC-20) и достижениями. Торговля персонажем означает торговлю всей его экипировкой, а не только базовым токеном. Пример архитектуры: Документация TokenBound.
  • Переносимая идентичность: Единый NFT может представлять межприложения идентификатор с историей кошелька, значками репутации и собственными правами доступа.
  • Ликвидные наборы: Создатели могут продавать коллекцию активов, передавая один NFT — покупатель получает весь инвентарь, хранящийся в его TBA.
  • Более безопасные делегирования: Вместо делегирования с вашего личного EOA, вы можете делегировать доступ с TBA NFT с ограниченными областями действия.
  • Синергия абстракции счета: TBA могут быть реализованы как смарт-кошельки, совместимые с расширенными потоками, такими как ключи сессий и плательщики (paymasters). Для справки см. EIP-4337: Account Abstraction.

Текущие сигналы экосистемы

  • Стандартизация: ERC-6551 — это принятый EIP с эталонным реестром и интерфейсом счета, обеспечивающий единообразную межпроектную поддержку. Спецификация: EIP-6551.
  • Библиотеки и инструменты: SDK и адреса реестра TokenBound упрощают интеграцию TBA в dApps. Документация: Документация TokenBound.
  • Обучение разработчиков: Крупные платформы для разработчиков теперь предоставляют руководства и шаблоны для ERC-6551, что указывает на растущее внедрение и эксперименты. Ссылки: Обзор Alchemy и Объяснение thirdweb.

Как и в случае с большинством стандартов, поддержка пользовательского интерфейса в кошельках и на торговых площадках варьируется в зависимости от сети и проекта. Ожидайте дальнейшего прогресса в течение 2025 года, поскольку игры, социальные протоколы и поставщики NFT-инфраструктуры будут добавлять нативную поддержку TBA.

Основные шаблоны пользовательского опыта

  • Инвентарные NFT: Позвольте TBA персонажа владеть предметами, которые игрок приобретает в игре. Листинг персонажа означает передачу всего инвентаря.
  • Предустановки разрешений: Храните ключи сессий или делегатов с ограниченными правами доступа в TBA для беспрепятственной игры или социальных действий, вместо глобальных одобрений с личного EOA.
  • Постепенное раскрытие: В пользовательском интерфейсе представляйте «Принадлежит NFT» в качестве основного действующего лица при взаимодействии с dApp — минимизируя путаницу между EOA пользователя и TBA NFT.
  • Переносимые наборы: Реализуйте политики «передать с содержимым» или «стереть содержимое при передаче», определяемые создателем, для балансировки безопасности и функциональности.

Модель безопасности и лучшие практики

TBA улучшают компонуемость, но вводят новые операционные риски. Учитывайте:

  • Перенос одобрений: Если TBA имеет оставшиеся одобрения (разрешения ERC-20 или одобрения NFT), передача NFT передает эти одобрения покупателю. Это может быть опасно, если было одобрено вредоносное средство расходования. Более безопасные шаблоны:
    • Очищайте разрешения при передаче или при выставлении на продажу.
    • Используйте лимиты расходов вместо неограниченных одобрений.
    • Отображайте предупреждения о разрешениях в пользовательском интерфейсе до передачи.
  • Проверки владения: Убедитесь, что счет последовательно применяет owner() к текущему держателю ERC-721 во время выполнения. Следуйте интерфейсам, определенным в спецификации: EIP-6551.
  • Повторное воспроизведение и область действия подписи: Если ваш TBA поддерживает офчейн-подписи (isValidSignature), защититесь от повторного воспроизведения между сетями и контрактами; используйте структуры EIP-712 с разделением доменов.
  • Риски обновлений: Если вы используете обновляемые TBA, обеспечьте безопасность администратора и логики обновлений; предпочитайте минимальные, проверенные реализации.
  • Восстановление и хранители: Рассмотрите возможность резервного копирования (например, социального восстановления) на уровне TBA или через управляющий счет владельца для потребительских сценариев.
  • Координация торговых площадок: Если содержимое существенно влияет на стоимость, торговые площадки должны отражать владения и одобрения TBA. Разработчики могут раскрывать инвентарь TBA через индексаторы.

Для руководства по реализации и заметок по безопасности начните с официальной документации: Документация TokenBound.

Быстрый старт для разработчиков (концептуально)

  • Вычислите адрес TBA для данного NFT с помощью функции account реестра (детерминированно, развертывание не требуется).
  • Разверните TBA через createAccount, когда он впервые потребуется для действия.
  • Реализуйте пользовательские потоки для:
    • Отправки ERC-20 и ERC-721 на адрес TBA.
    • Предоставления операторам с ограниченной областью действия от TBA для действий dApp.
    • Выполнения вызовов dApp через executeCall TBA.
  • Необязательно: используйте функции абстракции счета для спонсирования газа и ключей сессий. Справка: EIP-4337.

Мультичейн и соображения по газу

  • Счета для конкретной сети: Один и тот же NFT в сети A и его мостовое представление в сети B будут иметь разные TBA. Избегайте путаницы между сетями, указывая контекст сети в пользовательском интерфейсе.
  • Экономика газа: TBA являются смарт-кошельками, поэтому их развертывание и выполнение требуют больше газа, чем простой EOA. Абстрагируйте газ для пользователей с помощью плательщиков (paymasters) или мета-транзакций, где это уместно. См. EIP-4337 для шаблонов спонсируемых транзакций.
  • Предварительное вычисление: Благодаря детерминизму CREATE2, dApps могут ссылаться на адрес TBA еще до развертывания и заранее финансировать его или устанавливать разрешения. Ссылка: EIP-1014.

Когда использовать ERC-6551

Используйте TBA, когда сам NFT должен быть действующим лицом или контейнером активов:

  • Игровые идентификаторы и экипировка
  • Членские NFT с учетными данными и квотами
  • Наборы от создателей и кураторские коллекции
  • Социальные идентификаторы со значками репутации

Избегайте TBA для простых коллекционных предметов, которым не нужно совершать транзакции или хранить дополнительные активы, или когда сложность для пользователя перевешивает преимущества.

Как OneKey вписывается в NFT-владеющие кошельки

Контроль над TBA в конечном итоге зависит от безопасности счета, который владеет базовым NFT. Если ваш EOA скомпрометирован, контроль над NFT — и, следовательно, над его TBA — находится под угрозой. Аппаратный кошелек помогает смягчить это, храня приватные ключи в автономном режиме.

OneKey разработан для использования в мультичейн-среде с высокой частотой транзакций Web3, сохраняя при этом высокий уровень безопасности и прозрачность с открытым исходным кодом. Для потоков ERC-6551 OneKey может:

  • Обеспечить безопасность EOA, который владеет вашими NFT и передает их, гарантируя, что контроль над TBA остается в ваших руках.
  • Чисто подписывать сообщения EIP-712 и транзакции смарт-кошельков для dApps, интегрирующих TBA.
  • Предоставлять согласованный мультичейн-опыт в экосистемах Ethereum и EVM, что крайне важно, когда TBA существуют для каждой сети.

Если вы планируете использовать NFT в качестве активных идентификаторов с инвентарем и разрешениями в блокчейне, закрепление владения в аппаратном кошельке, таком как OneKey, снижает вероятность того, что скомпрометированные горячие кошельки смогут захватить контроль над TBA.

Заключение

ERC-6551 превращает NFT в первоклассных действующих лиц в блокчейне со своими кошельками, открывая возможности для создания компонуемых игровых персонажей, переносимых наборов идентификаторов и более безопасных, ограниченных делегирований. Реестр и интерфейсы счетов стандарта упрощают для разработчиков добавление поддержки TBA, а пользователи получают более широкую функциональность от своих NFT. По мере роста внедрения в 2025 году уделяйте пристальное внимание одобрениям, пользовательскому опыту на торговых площадках и интеграции абстракции счета.

Для безопасного участия используйте надежный аппаратный кошелек для управления NFT, которые лежат в основе ваших TBA. OneKey предлагает сочетание безопасности и удобства использования, которое обеспечивает сохранность ваших 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.

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