Комиссии в криптосетях: gas, fee market, congestion и priority fee

Radar Expert разбирает комиссии без мифа «сеть просто стала жадной»: что такое gas, base fee и priority fee, почему congestion меняет цену block space и почему Bitcoin, Ethereum, Solana и TRON считают стоимость транзакции по-разному.

Комиссии в криптосетях: gas, fee market, congestion и priority fee
Комиссия в криптосети — не «налог блокчейна» и не фиксированная цена перевода. Это механизм распределения ограниченного ресурса. В одной сети дефицитным ресурсом является место в блоке, в другой — вычисление EVM и состояние, в третьей — compute units, bandwidth или energy. Поэтому одинаковый по смыслу перевод может стоить по-разному не только между сетями, но и в одной сети в соседние минуты.

Самая полезная модель начинается с вопроса: за какой конкретный ресурс платит транзакция? Если ответить на него, становятся понятны gas limit, base fee, priority fee, congestion, mempool bidding и ситуации, когда дорогая транзакция всё равно не проходит. Комиссия — это не одна цифра. Обычно это произведение или комбинация объёма потреблённого ресурса и цены единицы ресурса, дополненная правилами конкретного fee market.

Почему block space вообще имеет цену

Блок не бесконечен. Узел должен получить его по сети, проверить, выполнить или валидировать все операции и сохранить необходимые изменения состояния. Если разрешить производителю блока включать неограниченное число транзакций, требования к bandwidth, CPU, RAM, storage и времени верификации быстро разрушат способность обычных участников следовать за цепью.

Поэтому протокол задаёт предел: размер блока, weight, gas limit, compute budget или другой лимит. Когда желающих использовать ресурс меньше, чем доступная ёмкость, конкуренция слабая и цена может быть низкой. Когда спрос превышает capacity, fee market начинает сортировать операции по тому, насколько дорого пользователь готов купить ограниченное место или вычисление.

Bitcoin: fee как цена за место и структуру транзакции

В Bitcoin комиссия определяется разницей между суммой inputs и outputs. Она не хранится отдельным полем «fee = 5 долларов». Кошелёк выбирает UTXO, создаёт outputs и оставляет часть входной стоимости нераспределённой; эта разница становится вознаграждением майнеру.

На практике важен feerate — сколько satoshi пользователь платит за единицу виртуального размера транзакции. Два перевода одинаковой суммы BTC могут иметь разные fees, потому что один использует один input и два outputs, а другой собирает множество мелких UTXO. Сеть не интересует долларовая стоимость перевода: дорого обходится объём данных и место, которое transaction занимает в ограниченном block weight.

Почему «перевожу больше — плачу больше» в Bitcoin обычно неверно

Транзакция на 0.001 BTC и транзакция на 10 BTC могут иметь почти одинаковый fee, если их структура одинаково компактна. И наоборот, консолидация десятков мелких UTXO может быть заметно дороже, даже если итоговая сумма невелика. Это важный пример того, почему комиссия измеряет потребление сетевого ресурса, а не финансовую ценность операции.

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

Ethereum: gas отделяет объём работы от цены работы

Ethereum делает resource accounting явным через gas. Каждая операция EVM имеет стоимость в gas units. Простая передача ETH потребляет относительно предсказуемый объём, а сложный smart contract call может выполнять множество storage reads, writes, hashing, log operations и внутренних вызовов.

Gas нужен для двух вещей. Во-первых, он даёт единый счётчик разнородных вычислительных действий. Во-вторых, он ограничивает программу: пользователь задаёт gas limit, и бесконечный или чрезмерно дорогой computation не может бесплатно занять узлы навсегда. Если execution исчерпывает доступный gas, вызов откатывается, но уже использованный вычислительный ресурс не становится бесплатным.

Gas used и gas price — разные величины

Gas used отвечает на вопрос «сколько вычислительного ресурса потребила операция». Цена gas отвечает на вопрос «сколько пользователь платит за единицу этого ресурса». Поэтому итоговая комиссия приблизительно выглядит как gas used × effective gas price.

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

EIP-1559: почему Ethereum отказался от чистого первого ценового аукциона

