НОВОЕ: Helius приобретает Light Protocol
сжатие NFT в Solana
Блог/Основы

Исследуем сжатие NFT в Solana

Сооснователь и CEOMert Mumtaz в XMert Mumtaz в LinkedIn
Чтение: 8 мин

Одним из недавних достижений в мире криптовалют стало появление цифровых активов — их обычно называют невзаимозаменяемыми токенами, или сокращенно NFT. NFT обеспечивают устойчивое к цензуре владение цифровыми активами, такими как произведения искусства, игровые предметы и билеты. Кроме того, они позволяют создавать динамичные одноранговые экономики для работы с этими активами. Можно даже утверждать, что NFT стали вторым крупным применением криптовалют, достигшим соответствия продукта рынку (Product Market Fit, PMF), после концепции цифровых денег.  

Однако у NFT есть свои сложности.

В частности, одной из основных проблем в Solana была стоимость хранения этих активов в блокчейне. Комиссии за транзакции в Solana очень низкие, но с хранением данных ситуация иная. Чтобы цифровые активы стали по-настоящему повсеместными, их хранение должно быть максимально доступным. Эту задачу решает сжатие NFT в Solana.

Сжатие NFT открывает путь к новому поколению криптоприложений. Оно позволяет разработчикам и создателям выпускать большие объемы NFT со значительно меньшими затратами. Представьте MMORPG, в которой игровые предметы представлены торгуемыми NFT, а экономика игры бесшовно интегрирована в глобальную экономику. Такие игры могут содержать миллионы и даже миллиарды предметов, выпуск которых в блокчейне вроде Ethereum обошелся бы в целое состояние. Благодаря сжатию NFT это уже возможно в Solana.

Чтобы оценить возможности этой технологии, рассмотрим пример: Polygon, решение для масштабирования Ethereum, сейчас взимает около 0,05 USD за выпуск одного NFT. Таким образом, выпуск примерно миллиарда NFT в Polygon обойдется приблизительно в 50 миллионов долларов.

В Solana со сжатием стоимость одного NFT составляет около 0,0000005 SOL. На момент написания статьи выпуск миллиарда NFT обойдется примерно в 11 000 USD. Это на ~50 миллионов долларов, или примерно на три порядка, дешевле. В этом и заключается преимущество сжатия.

Но как работает сжатие? Давайте разберемся.

Основы NFT в Solana (необязательно)

Прежде чем перейти к сжатию, рассмотрим, как работают NFT в Solana. Если вы уже знакомы с NFT в Solana, можете перейти к следующему разделу.

Токены в Solana используют два типа аккаунтов: аккаунты mint и аккаунты token. Аккаунт mint содержит общую информацию о токене, например его предложение. Аккаунт token связывает токен с другим аккаунтом пользователя.

Например, если пользователь A получает 1500 USDC, эти токены будут храниться в аккаунте токена USDC пользователя A, который создается на основе его основного аккаунта. Этот процесс применяется ко всем токенам. Если я хочу отправить пользователю A 100 USDT, Transfer Program сначала создаст аккаунт токена USDT пользователя A, если его еще нет, или найдет существующий аккаунт.

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

NFT в Solana — это токены с единичным предложением, то есть каждый из них существует в единственном экземпляре. Metaplex также представила Token Metadata Program, которая связывает с NFT аккаунт metadata. Аккаунт метаданных содержит название, символ, коллекцию и, конечно, само изображение NFT. Это довольно обширная тема, поэтому мы не будем рассматривать ее подробнее.

Основы сжатия

Цель сжатия — уменьшить объем данных, хранящихся в блокчейне. Для этого данные, например метаданные изображения, хранятся в деревьях Меркла в реестре Solana, а их корни — в блокчейне.

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

Хорошо, давайте не спешить. Что такое дерево Меркла?

Дерево Меркла — это структура данных, которая позволяет быстро и эффективно проверять целостность больших объемов данных. Для этого данные разбиваются на небольшие части, называемые «листьями», а затем листья объединяются во все более крупные «узлы».

Каждый узел дерева представляет собой хеш дочерних узлов. Родительский узел объединяет хеши дочерних узлов, создавая собственный уникальный хеш. Этот процесс повторяется, пока все листья не будут объединены в единый хеш на вершине дерева, который называется «корневым хешем». С помощью корневого хеша можно проверить полноту и неизменность всех данных в дереве, не проверяя каждый отдельный лист.

