Что такое освобождение от платы за хранение в криптовалюте?
Освобождение от платы за хранение — это правило блокчейна, согласно которому аккаунт должен хранить достаточно нативной криптовалюты для покрытия установленной стоимости хранения данных в блокчейне. Благодаря этому аккаунт может оставаться активным и не опускаться ниже минимального баланса, установленного сетью.В криптовалютной сфере этот термин чаще всего используют в экосистеме Solana: аккаунты Solana хранят и балансы, и данные, поэтому в каждом аккаунте должно быть минимальное количество лампортов, чтобы эти данные оставались в блокчейне.Лампорт — это наименьшая единица SOL. В документации Solana о структуре аккаунта указано, что 1 SOL равен 1,000,000,000 лампортов.
Освобождение от платы за хранение не означает, что пользователь ежемесячно платит аренду по подписке.Обычно это больше похоже на возвратный депозит за хранение, который заблокирован в аккаунте, пока тот существует.Если аккаунт закрыт надлежащим образом, баланс, зарезервированный для освобождения от платы за хранение, можно вернуть владельцу аккаунта или отправить по другому адресу, указанному в инструкции закрытия.Зачем нужно освобождение от платы за хранение
Публичные блокчейны должны ограничивать объем постоянно хранимых пользователями и приложениями данных, поскольку каждому валидатору или узлу необходимо обрабатывать, проверять и поддерживать состояние сети.Если бы хранение данных аккаунтов было полностью бесплатным, спам-аккаунты могли бы раздувать состояние сети и повышать стоимость эксплуатации блокчейна.Освобождение от платы за хранение вводит экономическую стоимость использования хранилища в блокчейне.Это побуждает разработчиков хранить в блокчейне только необходимые данные, а большие файлы, журналы и временную информацию по возможности переносить в более дешевые офчейн-системы.Пользователям это правило объясняет, почему для создания аккаунта токена, взаимодействия с децентрализованным приложением или получения определенного актива кошельку может потребоваться небольшое количество нативной криптовалюты.Для разработчиков освобождение от платы за хранение — важная часть проектирования аккаунтов, поскольку чем больше аккаунт, тем больше требуется депозит.Как работает освобождение от платы за хранение в Solana
В Solana состояние хранится в аккаунтах. В документации Solana об аккаунтах каждый аккаунт описывается как единица данных с уникальным адресом.
Каждый аккаунт Solana включает такие поля, как lamports, data, owner, executable и rent_epoch.Поле lamports содержит баланс аккаунта, а поле data — информацию, контролируемую программой-владельцем аккаунта.Необходимый баланс для освобождения от платы за хранение в основном зависит от размера данных аккаунта: чем больше данных, тем больше места в сети они занимают.Согласно текущей документации Solana, минимальный баланс для освобождения от платы за хранение рассчитывается как размер аккаунта плюс 128 байт, умноженные на 3,480 лампортов на байт в год, а затем на два года.Следовательно, для достижения порогового значения аккаунту с большим объемом данных требуется больше лампортов.Практический вывод прост: чем больше данных в аккаунте, тем больше необходимый депозит для освобождения от платы за хранение.Поскольку значения протокола, поведение кластера и форматы аккаунтов могут меняться, разработчикам не следует полагаться только на жестко заданное число.Надежнее запросить у сети текущий минимальный баланс перед созданием аккаунта или изменением его размера.Как рассчитать минимальный баланс для освобождения от платы за хранение
Стандартный способ рассчитать такой баланс — использовать метод RPC getMinimumBalanceForRentExemption.
Этот метод возвращает количество лампортов, необходимое для освобождения аккаунта заданного размера от платы за хранение.В качестве входных данных указывается длина данных аккаунта в байтах.Результат выражен в лампортах. Чтобы перевести его в SOL, нужно разделить число на 1,000,000,000.В руководстве Solana Cookbook по расчету стоимости создания аккаунта показано, как разработчики могут вызвать этот метод перед пополнением аккаунта.
Это полезно для кошельков, децентрализованных приложений, программ смарт-контрактов, инструментов для работы с токенами и любых сервисов, создающих аккаунты пользователей в блокчейне.Например, разработчик, которому нужно создать аккаунт с данными размером 1,500 байт, может запросить минимальный баланс для 1,500 байт и внести в аккаунт не менее соответствующего количества лампортов.Так можно избежать ошибки создания аккаунта из-за недостаточного депозита за хранение.Это также не позволяет пользователям переплачивать из-за устаревшей оценки, случайно использованной разработчиком.Освобождение от платы за хранение и аккаунты токенов
Освобождение от платы за хранение особенно актуально, когда пользователи работают с токенами в Solana.Баланс токена не всегда хранится там же, где основной баланс кошелька пользователя.Часто для токена нужен отдельный аккаунт, в котором хранятся данные о владельце, минте, сумме, статусе делегирования и другие сведения, связанные с токеном.В документации Solana об аккаунтах токенов объясняется, что связанные аккаунты токенов (associated token accounts) создаются по детерминированным адресам на основе сочетания кошелька, программы токенов и минта.
Благодаря этому кошелькам и приложениям проще находить стандартный аккаунт токена для конкретного актива.Для нового аккаунта токена необходимо внести достаточно лампортов, чтобы он соответствовал требованиям освобождения от платы за хранение.Поэтому при первом получении, оборачивании или управлении токеном пользователь может увидеть, что используется небольшое количество SOL.Этот депозит отличается от торговой комиссии и комиссии за транзакцию в сети.Это минимальный баланс, необходимый для хранения аккаунта токена в блокчейне.Освобождение от платы за хранение и комиссии за транзакции
Освобождение от платы за хранение и комиссии за транзакции — это разные расходы.Комиссия за транзакцию оплачивает обработку конкретной транзакции.Депозит для освобождения от платы за хранение обеспечивает длительное хранение данных аккаунта.Комиссии за транзакции обычно расходуются при обработке транзакции.Баланс, зарезервированный для освобождения от платы за хранение, обычно можно вернуть, если аккаунт закрыт надлежащим образом и программа позволяет его закрыть.Это различие важно, поскольку пользователи могут подумать, что депозит за хранение пропал навсегда.Во многих случаях средства просто заблокированы в аккаунте, используемом для хранения данных.В интерфейсе кошелька они могут отображаться как недоступный баланс, зарезервированные SOL, депозит аккаунта или плата за хранение.Конкретная формулировка зависит от кошелька или приложения.Почему пользователям важно знать об освобождении от платы за хранение
Это правило влияет на количество нативной криптовалюты, необходимое для выполнения определенных действий в блокчейне.Помимо основной комиссии за транзакцию пользователю может понадобиться дополнительное количество SOL для создания нового аккаунта токена или аккаунта программы, взаимодействия с децентрализованным приложением либо оборачивания нативного SOL в токенизированную форму.Если баланса кошелька недостаточно, транзакция может завершиться неудачно, даже если отображаемая комиссия сети невелика.Это может запутать новичков: средств может хватать на комиссию за транзакцию, но не на депозит для освобождения от платы за хранение.Освобождение от платы за хранение может также ограничить максимальное количество SOL, которое пользователь может вывести из кошелька.Если перевод слишком большого количества SOL опустит аккаунт ниже необходимого баланса, транзакция может быть отклонена или кошелек автоматически оставит небольшую сумму.Это защитная функция, а не скрытая комиссия.Она помогает поддерживать соответствие аккаунта правилам сети.Почему разработчикам важно знать об освобождении от платы за хранение
Разработчикам следует учитывать это требование при проектировании структуры аккаунтов.Каждый дополнительный байт в аккаунте может увеличить требуемый депозит.Продуманная структура аккаунта снижает расходы пользователей и упрощает работу с приложением.Не следует хранить в данных аккаунта лишний текст, повторяющуюся информацию, большие массивы или временное состояние.Кроме того, минимальный баланс следует рассчитывать динамически при создании аккаунта.Использование актуального метода RPC помогает приложению оставаться точным, если в будущем изменятся константы, связанные с платой за хранение, или правила работы аккаунтов.Перед тем как просить пользователей одобрить транзакцию, приложение должно четко объяснить, что означает депозит для освобождения от платы за хранение.Удобный интерфейс может показывать комиссию за транзакцию и депозит за хранение отдельными строками, чтобы пользователи понимали, какая сумма расходуется, а какую, возможно, можно вернуть.Это особенно важно для приложений, которые создают много аккаунтов, например игр, маркетплейсов, кошельков, инструментов автоматизации и платформ для управления токенами.Как вернуть депозит за хранение
Часто вернуть баланс, зарезервированный для освобождения от платы за хранение, можно, закрыв больше не нужный аккаунт.В Solana Cookbook отмечается, что после закрытия аккаунта плату за хранение можно вернуть полностью.При закрытии пустого аккаунта токена его баланс, зарезервированный для освобождения от платы за хранение, можно отправить на выбранный адрес.Обычно перед закрытием аккаунт должен быть пустым или соответствовать правилам конкретной программы.Например, аккаунт токена, как правило, нельзя закрыть, пока на нем остается баланс токена.Для аккаунтов, принадлежащих программам, могут действовать специальные инструкции закрытия либо их может быть невозможно закрыть.Перед закрытием следует внимательно проверять запросы кошелька: закрытие аккаунта удаляет его данные из блокчейна.После закрытия исторический адрес аккаунта может по-прежнему отображаться в обозревателях, но актуальные данные закрытого аккаунта больше недоступны как данные действующего аккаунта.Распространенные заблуждения об освобождении от платы за хранение
Одно из распространенных заблуждений состоит в том, что плата за хранение взимается регулярно.Для пользователя ее лучше понимать как минимальный баланс, необходимый для хранения данных.Другое заблуждение заключается в том, что депозиты для освобождения от платы за хранение всегда теряются.Во многих случаях их можно вернуть, если правильно закрыть соответствующий аккаунт.Третье заблуждение — считать, что при каждом переводе токена требуется новый депозит для освобождения от платы за хранение.Обычно депозит нужен только в том случае, если необходимого аккаунта еще нет.Если аккаунт токена уже создан, для обычного перевода может понадобиться только комиссия за транзакцию.Четвертое заблуждение состоит в том, что для всех аккаунтов требуется одинаковый баланс.Необходимая сумма зависит от размера данных аккаунта и действующего порядка расчета, используемого сетью.Освобождение от платы за хранение и проектирование аккаунтов
Грамотное проектирование аккаунтов снижает расходы на освобождение от платы за хранение: в блокчейне следует хранить только те данные, которые необходимо проверять.Разработчики часто хранят в блокчейне критически важное состояние, а объемные метаданные, изображения, документы и аналитические данные размещают в других местах.Такой подход помогает поддерживать эффективность блокчейна и при этом позволяет приложениям подтверждать право собственности, балансы, разрешения и изменения состояния.При проектировании также следует учитывать, должен ли аккаунт быть постоянным или временным.Если аккаунт нужен только на короткое время, приложение должно предусматривать безопасный способ закрыть его и вернуть депозит.Если аккаунт хранит долгосрочное состояние, перед подписанием транзакции пользователю следует сообщить о стоимости освобождения от платы за хранение.Если создается много аккаунтов, затраты на освобождение от платы за хранение могут стать существенной частью общих расходов.Поэтому качественные децентрализованные приложения оценивают депозиты за хранение до появления финального экрана подтверждения.Освобождение от платы за хранение и Wrapped SOL
Wrapped SOL — распространенный пример того, как освобождение от платы за хранение проявляется в повседневной работе с криптовалютой.Нативный SOL можно обернуть в аккаунт токена, чтобы использовать его в программах, работающих с токенами.Пока такой аккаунт существует, в нем должен поддерживаться баланс для освобождения от платы за хранение.После закрытия аккаунта Wrapped SOL оставшиеся SOL и депозит за хранение обычно можно вернуть согласно процедуре закрытия аккаунта.Поэтому при разворачивании Wrapped SOL или закрытии неиспользуемого аккаунта Wrapped SOL пользователь может увидеть возврат дополнительного количества SOL.Точный результат зависит от интерфейса кошелька, состояния аккаунта и инструкций, включенных в транзакцию.Рекомендации для пользователей
Держите небольшой резерв нативной криптовалюты для комиссий за транзакции и возможных депозитов для освобождения от платы за хранение.Если транзакция создает новый аккаунт, внимательно читайте запросы на подтверждение в кошельке.Если в кошельке есть безопасная функция закрытия аккаунта, периодически проверяйте пустые аккаунты токенов.Не закрывайте аккаунты, назначение которых вам непонятно: некоторые могут быть связаны с активными позициями или разрешениями в приложениях.Учитывайте, что транзакция может завершиться неудачно из-за нехватки средств на депозит за хранение, а не только из-за слишком высокой комиссии сети.Рекомендации для разработчиков
Вызывайте метод RPC для расчета баланса освобождения от платы за хранение вместо использования устаревших констант из обучающих материалов.По возможности уменьшайте размер аккаунтов, не жертвуя безопасностью или ясностью.Показывайте комиссию за транзакцию и депозит для освобождения от платы за хранение отдельными пунктами интерфейса.Предусматривайте возможность закрытия аккаунтов, если они предназначены для временного использования.Тестируйте создание аккаунтов с реалистичными пользовательскими балансами, поскольку депозиты за хранение могут повлиять на успешное начало работы с приложением.Документируйте, какие аккаунты создаются, кто за них платит и можно ли вернуть депозит позднее.FAQ
Что означает освобождение от платы за хранение в криптовалюте?
Это означает, что в аккаунте блокчейна хранится достаточно нативной криптовалюты для соблюдения минимальных требований сети к балансу хранения.Является ли освобождение от платы за хранение комиссией?
Его правильнее понимать как депозит за хранение: часто его можно вернуть после надлежащего закрытия соответствующего аккаунта.Зачем в Solana нужно освобождение от платы за хранение?
Оно создает экономическую стоимость длительного хранения данных аккаунта и побуждает эффективно использовать состояние сети.Как рассчитать необходимый баланс?
Разработчики могут вызвать метод RPC getMinimumBalanceForRentExemption, указав размер данных аккаунта в байтах.Можно ли вернуть SOL, зарезервированные для освобождения от платы за хранение?
Часто их можно вернуть после закрытия аккаунта, но он должен соответствовать правилам закрытия, установленным программой.Почему кошелек оставил часть SOL?
Возможно, кошелек оставил часть SOL, чтобы баланс аккаунта не опустился ниже необходимого уровня освобождения от платы за хранение.Требуется ли освобождение от платы за хранение при каждом переводе токена?
Нет. Такой депозит обычно нужен только при создании необходимого аккаунта токена или аккаунта программы.Освобождение от платы за хранение — это то же самое, что газ?
Нет. Газ или комиссия за транзакцию оплачивает ее обработку, а освобождение от платы за хранение обеспечивает минимальный баланс для хранения аккаунта.Могут ли разработчики снизить расходы на освобождение от платы за хранение?
Да. Для этого можно уменьшить размер аккаунтов, не хранить в блокчейне ненужные данные и по возможности закрывать временные аккаунты.Заключение
Освобождение от платы за хранение — важное понятие, связанное с хранением данных аккаунтов в криптовалютных сетях. Особенно актуально оно для Solana, где в аккаунтах должно быть достаточно лампортов, чтобы они оставались действительными в блокчейне.Это правило влияет на балансы кошельков, создание аккаунтов токенов, расходы при использовании децентрализованных приложений и проектирование смарт-контрактов.Пользователям важно понимать, что освобождение от платы за хранение обычно представляет собой возвратный депозит, а не обычную комиссию за транзакцию.Разработчикам следует учитывать, что размер аккаунта напрямую влияет на расходы пользователей. Поэтому необходимый баланс следует рассчитывать динамически и понятно объяснять его назначение.Понимание этого правила помогает пользователям избегать ошибок транзакций, возвращать неиспользуемые депозиты и принимать более взвешенные решения при взаимодействии с приложениями в блокчейне.Вам также может быть интересно
ZK-Rollup
ZK-Rollup-as-a-Service
zk-SNARK
В тренде
Трендовые криптовалюты, которые в настоящее время привлекают значительное внимание рынка
ТОП по объему
Криптовалюты с наибольшим объемом торгов
Недавно добавленные
Криптовалюты недавно внесенные в листинг и доступные для торговли