До EIP-1559 пользователи в основном конкурировали через gas price: более высокая ставка повышала вероятность быстрого inclusion. Такой first-price auction плохо прогнозируется. Пользователи переплачивают из страха не попасть в блок, кошельки пытаются угадать текущую цену, а резкие всплески спроса создают хаотичные fee estimates.

EIP-1559 разделил стоимость на base fee и priority fee. Base fee определяется протоколом и меняется в зависимости от того, насколько заполнены предыдущие блоки относительно target. Priority fee — дополнительная часть, которая мотивирует block producer включить транзакцию быстрее. Пользователь также задаёт max fee per gas — потолок, выше которого платить не готов.

Base fee — это feedback loop, а не ручная цена

Ключевая идея: сеть не пытается найти одну «правильную» цену навсегда. Если блоки систематически превышают целевую загрузку, base fee растёт. Если они недозагружены — снижается. Таким образом цена ресурса адаптируется к спросу через протокольную обратную связь.

Это не отменяет congestion. EIP-1559 делает price discovery более предсказуемым, но не создаёт бесконечную capacity. Если спрос на block space взрывается, base fee быстро растёт, а пользователи, которым inclusion нужен немедленно, добавляют priority fee. Сеть всё ещё распределяет дефицитный ресурс ценой.

Почему base fee сжигается

В Ethereum base fee не выплачивается validator как обычное вознаграждение. Она сжигается. Это отделяет базовую цену ресурса от прямого дохода производителя блока и уменьшает стимул искусственно манипулировать fee floor ради собственного вознаграждения.

Priority fee и другие источники execution-layer revenue всё ещё дают экономический стимул включать операции. Но базовая часть превращается в протокольный механизм congestion pricing и одновременно влияет на supply dynamics ETH. Поэтому разговор о комиссиях Ethereum неизбежно пересекается с monetary policy, хотя пользователю важнее всего итоговая effective gas price.

Max fee per gas: зачем нужен потолок

Пользователь не обязан заранее знать точную base fee будущего блока. Он может поставить максимальную цену, которую согласен заплатить. Effective priority и итоговая цена ограничиваются этим потолком. Если base fee вырастет выше того, что допускает max fee, транзакция не сможет быть включена на этих условиях.

Это защищает от неожиданного списания произвольно высокой комиссии, но создаёт другой сценарий: transaction может оставаться pending, хотя кошелёк «поставил fee». Причина не всегда в слишком маленьком tip. Иногда потолок max fee уже ниже текущей базовой цены сети.

Priority fee: это не плата за «скорость сети»

Priority fee часто называют tip. Она повышает привлекательность операции для producer, но не делает сам протокол быстрее. Block time не сокращается из-за того, что конкретный пользователь добавил больше tip. Меняется его позиция в конкуренции за inclusion.

Поэтому выражение «ускорить транзакцию» технически означает не разогнать валидаторов, а создать более конкурентную версию операции или предложить более выгодные fee parameters. Если проблема в nonce dependency, invalid calldata или недостаточном gas limit, один большой priority fee её не исправит.

Congestion: когда fee становится рыночным сигналом

Congestion возникает, когда demand на включение операций превышает ресурс, доступный в ближайших блоках. Это может происходить из-за NFT mint, airdrop claim, ликвидаций DeFi, массового движения рынка, token launch, arbitrage, inscriptions или просто общего роста использования.

Fee в такой момент выполняет функцию очереди без центрального диспетчера. Пользователь с высокой urgency сигнализирует готовность платить больше. Пользователь без срочности может дождаться снижения спроса. Это экономически простая схема, но она создаёт UX-проблему: стоимость транзакции становится непредсказуемой для приложения, если оно не умеет оценивать текущий рынок block space.

Почему fee estimation сложнее, чем кажется

Кошелёк пытается ответить не на вопрос «какая комиссия сейчас?», а на вопрос «какая ставка даст желаемую вероятность inclusion в выбранный горизонт?». Для этого он наблюдает mempool, последние блоки, base fee trend и поведение producers.