Сжатие в Solana работает на базе программы сжатия аккаунтов. Она позволяет разработчикам создать аккаунт дерева Меркла, в котором хранится корневой хеш. Затем разработчики могут добавлять новые листья или заменять существующие. Для любой замены листа требуется «путь доказательства» — наименьшее подмножество дерева, содержащее лист и все узлы, необходимые для вычисления корневого хеша. Программа сжатия сопоставляет доказательство с корневым хешем, чтобы проверить достоверность данных. Это необходимо, поскольку фактическое содержимое дерева не хранится в блокчейне.

Таким образом, программа сжатия позволяет разработчикам создавать деревья Меркла, а также добавлять и обновлять их элементы. История дерева доступна в реестре Solana, поскольку каждое действие выполняется через транзакции Solana. Если индексатор или RPC-провайдер перестанет работать либо разработчик решит сменить провайдера, все дерево можно восстановить, воспроизведя его историю.

Наконец, корень дерева хранится в блокчейне для проверки данных и обеспечения безопасности. В результате системе не требуется хранить состояние в блокчейне. Это снижает расходы и фактически «сжимает» данные.

Сжатие NFT

Сжатие NFT работает на базе программы Bubblegum. Bubblegum использует программу сжатия для хранения каждого NFT в дереве Меркла, устраняя необходимость в аккаунтах mint, token и metadata. Именно поэтому сжатые NFT настолько дешевы.

Чтобы выпустить сжатый NFT, достаточно добавить новый элемент в дерево Меркла. Каждый добавленный элемент содержит название NFT, коллекцию, владельца и другие сведения. Помимо выпуска NFT, Bubblegum также предоставляет следующие методы:

  • Transfer
  • Burn
  • Delegate, CancelDelegate
  • Burn
  • Redeem, CancelRedeem
  • Decompress
  • VerifyCreator, SetAndVerifyCreator
  • VerifyCollection, SetAndVerifyCollection

Мы также подготовили документацию, которая поможет вам начать работу с этими методами. Она доступна здесь.

Чтение сжатых NFT

Самый простой способ читать сжатые NFT — использовать API стандарта цифровых активов (DAS). Это открытая спецификация и система с единым интерфейсом для запросов данных о токенах. Система работает на базе индексатора, который обрабатывает все транзакции Bubblegum и хранит деревья Меркла. Кроме того, API позволяет искать NFT по создателю, коллекции и владельцу. Да, вы не ошиблись. DAS API работает не только со сжатыми, но и с обычными NFT в Solana. Это означает, что вы можете получить список выпущенных NFT из блокчейна или просмотреть все NFT, которыми владеет пользователь или программа, с помощью одного быстрого вызова API.

Мы также подготовили документацию по этому API и добавили пример кода, который поможет вам начать работу. Она доступна здесь.

Сценарии использования сжатия

На момент написания статьи технология сжатия существует всего несколько недель, но уже создаются впечатляющие сценарии ее использования. Вот несколько примеров:

  • Dialect использует сжатие NFT для наборов стикеров в чатах
  • Helium использует сжатие NFT для представления точек доступа Helium Hotspots
  • Crossmint использует сжатие NFT для аирдропов среди сотен тысяч людей и предоставляет API для выпуска NFT, который вы можете опробовать
  • Drip Haus использует сжатие NFT для проведения массовых аирдропов
  • Render рассматривает переход на Solana, чтобы использовать сжатие NFT для токенизации целых графов сцен при рендеринге на GPU

Начните создавать будущее цифровых активов

Хотите работать со сжатыми NFT? Начните создавать проекты с Helius уже сегодня. Helius поддерживает сжатие NFT и предоставляет DAS API как в Devnet, так и в Mainnet. Вы можете бесплатно создать ключ API здесь, не указывая адрес электронной почты или данные банковской карты. Просто подключите кошелек Solana. Еще не знаете, как выпустить сжатый NFT? Ознакомьтесь с нашим открытым репозиторием примеров сжатия. Нам не терпится увидеть, что вы создадите!

Подпишитесь на Helius

Следите за новостями разработки на Solana и получайте уведомления о наших публикациях

Увеличенное изображение