Soulbound-токены и NFT: что выбрать для цифровых достижений

Сервис, который выдаёт игрокам награду за прохождение босса, веб-школа, подтверждающая прохождение курса, сообщество, выдающее цифровое членство, — всё это сегодня может закрепить достижение в блокчейне.

Soulbound-токены и NFT: что выбрать для цифровых достижений

Проблема начинается там, где нужно выбрать формат: обычный NFT, который можно передать или продать, или soulbound-токен, который прилипает к конкретному аккаунту и не переходит к другому. Оба решения стоят на одних и тех же технологических рельсах, но ведут себя принципиально по-разному, и ошибка в выборе стоит дорого — от нежелательной перепродажи членского бейджа до ситуации, когда игрок, потерявший доступ к кошельку, навсегда теряет все свои достижения.

Путаница усиливается ещё и тем, что многие путают саму идею непередаваемого токена с формальным стандартом, который её реализует. ERC-5192 — это не магическая гарантия неотчуждаемости, а интерфейс, который говорит контракту: «если токен помечен как заблокированный, функции передачи должны завершиться ошибкой». Всё остальное — от приватности до правил выдачи достижений — остаётся на совести разработчика и доверии к эмитенту.

Soulbound-токен не делает достижение истинным — он только фиксирует, кто кому его выдал.

Передаваемая награда или привязанный к аккаунту знак: что именно сравнивать

Перед тем как открывать блокчейн-разработчика, нужно честно ответить на три вопроса о вашем достижении: можно ли его подарить или продать, кому оно принадлежит, и что произойдёт, если владелец потерял доступ к аккаунту.

NFT на основе ERC-721 — это привычный формат цифрового актива. Токен идентифицируется парой «адрес контракта + tokenId», у него есть функции перевода (transferFrom, safeTransferFrom), и владелец в любой момент может передать его другому адресу. Изначально стандарт был задуман для коллекционных предметов и цифрового искусства, где именно передача и есть смысл вещи.

Soulbound-токен на основе ERC-5192 — это расширение того же ERC-721, созданное 1 июля 2022 года. Оно добавляет к привычной архитектуре один критически важный интерфейс: метод locked(tokenId). Если этот метод возвращает true, любые функции ERC-721, которые передают токен между адресами, должны завершаться ошибкой. Контракт дополнительно объявляет поддержку интерфейса через ERC-165 с идентификатором 0xb45a3c0e, и при изменении состояния блокировки генерируются события Locked и Unlocked.

Вот здесь и кроется главное недоразумение, которое я встречаю в обсуждениях на форумах и в ревью контрактов: ERC-5192 не гарантирует, что токен заблокирован навсегда. Стандарт предусматривает и состояние locked, и состояние unlocked — блокировку можно снять. Значит, для конкретного tokenId статус нужно проверять программно, а не предполагать. Это принципиально отличается от того, как многие проектируют «вечные» достижения.

Сравнительная таблица двух подходов:

ПараметрERC-721 (NFT)ERC-5192 (soulbound)
Идентификатор токенаПара (адрес контракта, tokenId)Пара (адрес контракта, tokenId) + метод locked(tokenId)
ПередачаСвободная, через transferFrom / safeTransferFromБлокируется контрактом при locked = true
Статус блокировкиНе предусмотренЕсть locked и unlocked — проверяется для каждого tokenId
События при смене статусаСтандартные TransferДополнительные Locked и Unlocked
Объявление интерфейсаERC-165 с ID стандартаERC-165 с ID 0xb45a3c0e
Метаданные (описание, картинка)Опциональное расширениеНаследует расширения ERC-721
Перечисление токеновОпциональное расширениеНаследует расширения ERC-721

Обратите внимание на одну деталь, которую легко упустить: метаданные и перечисление токенов — это необязательные расширения ERC-721. Формальное соответствие стандарту не гарантирует, что в контракте реализованы tokenURI или tokenOfOwnerByIndex. Перед запуском продукта стоит заложить в план проверки именно эти расширения — без них пользователям будет нечем показать своё достижение, и вся непередаваемость окажется бесполезной: токен есть, а показать его негде.

Игровые награды и членство: где уместны NFT, а где непередаваемые токены

Теперь к юзкейсам. Вот как распределяются две логики по типичным сценариям цифровых достижений.

Передаваемый NFT подходит, если:

  • Цифровой предмет — часть игровой экономики. Игроки покупают и продают скины, оружие, декоративные элементы. Здесь передача и есть ценность: эндшпиль, торговая площадка, аукцион.
  • Награда должна быть подарком. Творческие конкурсы, где приз можно передать другу, коллекционные марки от брендов.
  • Достижение должно мигрировать между площадками. Если ваш токен должен работать одновременно в двух-трёх приложениях, свободная передача упрощает интеграцию: любой кошелёк, любая платформа, любая коллекция.

Soulbound-токен подходит, если:

  • Достижение принадлежит конкретному аккаунту, а не кошельку-портфелю. Диплом об окончании курса, сертификат профессионального членства, значок за достижение в игре, которое игрок заслужил именно своим прогрессом — всё это теряет смысл, если его можно купить или продать.
  • Нужно исключить спекуляцию вокруг выдачи. Если значок стоит денег, он становится товаром, и выдача превращается в торг. Непередаваемость снимает эту проблему.
  • Вы строите репутационную систему. Оценки, уровни, исторические отметки — всё, что формирует личность пользователя в экосистеме, удобнее привязывать к аккаунту.