Оценка по прошлому может быстро устареть. Если внезапно появился огромный спрос, статистика предыдущих пяти минут слишком оптимистична. Если congestion закончился, прежняя высокая оценка заставляет пользователя переплатить. Поэтому качественный fee estimator должен быть динамическим и учитывать разные цели: low, normal, urgent.

Solana: fees при очень другой execution architecture

Solana не копирует Ethereum gas market один в один. Транзакция платит base fee за signatures и может использовать prioritization fee, связанную с requested compute units и compute unit price. Это отражает архитектуру, где parallel execution, account locking и compute budgeting устроены иначе, чем EVM gas.

Приоритетная комиссия помогает scheduler экономически ранжировать транзакции, но пользователь должен понимать compute budget. Слишком высокий requested compute limit может привести к переплате в моделях, где priority fee зависит от requested units, а не только от фактически использованных. Поэтому оптимизация контракта и точная оценка compute units имеют прямой финансовый смысл.

Почему низкие nominal fees не означают отсутствие congestion

Сеть может иметь очень низкую среднюю комиссию и всё равно испытывать локальную конкуренцию за определённые accounts, markets или compute. Ограничения бывают не только глобальными. Parallel execution повышает throughput, но конфликтующие операции, обращающиеся к одним и тем же writable accounts, всё равно конкурируют.

Поэтому сравнение «Ethereum дорого, Solana дешёво» без анализа workloads слишком грубое. Пользователю важна не средняя fee по всей сети, а стоимость и вероятность inclusion конкретного типа операции в конкретной нагрузке.

TRON: bandwidth и energy вместо одной универсальной gas-модели

TRON использует ресурсную модель, где Bandwidth связан с размером транзакции, а Energy — с выполнением smart contracts. Пользователь может получать ресурсы через staking/delegation механизм или оплачивать недостаток ресурсов TRX в зависимости от правил сети.

Это создаёт другой UX: у аккаунта могут быть доступные ресурсы, поэтому видимый прямой fee за конкретную операцию оказывается небольшим или нулевым в TRX, хотя ресурс всё равно имеет экономическую стоимость через заблокированный капитал или делегирование. Сравнивать такую операцию с Ethereum только по строке «network fee» значит игнорировать стоимость получения ресурсов.

Resource model против fee market: что реально сравнивать

Для честного сравнения сетей стоит считать total resource cost. В Ethereum это direct payment за gas по текущей цене. В Bitcoin — sat/vB и размер transaction. В Solana — signature/base fee плюс priority mechanics и compute budget. В TRON — расход Bandwidth/Energy, который может быть покрыт застейканным ресурсом или сжиганием TRX.

Если один пользователь держит stake ради бесплатного ресурса, а другой каждый раз покупает его transaction fee, их marginal cost различается. Но capital cost первого варианта не исчезает. Экономический анализ должен учитывать opportunity cost заблокированного капитала, а не только видимую строку комиссии.

Fee и MEV — разные вещи, но они пересекаются

Пользовательская transaction fee — не единственная экономическая ценность места в блоке. В DeFi ordering может создавать arbitrage, liquidation и sandwich opportunities. Тогда producer или специализированный builder оценивает transaction bundle не только по прямой priority fee, но и по потенциальной MEV.

Это усложняет простую картину «кто заплатил больше gas, тот первый». Современные block-building pipelines могут включать private order flow и bundles. Для пользователя вывод остаётся прежним: fee — важный сигнал, но final ordering может зависеть от более широкого рынка block space.

Почему высокий fee не гарантирует success

Комиссия покупает ресурс, а не правильность бизнес-логики. Ethereum smart contract call может заплатить за computation и всё равно revert. Solana transaction может столкнуться с account-state change или execution error. Bitcoin transaction может конфликтовать с уже потраченным input.

Поэтому приложение должно разделять два вопроса: достаточно ли fee для inclusion и корректна ли сама operation. Платить за дорогой computation — не то же самое, что покупать гарантированный результат.

Почему failed transaction может стоить денег

Узлы уже выполнили работу, прежде чем понять, что smart contract call должен revert по условиям программы. Если бы failed execution была бесплатной, атакующий мог бы спамить сеть дорогими вычислениями без стоимости. Поэтому gas model обычно заставляет платить за фактически использованный ресурс даже при откате state changes.

