MSTR Cat

Блокчейн/Уровень VIII · Эпоха мемкоинов/8.2 Solana/Урок 1

SPL-токены и аккаунты

Реестр, в котором каждый баланс — это ключ

МатериалыБлок-эксплорер Solana (Solscan или Solana Explorer)Адрес любого кошелька, в котором хранится несколько токеновБлокнот для записи данных об эмиссии и статусе полномочий

Любопытство

  1. Почему для хранения токена нужно создать отдельный аккаунт и пополнить его?
  2. Как два кошелька могут держать токены одного минта так, чтобы их балансы не мешали обновлениям состояния друг друга?
  3. Что происходит с эмиссией, если ключ mint authority утерян, и что — если он скомпрометирован?

Исследование

  1. В Solana каждый объект системы — это аккаунт. Аккаунт хранит баланс в лампортах (нативная валюта SOL), произвольные данные и программу-владельца, которая определяет, как эти данные можно изменять. Один SOL равен миллиарду лампортов. В отличие от Ethereum, где контракт хранит собственное состояние, программа в Solana не хранит состояния: она работает с переданными ей аккаунтами.
  2. Такое разделение обеспечивает предельный параллелизм. Если десять тысяч пользователей одновременно переводят токены, они обращаются к разным адресам памяти — а именно к своим индивидуальным токен-аккаунтам. Поскольку у этих аккаунтов нет общего изменяемого состояния, сеть может обрабатывать их параллельно без конфликтов. Активность, сосредоточенная на одном общем аккаунте, например популярном торговом пуле, всё равно вынуждена выстраиваться к нему в очередь; именно поэтому Solana оценивает перегрузку отдельно для каждого аккаунта (об этом — в одном из следующих уроков).
  3. Токенами управляет программа SPL Token. Аккаунт минта (Mint) определяет идентичность токена: общее предложение, точность (decimals) и два важнейших полномочия. Mint authority может выпускать новые токены, увеличивая предложение. Freeze authority может блокировать отдельные пользовательские аккаунты, лишая их возможности отправлять или получать токены. Эти полномочия необязательны; многие проекты отзывают оба: отзыв mint authority фиксирует предложение, а отзыв freeze authority означает, что никто не сможет заморозить холдеров.
  4. Каждый кошелёк хранит каждый токен в отдельном токен-аккаунте (Token Account). У большинства пользователей это Associated Token Account (ATA), детерминированно выводимый из их публичного ключа и адреса минта. Благодаря такому выводу адрес ATA предсказуем: зная, кто чем владеет, можно вычислить, где хранятся токены, не обращаясь к блокчейну. На аккаунте должно быть достаточно лампортов, чтобы он был освобождён от ренты (rent-exempt), — это единоразовый депозит, который возвращается при закрытии аккаунта.
  5. Token-2022 расширяет эту модель необязательными функциями, которых нет у стандартных SPL-токенов. Он поддерживает комиссии за перевод: часть каждого перевода в процентах, но не более установленного максимума, удерживается на токен-аккаунте получателя, откуда её забирает назначенный владелец полномочия. Также он позволяет использовать «хуки перевода» (transfer hooks), при которых во время свопа или отправки исполняется пользовательская логика. Эти расширения добавляют сложности, но дают механизмы для роялти и проверок на соответствие требованиям (compliance), которые раньше были невозможны ончейн без внешнего промежуточного ПО.
  6. Чтобы изучить свойства токена, откройте эксплорер Solana, например Solscan или Solana Explorer. Найдите любой адрес минта. Интерфейс покажет общее предложение, decimals и то, активна ли ещё mint authority (то есть можно ли выпускать новые токены) или она отозвана. Если активна freeze authority, её владелец может заморозить токен-аккаунт любого кошелька. Изучив эти поля, можно увидеть риск централизации, заложенный в устройство токена, ещё до того, как будет переведена хотя бы одна единица.

Ключевые факты

  • Каждый аккаунт Solana содержит лампорты (1 SOL = 1,000,000,000 лампортов), данные и программу владельца.
  • Аккаунт минта SPL Token определяет предложение, decimals, mint authority и freeze authority.
  • Associated Token Accounts детерминированно выводятся из адреса кошелька и адреса минта.
  • Чтобы аккаунт оставался в сети и не был закрыт, на нём должен поддерживаться баланс, освобождающий от ренты (rent-exempt).
  • Token-2022 вводит необязательные расширения, такие как комиссии за перевод и хуки, которых нет у стандартных SPL-токенов.
  • Программы в Solana не хранят состояния; они изменяют данные в аккаунтах, переданных им в качестве аргументов.

Упражнение девять, шесть, три, один

9СобратьВыпишите 9 минтов токенов из недавней активности. Укажите их decimals (количество знаков после запятой), активна ли mint authority или отозвана и есть ли freeze authority.
6СгруппироватьСгруппируйте 9 токенов в 6 групп по структуре прав: неизменяемая эмиссия без заморозки, изменяемая эмиссия, включённая заморозка аккаунтов, активные комиссии за перевод, включённые хуки или другие конфигурации.
3Выделить главноеСократите 6 групп до 3 различных профилей риска с точки зрения контроля эмитента над активами холдеров и будущей инфляции предложения.
1КристаллизоватьНапишите одно предложение о том, почему «отозванная» (renounced) mint authority считается более безопасной для долгосрочных холдеров, чем активная, несмотря на меньшую гибкость.

Проверка фактов

Даты, цифры и утверждения были проверены по приведенным ниже опубликованным источникам.

Открыть в интерактивной академии →

EN PT ES ZH JA KO DE FR MS