TRON Bandwidth vs Energy: в чём реальная разница?
Пару недель назад друг написал мне и спросил, почему у него не прошла транзакция. Он как раз застейкал TRX в надежде, что этого хватит на отправки USDT. Получил ошибку вроде "bandwidth points not enough".
В чём проблема? Он застейкал не тот ресурс.
На этом спотыкается столько людей, что я решил посвятить этому отдельную статью. Bandwidth и energy звучат похоже — оба "ресурсы сети" в TRON — но путаница между ними стоит реальных денег.
Самое чистое объяснение, какое у меня есть
Bandwidth — это марка на конверте. Неважно, что внутри: на каждое письмо нужна марка, чтобы его отправили.
Energy — это электричество, которое крутит механизмы на фабрике после того, как ваше письмо туда дошло. Оно нужно только если получатель — фабрика (смарт-контракт), которая должна что-то сделать с вашим письмом.
То есть если вы переводите чистый TRX с одного кошелька на другой — только bandwidth. Никакой фабрики. Наклеили марку — отправили.
Если вы перемещаете USDT, USDD, JST или любой токен TRC-20 — нужны и bandwidth, и energy. Потому что токен на самом деле никуда не движется, смарт-контракт обновляет, кто чем владеет. Это и есть "фабричная" часть.
Бесплатная суточная квота, которой никто не пользуется
Вот чего я почти год не знал после того, как начал пользоваться TRON: каждому аккаунту даётся 600 единиц bandwidth бесплатно в сутки. Обновляется каждые 24 часа. Никакого стейкинга, ничего — просто появляется.
600 единиц — это примерно 2 простых перевода TRX → TRX. Или один голос. Немного, но бесплатно.
Эквивалента бесплатного energy нет. По умолчанию ноль energy. Именно поэтому ваша первая отправка USDT ощущается как удар — у вас было 0 energy, и сеть забрала TRX с баланса и сожгла. В механизм я углубился в статье о том, почему комиссии USDT такие высокие, если нужны детали.
Сколько стоит каждое из них на практике?
Несколько примерных цифр из моих собственных транзакций, всё проверяемо в TronScan:
Перевод TRX → TRX: ~268 bandwidth, 0 energy
Перевод USDT (у получателя уже есть USDT): ~345 bandwidth, ~64 285 energy
Перевод USDT (получатель новый): ~345 bandwidth, ~130 000 energy
Своп на SunSwap: 600+ bandwidth, 200 000+ energy
Минт NFT или вызов контракта: очень разнится, обычно сильно расходует energy
Заметили, что bandwidth остаётся маленьким даже для сложных операций? Это потому, что bandwidth в основном зависит от размера данных вашей транзакции, а не от сложности того, что она делает. Перевод USDT — это примерно 345 байт данных, неважно, запускает ли он контракт с тысячью операций.
Energy — наоборот. Чистая стоимость вычислений. Чем больше контракту приходится "думать", тем больше energy сгорает.
Как получить каждый ресурс
Bandwidth можно двумя способами: использовать ежедневные 600 бесплатных или застейкать TRX (технически "freeze"), чтобы генерировать больше. Несколько сотен TRX в стейке дают bandwidth на нормальное использование с запасом.
С energy сложнее. Можно:
Застейкать много TRX (речь о тысячах), чтобы получать energy ежедневно
Позволять сети автоматически сжигать TRX с вашего кошелька на каждом переводе
Арендовать energy на маркетплейсе за небольшую плату
Первый вариант подходит, если у вас есть простаивающий TRX и он не нужен 14+ дней. Второй — дефолт и в долгосрочной перспективе самый дорогой. Третий — то, что делаю я: арендую через свой сервис (EnergyTRX), но есть несколько приличных альтернатив. Примерно 3-5 TRX за отправку вместо 27.
Распространённая путаница, которую стоит прояснить
Раньше стейкинг TRX ради energy был очевидным шагом для активных пользователей USDT. Потом сеть пару лет назад поменяла формулу, и теперь нужно блокировать заметно больше TRX, чтобы получать ту же дневную energy. Кажется, это было обновление Stake 2.0 — точную дату честно не помню.
В итоге для большинства казуальных пользователей стейкинг уже не оправдывает заморозку капитала. Пришлось бы стейкать 5 000-8 000 TRX, чтобы покрыть всего несколько ежедневных отправок USDT. Если вы не переводите постоянно, этот замороженный капитал мог бы работать на другое.
Тем, кто отправляет USDT 2-3 раза в неделю, аренда выигрывает по математике. Бизнесу, который делает 100+ переводов USDT в день, стейкинг ещё может иметь смысл.
А что насчёт новичков?
Если вы только что открыли кошелёк, мой порядок размышлений был бы такой:
Держите небольшой остаток TRX (10-15 TRX достаточно) на сжигание bandwidth в простых операциях. Не возитесь со стейкингом ради bandwidth — бесплатные 600 в сутки покрывают больше, чем люди думают. Для USDT либо арендуйте energy, либо смиритесь с сжиганием на первых паре переводов, пока разбираетесь с вашим паттерном использования.
Если вы вообще не сталкивались с TRON и всё кажется туманным, я написал понятный для новичков обзор сети, где разобраны основы перед тем, как лезть в управление ресурсами.
Последнее
Bandwidth и energy не передаются между кошельками. Они привязаны к адресу, на котором стоит стейк. Так что если вы застейкали TRX в кошельке A и отправляете USDT с кошелька B, у кошелька B всё равно ноль energy, и он будет сжигать TRX.
Звучит очевидно, когда написано. Я узнал это глупым способом.