Перейти к содержимому
buybitcoinsmart

Глоссарий / Транзакции и комиссии

Ретрансляция пакетов

Что такое ретрансляция пакетов?
Ретрансляция пакетов позволяет узлу принимать группу связанных неподтвержденных транзакций вместе, чтобы дочерняя транзакция с высокой комиссией могла провести за собой родительскую, которую сеть иначе отклонила бы.

Определено в BIP-331.

Ретрансляция пакетов устраняет несоответствие, которое сохранялось годами: майнеры оценивали группы, а сеть, доставлявшая им транзакции, оценивала их по одной. Bitcoin Core 28.0, выпущенный в октябре 2024 года, внедрил оппортунистическую ретрансляцию для случая одного родителя и одного дочернего элемента, а BIP 331 описывает общий вариант. Если вы когда-либо повышали комиссию зависшего входящего платежа и видели, что повышение исчезло, причина в этом.

Как это работает

Узел решает, сохранять ли транзакцию, в ту же секунду, когда она приходит, и на протяжении большей части истории биткоина он принимал это решение, ничего не зная о том, к чему привязана транзакция.

Представьте сбой. Приходит родительская транзакция, которая платит меньше, чем узел требует в этот момент, и ее отбрасывают, а не сохраняют. Через мгновение приходит дочерняя транзакция, тратящая выход этой родительской, и без записи о родительской узел не может проверить и дочернюю, поэтому она попадает в небольшой пул сиротских транзакций, рассчитанный по умолчанию примерно на сотню транзакций, и забывается. Комиссия, которую несла дочерняя транзакция, никогда не учитывается. Майнинг с учетом предков, присутствующий в Bitcoin Core с 2016 года, не мог помочь, потому что до майнера ничего не доходило.

Оппортунистическая ретрансляция одного родителя с одним дочерним элементом закрывает обычный вариант этой бреши. Когда появляется сиротская транзакция, чья отсутствующая родительская недавно была отклонена за слишком низкую плату, узел пересматривает обе как единое целое, оценивает их по общей комиссии за общий размер и принимает обе, если пара проходит порог. Охват намеренно узкий: один родитель, один дочерний элемент. Пакет с несколькими родительскими транзакциями с заниженной платой по-прежнему вне досягаемости.

BIP 331 определяет общий механизм: пиры объявляют о поддержке сообщением sendpackages во время рукопожатия, а затем используют ancpkginfo, getpkgtxns и pkgtxns, чтобы запросить полный набор предков транзакции, прежде чем оценивать что-либо из него. Вы уже можете передать группу своему узлу с помощью RPC-вызова submitpackage, ограниченного 25 транзакциями и 101 килобайтом виртуального размера.

Протоколы, которым это нужнее всего, подписывают свои транзакции задолго до их трансляции. Обязательство Lightning согласуется за месяцы до того дня, когда оно может понадобиться, когда никто не знает, какими будут комиссии, поэтому современная схема подписывает его с нулевой или почти нулевой комиссией и позволяет той стороне, которой это нужно, добавить комиссию через выход-якорь. Это работает только если обязательство и оплачивающая его комиссию дочерняя транзакция передаются вместе. Тот же выпуск добавил TRUC-транзакции, описанные в BIP 431, которые ограничивают топологию, чтобы злоумышленник не мог похоронить пару под мусором.

Где это видно

Ретрансляция пакетов незаметна, когда работает, а замечают ее отсутствие: вопрос, от которого зависят ваши возможности, состоит в том, существует ли зависшая родительская транзакция где-либо.

Если родительская транзакция находится в мемпулах и подтверждается медленно, обычного повышения комиссии достаточно и пакет не участвует. Ретрансляция пакетов нужна для более трудного случая, когда биржа построила свой пакет выводов ниже текущего минимума, ни один узел не сохранил копию и ничто из того, что вы заплатите со своей стороны, не спасет транзакцию, которую сеть так и не приняла.

Поищите идентификатор транзакции в двух или трех независимых обозревателях, поскольку каждый сообщает о мемпуле своего собственного узла. Если нигде нет, повышать нечего, и исправление лежит на отправителе. Пользователи Lightning встречают тот же механизм при принудительных закрытиях, где обязательство с нулевой комиссией плюс трата через якорь теперь являются стандартным выходом из канала.

Одна честная оговорка: улучшения ретрансляции действуют только между пирами, которые их запускают, поэтому распространение зависит от их внедрения по всей сети, а не от версии вашего собственного узла.

Ретрансляция пакетов vs child pays for parent

Child pays for parent (дочерняя транзакция платит за родительскую) является стратегией, а ретрансляция пакетов представляет собой механизм, который ее доставляет. Первое описывает привязку хорошо оплаченной дочерней транзакции, чтобы майнер взял обе; второе означает способность сети передавать и оценивать эту пару как единый объект. Стратегию можно использовать без ретрансляции пакетов всякий раз, когда родительская транзакция уже находится в мемпулах, а это охватывает большинство зависших платежей. Ретрансляция пакетов позволяет этой технике работать, когда родительская транзакция оплачена ниже того, что сеть готова передавать.

Не путать с

Часто задаваемые вопросы

Нужно ли включать ретрансляцию пакетов, чтобы ею пользоваться?

Нет. Ретрансляция пакетов является поведением узла, а не настройкой кошелька. Ваша часть работы не меняется: потратьте неподтвержденный биткоин по достаточно высокой ставке. То, будут ли транзакции передаваться вместе, решает программное обеспечение, которое запускают ваши пиры.

Почему ни один обозреватель вообще не находит мою входящую транзакцию?

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

Связанные термины

Еще в разделе «Транзакции и комиссии»

Читать эту страницу на английском