Почему биткоин-транзакция зависла?

Почему биткоин-транзакция зависла?

Блок имеет ограниченный размер в 1 мегабайт, а все неподтвержденные (пока не попавшие в блок) транзакции хранятся в мемпуле (в памяти биткоин-ноды).

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

Вторая по частоте причина статуса UnConfirmed - наличие ранее неподтвержденных переводов. Обычно сделки необходимо подтверждать по цепочке. Новые транзакции не попадут в блок, пока входящие монеты не подтверждены.

Почему транзакции теряются?

Биткоин-ноды имеют разные настройки. Некоторые удаляют транзакции, которые не были подтверждены в течении 1-3 суток. Некоторые не принимают транзакции со слишком низкой комиссией сети. Так, например, мемпул переполнен и в нем уже более 50 Мб необработанных записей, а средняя комиссия сети 30 сатоши на байт, тогда транзакции с комиссией 1 сатоши на байт нода может не принимать.

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

Именно из-за настроек ноды в разных блокчейн-эксплорерах вы можете наблюдать разное количество неподтвержденных транзакций.

три блокчейн эксплорера показывают разное количество транзакций в один момент
три блокчейн эксплорера показывают разное количество транзакций в один момент

Как ускорить подтверждение транзакции?

Если перевод отображается не во всех блокчейн-эксплорерах, то транзакцию лучше заново отправить. Для этого скопируйте хэш (hash) транзакции или сырую транзакцию (raw tx), в зависимости что требуется, и отправьте вручную с использованием следующих форм:

Также существуют платные и бесплатные акселераторы, использующие множество API запросов для бродкаста транзакции:

Что делать в следующий раз?

Использовать RBF (replace-by-fee) - так вы сможете заменить свою старую транзакцию на новую с высокой комиссией сети.

Использовать SegWit - протокол с вынесенной подписью транзакции. Это позволяет уменьшить размер транзакции, что позволяет больше операций вместить в блок. Майнеры охотнее берут SegWit-транзакции, чем тяжелые legacy.

Taproot и подпись Schnorr. На данный момент пока мало кем поддерживается, но это более безопасный и гибкий протокол, с еще более низкой комиссией сети. Это новый этап масштабирования сети.

Стараться разделять тяжелые транзакции со множеством выходов на несколько отдельных либо периодически объединять монеты в более крупные.

Всегда проверять и ставить актуальную комиссию сети.

Текущая комиссия сети:

22
3 комментария

Полезно, спасибо. А можно, выходит, зарабатывать на подтверждении транзакций?

Этим майнеры и занимаются лол