Это неприятно для пользователя, но важно для DoS resistance. Комиссия защищает не только очередь, но и вычислительные ресурсы валидаторов. В этом смысле gas — часть security model сети.

Как уменьшать fee без магических «лайфхаков»

Первый способ — выбрать момент меньшей congestion, если операция не срочная. Второй — использовать wallet fee estimator и не ставить arbitrary максимальные значения. Третий — уменьшать resource consumption: консолидацию UTXO планировать в дешёвые периоды, smart contract calls проектировать эффективнее, compute limit выставлять ближе к реальной потребности.

Четвёртый — использовать L2 или другую execution environment, если security assumptions и bridge risk приемлемы для задачи. Но «дешевле» не означает «то же самое». Перенос execution меняет модель finality, data availability, bridge withdrawal и доверия к sequencer. Экономия на fee всегда должна рассматриваться вместе с архитектурой.

Fee market как обратная связь для разработчиков

Высокие комиссии — не только пользовательская боль. Это сигнал разработчику протокола и приложения, что конкретный ресурс стал узким местом. EIP-1559 сделал pricing более предсказуемым, L2 масштабируют execution, Solana оптимизирует parallel scheduling, TRON использует отдельные resource quotas.

Но любое увеличение capacity имеет цену. Более крупные блоки требуют больше bandwidth, более тяжёлое execution — более мощных validators, сложный scheduler — более сложного software. Поэтому fee pressure нельзя «решить навсегда» простым увеличением лимита без анализа decentralization и hardware requirements.

Практическая формула мышления

Для любой сети задайте пять вопросов. Какой ресурс измеряется? Как считается объём потребления? Кто определяет цену единицы? Как congestion меняет эту цену? Что получает block producer и что сжигается или перераспределяется протоколом?

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

Главный вывод

Комиссия — это рынок доступа к ограниченному вычислительному и сетевому ресурсу. Bitcoin продаёт место через feerate относительно виртуального размера transaction. Ethereum считает computation в gas и после EIP-1559 разделяет base fee и priority fee. Solana использует собственную compute-budget и prioritization модель. TRON разделяет Bandwidth и Energy и позволяет покрывать их через resource allocation.

Поэтому вопрос «где комиссия дешевле?» без описания операции неполон. Нужен другой вопрос: какой ресурс использует именно эта transaction, насколько он дефицитен сейчас, как network price discovery реагирует на congestion и какой security/settlement model пользователь получает вместе с этой ценой.

FAQ

Почему gas fee растёт, если я отправляю ту же транзакцию? Потому что объём работы может быть тем же, а цена единицы gas меняется вместе со спросом на block space. В Ethereum base fee адаптируется к загрузке, а priority fee отражает urgency пользователя.

Base fee и priority fee — это одно и то же? Нет. Base fee определяется протоколом и сжигается. Priority fee — дополнительный стимул для block producer. Пользователь также задаёт max fee как верхний предел общей цены за gas.

Почему Bitcoin fee зависит от количества inputs? Каждый input увеличивает размер/weight транзакции и требует места в блоке. Поэтому сбор многих мелких UTXO может стоить дороже, чем перевод гораздо большей суммы из одного компактного input.

Почему failed smart contract transaction всё равно списывает gas? Потому что validators уже выполнили computation. Бесплатный failed execution позволил бы атакующему потреблять CPU сети без экономического ограничения.

Может ли высокий priority fee гарантировать inclusion? Нет. Он повышает экономическую привлекательность, но transaction всё ещё должна быть валидной, пройти dependencies и попасть к producer. Высокая комиссия не исправляет invalid nonce, конфликтующий UTXO или ошибку контракта.

Почему у TRON иногда почти нет видимой комиссии? Потому что аккаунт может использовать заранее полученные Bandwidth/Energy ресурсы. Это уменьшает marginal payment в TRX, но ресурсы имеют экономическую стоимость через staking, delegation и protocol rules.

Материал носит образовательный характер и не является финансовой рекомендацией или торговым сигналом.

Trust 96 Importance 84 Noise 0% Связанный символ Информационный материал, не является финансовой рекомендацией.