Очередь формируется перед блоком
Представьте себе переполненную платформу метро в час пик. У каждого нового пассажира есть действительный билет, но в прибывающем поезде места ограничены. В сети Биткойн транзакция сначала попадает в мемпул узла — временную зону хранения действительных платежей, которые еще не были подтверждены. Важный нюанс заключается в том, что не существует единого универсального мемпула. Каждый узел ведёт свою собственную версию, применяет свои локальные правила и может видеть несколько иной набор ожидающих транзакций.
Заполнение блока и заполнение мемпула — это также разные события. Размер блоков Биткойна ограничен консенсусом до 4 миллионов единиц веса — единицы измерения, которая учитывает структуру данных транзакций. Узлы Bitcoin Core по умолчанию выделяют примерно 300 МБ памяти для своих локальных мемпулов и могут хранить транзакции до 336 часов. Блок может заполниться, в то время как в памяти останется множество транзакций, ожидающих включения в более поздний блок.
Заполненный блок превращает ожидание в аукцион
Майнеры обычно не выбирают транзакции по возрасту. Они формируют шаблоны блоков, ориентируясь на комиссии, вес транзакций и зависимости между платежами. Практическая единица измерения, которую видят пользователи, — это сатоши на виртуальный байт, или sat/vB. Более высокая ставка обеспечивает майнерам больший доход за то же ограниченное пространство в блоке, поэтому транзакции с самыми высокими комиссиями, как правило, обрабатываются в первую очередь.
Это означает, что платеж, отправленный первым, может быть подтверждён позже, чем тот, который был отправлен на несколько минут позже. Транзакция с высокой комиссией может широко распространиться по сети и попасть в следующие шаблоны майнеров. Транзакция с низкой комиссией может оставаться ниже порогового значения даже после прохождения нескольких блоков. Оценки времени подтверждения помогают, но не являются обещаниями, поскольку новые транзакции поступают непрерывно, а сами блоки появляются с нерегулярными интервалами.
Когда достаточное количество ожидающих транзакций конкурирует за место в каждом блоке, мемпул становится не столько упорядоченной очередью, сколько списком ожидающих на повышение класса обслуживания в аэропорту. Новые, более «платежеспособные» транзакции могут вытеснить менее выгодные предложения. Если узел Bitcoin Core достигает настроенного предела памяти, он удаляет группу подключенных транзакций, наименее выгодных с экономической точки зрения, и повышает скользящий локальный минимальный уровень комиссии. Удаленная транзакция не является недействительной, и блокчейн её не отменил. Этот узел просто перестал её обрабатывать.
Перегрузка доходит до кошелька
Для обычного пользователя первым следствием становится задержка. Кошелек может показывать, что платеж находится в ожидании в течение нескольких часов, пока подтверждаются более свежие транзакции. Для трейдера, биржи или казначейского отдела такая задержка может отложить пополнение счета на бирже, замедлить перемещение залога, прервать арбитражный перевод или сделать средства недоступными в условиях быстро меняющегося рынка.
Поскольку комиссии в первую очередь зависят от веса транзакции, а не от суммы перевода, платеж на 50 долларов и перевод на 5 миллионов долларов могут конкурировать на равных условиях, если их структура транзакций сопоставима. Чем больше перевод зависит от времени, тем дороже может обойтись недоплата комиссии.
Второе следствие — рынок с более высокими комиссиями. У Биткойна нет базовой комиссии на уровне протокола, как у Ethereum. Вместо этого пользователи конкурируют за предельный уровень комиссии, который майнеры могут вместить в следующий блок, в то время как каждый узел также поддерживает локальный минимальный порог приема. Под давлением этот динамический порог может подняться значительно выше базовой настройки ретрансляции, заданной в программном обеспечении. Комиссия, указанная вчера или даже 20 минут назад, может уже не обеспечивать ту же скорость подтверждения.
Третьим следствием является неопределенность до момента расчета. Наличие транзакции в блок-эксплорере свидетельствует о том, что некоторые узлы знают о ней, но не доказывает, что об этом знают все майнеры. Неподтверждённый платеж может быть заменен, удалён или исчезнуть из поля зрения узла, оставаясь при этом действительным возможным расходом. Компании, которые отгружают товары, зачисляют средства на счёты или рассматривают депозит как окончательный при нулевом количестве подтверждений, принимают на себя риск, который может стать более заметным в условиях перегрузки сети.
Несколько способов спасти застрявший платеж
Сам Биткойн предоставляет пользователям два основных способа переоценки задержанного платежа. Функция «Заменить за счет комиссии» (Replace-by-fee, RBF) позволяет отправителю заменить неподтвержденную транзакцию на другую с более высокой комиссией. Представьте себе, что вы отменяете низкую ставку и подаете более высокую на то же место. Метод «дочерняя транзакция оплачивает родительскую» (Child-pays-for-parent, CPFP) использует другой подход: расходуемый выход из задержанной транзакции используется в новой дочерней транзакции с высокой комиссией, что дает майнерам стимул включить родительскую и дочернюю транзакции вместе.
Ни один из этих инструментов не является волшебным. Замена по принципу RBF должна соответствовать правилам узла и предусматривать комиссию, достаточную для того, чтобы превзойти как заменяемую транзакцию, так и текущий рынок. «Дочерняя» транзакция по принципу CPFP должна повысить совокупную ставку комиссии всего пакета, а не просто выглядеть дорогой сама по себе. На рынке с резко растущими ценами даже небольшое повышение комиссии может оставить платеж ниже скользящего порогового значения. Настоящая цель — не минимальная комиссия за ретрансляцию, а уровень комиссии в конце очереди следующего вероятного блока.
Помимо этих двух вариантов, существуют ускорители майнинга — услуги, предлагаемые некоторыми биткойн-пулами, которые позволяют пользователям отправлять транзакцию для приоритетного рассмотрения, когда она застряла в мемпуле из-за низкой комиссии. Вместо изменения правил консенсуса Биткойна ускоритель просто просит участвующих майнеров включить эту транзакцию в один из следующих блоков, которые они добывают. Некоторые ускорители бесплатны, но имеют требования к участникам, в то время как другие взимают комиссию или требуют, чтобы транзакция соответствовала минимальной ставке комиссии.
Core 31.0 меняет механизм, а не предельный порог
Bitcoin Core 31.0 изменяет некоторые механизмы, лежащие в основе этого процесса. Его кластерный мемпул группирует связанные неподтвержденные транзакции и упорядочивает их по ставке комиссии, при которой ожидается добыча данной группы. По умолчанию ограничения кластера составляют 64 транзакции и 101 кБ виртуального размера. Эта конструкция призвана улучшить процесс формирования блоков, удаления транзакций, ретрансляции транзакций и принятия решений о замене, не изменяя при этом предельный порог консенсуса Биткойна, равный 4 миллионам единиц веса.
Другие инженерные разработки направлены на снижение затрат на передачу полных блоков по сети. Компактная ретрансляция блоков позволяет узлу воссоздавать большую часть нового блока из транзакций, которые у него уже есть, сокращая объем данных и время, необходимые для его распространения. Это важно, поскольку более медленное распространение может увеличить риск того, что два майнера на короткое время будут строить цепочки на разных концах. Увеличение емкости блока может снизить краткосрочное давление на комиссии, но также может повысить нагрузку на пропускную способность, проверку и распространение.
Практический вывод прост. Когда блок Биткойна заполнен, ничего не ломается, и ни одна транзакция не получает приоритета за время ожидания. Майнеры подтверждают наиболее экономически привлекательные валидные пакеты, которые помещаются в блок, в то время как более дешёвые платежи остаются в ожидании, переоцениваются или теряют возможность ретрансляции. Для инвесторов и предприятий комиссия — это не почтовая марка. Это ставка за дефицитное место в системе расчётов. Рассматривайте время подтверждения как вероятность и следите за текущими условиями комиссий, прежде чем обычная задержка превратится в дорогостоящую операционную проблему.
Источник изображения в заголовке: mempool.space