Но тут есть оговорка, о которой мало кто говорит на этапе планирования. Потеря доступа к аккаунту при soulbound-токенах — это потеря достижения навсегда. В классическом NFT вы можете восстановить кошелёк по seed-фразе, и токены останутся с вами. В soulbound-сценарии, если вы не предусмотрели механизм восстановления, привязка к одному аккаунту становится не фичей, а риском. ERC-5192 не предписывает универсальный способ отзыва, восстановления аккаунта или миграции достижений — всё это остаётся за пределами стандарта и зависит от вашей архитектуры.

Практический чек-лист перед выбором формата:

1. Определите, теряет ли смысл достижение при передаче. Если «да» — soulbound, если «нет» — NFT.

2. Решите, что важнее: возможность продать награду или невозможность купить чужую квалификацию.

3. Продумайте сценарий потери доступа к аккаунту до того, как запускать контракт.

4. Проверьте, реализованы ли в контракте расширения метаданных и перечисления — без них продукт будет неполным.

5. Убедитесь, что вы проверяете locked(tokenId) для каждого токена, а не считаете, что всё в locked навсегда.

Цифровые удостоверения: почему формат токена не заменяет доверие к эмитенту

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

Оба стандарта — и ERC-721, и ERC-5192 — это интерфейсы передачи токена, а не верификаторы истины. Стандарт не гарантирует, что эмитент действительно проверил ваши навыки, не гарантирует подлинность достижения, не гарантирует, что заявление в метаданных соответствует реальности. Он только говорит: «вот контракт, вот владелец, вот tokenId, вот правило передачи».

Это не открытие — но для продуктовых команд это часто становится неприятным открытием. Допустим, вы выпускник курса по разработке смарт-контрактов, и школа выпускает вам soulbound-токен. Вы думаете: «непередаваемый — значит, только мой, значит, подлинный». На деле получается:

  • Непередаваемость защищает от перепродажи чужого членства, но не защищает от подделки самого эмитента. Если школа выпустила токен по ошибке или по коррупционной схеме, вы получите «подлинный» токен от «непроверяемого» источника.
  • Публичность достижения, которого добились soulbound-токены, работает в обе стороны. Вы можете доказать кому угодно, что владеете значком, — и при этом любой, кто посмотрит на ваш адрес, увидит всю вашу историю достижений. Это не баг и не фича — это свойство публичного блокчейна.
  • Доверие к эмитенту остаётся тем же, что и в Web2. Разница только в том, что запись в блокчейне неотчуждаема — исправить ошибку эмитента сложнее, чем отредактировать базу данных.

Для сравнения, W3C опубликовал модель Verifiable Credentials Data Model v2.0 как рекомендацию 15 мая 2025 года — это отдельный подход к цифровым удостоверениям, где стандарт прямо подчёркивает: решение о доверии к эмитентам находится вне области действия самой модели. То есть даже в зрелом стандарте от Web3-консорциума проблема доверия не решается форматом — она остаётся за пределами технического слоя.

Виталик Бутерин в своей статье о soulbound-токенах от 26 января 2022 года подходит к непередаваемости именно как к спектру компромиссов между безопасностью и удобством: от простой проверки «совпадает ли текущий владелец с первоначальным» до привязки к доменному имени. Это важная рамка для продуктовых решений: не «сoulbound — это безопасно», а «какой уровень ограничения вашему юзкейсу достаточно, и какой ценой вы за это платите».

Публичность, приватность и последствия потери доступа

Финальный блок — тот, что чаще всего пропускают на этапе дизайна и потом получают как сюрприз в продакшене.

Приватность. Любой токен на публичном блокчейне виден всем. Soulbound-токен не является исключением — он даже делает ситуацию ярче: непередаваемый значок «участник XYZ» привязан к адресу, и любой, кто знает этот адрес, может увидеть всю цепочку достижений владельца. Бутерин прямо указывает, что публичное отображение SBT может раскрывать сведения о человеке, и предлагает технические подходы к решению: секреты, Merkle-доказательства, ZK-SNARK. Но это отдельный слой разработки, и его нужно закладывать в бюджет, а не надеяться, что «стандарт решит это за нас».

Потеря доступа. Вернёмся к проблеме, о которой я писал выше. Вот раскладка:

СценарийОбычный NFT (ERC-721)Soulbound-токен (ERC-5192)
Потерян кошелёк, seed-фраза естьТокены восстановленыДостижения привязаны к аккаунту — восстановление возможно только если эмитент предусмотрел механизм
Потерян кошелёк, seed-фразы нетТокены утеряныТокены утеряны, плюс привязка к «мёртвому» аккаунту
Хакер получил доступ к аккаунтуТокены можно вывестиТокены не передадутся, если контракт действительно в locked
Эмитент хочет отозвать достижениеНужен отдельный механизмНужен отдельный механизм — ERC-5192 не предписывает универсальный способ отзыва

Последняя строка самая неприятная: команда, выпустившая soulbound-токены, обнаруживает, что для отзыва нужно писать собственную логику — стандарт не даёт готового решения. И при этом она же получает бонус: хакеру сложнее украсть достижение, потому что передача заблокирована.

Итоговая позиция. Выбор между soulbound-токенами и NFT для цифровых достижений сводится к одному вопросу: является ли передача актива частью ценности достижения или её нарушением. Если награда — это предмет, который живёт в экономике и обретает смысл через обмен, берите ERC-721. Если достижение — это отметка о том, что конкретный человек достиг конкретного результата, и смысл теряется при передаче, берите ERC-5192.

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